diff --git a/.dockerignore b/.dockerignore index abe0a0be0be1..6898dda39abb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -10,6 +10,7 @@ .*ignore *.md *.log +config/database.yml docker/prod/Dockerfile docker/ci/Dockerfile Guardfile diff --git a/.github/workflows/version-check.yml b/.github/workflows/version-check.yml new file mode 100644 index 000000000000..0405fd47f940 --- /dev/null +++ b/.github/workflows/version-check.yml @@ -0,0 +1,47 @@ +name: Check work package version + +on: + pull_request: + types: [labeled, synchronize] + +permissions: + contents: read # to fetch code (actions/checkout) + pull-requests: write # to comment on the PR + +jobs: + check-pr: + if: contains(github.event.pull_request.labels.*.name, 'needs review') + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + + - name: Verify linked version matches core version + id: version-check + run: ./script/ci/version_check.sh "${{ github.event.pull_request.body }}" + + - name: Add comment if versions differ + if: steps.version-check.outputs.version_mismatch == 'true' + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: version-mismatch-comment + message: | + The provided work package version does not match the core version: + + - Work package URL: ${{ steps.version-check.outputs.wp_url }} + - Work package version: ${{steps.version-check.outputs.wp_version}} + - Core version: ${{steps.version-check.outputs.core_version}} + + Please make sure that: + + - 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 + with: + header: version-mismatch-comment + delete: true diff --git a/Gemfile b/Gemfile index 1803a99150aa..bc3b64e7ea6c 100644 --- a/Gemfile +++ b/Gemfile @@ -61,7 +61,7 @@ gem "friendly_id", "~> 5.5.0" gem "acts_as_list", "~> 1.2.0" gem "acts_as_tree", "~> 2.9.0" -gem "awesome_nested_set", "~> 3.6.0" +gem "awesome_nested_set", "~> 3.7.0" gem "closure_tree", "~> 7.4.0" gem "rubytree", "~> 2.1.0" # Only used in down migrations now. @@ -158,7 +158,7 @@ gem "structured_warnings", "~> 0.4.0" gem "airbrake", "~> 13.0.0", require: false gem "markly", "~> 0.10" # another markdown parser like commonmarker, but with AST support used in PDF export -gem "md_to_pdf", git: "https://github.com/opf/md-to-pdf", ref: "32603f09a249999a00e8ca23eb17215b46a26c0f" +gem "md_to_pdf", git: "https://github.com/opf/md-to-pdf", ref: "fe05b4f8bae8fd46f4fa93b8e0adee6295ef7388" gem "prawn", "~> 2.4" gem "ttfunk", "~> 1.7.0" # remove after https://github.com/prawnpdf/prawn/issues/1346 resolved. @@ -225,7 +225,7 @@ gem "view_component" gem "lookbook", "~> 2.3.0" # Require factory_bot for usage with openproject plugins testing -gem "factory_bot", "~> 6.4.0", require: false +gem "factory_bot", "~> 6.5.0", require: false # require factory_bot_rails for convenience in core development gem "factory_bot_rails", "~> 6.4.0", require: false @@ -247,7 +247,7 @@ group :test do gem "rack_session_access" gem "rspec", "~> 3.13.0" # also add to development group, so 'spec' rake task gets loaded - gem "rspec-rails", "~> 6.1.0", group: :development + gem "rspec-rails", "~> 7.0.0", group: :development # Retry failures within the same environment gem "retriable", "~> 3.1.1" @@ -272,6 +272,7 @@ group :test do gem "capybara_accessible_selectors", git: "https://github.com/citizensadvice/capybara_accessible_selectors", branch: "main" gem "capybara-screenshot", "~> 1.0.17" gem "cuprite", "~> 0.15.0" + gem "rspec-wait" gem "selenium-devtools" gem "selenium-webdriver", "~> 4.20" @@ -348,7 +349,7 @@ group :development, :test do gem "erblint-github", require: false # Brakeman scanner - gem "brakeman", "~> 6.1.0" + gem "brakeman", "~> 6.2.0" # i18n-tasks helps find and manage missing and unused translations. gem "i18n-tasks", "~> 1.0.13", require: false @@ -398,4 +399,4 @@ end gem "openproject-octicons", "~>19.18.0" gem "openproject-octicons_helper", "~>19.18.0" -gem "openproject-primer_view_components", "~>0.43.1" +gem "openproject-primer_view_components", "~>0.47.0" diff --git a/Gemfile.lock b/Gemfile.lock index 52fe7ca18b01..67827b4a54cc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,10 +8,10 @@ GIT GIT remote: https://github.com/opf/md-to-pdf - revision: 32603f09a249999a00e8ca23eb17215b46a26c0f - ref: 32603f09a249999a00e8ca23eb17215b46a26c0f + revision: fe05b4f8bae8fd46f4fa93b8e0adee6295ef7388 + ref: fe05b4f8bae8fd46f4fa93b8e0adee6295ef7388 specs: - md_to_pdf (0.1.1) + md_to_pdf (0.1.2) color_conversion (~> 0.1) front_matter_parser (~> 1.0) json-schema (~> 4.3) @@ -338,27 +338,27 @@ GEM attr_required (1.0.2) auto_strip_attributes (2.6.0) activerecord (>= 4.0) - awesome_nested_set (3.6.0) - activerecord (>= 4.0.0, < 7.2) + awesome_nested_set (3.7.0) + activerecord (>= 4.0.0, < 8.0) awrence (1.2.1) aws-eventstream (1.3.0) - aws-partitions (1.968.0) - aws-sdk-core (3.202.0) + aws-partitions (1.977.0) + aws-sdk-core (3.208.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.9) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.88.0) - aws-sdk-core (~> 3, >= 3.201.0) + aws-sdk-kms (1.91.0) + aws-sdk-core (~> 3, >= 3.205.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.159.0) - aws-sdk-core (~> 3, >= 3.201.0) + aws-sdk-s3 (1.163.0) + aws-sdk-core (~> 3, >= 3.205.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) aws-sdk-sns (1.82.0) aws-sdk-core (~> 3, >= 3.201.0) aws-sigv4 (~> 1.5) - aws-sigv4 (1.9.1) + aws-sigv4 (1.10.0) aws-eventstream (~> 1, >= 1.0.2) axe-core-api (4.10.0) dumb_delegator @@ -384,7 +384,7 @@ GEM bindata (2.5.0) bootsnap (1.18.4) msgpack (~> 1.2) - brakeman (6.1.2) + brakeman (6.2.1) racc browser (6.0.0) builder (3.3.0) @@ -462,9 +462,9 @@ GEM representable (>= 3.1.1, < 4) doorkeeper (5.7.1) railties (>= 5) - dotenv (3.1.2) - dotenv-rails (3.1.2) - dotenv (= 3.1.2) + dotenv (3.1.4) + dotenv-rails (3.1.4) + dotenv (= 3.1.4) railties (>= 6.1) drb (2.2.1) dry-auto_inject (1.0.1) @@ -540,7 +540,7 @@ GEM eventmachine (1.2.7) eventmachine_httpserver (0.2.1) excon (0.111.0) - factory_bot (6.4.6) + factory_bot (6.5.0) activesupport (>= 5.0.0) factory_bot_rails (6.4.3) factory_bot (~> 6.4) @@ -560,7 +560,8 @@ GEM websocket-driver (~> 0.7) ffi (1.17.0) flamegraph (0.9.5) - fog-aws (3.24.0) + fog-aws (3.27.0) + base64 (~> 0.2.0) fog-core (~> 2.1) fog-json (~> 1.1) fog-xml (~> 0.1) @@ -633,7 +634,7 @@ GEM hashdiff (1.1.1) hashery (2.1.2) hashie (3.6.0) - highline (3.1.0) + highline (3.1.1) reline html-pipeline (2.14.3) activesupport (>= 2) @@ -646,7 +647,7 @@ GEM httpclient (2.8.3) httpx (1.3.1) http-2 (>= 1.0.0) - i18n (1.14.5) + i18n (1.14.6) concurrent-ruby (~> 1.0) i18n-js (4.2.3) glob (>= 0.4.0) @@ -661,8 +662,9 @@ GEM rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) - icalendar (2.10.2) + icalendar (2.10.3) ice_cube (~> 0.16) + ostruct ice_cube (0.17.0) ice_nine (0.11.2) interception (0.5) @@ -698,7 +700,7 @@ GEM launchy (3.0.1) addressable (~> 2.8) childprocess (~> 5.0) - lefthook (1.7.14) + lefthook (1.7.16) letter_opener (1.10.0) launchy (>= 2.2, < 4) letter_opener_web (3.0.0) @@ -713,7 +715,7 @@ GEM omniauth (~> 1.1) omniauth-openid-connect (>= 0.2.1) rails (>= 3.2.21) - logger (1.6.0) + logger (1.6.1) lograge (0.14.0) actionpack (>= 4) activesupport (>= 4) @@ -748,7 +750,7 @@ GEM method_source (1.1.0) mime-types (3.5.2) mime-types-data (~> 3.2015) - mime-types-data (3.2024.0806) + mime-types-data (3.2024.0903) mini_magick (5.0.1) mini_mime (1.1.5) mini_portile2 (2.8.7) @@ -776,7 +778,7 @@ GEM nokogiri (1.16.7) mini_portile2 (~> 2.8.2) racc (~> 1.4) - oj (3.16.5) + oj (3.16.6) bigdecimal (>= 3.0) ostruct (>= 0.2) okcomputer (1.18.5) @@ -802,7 +804,7 @@ GEM actionview openproject-octicons (= 19.18.0) railties - openproject-primer_view_components (0.43.1) + openproject-primer_view_components (0.47.0) actionview (>= 5.0.0) activesupport (>= 5.0.0) openproject-octicons (>= 19.17.0) @@ -820,9 +822,9 @@ GEM activerecord (>= 6.1) request_store (~> 1.4) parallel (1.26.3) - parallel_tests (4.7.1) + parallel_tests (4.7.2) parallel - parser (3.3.4.2) + parser (3.3.5.0) ast (~> 2.4.1) racc pdf-core (0.9.0) @@ -834,7 +836,7 @@ GEM hashery (~> 2.0) ruby-rc4 ttfunk - pg (1.5.7) + pg (1.5.8) plaintext (0.3.4) activesupport (> 2.2.1) nokogiri (~> 1.10, >= 1.10.4) @@ -944,7 +946,7 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rb_sys (0.9.100) + rb_sys (0.9.102) rbtrace (0.5.1) ffi (>= 1.0.6) msgpack (>= 0.4.3) @@ -959,7 +961,7 @@ GEM redis-client (0.22.2) connection_pool regexp_parser (2.9.2) - reline (0.5.9) + reline (0.5.10) io-console (~> 0.5) representable (3.2.0) declarative (< 0.1.0) @@ -971,8 +973,7 @@ GEM actionpack (>= 5.2) railties (>= 5.2) retriable (3.1.2) - rexml (3.3.6) - strscan + rexml (3.3.7) rinku (2.0.6) roar (1.2.0) representable (~> 3.1) @@ -982,18 +983,18 @@ GEM rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) rspec-mocks (~> 3.13.0) - rspec-core (3.13.0) + rspec-core (3.13.1) rspec-support (~> 3.13.0) - rspec-expectations (3.13.1) + rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-mocks (3.13.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-rails (6.1.4) - actionpack (>= 6.1) - activesupport (>= 6.1) - railties (>= 6.1) + rspec-rails (7.0.1) + actionpack (>= 7.0) + activesupport (>= 7.0) + railties (>= 7.0) rspec-core (~> 3.13) rspec-expectations (~> 3.13) rspec-mocks (~> 3.13) @@ -1001,18 +1002,19 @@ GEM rspec-retry (0.6.2) rspec-core (> 3.3) rspec-support (3.13.1) - rubocop (1.65.1) + rspec-wait (1.0.1) + rspec (>= 3.4) + rubocop (1.66.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.4, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.31.1, < 2.0) + rubocop-ast (>= 1.32.2, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.32.1) + rubocop-ast (1.32.3) parser (>= 3.3.1.0) rubocop-capybara (2.21.0) rubocop (~> 1.41) @@ -1020,15 +1022,15 @@ GEM rubocop (~> 1.61) rubocop-openproject (0.1.0) rubocop - rubocop-performance (1.21.1) + rubocop-performance (1.22.0) rubocop (>= 1.48.1, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rails (2.26.0) + rubocop-rails (2.26.1) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.52.0, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rspec (3.0.4) + rubocop-rspec (3.0.5) rubocop (~> 1.61) rubocop-rspec_rails (2.30.0) rubocop (~> 1.61) @@ -1054,9 +1056,9 @@ GEM crass (~> 1.0.2) nokogiri (>= 1.12.0) secure_headers (6.5.0) - selenium-devtools (0.127.0) + selenium-devtools (0.129.0) selenium-webdriver (~> 4.2) - selenium-webdriver (4.23.0) + selenium-webdriver (4.25.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -1081,7 +1083,7 @@ GEM spring (>= 0.9.1) spring-commands-rubocop (0.4.0) spring (>= 1.0) - sprockets (3.7.3) + sprockets (3.7.4) base64 concurrent-ruby (~> 1.0) rack (> 1, < 3) @@ -1091,11 +1093,10 @@ GEM sprockets (>= 3.0.0) ssrf_filter (1.0.8) stackprof (0.2.26) - store_attribute (1.2.0) - activerecord (>= 6.0) + store_attribute (1.3.1) + activerecord (>= 6.1) stringex (2.8.6) stringio (3.1.1) - strscan (3.1.0) structured_warnings (0.4.0) svg-graph (2.2.2) swd (2.0.3) @@ -1108,9 +1109,9 @@ GEM table_print (1.5.7) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - test-prof (1.4.1) + test-prof (1.4.2) text-hyphen (1.5.0) - thor (1.3.1) + thor (1.3.2) thread_safe (0.3.6) timecop (0.9.10) timeout (0.4.1) @@ -1120,9 +1121,8 @@ GEM openssl-signature_algorithm (~> 1.0) trailblazer-option (0.1.2) ttfunk (1.7.0) - turbo-rails (2.0.6) + turbo-rails (2.0.10) actionpack (>= 6.0.0) - activejob (>= 6.0.0) railties (>= 6.0.0) turbo_power (0.6.2) turbo-rails (>= 1.3.0) @@ -1130,11 +1130,11 @@ GEM rails (>= 5.0.4) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2024.1) + tzinfo-data (1.2024.2) tzinfo (>= 1.0.0) uber (0.1.0) - unicode-display_width (2.5.0) - uri (0.13.0) + unicode-display_width (2.6.0) + uri (0.13.1) validate_email (0.1.6) activemodel (>= 3.0) mail (>= 2.2.5) @@ -1172,7 +1172,7 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.8.1) + webrick (1.8.2) websocket (1.2.11) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) @@ -1183,8 +1183,8 @@ GEM zeitwerk (>= 2.6) xpath (3.2.0) nokogiri (~> 1.8) - yard (0.9.36) - zeitwerk (2.6.17) + yard (0.9.37) + zeitwerk (2.6.18) PLATFORMS ruby @@ -1201,13 +1201,13 @@ DEPENDENCIES airbrake (~> 13.0.0) appsignal (~> 3.10.0) auto_strip_attributes (~> 2.5) - awesome_nested_set (~> 3.6.0) + awesome_nested_set (~> 3.7.0) aws-sdk-core (~> 3.107) aws-sdk-s3 (~> 1.91) axe-core-rspec bcrypt (~> 3.1.6) bootsnap (~> 1.18.0) - brakeman (~> 6.1.0) + brakeman (~> 6.2.0) browser (~> 6.0.0) budgets! capybara (~> 3.40.0) @@ -1241,7 +1241,7 @@ DEPENDENCIES erb_lint erblint-github escape_utils (~> 1.3) - factory_bot (~> 6.4.0) + factory_bot (~> 6.5.0) factory_bot_rails (~> 6.4.0) ffi (~> 1.15) flamegraph @@ -1303,7 +1303,7 @@ DEPENDENCIES openproject-octicons (~> 19.18.0) openproject-octicons_helper (~> 19.18.0) openproject-openid_connect! - openproject-primer_view_components (~> 0.43.1) + openproject-primer_view_components (~> 0.47.0) openproject-recaptcha! openproject-reporting! openproject-storages! @@ -1347,8 +1347,9 @@ DEPENDENCIES roar (~> 1.2.0) rouge (~> 4.3.0) rspec (~> 3.13.0) - rspec-rails (~> 6.1.0) + rspec-rails (~> 7.0.0) rspec-retry (~> 0.6.1) + rspec-wait rubocop rubocop-capybara rubocop-factory_bot diff --git a/app/components/_index.sass b/app/components/_index.sass index bf0cfde03645..d20f0a29e398 100644 --- a/app/components/_index.sass +++ b/app/components/_index.sass @@ -8,3 +8,4 @@ @import "filter/filters_component" @import "projects/row_component" @import "op_primer/border_box_table_component" +@import "work_packages/exports/modal_dialog_component" diff --git a/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_form_component.html.erb b/app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_form_modal_component.html.erb similarity index 84% rename from app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_form_component.html.erb rename to app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_form_modal_component.html.erb index 9cfde7303893..a7596230ea1c 100644 --- a/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_form_component.html.erb +++ b/app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_form_modal_component.html.erb @@ -30,20 +30,20 @@ See COPYRIGHT and LICENSE files for more details. <%= component_wrapper do primer_form_with( - class: "op-new-project-mapping-form", - model: @project_mapping, - url: link_admin_settings_project_custom_field_path(@project_custom_field), + model: , + url:, data: { turbo: true }, method: :post ) do |form| concat(render(Primer::Alpha::Dialog::Body.new( - id: DIALOG_BODY_ID, test_selector: DIALOG_BODY_ID, aria: { label: title }, + id: dialog_body_id, test_selector: dialog_body_id, aria: { label: title }, style: "min-height: 300px" )) do - render(Projects::CustomFields::CustomFieldMappingForm.new(form, project_mapping: @project_mapping)) + render(Projects::CustomFields::CustomFieldMappingForm.new(form, project_mapping: @custom_field_project_mapping)) end) + concat(render(Primer::Alpha::Dialog::Footer.new(show_divider: false)) do - concat(render(Primer::ButtonComponent.new(data: { 'close-dialog-id': DIALOG_ID })) { cancel_button_text }) + concat(render(Primer::ButtonComponent.new(data: { 'close-dialog-id': dialog_id })) { cancel_button_text }) concat(render(Primer::ButtonComponent.new(scheme: :primary, type: :submit)) { submit_button_text }) end) end diff --git a/app/contracts/oauth/application_contract.rb b/app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_form_modal_component.rb similarity index 54% rename from app/contracts/oauth/application_contract.rb rename to app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_form_modal_component.rb index 46caf0890f8c..647e2fec7ac5 100644 --- a/app/contracts/oauth/application_contract.rb +++ b/app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_form_modal_component.rb @@ -26,39 +26,44 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module OAuth - class ApplicationContract < ::ModelContract - def self.model - ::Doorkeeper::Application - end +module Admin + module CustomFields + module CustomFieldProjects + class NewCustomFieldProjectsFormModalComponent < ApplicationComponent + include OpTurbo::Streamable - validate :validate_client_credential_user - validate :validate_integration + DIALOG_ID = "new-custom-field-projects-modal".freeze + DIALOG_BODY_ID = "new-custom-field-projects-modal-body".freeze - attribute :name - attribute :redirect_uri - attribute :confidential - attribute :owner_id - attribute :owner_type - attribute :scopes - attribute :client_credentials_user_id - attribute :integration_id - attribute :integration_type + def initialize(custom_field_project_mapping:, custom_field:, **) + @custom_field_project_mapping = custom_field_project_mapping + @custom_field = custom_field - private + super(@custom_field_project_mapping, **) + end - def validate_integration - if (model.integration_id.nil? && model.integration_type.present?) || - (model.integration_id.present? && model.integration_type.nil?) - errors.add :integration, :invalid - end - end + private + + def url + url_helpers.custom_field_projects_path(@custom_field) + end + + def dialog_id = DIALOG_ID + def dialog_body_id = DIALOG_BODY_ID + + attr_reader :custom_field_project_mapping, :custom_field + + def title + I18n.t(:label_add_projects) + end - def validate_client_credential_user - return if model.client_credentials_user_id.blank? + def cancel_button_text + I18n.t("button_cancel") + end - unless User.exists?(id: model.client_credentials_user_id) - errors.add :client_credentials_user_id, :invalid + def submit_button_text + I18n.t("button_add") + end end end end diff --git a/app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_modal_component.html.erb b/app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_modal_component.html.erb new file mode 100644 index 000000000000..346ef80311d3 --- /dev/null +++ b/app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_modal_component.html.erb @@ -0,0 +1,18 @@ +<%= + render( + Primer::Alpha::Dialog.new( + id: dialog_id, + title:, + test_selector: dialog_id, + size: :large + ) + ) do |dialog| + dialog.with_header( + show_divider: false, + visually_hide_title: false, + variant: :large + ) + + render(form_modal_component) + end +%> diff --git a/app/services/oauth/persist_application_service.rb b/app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_modal_component.rb similarity index 55% rename from app/services/oauth/persist_application_service.rb rename to app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_modal_component.rb index a33abd8eab60..e264b251323e 100644 --- a/app/services/oauth/persist_application_service.rb +++ b/app/components/admin/custom_fields/custom_field_projects/new_custom_field_projects_modal_component.rb @@ -26,40 +26,38 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module OAuth - class PersistApplicationService - include Contracted +module Admin + module CustomFields + module CustomFieldProjects + class NewCustomFieldProjectsModalComponent < ApplicationComponent + include OpTurbo::Streamable - attr_reader :application, :current_user + def initialize(custom_field_project_mapping:, custom_field:, **) + @custom_field_project_mapping = custom_field_project_mapping + @custom_field = custom_field + super(@custom_field_project_mapping, **) + end - def initialize(model, user:) - @application = model - @current_user = user + def render? + !custom_field.is_for_all? + end - self.contract_class = OAuth::ApplicationContract - end - - def call(attributes) - set_defaults - application.attributes = attributes - set_secret_and_id + private - result, errors = validate_and_save(application, current_user) - ServiceResult.new success: result, errors:, result: application - end + attr_reader :custom_field_project_mapping, :custom_field - def set_defaults - return if application.owner_id + def dialog_id = NewCustomFieldProjectsFormModalComponent::DIALOG_ID + def dialog_body_id = NewCustomFieldProjectsFormModalComponent::DIALOG_BODY_ID - application.owner = current_user - application.owner_type = "User" - end + def title + I18n.t(:label_add_projects) + end - def set_secret_and_id - application.extend(OpenProject::ChangedBySystem) - application.change_by_system do - application.renew_secret if application.secret.blank? - application.uid = Doorkeeper::OAuth::Helpers::UniqueToken.generate if application.uid.blank? + def form_modal_component + Admin::CustomFields::CustomFieldProjects::NewCustomFieldProjectsFormModalComponent.new( + custom_field_project_mapping:, custom_field: + ) + end end end end diff --git a/app/components/settings/project_custom_fields/project_custom_field_mapping/row_component.html.erb b/app/components/admin/custom_fields/custom_field_projects/row_component.html.erb similarity index 100% rename from app/components/settings/project_custom_fields/project_custom_field_mapping/row_component.html.erb rename to app/components/admin/custom_fields/custom_field_projects/row_component.html.erb diff --git a/app/components/admin/custom_fields/custom_field_projects/row_component.rb b/app/components/admin/custom_fields/custom_field_projects/row_component.rb new file mode 100644 index 000000000000..51ce950bbac0 --- /dev/null +++ b/app/components/admin/custom_fields/custom_field_projects/row_component.rb @@ -0,0 +1,68 @@ +#-- 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 Admin + module CustomFields + module CustomFieldProjects + class RowComponent < Projects::RowComponent + include OpTurbo::Streamable + + def wrapper_uniq_by + "project-#{project.id}" + end + + def more_menu_items + @more_menu_items ||= [more_menu_detach_project].compact + end + + private + + def more_menu_detach_project + if User.current.allowed_in_project?(:select_custom_fields, project) + { + scheme: :default, + icon: nil, + label: I18n.t("projects.settings.project_custom_fields.actions.remove_from_project"), + href: detach_from_project_url, + data: { turbo_method: :delete } + } + end + end + + def detach_from_project_url + url_helpers.custom_field_project_path( + custom_field_id: @table.params[:custom_field].id, + custom_fields_project: { project_id: project.id } + ) + end + + def project = model.first + end + end + end +end diff --git a/app/components/oauth/applications/table_component.rb b/app/components/admin/custom_fields/custom_field_projects/table_component.rb similarity index 50% rename from app/components/oauth/applications/table_component.rb rename to app/components/admin/custom_fields/custom_field_projects/table_component.rb index 267f82c23ff2..9ef7650dab1a 100644 --- a/app/components/oauth/applications/table_component.rb +++ b/app/components/admin/custom_fields/custom_field_projects/table_component.rb @@ -1,5 +1,3 @@ -# frozen_string_literal: true - #-- copyright # OpenProject is an open source project management software. # Copyright (C) the OpenProject GmbH @@ -28,48 +26,36 @@ # See COPYRIGHT and LICENSE files for more details. #++ -module OAuth - module Applications - class TableComponent < ::TableComponent - class << self - def row_class - ::OAuth::Applications::RowComponent - end - end - - def initial_sort - %i[id asc] - end - - def sortable? - false - end +module Admin + module CustomFields + module CustomFieldProjects + class TableComponent < Projects::TableComponent + include OpTurbo::Streamable - def columns - headers.map(&:first) - end - - def inline_create_link - link_to new_oauth_application_path, - aria: { label: t("oauth.application.new") }, - class: "wp-inline-create--add-link", - title: t("oauth.application.new") do - helpers.op_icon("icon icon-add") + def columns + @columns ||= query.selects.reject { |select| select.is_a?(Queries::Selects::NotExistingSelect) } end - end - def empty_row_message - I18n.t :no_results_title_text - end + def sortable? + false + end - def headers - [ - ["name", { caption: ::Doorkeeper::Application.human_attribute_name(:name) }], - ["owner", { caption: ::Doorkeeper::Application.human_attribute_name(:owner) }], - ["client_credentials", { caption: I18n.t("oauth.client_credentials") }], - ["redirect_uri", { caption: ::Doorkeeper::Application.human_attribute_name(:redirect_uri) }], - ["confidential", { caption: ::Doorkeeper::Application.human_attribute_name(:confidential) }] - ] + # @override optional_pagination_options are passed to the pagination_options + # which are passed to #pagination_links_full in pagination_helper.rb + # + # In Turbo streamable components, we need to be able to specify the url_for(action:) so that links are + # generated in the context of the component index action, instead of any turbo stream actions performing + # partial updates on the page. + # + # params[:url_for_action] is passed to the pagination_options making it's way down to any pagination links + # that are generated via link_to which calls url_for which uses the params[:url_for_action] to specify + # the controller action that link_to should use. + # + def optional_pagination_options + return super unless params[:url_for_action] + + super.merge(params: { action: params[:url_for_action] }) + end end end end diff --git a/app/components/admin/custom_fields/edit_form_header_component.html.erb b/app/components/admin/custom_fields/edit_form_header_component.html.erb new file mode 100644 index 000000000000..140535ca0d47 --- /dev/null +++ b/app/components/admin/custom_fields/edit_form_header_component.html.erb @@ -0,0 +1,52 @@ +<%#-- 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::OpenProject::PageHeader.new(test_selector: "custom-fields--page-header")) do |header| + header.with_title { @custom_field.name } + + header.with_breadcrumbs(breadcrumbs_items) + + header.with_tab_nav(label: nil, test_selector: :custom_field_detail_header) do |tab_nav| + tab_nav.with_tab( + selected: tab_selected?(:edit), + href: edit_custom_field_path(@custom_field) + ) do |tab| + tab.with_text { t(:label_details) } + end + + tab_nav.with_tab( + selected: tab_selected?(:custom_field_projects), + href: custom_field_projects_path(@custom_field) + ) do |tab| + tab.with_text { t(:label_project_plural) } + end + end + end +%> diff --git a/app/components/admin/custom_fields/edit_form_header_component.rb b/app/components/admin/custom_fields/edit_form_header_component.rb new file mode 100644 index 000000000000..c64d79dc8c5c --- /dev/null +++ b/app/components/admin/custom_fields/edit_form_header_component.rb @@ -0,0 +1,57 @@ +#-- 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 Admin + module CustomFields + class EditFormHeaderComponent < ApplicationComponent + TAB_NAVS = %i[ + edit + custom_field_projects + ].freeze + + def initialize(custom_field:, selected:, **) + @custom_field = custom_field + @selected = selected + super(custom_field, **) + end + + def tab_selected?(tab_name) + TAB_NAVS.include?(tab_name) && tab_name == @selected + end + + private + + def breadcrumbs_items + [{ href: admin_index_path, text: t(:label_administration) }, + { href: custom_fields_path, text: t(:label_custom_field_plural) }, + { href: custom_fields_path(tab: @custom_field.type), text: I18n.t(@custom_field.type_name) }, + @custom_field.name] + end + end + end +end diff --git a/app/components/admin/design_header_component.html.erb b/app/components/admin/design_header_component.html.erb new file mode 100644 index 000000000000..7f2a4ba6c52b --- /dev/null +++ b/app/components/admin/design_header_component.html.erb @@ -0,0 +1,48 @@ +<%#-- 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. + +++#%> + +<% helpers.html_title t(:label_administration), t(:label_custom_style), selected_tab(@tabs)[:label] %> +<%= + render(Primer::OpenProject::PageHeader.new) do |header| + header.with_title { t(:label_custom_style) } + header.with_breadcrumbs([{ href: admin_index_path, text: t(:label_administration) }, + t(:label_custom_style)]) + header.with_description { t(:label_custom_style_description) } + + if @tabs.present? + header.with_tab_nav(label: nil) do |tab_nav| + @tabs.each do |tab| + tab_nav.with_tab(selected: selected_tab(@tabs) == tab, href: tab[:path]) do |t| + t.with_text { tab[:label] } + end + end + end + end + end +%> diff --git a/app/components/admin/design_header_component.rb b/app/components/admin/design_header_component.rb new file mode 100644 index 000000000000..169560b9b5d6 --- /dev/null +++ b/app/components/admin/design_header_component.rb @@ -0,0 +1,42 @@ +# 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 Admin + class DesignHeaderComponent < ApplicationComponent + include OpPrimer::ComponentHelpers + include ApplicationHelper + include TabsHelper + + def initialize(tabs: []) + super + @tabs = tabs + end + end +end diff --git a/app/components/my/access_token/access_token_created_dialog_component.html.erb b/app/components/my/access_token/access_token_created_dialog_component.html.erb index bdc7c01fa5d0..cd773f77eda9 100644 --- a/app/components/my/access_token/access_token_created_dialog_component.html.erb +++ b/app/components/my/access_token/access_token_created_dialog_component.html.erb @@ -28,23 +28,17 @@ See COPYRIGHT and LICENSE files for more details. ++#%> <%= - render(Primer::Alpha::Dialog.new( + render(Primer::OpenProject::FeedbackDialog.new( id:, title: nil, size: :large )) do |dialog| - dialog.with_body do + dialog.with_feedback_message do |message| + message.with_heading(tag: :h2) { I18n.t("my.access_token.create_dialog.header", type: "API") } + end + + dialog.with_additional_content do flex_layout do |flex| - flex.with_row(mb: 3) do - render(Primer::Beta::Heading.new(tag: :h1, text_align: :center)) do - render(Primer::Beta::Octicon.new(icon: :"check-circle", color: :success, size: :medium)) - end - end - flex.with_row(mb: 1) do - render(Primer::Beta::Heading.new(tag: :h2, color: :default, text_align: :center)) do - I18n.t("my.access_token.create_dialog.header", type: "API") - end - end flex.with_row(mb: 2) do render(Primer::OpenProject::InputGroup.new) do |input_group| input_group.with_text_input(name: :openproject_api_access_token, @@ -65,12 +59,5 @@ See COPYRIGHT and LICENSE files for more details. end end end - dialog.with_footer do - component_collection do |footer| - footer.with_component(Primer::ButtonComponent.new(data: { 'close-dialog-id': id })) do - I18n.t("button_close") - end - end - end end %> diff --git a/app/components/oauth/applications/application_row_component.html.erb b/app/components/oauth/applications/application_row_component.html.erb new file mode 100644 index 000000000000..0a7e9787336a --- /dev/null +++ b/app/components/oauth/applications/application_row_component.html.erb @@ -0,0 +1,43 @@ +<%= + component_wrapper(data: { 'test-selector': "op-admin-oauth--application" }) do + flex_layout(align_items: :center, justify_content: :space_between) do |oauth_application_container| + oauth_application_container.with_column(flex_layout: true) do |application_information| + application_information.with_column(mr: 2) do + render(Primer::Beta::Link.new(href: oauth_application_path(@application), font_weight: :bold)) do + @application.name + end + end + + application_information.with_column(mr: 2) do + render(Primer::Beta::Text.new(font_size: :small, color: :subtle)) do + if @application.builtin? + t("oauth.application.builtin") + else + t(:label_created_by, user: @application.owner) + end + end + end + + unless @application.builtin? + application_information.with_column do + render(Primer::Beta::Label.new) do + @application.confidential? ? t("oauth.application.confidential") : t("oauth.application.non_confidential") + end + end + end + end + + # Actions + oauth_application_container.with_column do + render(Primer::Alpha::ToggleSwitch.new( + src: toggle_oauth_application_path(@application), + csrf_token: form_authenticity_token, + checked: @application.enabled?, + data: { + 'test-selector': "op-admin-oauth--application-enabled-toggle-switch" + } + )) + end + end + end +%> diff --git a/app/components/oauth/applications/application_row_component.rb b/app/components/oauth/applications/application_row_component.rb new file mode 100644 index 000000000000..8ee4387de717 --- /dev/null +++ b/app/components/oauth/applications/application_row_component.rb @@ -0,0 +1,43 @@ +#-- 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 OAuth + module Applications + class ApplicationRowComponent < ApplicationComponent + include ApplicationHelper + include OpPrimer::ComponentHelpers + include OpTurbo::Streamable + + def initialize(application:) + @application = application + + super + end + end + end +end diff --git a/app/components/oauth/applications/index_component.html.erb b/app/components/oauth/applications/index_component.html.erb new file mode 100644 index 000000000000..e5f0d0b4beed --- /dev/null +++ b/app/components/oauth/applications/index_component.html.erb @@ -0,0 +1,55 @@ +<%= + component_wrapper do + flex_layout do |index_container| + if OpenProject::FeatureDecisions.built_in_oauth_applications_active? + index_container.with_row do + render(border_box_container(mb: 4, data: { + 'test-selector': "op-admin-oauth--built-in-applications" + })) do |component| + component.with_header(font_weight: :bold) do + render(Primer::Beta::Text.new) do + t("oauth.header.builtin_applications") + end + end + + if @built_in_applications.empty? + component.with_row do + render(Primer::Beta::Text.new(data: { + 'test-selector': "op-admin-oauth--built-in-applications-placeholder" + })) do + t("oauth.empty_application_lists") + end + end + end + + @built_in_applications.each do |application| + component.with_row { render(OAuth::Applications::ApplicationRowComponent.new(application:)) } + end + end + end + end + + index_container.with_row do + render(border_box_container(mb: 4)) do |component| + component.with_header(font_weight: :bold) do + render(Primer::Beta::Text.new) do + t("oauth.header.other_applications") + end + end + + if @other_applications.empty? + component.with_row do + render(Primer::Beta::Text.new(data: { 'test-selector': "op-admin-oauth--applications-placeholder" })) do + t("oauth.empty_application_lists") + end + end + end + + @other_applications.each do |application| + component.with_row { render(OAuth::Applications::ApplicationRowComponent.new(application:)) } + end + end + end + end + end +%> diff --git a/app/components/oauth/applications/index_component.rb b/app/components/oauth/applications/index_component.rb new file mode 100644 index 000000000000..81027eea51f3 --- /dev/null +++ b/app/components/oauth/applications/index_component.rb @@ -0,0 +1,44 @@ +#-- 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 OAuth + module Applications + class IndexComponent < ApplicationComponent + include ApplicationHelper + include OpPrimer::ComponentHelpers + include OpTurbo::Streamable + + def initialize(oauth_applications:) + @built_in_applications = oauth_applications.select(&:builtin?) + @other_applications = oauth_applications.reject(&:builtin?) + + super + end + end + end +end diff --git a/app/components/oauth/show_page_header_component.html.erb b/app/components/oauth/show_page_header_component.html.erb index d340f870abcb..8bb3d06627e8 100644 --- a/app/components/oauth/show_page_header_component.html.erb +++ b/app/components/oauth/show_page_header_component.html.erb @@ -32,31 +32,33 @@ See COPYRIGHT and LICENSE files for more details. header.with_title { h(@application.name) } header.with_breadcrumbs(breadcrumb_items) - header.with_action_button(tag: :a, - mobile_icon: :pencil, - mobile_label: t(:button_edit), - size: :medium, - href: edit_oauth_application_path(@application), - aria: { label: I18n.t(:button_edit) }, - title: I18n.t(:button_edit)) do |button| - button.with_leading_visual_icon(icon: :pencil) - t(:button_edit) - end + unless @application.builtin? + header.with_action_button(tag: :a, + mobile_icon: :pencil, + mobile_label: t(:button_edit), + size: :medium, + href: edit_oauth_application_path(@application), + aria: { label: I18n.t(:button_edit) }, + title: I18n.t(:button_edit)) do |button| + button.with_leading_visual_icon(icon: :pencil) + t(:button_edit) + end - header.with_action_button(tag: :a, - scheme: :danger, - mobile_icon: :trash, - mobile_label: t(:button_delete), - size: :medium, - href: oauth_application_path(@application), - aria: { label: I18n.t(:button_delete) }, - data: { - confirm: I18n.t(:text_are_you_sure), - method: :delete - }, - title: I18n.t(:button_delete)) do |button| - button.with_leading_visual_icon(icon: :trash) - t(:button_delete) + header.with_action_button(tag: :a, + scheme: :danger, + mobile_icon: :trash, + mobile_label: t(:button_delete), + size: :medium, + href: oauth_application_path(@application), + aria: { label: I18n.t(:button_delete) }, + data: { + confirm: I18n.t(:text_are_you_sure), + method: :delete + }, + title: I18n.t(:button_delete)) do |button| + button.with_leading_visual_icon(icon: :trash) + t(:button_delete) + end end end %> diff --git a/app/components/op_primer/expandable_list_component.html.erb b/app/components/op_primer/expandable_list_component.html.erb index 87153c2d77af..0b4cdf1a6729 100644 --- a/app/components/op_primer/expandable_list_component.html.erb +++ b/app/components/op_primer/expandable_list_component.html.erb @@ -2,7 +2,7 @@ component_wrapper(data: wrapper_data_attributes) do if elements.count == 0 render(Primer::Beta::Text.new(color: :subtle)) { t("label_meeting_no_participants") } - elsif elements.count <= @cutoff_limit + elsif @cutoff_limit.nil? || elements.count <= @cutoff_limit flex_layout do |list| elements.each do |item| list.with_row(mt: 1) { item.to_s } @@ -13,26 +13,26 @@ elements.take(@cutoff_limit).each do |item| list.with_row(mt: 1) { item.to_s } end - - list.with_row do - flex_layout do |flex| - flex.with_row(display: :none, data: { 'expandable-list-target': "hiddenElements" }) do - flex_layout do |hidden_user_list| - elements[@cutoff_limit..].each do |item| - hidden_user_list.with_row(mt: 1) { item.to_s } - end - end + list.with_row(display: :none, data: { "expandable-list-target": "hiddenElements" }) do + flex_layout do |hidden_user_list| + elements[@cutoff_limit..].each do |item| + hidden_user_list.with_row(mt: 1) { item.to_s } end - flex.with_row(mt: 1) do + hidden_user_list.with_row(mt: 2) do render(Primer::Beta::Button.new( - scheme: :link, - data: { 'expandable-list-target': "showHideButton", - action: 'click->expandable-list#showhiddenElements keydown.enter->expandable-list#showhiddenElements' - } - )) { I18n.t('label_show_hide_n_items', count: elements.count - @cutoff_limit) } + scheme: :link, + data: { action: "expandable-list#hideElements" } + )) { I18n.t("label_show_less") } end end end + list.with_row(mt: 2) do + render(Primer::Beta::Button.new( + scheme: :link, + data: { "expandable-list-target": "showButton", + action: "expandable-list#showElements" } + )) { I18n.t("label_show_more") } + end end end end diff --git a/modules/meeting/app/components/banner_message_component.html.erb b/app/components/op_primer/flash_component.erb similarity index 74% rename from modules/meeting/app/components/banner_message_component.html.erb rename to app/components/op_primer/flash_component.erb index 8df5a04db493..4682dfebf999 100644 --- a/modules/meeting/app/components/banner_message_component.html.erb +++ b/app/components/op_primer/flash_component.erb @@ -28,12 +28,11 @@ See COPYRIGHT and LICENSE files for more details. ++#%> <%= - render(Primer::Alpha::Banner.new(full:, - full_when_narrow:, - dismiss_scheme:, - dismiss_label:, - icon:, - scheme:, - test_selector:, - )) { message.html_safe } + render(Primer::BaseComponent.new( + tag: :div, + classes: "op-primer-flash--item", + data: { unique_key: @unique_key }.compact + )) do + render_parent + end %> diff --git a/app/components/op_primer/flash_component.rb b/app/components/op_primer/flash_component.rb new file mode 100644 index 000000000000..2c50edc45acb --- /dev/null +++ b/app/components/op_primer/flash_component.rb @@ -0,0 +1,45 @@ +#-- 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 + class FlashComponent < Primer::Alpha::Banner + include ApplicationHelper + include OpTurbo::Streamable + include OpPrimer::ComponentHelpers + + def initialize(**system_arguments) + @unique_key = system_arguments.delete(:unique_key) + + system_arguments[:test_selector] ||= "primer-banner-message-component" + system_arguments[:dismiss_scheme] ||= :remove + system_arguments[:dismiss_label] ||= I18n.t(:button_close) + + super + end + end +end diff --git a/app/components/op_primer/form_helpers.rb b/app/components/op_primer/form_helpers.rb new file mode 100644 index 000000000000..fb742d2a5d4a --- /dev/null +++ b/app/components/op_primer/form_helpers.rb @@ -0,0 +1,97 @@ +# 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 FormHelpers + # Renders an inline form without needing a dedicated form class. + # + # This method dynamically creates a form class based on the provided block + # and renders it. The form is instantiated with the provided form builder + # which comes from a `primer_form_with` call. + # + # It is meant to avoid boilerplate classes for simple forms. + # + # @example + # primer_form_with(action: :update) do |form_builder| + # render_inline_form(form_builder) do |form| + # form.text_field( + # name: :ultimate_answer, + # label: "Ultimate answer", + # required: true, + # caption: "The answer to life, the universe, and everything" + # ) + # form.submit(name: :submit, label: "Submit") + # end + # end + # + # @param form_builder [Object] The form builder object to be used for the form. + # @param blk [Proc] A block that defines the form structure. + def render_inline_form(form_builder, &blk) + form_class = Class.new(ApplicationForm) do + form(&blk) + end + render(form_class.new(form_builder)) + end + + # Renders an inline settings form without needing a dedicated form class. + # + # This method dynamically creates a form class based on the provided block + # and renders it. The form is instantiated with the provided form builder + # which comes from a `primer_form_with` call, and decorated with the + # `settings_form` method. + # + # The settings form is providing helpers to render settings in a standard + # way by reading their value, rendering labels from their name, and checking + # if they are writable. + # + # It is meant to avoid boilerplate code. + # + # @example + # primer_form_with(action: :update) do |f| + # render_inline_settings_form(f) do |form| + # form.text_field(name: :attachment_max_size) + # form.radio_button_group( + # name: "work_package_done_ratio", + # values: WorkPackage::DONE_RATIO_OPTIONS + # ) + # form.submit + # end + # end + # + # @param form_builder [Object] The form builder object to be used for the form. + # @param blk [Proc] A block that defines the form structure. + def render_inline_settings_form(form_builder, &blk) + form_class = Class.new(ApplicationForm) do + settings_form(&blk) + end + render(form_class.new(form_builder)) + end + end +end diff --git a/app/components/open_project/common/divider_component.rb b/app/components/open_project/common/divider_component.rb index ef672e7ad151..841af321efe0 100644 --- a/app/components/open_project/common/divider_component.rb +++ b/app/components/open_project/common/divider_component.rb @@ -33,8 +33,8 @@ module Common class DividerComponent < Primer::BaseComponent def initialize(**system_arguments) system_arguments[:tag] = :hr - system_arguments[:mt] = system_arguments.fetch(:mt, 4) - system_arguments[:mb] = system_arguments.fetch(:mb, 4) + system_arguments[:mt] = system_arguments.fetch(:mt, 3) + system_arguments[:mb] = system_arguments.fetch(:mb, 3) super(**system_arguments) # rubocop:disable Style/SuperArguments end end diff --git a/app/components/projects/configure_view_modal_component.html.erb b/app/components/projects/configure_view_modal_component.html.erb index 691908997ac1..bc7b0a84c24e 100644 --- a/app/components/projects/configure_view_modal_component.html.erb +++ b/app/components/projects/configure_view_modal_component.html.erb @@ -14,7 +14,7 @@ method: :get ) do |form| %> <% helpers.projects_query_params.except(:columns, :sortBy).each do |name, value| %> - <%= hidden_field_tag name, value %> + <%= hidden_field_tag name, value, data: {"sort-by-config-target" => name} %> <% end %> <%= render(Primer::Alpha::TabPanels.new(label: "label")) do |tab_panel| %> <% tab_panel.with_tab(selected: true, id: "tab-selects--columns") do |tab| %> @@ -47,6 +47,9 @@ <% end %> <%= render(Primer::Alpha::Dialog::Footer.new) do %> <%= render(Primer::ButtonComponent.new(data: { "close-dialog-id": MODAL_ID })) { I18n.t(:button_cancel) } %> - <%= render(Primer::ButtonComponent.new(scheme: :primary, type: :submit, form: QUERY_FORM_ID)) { I18n.t(:button_apply) } %> + <%= render(Primer::ButtonComponent.new(scheme: :primary, + type: :submit, + data: { "test-selector": "#{MODAL_ID}-submit"}, + form: QUERY_FORM_ID)) { I18n.t(:button_apply) } %> <% end %> <% end %> diff --git a/app/components/projects/index_sub_header_component.html.erb b/app/components/projects/index_sub_header_component.html.erb index b0913bbc70d6..354a7e3b152a 100644 --- a/app/components/projects/index_sub_header_component.html.erb +++ b/app/components/projects/index_sub_header_component.html.erb @@ -8,8 +8,6 @@ icon: :search, size: :small }, - input_width: :medium, - show_clear_button: true, clear_button_id: clear_button_id, data: filter_input_data_attributes) diff --git a/app/components/projects/row_component.rb b/app/components/projects/row_component.rb index 961a9583d518..70adc2566d7d 100644 --- a/app/components/projects/row_component.rb +++ b/app/components/projects/row_component.rb @@ -30,6 +30,7 @@ module Projects class RowComponent < ::RowComponent delegate :favored_project_ids, to: :table + delegate :identifier, to: :project def project model.first @@ -53,7 +54,7 @@ def favored tag: :a, tooltip_direction: :e, href: helpers.build_favorite_path(project, format: :html), - data: { method: currently_favored? ? :delete : :post }, + data: { "turbo-method": currently_favored? ? :delete : :post }, classes: currently_favored? ? "op-primer--star-icon " : "op-project-row-component--favorite", label: currently_favored? ? I18n.t(:button_unfavorite) : I18n.t(:button_favorite), aria: { label: currently_favored? ? I18n.t(:button_unfavorite) : I18n.t(:button_favorite) }, @@ -107,6 +108,10 @@ def required_disk_space number_to_human_size(project.required_disk_space, precision: 2) end + def id + project.id.to_s + end + def name content = content_tag(:i, "", class: "projects-table--hierarchy-icon") @@ -254,7 +259,7 @@ def more_menu_favorite_item scheme: :default, icon: "star", href: helpers.build_favorite_path(project, format: :html), - data: { method: :post }, + data: { "turbo-method": :post }, label: I18n.t(:button_favorite), aria: { label: I18n.t(:button_favorite) } } @@ -268,7 +273,7 @@ def more_menu_unfavorite_item icon: "star-fill", size: :medium, href: helpers.build_favorite_path(project, format: :html), - data: { method: :delete }, + data: { "turbo-method": :delete }, classes: "op-primer--star-icon", label: I18n.t(:button_unfavorite), aria: { label: I18n.t(:button_unfavorite) } @@ -355,7 +360,8 @@ def more_menu_delete_item scheme: :danger, icon: :trash, label: I18n.t(:button_delete), - href: confirm_destroy_project_path(project) + href: confirm_destroy_project_path(project), + data: { turbo: false } } end end diff --git a/app/components/settings/project_custom_field_sections/custom_field_row_component.html.erb b/app/components/settings/project_custom_field_sections/custom_field_row_component.html.erb index 7d87bb1dbc01..00ccbfbce0ed 100644 --- a/app/components/settings/project_custom_field_sections/custom_field_row_component.html.erb +++ b/app/components/settings/project_custom_field_sections/custom_field_row_component.html.erb @@ -8,7 +8,6 @@ content_container.with_column(mr: 2) do render(Primer::Beta::Link.new( href: edit_admin_settings_project_custom_field_path(@project_custom_field), - scheme: :primary, underline: false, font_weight: :bold, data: { turbo: "false" } diff --git a/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_component.html.erb b/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_component.html.erb deleted file mode 100644 index 6fe98a3cdc67..000000000000 --- a/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_component.html.erb +++ /dev/null @@ -1,18 +0,0 @@ -<%= - render( - Primer::Alpha::Dialog.new( - id: Settings::ProjectCustomFields::ProjectCustomFieldMapping::NewProjectMappingFormComponent::DIALOG_ID, - title:, - test_selector: Settings::ProjectCustomFields::ProjectCustomFieldMapping::NewProjectMappingFormComponent::DIALOG_ID, - size: :large - ) - ) do |dialog| - dialog.with_header( - show_divider: false, - visually_hide_title: false, - variant: :large - ) - - render(Settings::ProjectCustomFields::ProjectCustomFieldMapping::NewProjectMappingFormComponent.new(project_mapping: @project_mapping, project_custom_field: @project_custom_field)) - end -%> diff --git a/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_component.rb b/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_component.rb index 327b7a1a9363..1879fa8776b0 100644 --- a/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_component.rb +++ b/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_component.rb @@ -29,23 +29,18 @@ module Settings module ProjectCustomFields module ProjectCustomFieldMapping - class NewProjectMappingComponent < ApplicationComponent # rubocop:disable OpenProject/AddPreviewForViewComponent - include OpTurbo::Streamable - - def initialize(project_mapping:, project_custom_field:, **) - @project_mapping = project_mapping - @project_custom_field = project_custom_field - super(@project_mapping, **) - end - + class NewProjectMappingComponent < Admin::CustomFields::CustomFieldProjects::NewCustomFieldProjectsModalComponent def render? - !@project_custom_field.required? + !custom_field.required? end private - def title - I18n.t(:label_add_projects) + def form_modal_component + Settings::ProjectCustomFields::ProjectCustomFieldMapping::NewProjectMappingFormComponent.new( + custom_field_project_mapping:, + custom_field: + ) end end end diff --git a/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_form_component.rb b/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_form_component.rb index e024bc277138..806ac8b223d5 100644 --- a/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_form_component.rb +++ b/app/components/settings/project_custom_fields/project_custom_field_mapping/new_project_mapping_form_component.rb @@ -29,30 +29,11 @@ module Settings module ProjectCustomFields module ProjectCustomFieldMapping - class NewProjectMappingFormComponent < ApplicationComponent # rubocop:disable OpenProject/AddPreviewForViewComponent - include OpTurbo::Streamable - - DIALOG_ID = "settings--new-project-custom-field-mapping-component".freeze - DIALOG_BODY_ID = "settings--new-project-custom-field-mapping-body-component".freeze - - def initialize(project_mapping:, project_custom_field:) - super - @project_mapping = project_mapping - @project_custom_field = project_custom_field - end - + class NewProjectMappingFormComponent < Admin::CustomFields::CustomFieldProjects::NewCustomFieldProjectsFormModalComponent private - def title - I18n.t(:label_add_projects) - end - - def cancel_button_text - I18n.t("button_cancel") - end - - def submit_button_text - I18n.t("button_add") + def url + url_helpers.link_admin_settings_project_custom_field_path(@custom_field) end end end diff --git a/app/components/settings/project_custom_fields/project_custom_field_mapping/row_component.rb b/app/components/settings/project_custom_fields/project_custom_field_mapping/row_component.rb index 0a4a86a2d3a4..f4645d2a23ff 100644 --- a/app/components/settings/project_custom_fields/project_custom_field_mapping/row_component.rb +++ b/app/components/settings/project_custom_fields/project_custom_field_mapping/row_component.rb @@ -29,33 +29,14 @@ module Settings module ProjectCustomFields module ProjectCustomFieldMapping - class RowComponent < Projects::RowComponent - include OpTurbo::Streamable - - def wrapper_uniq_by - "project-#{project.id}" - end - - def more_menu_items - @more_menu_items ||= [more_menu_detach_project].compact - end - + class RowComponent < Admin::CustomFields::CustomFieldProjects::RowComponent private - def more_menu_detach_project - project = model.first - if User.current.admin && project.active? - { - scheme: :default, - icon: nil, - label: I18n.t("projects.settings.project_custom_fields.actions.remove_from_project"), - href: unlink_admin_settings_project_custom_field_path( - id: @table.params[:custom_field].id, - project_custom_field_project_mapping: { project_id: project.id } - ), - data: { turbo_method: :delete } - } - end + def detach_from_project_url + url_helpers.unlink_admin_settings_project_custom_field_path( + id: @table.params[:custom_field].id, + project_custom_field_project_mapping: { project_id: project.id } + ) end end end diff --git a/app/components/settings/project_custom_fields/project_custom_field_mapping/table_component.rb b/app/components/settings/project_custom_fields/project_custom_field_mapping/table_component.rb index 0d62babb1d3b..b63ca837dbcf 100644 --- a/app/components/settings/project_custom_fields/project_custom_field_mapping/table_component.rb +++ b/app/components/settings/project_custom_fields/project_custom_field_mapping/table_component.rb @@ -29,33 +29,7 @@ module Settings module ProjectCustomFields module ProjectCustomFieldMapping - class TableComponent < Projects::TableComponent # rubocop:disable OpenProject/AddPreviewForViewComponent - include OpTurbo::Streamable - - def columns - @columns ||= query.selects.reject { |select| select.is_a?(Queries::Selects::NotExistingSelect) } - end - - def sortable? - false - end - - # @override optional_pagination_options are passed to the pagination_options - # which are passed to #pagination_links_full in pagination_helper.rb - # - # In Turbo streamable components, we need to be able to specify the url_for(action:) so that links are - # generated in the context of the component index action, instead of any turbo stream actions performing - # partial updates on the page. - # - # params[:url_for_action] is passed to the pagination_options making it's way down to any pagination links - # that are generated via link_to which calls url_for which uses the params[:url_for_action] to specify - # the controller action that link_to should use. - # - def optional_pagination_options - return super unless params[:url_for_action] - - super.merge(params: { action: params[:url_for_action] }) - end + class TableComponent < Admin::CustomFields::CustomFieldProjects::TableComponent end end end diff --git a/app/components/shares/project_queries/upsale_component.html.erb b/app/components/shares/project_queries/upsale_component.html.erb index fe555d91b290..0568cec7557f 100644 --- a/app/components/shares/project_queries/upsale_component.html.erb +++ b/app/components/shares/project_queries/upsale_component.html.erb @@ -1,7 +1,6 @@ <%= modal_content.with_row(data: { 'test-selector': 'op-share-dialog-upsale-block' }) do - render Primer::Beta::Blankslate.new(border: true) do |component| - component.with_visual_icon(icon: :'op-enterprise-addons', classes: 'upsale-colored') + render Primer::OpenProject::FeedbackMessage.new(icon_arguments: { icon: :"op-enterprise-addons", classes: "upsale-colored" }, border: true) do |component| component.with_heading(tag: :h2, classes: 'upsale-colored').with_content(I18n.t(:label_enterprise_addon)) component.with_description { I18n.t('sharing.project_queries.upsale.message') } diff --git a/app/components/shares/work_packages/modal_upsale_component.html.erb b/app/components/shares/work_packages/modal_upsale_component.html.erb index 2d5f3269a0d7..d1c89c491a12 100644 --- a/app/components/shares/work_packages/modal_upsale_component.html.erb +++ b/app/components/shares/work_packages/modal_upsale_component.html.erb @@ -1,7 +1,6 @@ <%= component_wrapper(tag: 'turbo-frame') do - render Primer::Beta::Blankslate.new(border: true) do |component| - component.with_visual_icon(icon: :'op-enterprise-addons', classes: 'upsale-colored') + render Primer::OpenProject::FeedbackMessage.new(icon_arguments: { icon: :"op-enterprise-addons", classes: "upsale-colored" }, border: true) do |component| component.with_heading(tag: :h2, classes: 'upsale-colored').with_content(I18n.t(:label_enterprise_addon)) component.with_description { I18n.t('mail.sharing.work_packages.enterprise_text') } diff --git a/app/components/types/edit_page_header_component.rb b/app/components/types/edit_page_header_component.rb index 950c93203bfd..ad254afd81b1 100644 --- a/app/components/types/edit_page_header_component.rb +++ b/app/components/types/edit_page_header_component.rb @@ -42,7 +42,7 @@ def initialize(type:, tabs: nil) def breadcrumb_items [{ href: admin_index_path, text: t("label_administration") }, - { href: admin_settings_work_package_tracking_path, text: t(:label_work_package_plural) }, + { href: admin_settings_work_packages_general_path, text: t(:label_work_package_plural) }, { href: types_path, text: t(:label_type_plural) }, @type.name] end diff --git a/app/components/work_packages/exports/modal_dialog_component.rb b/app/components/work_packages/exports/modal_dialog_component.rb index f01f9b5ca593..0707cb75ca62 100644 --- a/app/components/work_packages/exports/modal_dialog_component.rb +++ b/app/components/work_packages/exports/modal_dialog_component.rb @@ -47,7 +47,13 @@ def initialize(query:, project:, title:) end def export_format_url(format) - @project.nil? ? index_work_packages_path(format:) : project_work_packages_path(project, format:) + if @project.nil? + index_work_packages_path(format:) + elsif @query.id.present? + project_work_packages_path(project, query_id: @query.id, format:) + else + project_work_packages_path(project, format:) + end end def export_formats_settings diff --git a/app/components/work_packages/exports/modal_dialog_component.sass b/app/components/work_packages/exports/modal_dialog_component.sass new file mode 100644 index 000000000000..f0c0f350355e --- /dev/null +++ b/app/components/work_packages/exports/modal_dialog_component.sass @@ -0,0 +1,3 @@ +#op-work-packages-export-dialog + .op-draggable-autocomplete--selected + padding-bottom: 0 diff --git a/app/components/work_packages/exports/pdf/report/export_settings_component.html.erb b/app/components/work_packages/exports/pdf/report/export_settings_component.html.erb index 95e026d32eda..831c9fed9001 100644 --- a/app/components/work_packages/exports/pdf/report/export_settings_component.html.erb +++ b/app/components/work_packages/exports/pdf/report/export_settings_component.html.erb @@ -8,7 +8,7 @@ ) %> <% end %> <% container.with_row do |_columns| %> - <%= render OpenProject::Common::DividerComponent.new(mt: 2) %> + <%= render OpenProject::Common::DividerComponent.new %> <%= helpers.angular_component_tag "opce-draggable-autocompleter", inputs: { id: "ltf-select-export-pdf-report", @@ -27,7 +27,7 @@ %> <% end %> <%= container.with_row do |_pdf_report_images| %> - <%= render OpenProject::Common::DividerComponent.new(mt: 2) %> + <%= render OpenProject::Common::DividerComponent.new %> <%= render(Primer::Alpha::CheckBox.new(name: 'show_images', checked: true, value: "true", diff --git a/app/components/work_packages/exports/xls/export_settings_component.html.erb b/app/components/work_packages/exports/xls/export_settings_component.html.erb index 7909c0191895..802b8fc6e676 100644 --- a/app/components/work_packages/exports/xls/export_settings_component.html.erb +++ b/app/components/work_packages/exports/xls/export_settings_component.html.erb @@ -7,7 +7,7 @@ ) %> <% end %> <%= container.with_row do |_xls_include_relations| %> - <%= render OpenProject::Common::DividerComponent.new(mt: 2) %> + <%= render OpenProject::Common::DividerComponent.new %> <%= render(Primer::Alpha::CheckBox.new( id: "show_relations_xls", name: "show_relations", diff --git a/app/components/work_packages/progress/status_based/modal_body_component.html.erb b/app/components/work_packages/progress/status_based/modal_body_component.html.erb index d1a61701022f..602e7a4f1493 100644 --- a/app/components/work_packages/progress/status_based/modal_body_component.html.erb +++ b/app/components/work_packages/progress/status_based/modal_body_component.html.erb @@ -6,27 +6,16 @@ id: "progress-form", html: { autocomplete: "off" }, data: { "application-target": "dynamic", - "work-packages--progress--preview-progress-target": "form", - controller: "work-packages--progress--focus-field " \ - "work-packages--progress--preview-progress " \ - "work-packages--progress--touched-field-marker" } + "work-packages--progress--preview-target": "form", + controller: "work-packages--progress--preview" } ) do |f| %> <%= flex_layout do |modal_body| %> <% modal_body.with_row(classes: "FormControl-horizontalGroup--sm-vertical") do |_fields| %> - <% if OpenProject::FeatureDecisions.percent_complete_edition_active? %> <%= render(WorkPackages::ProgressForm.new(f, work_package:, mode:, focused_field:, touched_field_map:)) %> - <% else %> - <%# This condition branch to be removed in 15.0 with :percent_complete_edition feature flag removal %> - <%= render(WorkPackages::Pre144ProgressForm.new(f, - work_package:, - mode:, - focused_field:, - touched_field_map:)) %> - <% end %> <% end %> <% modal_body.with_row(mt: 3) do |_tooltip| %> diff --git a/app/components/work_packages/progress/work_based/modal_body_component.html.erb b/app/components/work_packages/progress/work_based/modal_body_component.html.erb index d29236da0e9e..d2b0549278ab 100644 --- a/app/components/work_packages/progress/work_based/modal_body_component.html.erb +++ b/app/components/work_packages/progress/work_based/modal_body_component.html.erb @@ -6,45 +6,16 @@ id: "progress-form", html: { autocomplete: "off" }, data: { "application-target": "dynamic", - "work-packages--progress--preview-progress-target": "form", - controller: "work-packages--progress--focus-field " \ - "work-packages--progress--preview-progress " \ - "work-packages--progress--touched-field-marker" } + "work-packages--progress--preview-target": "form", + controller: "work-packages--progress--preview" } ) do |f| %> <%= flex_layout do |modal_body| %> <% modal_body.with_row(classes: "FormControl-horizontalGroup--sm-vertical") do |_fields| %> - <% if OpenProject::FeatureDecisions.percent_complete_edition_active? %> <%= render(WorkPackages::ProgressForm.new(f, work_package:, mode:, focused_field:, touched_field_map:)) %> - <% else %> - <%# This condition branch to be removed in 15.0 with :percent_complete_edition feature flag removal %> - <%= render(WorkPackages::Pre144ProgressForm.new(f, - work_package:, - mode:, - focused_field:, - touched_field_map:)) %> - <% end %> - <% end %> - - <% if !OpenProject::FeatureDecisions.percent_complete_edition_active? %> - <%# This condition branch to be removed in 15.0 with :percent_complete_edition feature flag removal %> - <% if should_display_migration_warning? %> - <% modal_body.with_row(mt: 3) do |_migration_warning| %> - <%= render(Primer::Alpha::Banner.new) { t("work_package.progress.modal.migration_warning_text") } %> - <% end %> - <% end %> - <% end %> - - <%# This condition branch to be removed in 15.0 with :percent_complete_edition feature flag removal %> - <% unless OpenProject::FeatureDecisions.percent_complete_edition_active? %> - <% modal_body.with_row(mt: 3) do |_tooltip| %> - <%= render(Primer::Beta::Text.new(font_weight: :semibold)) { t("work_package.progress.label_note") } %> - <%= render(Primer::Beta::Text.new) { t("work_package.progress.modal.work_based_help_text_pre_14_4_without_percent_complete_edition") } %> - <%= render(Primer::Beta::Link.new(href: learn_more_href)) { t(:label_learn_more) } %> - <% end %> <% end %> <% modal_body.with_row(mt: 3) do |_actions_row| %> diff --git a/app/components/work_packages/progress/work_based/modal_body_component.rb b/app/components/work_packages/progress/work_based/modal_body_component.rb index 668b4613d77c..f2e66de74fe5 100644 --- a/app/components/work_packages/progress/work_based/modal_body_component.rb +++ b/app/components/work_packages/progress/work_based/modal_body_component.rb @@ -40,15 +40,6 @@ def initialize(work_package, @mode = :work_based end - - # This method can be safely deleted once the feature flag - # :percent_complete_edition is removed, which should happen for - # OpenProject 15.0 release. - def should_display_migration_warning? - return false if OpenProject::FeatureDecisions.percent_complete_edition_active? - - work_package.done_ratio.present? && work_package.estimated_hours.nil? && work_package.remaining_hours.nil? - end end # rubocop:enable OpenProject/AddPreviewForViewComponent end diff --git a/app/components/workflows/page_header_component.rb b/app/components/workflows/page_header_component.rb index 7d93e1d92c3c..0df058b70a17 100644 --- a/app/components/workflows/page_header_component.rb +++ b/app/components/workflows/page_header_component.rb @@ -40,7 +40,7 @@ def initialize(state:) def breadcrumb_items base_items = [{ href: admin_index_path, text: t("label_administration") }, - { href: admin_settings_work_package_tracking_path, text: t(:label_work_package_plural) }, + { href: admin_settings_work_packages_general_path, text: t(:label_work_package_plural) }, title] if @state == :edit diff --git a/app/contracts/custom_fields/custom_field_projects/base_contract.rb b/app/contracts/custom_fields/custom_field_projects/base_contract.rb new file mode 100644 index 000000000000..d2d260d11119 --- /dev/null +++ b/app/contracts/custom_fields/custom_field_projects/base_contract.rb @@ -0,0 +1,52 @@ +#-- 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 CustomFields + module CustomFieldProjects + class BaseContract < ::ModelContract + attribute :project_id + attribute :custom_field_id + + validate :select_custom_fields_permission + validate :not_for_all + + def select_custom_fields_permission + return if user.allowed_in_project?(:select_custom_fields, model.project) + + errors.add :base, :error_unauthorized + end + + def not_for_all + # Only mappings of custom fields which are not enabled for all projects can be manipulated by the user + return if model.custom_field.nil? || !model.custom_field.is_for_all? + + errors.add :custom_field_id, :is_for_all_cannot_modify + end + end + end +end diff --git a/app/contracts/custom_fields/custom_field_projects/update_contract.rb b/app/contracts/custom_fields/custom_field_projects/update_contract.rb new file mode 100644 index 000000000000..cfbf9dcccaf1 --- /dev/null +++ b/app/contracts/custom_fields/custom_field_projects/update_contract.rb @@ -0,0 +1,34 @@ +#-- 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 CustomFields + module CustomFieldProjects + class UpdateContract < BaseContract + end + end +end diff --git a/app/components/oauth/applications/row_component.rb b/app/contracts/oauth/applications/base_contract.rb similarity index 52% rename from app/components/oauth/applications/row_component.rb rename to app/contracts/oauth/applications/base_contract.rb index 840dc2ca1682..fac8b49b1873 100644 --- a/app/components/oauth/applications/row_component.rb +++ b/app/contracts/oauth/applications/base_contract.rb @@ -1,8 +1,6 @@ -# frozen_string_literal: true - #-- copyright # OpenProject is an open source project management software. -# Copyright (C) the OpenProject GmbH +# Copyright (C) 2012-2024 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. @@ -30,50 +28,45 @@ module OAuth module Applications - class RowComponent < ::RowComponent - property :confidential - - def application - model + class BaseContract < ::ModelContract + def self.model + ::Doorkeeper::Application end - def name - link_to application.name, oauth_application_path(application) - end + validate :validate_client_credential_user + validate :validate_integration + validate :validate_admin_only - def owner - link_to application.owner.name, user_path(application.owner) - end + attribute :enabled + attribute :name + attribute :redirect_uri + attribute :confidential + attribute :owner_id + attribute :owner_type + attribute :scopes + attribute :client_credentials_user_id + attribute :integration_id + attribute :integration_type - def confidential - if application.confidential? - helpers.op_icon "icon icon-checkmark" - end - end + private - def redirect_uri - urls = application.redirect_uri.split("\n") - safe_join urls, "
".html_safe + def validate_admin_only + errors.add :base, :error_unauthorized unless user.admin? end - def client_credentials - if user_id = application.client_credentials_user_id - helpers.link_to_user User.find(user_id) - else - "-" - end - end + def validate_integration + both = model.integration_id.present? && model.integration_type.present? + none = model.integration_id.nil? && model.integration_type.nil? - def edit_link - link_to( - I18n.t(:button_edit), - edit_oauth_application_path(application), - class: "oauth-application--edit-link icon icon-edit" - ) + errors.add :integration, :invalid unless both || none end - def button_links - [edit_link, helpers.delete_link(oauth_application_path(application))] + def validate_client_credential_user + return if model.client_credentials_user_id.blank? + + unless User.exists?(id: model.client_credentials_user_id) + errors.add :client_credentials_user_id, :invalid + end end end end diff --git a/app/contracts/oauth/applications/create_contract.rb b/app/contracts/oauth/applications/create_contract.rb new file mode 100644 index 000000000000..947cea0ac3c1 --- /dev/null +++ b/app/contracts/oauth/applications/create_contract.rb @@ -0,0 +1,46 @@ +#-- 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 OAuth + module Applications + class CreateContract < BaseContract + attribute :builtin + attribute :uid + + validate :validate_owner_present + + private + + def validate_owner_present + if model.owner.blank? + errors.add(:owner, :blank) + end + end + end + end +end diff --git a/app/contracts/oauth/applications/delete_contract.rb b/app/contracts/oauth/applications/delete_contract.rb new file mode 100644 index 000000000000..1d7ce6f5dab3 --- /dev/null +++ b/app/contracts/oauth/applications/delete_contract.rb @@ -0,0 +1,35 @@ +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) 2012-2024 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 OAuth + module Applications + class DeleteContract < ::DeleteContract + delete_permission -> { !model.builtin? && user.admin? } + end + end +end diff --git a/app/contracts/oauth/applications/update_contract.rb b/app/contracts/oauth/applications/update_contract.rb new file mode 100644 index 000000000000..48f436d14fef --- /dev/null +++ b/app/contracts/oauth/applications/update_contract.rb @@ -0,0 +1,41 @@ +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) 2012-2024 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 OAuth + module Applications + class UpdateContract < BaseContract + validate :application_is_not_builtin + + def application_is_not_builtin + if model.builtin? + errors.add(:base, :unchangeable) + end + end + end + end +end diff --git a/app/contracts/roles/base_contract.rb b/app/contracts/roles/base_contract.rb index 854f0fe70047..7fc489a910f0 100644 --- a/app/contracts/roles/base_contract.rb +++ b/app/contracts/roles/base_contract.rb @@ -43,7 +43,7 @@ def assignable_permissions(keep_public: false) else assignable_member_permissions end.reject do |permission| - !keep_public && permission.public? + (!keep_public && permission.public?) || permission.hidden? end end diff --git a/app/contracts/work_packages/base_contract.rb b/app/contracts/work_packages/base_contract.rb index dc62c589bf41..552d27bc9c2f 100644 --- a/app/contracts/work_packages/base_contract.rb +++ b/app/contracts/work_packages/base_contract.rb @@ -54,40 +54,27 @@ class BaseContract < ::ModelContract attribute :done_ratio, writable: ->(*) { - OpenProject::FeatureDecisions.percent_complete_edition_active? \ - && WorkPackage.work_based_mode? + WorkPackage.work_based_mode? } do - if OpenProject::FeatureDecisions.percent_complete_edition_active? - next if invalid_work_or_remaining_work_values? # avoid too many error messages at the same time + next if invalid_work_or_remaining_work_values? # avoid too many error messages at the same time - validate_percent_complete_matches_work_and_remaining_work - validate_percent_complete_is_empty_when_work_is_zero - validate_percent_complete_is_set_when_work_and_remaining_work_are_set - end + validate_percent_complete_matches_work_and_remaining_work + validate_percent_complete_is_empty_when_work_is_zero + validate_percent_complete_is_set_when_work_and_remaining_work_are_set end attribute :derived_done_ratio, writable: false attribute :estimated_hours do - if OpenProject::FeatureDecisions.percent_complete_edition_active? - validate_work_is_set_when_remaining_work_and_percent_complete_are_set - else - # to be removed in 15.0 with :percent_complete_edition feature flag removal - validate_work_is_set_when_remaining_work_is_set - end + validate_work_is_set_when_remaining_work_and_percent_complete_are_set end attribute :derived_estimated_hours, writable: false attribute :remaining_hours do validate_remaining_work_is_lower_than_work - if OpenProject::FeatureDecisions.percent_complete_edition_active? - validate_remaining_work_is_zero_or_empty_when_percent_complete_is_100p - validate_remaining_work_is_set_when_work_and_percent_complete_are_set - else - # to be removed in 15.0 with :percent_complete_edition feature flag removal - validate_remaining_work_is_set_when_work_is_set - end + validate_remaining_work_is_zero_or_empty_when_percent_complete_is_100p + validate_remaining_work_is_set_when_work_and_percent_complete_are_set end attribute :derived_remaining_hours, writable: false @@ -350,20 +337,6 @@ def validate_remaining_work_is_lower_than_work end end - # to be removed in 15.0 with :percent_complete_edition feature flag removal - def validate_remaining_work_is_set_when_work_is_set - if work_set? && !remaining_work_set? - errors.add(:remaining_hours, :must_be_set_when_work_is_set) - end - end - - # to be removed in 15.0 with :percent_complete_edition feature flag removal - def validate_work_is_set_when_remaining_work_is_set - if remaining_work_set? && !work_set? - errors.add(:estimated_hours, :must_be_set_when_remaining_work_is_set) - end - end - def validate_work_is_set_when_remaining_work_and_percent_complete_are_set if remaining_work_set_and_valid? && percent_complete_set_and_valid? && work_empty? && percent_complete != 100 errors.add(:estimated_hours, :must_be_set_when_remaining_work_and_percent_complete_are_set) diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index bf66aca93497..3d7f75cceebb 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -29,9 +29,10 @@ class AccountController < ApplicationController include CustomFieldsHelper include OmniauthHelper - include Accounts::OmniauthLogin + include Accounts::Registration include Accounts::UserConsent include Accounts::UserLimits + include Accounts::UserLogin include Accounts::UserPasswordChange # prevents login action to be filtered by check_if_login_required application scope filter @@ -346,49 +347,6 @@ def assign_user_attributes(attrs) .result end - def register_plain_user(user) - user.attributes = permitted_params.user.transform_values do |val| - if val.is_a? String - val.strip! - end - - val - end - user.login = params[:user][:login].strip if params[:user][:login].present? - user.password = params[:user][:password] - user.password_confirmation = params[:user][:password_confirmation] - - respond_for_registered_user(user) - end - - def register_with_auth_source(user) - # on-the-fly registration via omniauth or via auth source - if pending_omniauth_registration? - user.assign_attributes permitted_params.user_register_via_omniauth - register_via_omniauth(session, user.attributes) - else - user.attributes = permitted_params.user - user.activate - user.login = session[:auth_source_registration][:login] - user.ldap_auth_source_id = session[:auth_source_registration][:ldap_auth_source_id] - - respond_for_registered_user(user) - end - end - - def respond_for_registered_user(user) - call = ::Users::RegisterUserService.new(user).call - - if call.success? - flash[:notice] = call.message.presence - login_user_if_active(call.result, just_registered: true) - else - flash[:error] = error = call.message - Rails.logger.error "Registration of user #{user.login} failed: #{error}" - onthefly_creation_failed(user) - end - end - def user_with_placeholder_name?(user) user.firstname == user.login and user.login == user.mail end @@ -454,61 +412,6 @@ def password_authentication(username, password) end end - def login_user_if_active(user, just_registered:) - if user.active? - successful_authentication(user, just_registered:) - return - end - - # Show an appropriate error unless - # the user was just registered - if !(just_registered && user.registered?) - account_inactive(user, flash_now: false) - end - - redirect_to signin_path(back_url: params[:back_url]) - end - - def pending_auth_source_registration? - session[:auth_source_registration] && !pending_omniauth_registration? - end - - def pending_omniauth_registration? - Hash(session[:auth_source_registration])[:omniauth] - end - - # Onthefly creation failed, display the registration form to fill/fix attributes - def onthefly_creation_failed(user, auth_source_options = {}) - @user = user - session[:auth_source_registration] = auth_source_options unless auth_source_options.empty? - render action: "register" - end - - def self_registration_disabled - flash[:error] = I18n.t("account.error_self_registration_disabled") - redirect_to signin_url - end - - # Call if an account is inactive - either registered or locked - def account_inactive(user, flash_now: true) - if user.registered? - account_not_activated(flash_now:) - else - flash_and_log_invalid_credentials(flash_now:) - end - end - - # Log an attempt to log in to an account in "registered" state and show a flash message. - def account_not_activated(flash_now: true) - flash_error_message(log_reason: "NOT ACTIVATED", flash_now:) do - if Setting::SelfRegistration.by_email? - "account.error_inactive_activation_by_mail" - else - "account.error_inactive_manual_activation" - end - end - end - def invited_account_not_activated(_user) flash_error_message(log_reason: "invited, NOT ACTIVATED", flash_now: false) do "account.error_inactive_activation_by_mail" diff --git a/app/controllers/activities_controller.rb b/app/controllers/activities_controller.rb index 930caf24843a..14a9af48b6b6 100644 --- a/app/controllers/activities_controller.rb +++ b/app/controllers/activities_controller.rb @@ -45,20 +45,18 @@ class ActivitiesController < ApplicationController accept_key_auth :index + rescue_from ActiveRecord::RecordNotFound do |exception| + op_handle_warning "Failed to find all resources in activities: #{exception.message}" + render_404(message: I18n.t(:error_can_not_find_all_resources)) + end + def index @events = @activity.events(from: @date_from.to_datetime, to: @date_to.to_datetime) respond_to do |format| - format.html do - respond_html - end - format.atom do - respond_atom - end + format.html { respond_html } + format.atom { respond_atom } end - rescue ActiveRecord::RecordNotFound => e - op_handle_warning "Failed to find all resources in activities: #{e.message}" - render_404 I18n.t(:error_can_not_find_all_resources) end def menu diff --git a/app/controllers/admin/custom_fields/custom_field_projects_controller.rb b/app/controllers/admin/custom_fields/custom_field_projects_controller.rb new file mode 100644 index 000000000000..8f69e323e74a --- /dev/null +++ b/app/controllers/admin/custom_fields/custom_field_projects_controller.rb @@ -0,0 +1,179 @@ +# 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 Admin::CustomFields::CustomFieldProjectsController < ApplicationController + include OpTurbo::ComponentStream + include OpTurbo::DialogStreamHelper + include FlashMessagesOutputSafetyHelper + + layout "admin" + + model_object CustomField + + before_action :require_admin + before_action :find_model_object + + before_action :available_custom_fields_projects_query, only: %i[index destroy] + before_action :initialize_custom_field_project, only: :new + before_action :find_projects_to_activate_for_custom_field, only: :create + before_action :find_custom_field_project_to_destroy, only: :destroy + + menu_item :custom_fields + + def index; end + + def new + respond_with_dialog Admin::CustomFields::CustomFieldProjects::NewCustomFieldProjectsModalComponent.new( + custom_field_project_mapping: @custom_field_project, + custom_field: @custom_field + ) + end + + def create + create_service = ::CustomFields::CustomFieldProjects::BulkCreateService + .new(user: current_user, projects: @projects, custom_field: @custom_field, + include_sub_projects: include_sub_projects?) + .call + + create_service.on_success { render_project_list(url_for_action: :index) } + + create_service.on_failure do + update_flash_message_via_turbo_stream( + message: join_flash_messages(create_service.errors), + full: true, dismiss_scheme: :hide, scheme: :danger + ) + end + + respond_to_with_turbo_streams(status: create_service.success? ? :ok : :unprocessable_entity) + end + + def destroy + delete_service = ::CustomFields::CustomFieldProjects::DeleteService + .new(user: current_user, model: @custom_field_project) + .call + + delete_service.on_success { render_project_list(url_for_action: :index) } + + delete_service.on_failure do + update_flash_message_via_turbo_stream( + message: join_flash_messages(delete_service.errors.full_messages), + full: true, dismiss_scheme: :hide, scheme: :danger + ) + end + + respond_to_with_turbo_streams(status: delete_service.success? ? :ok : :unprocessable_entity) + end + + def default_breadcrumb; end + + def show_local_breadcrumb + false + end + + private + + def render_project_list(url_for_action: action_name) + update_via_turbo_stream( + component: Admin::CustomFields::CustomFieldProjects::TableComponent.new( + query: available_custom_fields_projects_query, + params: { custom_field: @custom_field, url_for_action: } + ) + ) + end + + def find_model_object(object_id = :custom_field_id) + super + @custom_field = @object + end + + def find_projects_to_activate_for_custom_field + if (project_ids = params.to_unsafe_h[:custom_fields_project][:project_ids]).present? + @projects = Project.find(project_ids) + else + initialize_custom_field_project + @custom_field_project.errors.add(:project_ids, :blank) + update_via_turbo_stream( + component: Admin::CustomFields::CustomFieldProjects::NewCustomFieldProjectsFormModalComponent.new( + custom_field_project_mapping: @custom_field_project, + custom_field: @custom_field + ), + status: :bad_request + ) + respond_with_turbo_streams + end + rescue ActiveRecord::RecordNotFound + respond_with_project_not_found_turbo_streams + end + + def find_custom_field_project_to_destroy + @custom_field_project = CustomFieldsProject.find_by!(custom_field: @custom_field, + project: params[:custom_fields_project][:project_id]) + rescue ActiveRecord::RecordNotFound + respond_with_project_not_found_turbo_streams + end + + def update_project_list_via_turbo_stream(url_for_action: action_name) + update_via_turbo_stream( + component: Admin::CustomFields::CustomFieldProjects::TableComponent.new( + query: available_custom_fields_projects_query, + params: { custom_field: @custom_field, url_for_action: } + ) + ) + end + + def available_custom_fields_projects_query + @available_custom_fields_projects_query = ProjectQuery.new( + name: "custom-fields-projects-#{@custom_field.id}" + ) do |query| + query.where(:available_custom_fields_projects, "=", [@custom_field.id]) + query.select(:name) + query.order("lft" => "asc") + end + end + + def initialize_custom_field_project + @custom_field_project = ::CustomFields::CustomFieldProjects::SetAttributesService + .new(user: current_user, model: CustomFieldsProject.new, contract_class: EmptyContract) + .call(custom_field: @custom_field) + .result + end + + def respond_with_project_not_found_turbo_streams + update_flash_message_via_turbo_stream message: t(:notice_project_not_found), full: true, dismiss_scheme: :hide, + scheme: :danger + update_project_list_via_turbo_stream + + respond_with_turbo_streams + end + + def include_sub_projects? + ActiveRecord::Type::Boolean.new.cast(params.to_unsafe_h[:custom_fields_project][:include_sub_projects]) + end +end diff --git a/app/controllers/admin/settings/work_packages_settings_controller.rb b/app/controllers/admin/settings/progress_tracking_controller.rb similarity index 92% rename from app/controllers/admin/settings/work_packages_settings_controller.rb rename to app/controllers/admin/settings/progress_tracking_controller.rb index d2f1f369f00f..e6687d0afd6e 100644 --- a/app/controllers/admin/settings/work_packages_settings_controller.rb +++ b/app/controllers/admin/settings/progress_tracking_controller.rb @@ -27,9 +27,9 @@ #++ module Admin::Settings - class WorkPackagesSettingsController < ::Admin::SettingsController + class ProgressTrackingController < ::Admin::SettingsController current_menu_item :show do - :work_packages_setting + :progress_tracking end end end diff --git a/app/controllers/admin/settings/project_custom_fields_controller.rb b/app/controllers/admin/settings/project_custom_fields_controller.rb index ab06963ee7c2..b532962b12f5 100644 --- a/app/controllers/admin/settings/project_custom_fields_controller.rb +++ b/app/controllers/admin/settings/project_custom_fields_controller.rb @@ -31,7 +31,6 @@ class ProjectCustomFieldsController < ::Admin::SettingsController include CustomFields::SharedActions include OpTurbo::ComponentStream include OpTurbo::DialogStreamHelper - include ApplicationComponentStreams include FlashMessagesOutputSafetyHelper include Admin::Settings::ProjectCustomFields::ComponentStreams @@ -76,8 +75,8 @@ def project_mappings; end def new_link @project_mapping = ProjectCustomFieldProjectMapping.new(project_custom_field: @custom_field) respond_with_dialog Settings::ProjectCustomFields::ProjectCustomFieldMapping::NewProjectMappingComponent.new( - project_mapping: @project_mapping, - project_custom_field: @custom_field + custom_field_project_mapping: @project_mapping, + custom_field: @custom_field ) end @@ -181,8 +180,9 @@ def set_sections end def find_unlink_project_custom_field_mapping - @project = Project.find(permitted_params.project_custom_field_project_mapping[:project_id]) - @project_custom_field_mapping = @custom_field.project_custom_field_project_mappings.find_by!(project: @project) + @project_custom_field_mapping = @custom_field.project_custom_field_project_mappings.find_by!( + project_id: permitted_params.project_custom_field_project_mapping[:project_id] + ) rescue ActiveRecord::RecordNotFound update_flash_message_via_turbo_stream( message: t(:notice_file_not_found), full: true, dismiss_scheme: :hide, scheme: :danger @@ -205,8 +205,8 @@ def find_custom_field_projects_to_link project_mapping = ProjectCustomFieldProjectMapping.new(project_custom_field: @custom_field) project_mapping.errors.add(:project_ids, :blank) component = Settings::ProjectCustomFields::ProjectCustomFieldMapping::NewProjectMappingFormComponent.new( - project_mapping:, - project_custom_field: @custom_field + custom_field_project_mapping: project_mapping, + custom_field: @custom_field ) update_via_turbo_stream(component:, status: :bad_request) respond_with_turbo_streams diff --git a/app/controllers/admin/settings/work_packages_general_controller.rb b/app/controllers/admin/settings/work_packages_general_controller.rb new file mode 100644 index 000000000000..82164cb79875 --- /dev/null +++ b/app/controllers/admin/settings/work_packages_general_controller.rb @@ -0,0 +1,35 @@ +#-- 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 Admin::Settings + class WorkPackagesGeneralController < ::Admin::SettingsController + current_menu_item :show do + :work_packages_general + end + end +end diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index aabc59cdd8a9..8a554ac032f1 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -85,6 +85,7 @@ def info @checklist += plaintext_extraction_checks @checklist += admin_information_hook_checks @checklist += image_conversion_checks + @checklist += jemalloc_active_checks @storage_information = OpenProject::Storage.mount_information end @@ -120,6 +121,16 @@ def image_conversion_checks [[:"image_conversion.imagemagick", image_conversion_libs_available?]] end + def jemalloc_active_checks + [[:"admin.jemalloc_allocator", jemalloc_libs_active?]] + end + + def jemalloc_libs_active? + Open3.capture2e({ "MALLOC_CONF" => "true" }, "ruby", "-e", "exit").first.include?("jemalloc") + rescue StandardError + false + end + def image_conversion_libs_available? Open3.capture2e("convert", "-version").first.include?("ImageMagick") rescue StandardError diff --git a/app/controllers/colors_controller.rb b/app/controllers/colors_controller.rb index 7b710cb494f3..ed553c1ce1cf 100644 --- a/app/controllers/colors_controller.rb +++ b/app/controllers/colors_controller.rb @@ -109,7 +109,7 @@ def show_local_breadcrumb def default_breadcrumb; end def require_admin_unless_readonly_api_request - require_admin unless %w[index show].include? params[:action] and + require_admin unless %w[index show].include? action_name and api_request? end end diff --git a/app/controllers/concerns/accounts/authorization.rb b/app/controllers/concerns/accounts/authorization.rb index f99824e798d7..3d4227a43ded 100644 --- a/app/controllers/concerns/accounts/authorization.rb +++ b/app/controllers/concerns/accounts/authorization.rb @@ -46,9 +46,9 @@ module Accounts::Authorization private def authorization_check_required - unless authorization_is_ensured?(params[:action]) + unless authorization_is_ensured?(action_name) raise <<-MESSAGE - Authorization check required for #{self.class.name}##{params[:action]}. + Authorization check required for #{self.class.name}##{action_name}. Use any method of #{METHODS_ENFORCING_AUTHORIZATION.join(', ')} @@ -62,20 +62,20 @@ def authorization_check_required # Authorize the user for the requested controller action. # To be used in before_action hooks def authorize - do_authorize({ controller: params[:controller], action: params[:action] }, global: false) + do_authorize({ controller: controller_path, action: action_name }, global: false) end # Authorize the user for the requested controller action outside a project # To be used in before_action hooks def authorize_global - do_authorize({ controller: params[:controller], action: params[:action] }, global: true) + do_authorize({ controller: controller_path, action: action_name }, global: true) end # Find a project based on params[:project_id] def load_and_authorize_in_optional_project @project = Project.find(params[:project_id]) if params[:project_id].present? - do_authorize({ controller: params[:controller], action: params[:action] }, global: params[:project_id].blank?) + do_authorize({ controller: controller_path, action: action_name }, global: params[:project_id].blank?) rescue ActiveRecord::RecordNotFound render_404 end diff --git a/app/controllers/concerns/accounts/current_user.rb b/app/controllers/concerns/accounts/current_user.rb index e6bf353a8df9..de51756c3f36 100644 --- a/app/controllers/concerns/accounts/current_user.rb +++ b/app/controllers/concerns/accounts/current_user.rb @@ -105,7 +105,7 @@ def current_autologin_user end def current_rss_key_user - if params[:format] == "atom" && params[:key] && accept_key_auth_actions.include?(params[:action]) + if params[:format] == "atom" && params[:key] && accept_key_auth_actions.include?(action_name) # RSS key authentication does not start a session User.find_by_rss_key(params[:key]) end @@ -116,7 +116,7 @@ def current_api_key_user key = api_key_from_request - if key && accept_key_auth_actions.include?(params[:action]) + if key && accept_key_auth_actions.include?(action_name) # Use API key User.find_by_api_key(key) end diff --git a/app/controllers/concerns/accounts/registration.rb b/app/controllers/concerns/accounts/registration.rb new file mode 100644 index 000000000000..ca11d39edfc5 --- /dev/null +++ b/app/controllers/concerns/accounts/registration.rb @@ -0,0 +1,156 @@ +#-- 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. +#++ + +require "uri" + +## +# Intended to be used by the AccountController and OmniAuthLoginController to handle registration flows +module Accounts::Registration + ## + # Sends a user who was just registered to the activation stages + # or to the signin page if the user could not be activated + def login_user_if_active(user, just_registered:) + if user.active? + successful_authentication(user, just_registered:) + return + end + + # Show an appropriate error unless + # the user was just registered + if !(just_registered && user.registered?) + account_inactive(user, flash_now: false) + end + + redirect_to signin_path(back_url: params[:back_url]) + end + + def register_plain_user(user) # rubocop:disable Metrics/AbcSize + user.attributes = permitted_params.user.transform_values do |val| + if val.is_a? String + val.strip! + end + + val + end + user.login = params[:user][:login].strip if params[:user][:login].present? + user.password = params[:user][:password] + user.password_confirmation = params[:user][:password_confirmation] + + respond_for_registered_user(user) + end + + def register_with_auth_source(user) # rubocop:disable Metrics/AbcSize + # on-the-fly registration via omniauth or via auth source + if pending_omniauth_registration? + user.assign_attributes permitted_params.user_register_via_omniauth + register_via_omniauth(session, user.attributes) + else + user.attributes = permitted_params.user + user.activate + user.login = session[:auth_source_registration][:login] + user.ldap_auth_source_id = session[:auth_source_registration][:ldap_auth_source_id] + + respond_for_registered_user(user) + end + end + + def register_via_omniauth(session, user_attributes) + handle_omniauth_authentication(session[:auth_source_registration], user_params: user_attributes) + end + + def handle_omniauth_authentication(auth_hash, user_params: nil) # rubocop:disable Metrics/AbcSize + call = ::Authentication::OmniauthService + .new(strategy: request.env["omniauth.strategy"], auth_hash:, controller: self) + .call(user_params) + + if call.success? + session[:omniauth_provider] = auth_hash[:provider] + flash[:notice] = call.message if call.message.present? + login_user_if_active(call.result, just_registered: call.result.just_created?) + elsif call.includes_error?(:base, :failed_to_activate) + redirect_omniauth_register_modal(call.result, auth_hash) + else + error = call.message + Rails.logger.error "Authorization request failed: #{error}" + show_error error + end + end + + def respond_for_registered_user(user) + call = ::Users::RegisterUserService.new(user).call + + if call.success? + flash[:notice] = call.message.presence + login_user_if_active(call.result, just_registered: true) + else + flash[:error] = error = call.message + Rails.logger.error "Registration of user #{user.login} failed: #{error}" + onthefly_creation_failed(user) + end + end + + # Onthefly creation failed, display the registration form to fill/fix attributes + def onthefly_creation_failed(user, auth_source_options = {}) + @user = user + session[:auth_source_registration] = auth_source_options unless auth_source_options.empty? + render action: "register" + end + + def self_registration_disabled + flash[:error] = I18n.t("account.error_self_registration_disabled") + redirect_to signin_url + end + + def account_inactive(user, flash_now: true) + if user.registered? + account_not_activated(flash_now:) + else + flash_and_log_invalid_credentials(flash_now:) + end + end + + def pending_omniauth_registration? + Hash(session[:auth_source_registration])[:omniauth] + end + + def show_error(error) + flash[:error] = error + redirect_to signin_path + end + + # Log an attempt to log in to an account in "registered" state and show a flash message. + def account_not_activated(flash_now: true) + flash_error_message(log_reason: "NOT ACTIVATED", flash_now:) do + if Setting::SelfRegistration.by_email? + "account.error_inactive_activation_by_mail" + else + "account.error_inactive_manual_activation" + end + end + end +end diff --git a/app/controllers/concerns/accounts/user_login.rb b/app/controllers/concerns/accounts/user_login.rb index 698f8280588e..4ff237cc3f88 100644 --- a/app/controllers/concerns/accounts/user_login.rb +++ b/app/controllers/concerns/accounts/user_login.rb @@ -10,4 +10,33 @@ def login_user!(user) redirect_after_login(user) end + + ## + # Log an attempt to log in to a locked account or with invalid credentials + # and show a flash message. + def flash_and_log_invalid_credentials(flash_now: true, is_logged_in: false) + if is_logged_in + flash[:error] = I18n.t(:notice_account_wrong_password) + return + end + + flash_error_message(log_reason: "invalid credentials", flash_now:) do + if Setting.brute_force_block_after_failed_logins.to_i > 0 + :notice_account_invalid_credentials_or_blocked + else + :notice_account_invalid_credentials + end + end + end + + def flash_error_message(log_reason: "", flash_now: true) + flash_hash = flash_now ? flash.now : flash + + logger.warn "Failed login for '#{params[:username]}' from #{request.remote_ip} " \ + "at #{Time.now.utc}: #{log_reason}" + + flash_message = yield + + flash_hash[:error] = I18n.t(flash_message) + end end diff --git a/app/controllers/concerns/accounts/user_password_change.rb b/app/controllers/concerns/accounts/user_password_change.rb index b6ea6e6db3e3..c4b602d7c956 100644 --- a/app/controllers/concerns/accounts/user_password_change.rb +++ b/app/controllers/concerns/accounts/user_password_change.rb @@ -61,24 +61,6 @@ def change_password_flow(user:, params:, update_legacy: true, show_user_name: fa render_password_change user, call.message, show_user_name: end - ## - # Log an attempt to log in to a locked account or with invalid credentials - # and show a flash message. - def flash_and_log_invalid_credentials(flash_now: true, is_logged_in: false) - if is_logged_in - flash[:error] = I18n.t(:notice_account_wrong_password) - return - end - - flash_error_message(log_reason: "invalid credentials", flash_now:) do - if Setting.brute_force_block_after_failed_logins.to_i > 0 - :notice_account_invalid_credentials_or_blocked - else - :notice_account_invalid_credentials - end - end - end - def render_password_change(user, message, show_user_name: false) flash[:error] = message unless message.nil? @user = user @@ -98,15 +80,4 @@ def redirect_if_password_change_not_allowed(user) end false end - - def flash_error_message(log_reason: "", flash_now: true) - flash_hash = flash_now ? flash.now : flash - - logger.warn "Failed login for '#{params[:username]}' from #{request.remote_ip} " \ - "at #{Time.now.utc}: #{log_reason}" - - flash_message = yield - - flash_hash[:error] = I18n.t(flash_message) - end end diff --git a/app/controllers/concerns/op_turbo/component_stream.rb b/app/controllers/concerns/op_turbo/component_stream.rb index 88fbf6f9abde..125a26975e87 100644 --- a/app/controllers/concerns/op_turbo/component_stream.rb +++ b/app/controllers/concerns/op_turbo/component_stream.rb @@ -73,6 +73,15 @@ def add_before_via_turbo_stream(component:, target_component:) turbo_streams << target_component.insert_as_turbo_stream(component:, view_context:, action: :before) end + def render_error_flash_message_via_turbo_stream(**kwargs) + update_flash_message_via_turbo_stream(**kwargs.merge(scheme: :danger, icon: :stop)) + end + + def update_flash_message_via_turbo_stream(message:, component: OpPrimer::FlashComponent, **) + instance = component.new(**).with_content(message) + turbo_streams << instance.render_as_turbo_stream(view_context:, action: :flash) + end + def turbo_streams @turbo_streams ||= [] end diff --git a/app/controllers/custom_styles_controller.rb b/app/controllers/custom_styles_controller.rb index e2e70eb61dfb..63d4f4b6606f 100644 --- a/app/controllers/custom_styles_controller.rb +++ b/app/controllers/custom_styles_controller.rb @@ -44,10 +44,18 @@ class CustomStylesController < ApplicationController only: UNGUARDED_ACTIONS no_authorization_required! *UNGUARDED_ACTIONS + def default_url_options + super.merge(tab: params[:tab]) + end + def show @custom_style = CustomStyle.current || CustomStyle.new @current_theme = @custom_style.theme @theme_options = options_for_theme_select + + if params[:tab].blank? + redirect_to tab: "interface" + end end def upsale; end @@ -58,7 +66,7 @@ def create redirect_to custom_style_path else flash[:error] = @custom_style.errors.full_messages - render action: :show + render action: :show, status: :unprocessable_entity end end @@ -68,7 +76,7 @@ def update redirect_to custom_style_path else flash[:error] = @custom_style.errors.full_messages - render action: :show + render action: :show, status: :unprocessable_entity end end @@ -135,11 +143,9 @@ def update_colors end def update_themes - theme = OpenProject::CustomStyles::ColorThemes.themes.find { |t| t[:theme] == params[:theme] } - call = ::Design::UpdateDesignService - .new(theme) - .call + .new(theme_from_params) + .call call.on_success do flash[:notice] = I18n.t(:notice_successful_update) @@ -149,15 +155,15 @@ def update_themes flash[:error] = call.message end - redirect_to action: :show - end - - def show_local_breadcrumb - false + redirect_to custom_style_path end private + def theme_from_params + OpenProject::CustomStyles::ColorThemes.themes.find { |t| t[:theme] == params[:theme] } + end + def options_for_theme_select options = OpenProject::CustomStyles::ColorThemes.themes.pluck(:theme) unless @current_theme.present? diff --git a/app/controllers/my_controller.rb b/app/controllers/my_controller.rb index f0d6ccdba047..e26217385d0b 100644 --- a/app/controllers/my_controller.rb +++ b/app/controllers/my_controller.rb @@ -174,13 +174,13 @@ def revoke_api_key # rubocop:disable Rails/ActionControllerFlashBeforeRender result.on_success do - flash[:primer_banner] = { message: t("my.access_token.notice_api_token_revoked") } + flash[:op_primer_flash] = { message: t("my.access_token.notice_api_token_revoked") } end result.on_failure do |r| error = r.errors.map(&:message).join("; ") Rails.logger.error("Failed to revoke api token ##{current_user.id}: #{error}") - flash[:primer_banner] = { message: t("my.access_token.failed_to_revoke_token", error:), scheme: :danger } + flash[:op_primer_flash] = { message: t("my.access_token.failed_to_revoke_token", error:), scheme: :danger } end # rubocop:enable Rails/ActionControllerFlashBeforeRender @@ -238,7 +238,7 @@ def write_settings def handle_email_changes # If mail changed, expire all other sessions - if @user.previous_changes['mail'] + if @user.previous_changes["mail"] Users::DropTokensService.new(current_user: @user).call! Sessions::DropOtherSessionsService.call!(@user, session) diff --git a/app/controllers/oauth/applications_controller.rb b/app/controllers/oauth/applications_controller.rb index e29720877e22..0d32225d584b 100644 --- a/app/controllers/oauth/applications_controller.rb +++ b/app/controllers/oauth/applications_controller.rb @@ -29,8 +29,8 @@ module OAuth class ApplicationsController < ::ApplicationController before_action :require_admin - before_action :new_app, only: %i[new create] - before_action :find_app, only: %i[edit update show destroy] + before_action :find_app, only: %i[edit update show toggle destroy] + before_action :prevent_builtin_edits, only: %i[edit update destroy] layout "admin" menu_item :oauth_applications @@ -44,26 +44,35 @@ def show flash.delete :reveal_secret end - def new; end + def new + @application = ::Doorkeeper::Application.new + end def edit; end def create - call = ::OAuth::PersistApplicationService.new(@application, user: current_user) - .call(permitted_params.oauth_application) + call = ::OAuth::Applications::CreateService.new(user: current_user) + .call(permitted_params.oauth_application) + result = call.result if call.success? flash[:notice] = t(:notice_successful_create) - flash[:_application_secret] = call.result.plaintext_secret - redirect_to action: :show, id: call.result.id + flash[:_application_secret] = result.plaintext_secret + redirect_to action: :show, id: result.id else + @application = result render action: :new end end + def toggle + @application.toggle!(:enabled) + redirect_to action: :index + end + def update - call = ::OAuth::PersistApplicationService.new(@application, user: current_user) - .call(permitted_params.oauth_application) + call = ::OAuth::Applications::UpdateService.new(model: @application, user: current_user) + .call(permitted_params.oauth_application) if call.success? flash[:notice] = t(:notice_successful_update) @@ -75,7 +84,11 @@ def update end def destroy - if @application.destroy + call = OAuth::Applications::DeleteService + .new(model: @application, user: current_user) + .call + + if call.success? flash[:notice] = t(:notice_successful_delete) else flash[:error] = t(:error_can_not_delete_entry) @@ -94,8 +107,10 @@ def show_local_breadcrumb private - def new_app - @application = ::Doorkeeper::Application.new + def prevent_builtin_edits + if @application.builtin? + render_403 + end end def find_app diff --git a/app/controllers/concerns/accounts/omniauth_login.rb b/app/controllers/omni_auth_login_controller.rb similarity index 51% rename from app/controllers/concerns/accounts/omniauth_login.rb rename to app/controllers/omni_auth_login_controller.rb index 93f36f80cc81..62e8569c492b 100644 --- a/app/controllers/concerns/accounts/omniauth_login.rb +++ b/app/controllers/omni_auth_login_controller.rb @@ -26,30 +26,27 @@ # See COPYRIGHT and LICENSE files for more details. #++ -require "uri" - -## -# Intended to be used by the AccountController to handle omniauth logins -module Accounts::OmniauthLogin - extend ActiveSupport::Concern - - included do - # disable CSRF protection since that should be covered by the omniauth strategy - # the other filters are not applicable either since OmniAuth is doing authentication - # itself - %i[ - verify_authenticity_token - user_setup - check_if_login_required - check_session_lifetime - ] - .each { |key| skip_before_action key, only: [:omniauth_login] } - no_authorization_required! :omniauth_login, :omniauth_failure - - helper :omniauth - end +class OmniAuthLoginController < ApplicationController + include OmniauthHelper + include Accounts::Registration + include Accounts::UserLogin + + # disable CSRF protection since that should be covered by the omniauth strategy + # the other filters are not applicable either since OmniAuth is doing authentication + # itself + + skip_before_action :verify_authenticity_token + skip_before_action :user_setup + skip_before_action :check_if_login_required + skip_before_action :check_session_lifetime + + no_authorization_required! :callback, :failure - def omniauth_login + helper :omniauth + + layout "no_menu" + + def callback params[:back_url] = omniauth_back_url if remember_back_url? # Extract auth info and perform check / login or activate user @@ -57,28 +54,34 @@ def omniauth_login handle_omniauth_authentication(auth_hash) end - def omniauth_failure - logger.warn(params[:message]) if params[:message] - show_error I18n.t(:error_external_authentication_failed) + def failure + log_omniauth_failure + show_error I18n.t(:error_external_authentication_failed_message, message: omniauth_error) end - def direct_login_provider_url(params = {}) - omniauth_start_url(direct_login_provider, params) + private + + def log_omniauth_failure + type = request.env["omniauth.error.type"] || "internal" + logger.warn "OmniAuth authentication failed (Error #{type}): #{omniauth_error}" end - private + def omniauth_error + message = request.env["omniauth.error"] || request.env["omniauth.error.type"] || request.env["omniauth.error.message"] + message&.to_s || "Unknown error" + end def redirect_omniauth_register_modal(user, auth_hash) # Store a timestamp so we can later make sure that authentication information can # only be reused for a short time. - session_info = auth_hash.merge(omniauth: true, timestamp: Time.new) - - onthefly_creation_failed(user, session_info) + session[:auth_source_registration] = auth_hash.merge(omniauth: true, timestamp: Time.current) + @user = user + render template: "/account/register" end # Avoid remembering the back_url if we're coming from the login page def remember_back_url? - return if omniauth_back_url.blank? + return false if omniauth_back_url.blank? account_routes = /\/(login|account)/ omniauth_direct_login? || !omniauth_back_url.match?(account_routes) @@ -90,30 +93,5 @@ def omniauth_back_url request.env["omniauth.origin"].presence || params[:RelayState] end - def show_error(error) - flash[:error] = error - redirect_to action: "login" - end - - def register_via_omniauth(session, user_attributes) - handle_omniauth_authentication(session[:auth_source_registration], user_params: user_attributes) - end - - def handle_omniauth_authentication(auth_hash, user_params: nil) - call = ::Authentication::OmniauthService - .new(strategy: request.env["omniauth.strategy"], auth_hash:, controller: self) - .call(user_params) - - if call.success? - session[:omniauth_provider] = auth_hash[:provider] - flash[:notice] = call.message if call.message.present? - login_user_if_active(call.result, just_registered: call.result.just_created?) - elsif call.includes_error?(:base, :failed_to_activate) - redirect_omniauth_register_modal(call.result, auth_hash) - else - error = call.message - Rails.logger.error "Authorization request failed: #{error}" - show_error error - end - end + def default_breadcrumb; end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 277bdfdb2984..cca50ade55b8 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -74,7 +74,7 @@ def index # rubocop:disable Format/AbcSize ) replace_via_turbo_stream(component: Projects::TableComponent.new(query: @query, current_user:, params:)) - current_url = url_for(params.permit(:conroller, :action, :query_id, :filters, :columns, :sortBy, :page, :per_page)) + current_url = url_for(params.permit(:controller, :action, :query_id, :filters, :columns, :sortBy, :page, :per_page)) turbo_streams << turbo_stream.push_state(current_url) turbo_streams << turbo_stream.turbo_frame_set_src( "projects_sidemenu", diff --git a/app/controllers/roles_controller.rb b/app/controllers/roles_controller.rb index 8ef5d825ae5b..d4c2e0d08fbb 100644 --- a/app/controllers/roles_controller.rb +++ b/app/controllers/roles_controller.rb @@ -97,7 +97,7 @@ def destroy def report @roles = roles_scope - @permissions = OpenProject::AccessControl.permissions.reject(&:public?) + @permissions = visible_permissions end def bulk_update @@ -110,7 +110,7 @@ def bulk_update redirect_to action: "index" else @calls = calls - @permissions = OpenProject::AccessControl.permissions.reject(&:public?) + @permissions = visible_permissions render action: "report" end end @@ -139,6 +139,12 @@ def bulk_update_roles(roles) end end + def visible_permissions + OpenProject::AccessControl.permissions + .reject(&:public?) + .filter(&:visible?) + end + def roles_scope Role.visible.ordered_by_builtin_and_position end diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index 2041400006d2..fa15c4ef341a 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -91,7 +91,7 @@ def show_local_breadcrumb def recompute_progress_values attributes_triggering_recomputing = ["excluded_from_totals"] - attributes_triggering_recomputing << "default_done_ratio" if WorkPackage.use_status_for_done_ratio? + attributes_triggering_recomputing << "default_done_ratio" if WorkPackage.status_based_mode? changes = @status.previous_changes.slice(*attributes_triggering_recomputing) return if changes.empty? diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 4e97b53cb491..95538c1a28ca 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -261,10 +261,10 @@ def history def diff if (@diff = @page.diff(params[:version_to], params[:version_from])) - @html_diff = HTMLDiff::DiffBuilder.new( - helpers.format_text(@diff.content_from.data.text, disable_macro_expansion: true), - helpers.format_text(@diff.content_to.data.text, disable_macro_expansion: true) - ).build + @html_diff = OpenProject::HtmlDiff.from_markdown( + @diff.content_from.data.text, + @diff.content_to.data.text + ) else render_404 end diff --git a/app/controllers/work_packages/progress_controller.rb b/app/controllers/work_packages/progress_controller.rb index 3d1831c70f49..1c77c880417d 100644 --- a/app/controllers/work_packages/progress_controller.rb +++ b/app/controllers/work_packages/progress_controller.rb @@ -37,24 +37,18 @@ class WorkPackages::ProgressController < ApplicationController layout false authorization_checked! :new, :edit, :create, :update - helper_method :modal_class - def new make_fake_initial_work_package set_progress_attributes_to_work_package - render modal_class.new(@work_package, - focused_field: params[:field], - touched_field_map:) + render progress_modal_component end def edit find_work_package set_progress_attributes_to_work_package - render modal_class.new(@work_package, - focused_field: params[:field], - touched_field_map:) + render progress_modal_component end # rubocop:disable Metrics/AbcSize @@ -71,13 +65,11 @@ def create # Angular has context as to the success or failure of # the request in order to fetch the new set of Work Package # attributes in the ancestry solely on success. - render :update, status: :unprocessable_entity + render turbo_stream: [ + turbo_stream.morph("work_package_progress_modal", progress_modal_component) + ], status: :unprocessable_entity end end - # following 3 lines to be removed in 15.0 with :percent_complete_edition feature flag removal - elsif !OpenProject::FeatureDecisions.percent_complete_edition_active? - render json: { estimatedTime: formatted_duration(@work_package.estimated_hours), - remainingTime: formatted_duration(@work_package.remaining_hours) } else render json: { estimatedTime: formatted_duration(@work_package.estimated_hours), remainingTime: formatted_duration(@work_package.remaining_hours), @@ -95,7 +87,9 @@ def update if service_call.success? respond_to do |format| - format.turbo_stream + format.turbo_stream do + render turbo_stream: [] + end end else respond_to do |format| @@ -104,7 +98,9 @@ def update # Angular has context as to the success or failure of # the request in order to fetch the new set of Work Package # attributes in the ancestry solely on success. - render :update, status: :unprocessable_entity + render turbo_stream: [ + turbo_stream.morph("work_package_progress_modal", progress_modal_component) + ], status: :unprocessable_entity end end end @@ -112,14 +108,22 @@ def update private + def progress_modal_component + modal_class.new(@work_package, focused_field:, touched_field_map:) + end + def modal_class - if WorkPackage.use_status_for_done_ratio? + if WorkPackage.status_based_mode? WorkPackages::Progress::StatusBased::ModalBodyComponent else WorkPackages::Progress::WorkBased::ModalBodyComponent end end + def focused_field + params[:field] + end + def find_work_package @work_package = WorkPackage.visible.find(params[:work_package_id]) end @@ -153,11 +157,8 @@ def allowed_touched_params end def allowed_params - if WorkPackage.use_status_for_done_ratio? + if WorkPackage.status_based_mode? %i[estimated_hours status_id] - # two next lines to be removed in 15.0 with :percent_complete_edition feature flag removal - elsif !OpenProject::FeatureDecisions.percent_complete_edition_active? - %i[estimated_hours remaining_hours] else %i[estimated_hours remaining_hours done_ratio] end diff --git a/app/forms/application_form.rb b/app/forms/application_form.rb new file mode 100644 index 000000000000..4438a280917e --- /dev/null +++ b/app/forms/application_form.rb @@ -0,0 +1,42 @@ +# 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 ApplicationForm < Primer::Forms::Base + def self.settings_form + form do |f| + f = SettingsFormDecorator.new(f) + yield f + end + end + + def url_helpers + Rails.application.routes.url_helpers + end +end diff --git a/app/forms/projects/custom_fields/custom_field_mapping_form.rb b/app/forms/projects/custom_fields/custom_field_mapping_form.rb index cda7e1c10e42..f637ea059934 100644 --- a/app/forms/projects/custom_fields/custom_field_mapping_form.rb +++ b/app/forms/projects/custom_fields/custom_field_mapping_form.rb @@ -44,7 +44,7 @@ class CustomFieldMappingForm < ApplicationForm multiple: true, dropdownPosition: "bottom", disabledProjects: projects_with_custom_field_mapping, - inputName: "project_custom_field_project_mapping[project_ids]" + inputName: "#{input_name}[project_ids]" } ) @@ -73,10 +73,18 @@ def project_ids_error_message end def projects_with_custom_field_mapping - ProjectCustomFieldProjectMapping + join_table .where(custom_field_id: @project_mapping.custom_field_id) .pluck(:project_id) .to_h { |id| [id, id] } end + + def join_table + @project_mapping.class + end + + def input_name + join_table.model_name.singular + end end end diff --git a/app/forms/settings_form_decorator.rb b/app/forms/settings_form_decorator.rb new file mode 100644 index 000000000000..d7601d7816f5 --- /dev/null +++ b/app/forms/settings_form_decorator.rb @@ -0,0 +1,200 @@ +# 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. +#++ + +# Decorates a form object to provide a more convenient interface for +# rendering settings. +# +# It automatically sets the label, value, and disabled properties from the +# setting name and its definition attributes. +class SettingsFormDecorator + attr_reader :form + + # Initializes a new SettingsFormDecorator + # + # @param form [Object] The form object to be decorated + def initialize(form) + @form = form + end + + def method_missing(method, ...) + form.send(method, ...) + end + + def respond_to_missing?(method, include_private = false) + form.respond_to?(method, include_private) + end + + # Creates a text field input for a setting. + # + # The text field label is set from translating the key "setting_". + # + # Any options passed to this method will override the default options. + # + # @param name [Symbol] The name of the setting + # @param options [Hash] Additional options for the text field + # @return [Object] The text field input + def text_field(name:, **options) + options.reverse_merge!( + label: setting_label(name), + value: setting_value(name), + disabled: setting_disabled?(name) + ) + form.text_field(name:, **options) + end + + # Creates a check box input for a setting. + # + # The check box label is set from translating the key "setting_". + # + # Any options passed to this method will override the default options. + # + # @param name [Symbol] The name of the setting + # @param options [Hash] Additional options for the check box + # @return [Object] The check box input + def check_box(name:, **options) + options.reverse_merge!( + label: setting_label(name), + checked: setting_value(name), + disabled: setting_disabled?(name) + ) + form.check_box(name:, **options) + end + + # Creates a radio button group for a setting. + # + # The radio button group label is set from translating the key + # "setting_". The radio button label are set from translating the + # key "setting__". The caption is set from translating the + # key "setting___caption_html", which will be rendered as HTML, + # or "setting___caption", or nothing if none of the above + # are defined. + # + # Any options passed to this method will override the default options. + # + # @param name [Symbol] The name of the setting + # @param values [Array] The values for the radio buttons. Default to the + # setting's allowed values. + # @param disabled [Boolean] Force the radio button group to be disabled when + # true, will be disabled if the setting is not writable when false (default) + # @param button_options [Hash] Options for individual radio buttons + # @param options [Hash] Additional options for the radio button group + # @return [Object] The radio button group + def radio_button_group(name:, values: [], disabled: false, button_options: {}, **options) + values = values.presence || setting_allowed_values(name) + radio_group_options = options.reverse_merge( + label: setting_label(name), + disabled: disabled || setting_disabled?(name) + ) + form.radio_button_group( + name:, + **radio_group_options + ) do |radio_group| + values.each do |value| + radio_group.radio_button( + **button_options.reverse_merge( + value:, + checked: setting_value(name) == value, + autocomplete: "off", + label: setting_label(name, value), + caption: setting_caption(name, value) + ) + ) + end + end + end + + # Creates a save button to submit the form + # + # @return [Object] The submit button + def submit + form.submit(name: "submit", + label: I18n.t("button_save"), + scheme: :primary) + end + + protected + + # Returns a translated string for a setting name. + # + # The translation key is "setting_". Add additional names to the key + # to allow for translations with more context: + # "setting____...". + # + # @param names [Array] The name(s) of the setting + # @return [String] The translated label + def setting_label(*names) + I18n.t("setting_#{names.join('_')}") + end + + # Generates an HTML-safe caption for a setting. + # + # The translation key is "setting__caption". If not present, it will + # return nil. + # + # The translation will be marked as html_safe automatically if it ends with + # "_html", allowing to have HTML in the caption. + # + # Add additional names to the key to allow for translations with more context: + # "setting___caption_html" for instance. + # + # @param names [Array] The name(s) of the setting + # @return [String] The translated HTML-safe caption + def setting_caption(*names) + I18n.t("setting_#{names.join('_')}_caption_html", default: nil)&.html_safe \ + || I18n.t("setting_#{names.join('_')}_caption", default: nil) + end + + # Retrieves the current value of a setting + # + # @param name [Symbol] The name of the setting + # @return [Object] The value of the setting + def setting_value(name) + Setting[name] + end + + # Retrieves the allowed values for a setting's definition + # + # @param name [Symbol] The name of the setting + # @return [Array] The allowed values for the setting + def setting_allowed_values(name) + Settings::Definition[name].allowed + end + + # Checks if a setting is disabled. + # + # Any non-writable setting set by environment variables will be considered + # disabled. + # + # @param name [Symbol] The name of the setting + # @return [Boolean] `true` if the setting is disabled, `false` otherwise + def setting_disabled?(name) + !Setting.send(:"#{name}_writable?") + end +end diff --git a/app/forms/work_packages/pre_14_4_progress_form.rb b/app/forms/work_packages/pre_14_4_progress_form.rb deleted file mode 100644 index 2127f3fdb343..000000000000 --- a/app/forms/work_packages/pre_14_4_progress_form.rb +++ /dev/null @@ -1,213 +0,0 @@ -# -- copyright -# OpenProject is an open source project management software. -# Copyright (C) 2010-2024 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. -# ++ - -# This file can be safely deleted once the feature flag :percent_complete_edition -# is removed, which should happen for OpenProject 15.0 release. -# -# Copied from commit 109b135b and modified to have the [work_package][initial] -# data needed by progress_controller -class WorkPackages::Pre144ProgressForm < ApplicationForm - ## - # Primer::Forms::BaseComponent or ApplicationForm will always autofocus the - # first input field with an error present on it. Despite this behavior being - # a11y-friendly, it breaks the modal's UX when an invalid input field - # is rendered. - # - # The reason for this is since we're implementing a "format on blur", when - # we make a request to the server that will set an input field in an invalid - # state and it is returned as such, any time we blur this autofocused field, - # we'll perform another request that will still have the input in an invalid - # state causing it to autofocus again and preventing us from leaving this - # "limbo state". - ## - def before_render - # no-op - end - - attr_reader :work_package, :mode - - def initialize(work_package:, - mode: :work_based, - focused_field: :remaining_hours, - touched_field_map: {}) - super() - - @work_package = work_package - @mode = mode - @focused_field = focused_field_by_selection(focused_field) - @touched_field_map = touched_field_map - ensure_only_one_error_for_remaining_work_exceeding_work - end - - form do |query_form| - query_form.group(layout: :horizontal) do |group| - if mode == :status_based - select_field_options = { name: :status_id, label: I18n.t(:label_percent_complete) }.tap do |options| - options.reverse_merge!(default_field_options(:status_id)) - options.merge!(disabled: @work_package.new_record?) - end - - group.select_list(**select_field_options) do |select_list| - WorkPackages::UpdateContract.new(@work_package, User.current) - .assignable_statuses - .find_each do |status| - select_list.option( - label: "#{status.name} (#{status.default_done_ratio}%)", - value: status.id - ) - end - end - - render_text_field(group, name: :estimated_hours, label: I18n.t(:label_work)) - render_readonly_text_field(group, name: :remaining_hours, label: I18n.t(:label_remaining_work)) - - # Add a hidden field in create forms as the select field is disabled and is otherwise not included in the form payload - group.hidden(name: :status_id) if @work_package.new_record? - - group.hidden(name: :status_id_touched, - value: @touched_field_map["status_id_touched"] || false, - data: { "work-packages--progress--touched-field-marker-target": "touchedFieldInput", - "referrer-field": "work_package[status_id]" }) - group.hidden(name: :estimated_hours_touched, - value: @touched_field_map["estimated_hours_touched"] || false, - data: { "work-packages--progress--touched-field-marker-target": "touchedFieldInput", - "referrer-field": "work_package[estimated_hours]" }) - else - render_text_field(group, name: :estimated_hours, label: I18n.t(:label_work)) - render_text_field(group, name: :remaining_hours, label: I18n.t(:label_remaining_work), - disabled: disabled_remaining_work_field?) - render_readonly_text_field(group, name: :done_ratio, label: I18n.t(:label_percent_complete)) - - group.hidden(name: :estimated_hours_touched, - value: @touched_field_map["estimated_hours_touched"] || false, - data: { "work-packages--progress--touched-field-marker-target": "touchedFieldInput", - "referrer-field": "work_package[estimated_hours]" }) - group.hidden(name: :remaining_hours_touched, - value: @touched_field_map["remaining_hours_touched"] || false, - data: { "work-packages--progress--touched-field-marker-target": "touchedFieldInput", - "referrer-field": "work_package[remaining_hours]" }) - end - group.fields_for(:initial) do |builder| - ::WorkPackages::ProgressForm::InitialValuesForm.new(builder, work_package:, mode:) - end - end - end - - private - - def ensure_only_one_error_for_remaining_work_exceeding_work - if work_package.errors.added?(:remaining_hours, :cant_exceed_work) && - work_package.errors.added?(:estimated_hours, :cant_be_inferior_to_remaining_work) - error_to_delete = - if @focused_field == :estimated_hours - :remaining_hours - else - :estimated_hours - end - work_package.errors.delete(error_to_delete) - end - end - - def focused_field_by_selection(field) - if field == :remaining_hours && disabled_remaining_work_field? - :estimated_hours - else - field - end - end - - def render_text_field(group, - name:, - label:, - disabled: false, - placeholder: nil) - text_field_options = { - name:, - value: field_value(name), - label:, - disabled:, - placeholder: - } - text_field_options.reverse_merge!(default_field_options(name)) - - group.text_field(**text_field_options) - end - - def render_readonly_text_field(group, - name:, - label:, - disabled: false, - placeholder: true) - text_field_options = { - name:, - value: field_value(name), - label:, - readonly: true, - disabled:, - classes: "input--readonly", - placeholder: ("-" if placeholder) - } - text_field_options.reverse_merge!(default_field_options(name)) - - group.text_field(**text_field_options) - end - - def field_value(name) - errors = @work_package.errors.where(name) - if (user_value = errors.map { |error| error.options[:value] }.find { !_1.nil? }) - user_value - elsif name == :done_ratio - format_to_smallest_fractional_part(@work_package.public_send(name)) - else - DurationConverter.output(@work_package.public_send(name)) - end - end - - def format_to_smallest_fractional_part(number) - return number if number.nil? - - number % 1 == 0 ? number.to_i : number - end - - def default_field_options(name) - data = { "work-packages--progress--preview-progress-target": "progressInput", - "work-packages--progress--touched-field-marker-target": "progressInput", - action: "input->work-packages--progress--touched-field-marker#markFieldAsTouched" } - - if @focused_field == name - data[:"work-packages--progress--focus-field-target"] = "fieldToFocus" - end - { data: } - end - - # Remaining work field is enabled when work is set, or when there are errors - # on fields so that they can be corrected. - def disabled_remaining_work_field? - @work_package.estimated_hours.nil? && @work_package.errors.empty? - end -end diff --git a/app/forms/work_packages/progress_form.rb b/app/forms/work_packages/progress_form.rb index 61eecfa284b5..5c9e82679446 100644 --- a/app/forms/work_packages/progress_form.rb +++ b/app/forms/work_packages/progress_form.rb @@ -151,6 +151,7 @@ def readonly_text_field(group, name:, value: field_value(name), label:, + caption: field_hint_message(name), readonly: true, classes: "input--readonly", placeholder: ("-" if placeholder) @@ -162,8 +163,8 @@ def readonly_text_field(group, def hidden_touched_field(group, name:) group.hidden(name: :"#{name}_touched", value: touched(name), - data: { "work-packages--progress--touched-field-marker-target": "touchedFieldInput", - "referrer-field": "work_package[#{name}]" }) + data: { "work-packages--progress--preview-target": "touchedFieldInput", + "referrer-field": name }) end def touched(name) @@ -182,10 +183,7 @@ def field_value(name) end def field_hint_message(field_name) - hint = work_package.derived_progress_hints[field_name] - return if hint.nil? - - I18n.t("work_package.progress.derivation_hints.#{field_name}.#{hint}") + work_package.derived_progress_hint(field_name)&.message end def validation_message(name) @@ -199,12 +197,11 @@ def as_percent(value) end def default_field_options(name) - data = { "work-packages--progress--preview-progress-target": "progressInput", - "work-packages--progress--touched-field-marker-target": "progressInput", - action: "input->work-packages--progress--touched-field-marker#markFieldAsTouched" } + data = { "work-packages--progress--preview-target": "progressInput", + action: "work-packages--progress--preview#markFieldAsTouched" } if @focused_field == name - data[:"work-packages--progress--focus-field-target"] = "fieldToFocus" + data[:focus] = "true" end { data: } end diff --git a/app/forms/work_packages/progress_form/initial_values_form.rb b/app/forms/work_packages/progress_form/initial_values_form.rb index 6ffe9618b536..16217e53214a 100644 --- a/app/forms/work_packages/progress_form/initial_values_form.rb +++ b/app/forms/work_packages/progress_form/initial_values_form.rb @@ -45,9 +45,6 @@ def initialize(work_package:, else hidden_initial_field(form, name: :estimated_hours) hidden_initial_field(form, name: :remaining_hours) - # next line to be removed in 15.0 with :percent_complete_edition feature flag removal - next unless OpenProject::FeatureDecisions.percent_complete_edition_active? - hidden_initial_field(form, name: :done_ratio) end end @@ -57,8 +54,8 @@ def initialize(work_package:, def hidden_initial_field(form, name:) form.hidden(name:, value: work_package.public_send(:"#{name}_was"), - data: { "work-packages--progress--touched-field-marker-target": "initialValueInput", - "referrer-field": "work_package[#{name}]" }) + data: { "work-packages--progress--preview-target": "initialValueInput", + "referrer-field": name }) end end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 85cea8735937..fbeabfd68b2e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -33,6 +33,7 @@ module ApplicationHelper include OpenProject::TextFormatting include OpenProject::ObjectLinking include OpenProject::SafeParams + include OpPrimer::FormHelpers include I18n include ERB::Util include Redmine::I18n @@ -63,7 +64,7 @@ def link_to_if_authorized(*args, &) html_options = args.shift parameters_for_method_reference = args - return unless authorize_for(options[:controller] || params[:controller], options[:action]) + return unless authorize_for(options[:controller] || controller_path, options[:action]) if block_given? link_to(options, html_options, *parameters_for_method_reference, &) @@ -179,13 +180,13 @@ def html_hours(text) def html_safe_gsub(string, *gsub_args, &) html_safe = string.html_safe? - string.gsub(*gsub_args, &) + result = string.gsub(*gsub_args, &) # We only mark the string as safe if the previous string was already safe if html_safe - string.html_safe # rubocop:disable Rails/OutputSafety + result.html_safe # rubocop:disable Rails/OutputSafety else - string + result end end @@ -241,11 +242,11 @@ def other_formats_links(&) # Returns the theme, controller name, and action as css classes for the # HTML body. def body_css_classes - css = ["theme-" + OpenProject::CustomStyles::Design.identifier.to_s] + css = ["theme-#{OpenProject::CustomStyles::Design.identifier}"] - if params[:controller] && params[:action] - css << ("controller-" + params[:controller]) - css << ("action-" + params[:action]) + if controller_path && action_name + css << ("controller-#{controller_path}") + css << ("action-#{action_name}") end css << "ee-banners-#{EnterpriseToken.show_banners? ? 'visible' : 'hidden'}" diff --git a/app/helpers/custom_styles_helper.rb b/app/helpers/custom_styles_helper.rb index 3e5ed2446468..86d1b6519c88 100644 --- a/app/helpers/custom_styles_helper.rb +++ b/app/helpers/custom_styles_helper.rb @@ -27,6 +27,29 @@ #++ module CustomStylesHelper + def design_tabs + [ + { + name: "interface", + partial: "custom_styles/interface", + path: custom_style_path(tab: :interface), + label: t(:"admin.custom_styles.tab_interface") + }, + { + name: "branding", + partial: "custom_styles/branding", + path: custom_style_path(tab: :branding), + label: t(:"admin.custom_styles.tab_branding") + }, + { + name: "pdf_export_styles", + partial: "custom_styles/pdf_export_styles", + path: custom_style_path(tab: :pdf_export_styles), + label: t(:"admin.custom_styles.tab_pdf_export_styles") + } + ] + end + def apply_custom_styles?(skip_ee_check: OpenProject::Configuration.bim?) # Apply custom styles either if EE allows OR we are on a BIM edition with the BIM theme active. CustomStyle.current.present? && diff --git a/app/helpers/flash_messages_helper.rb b/app/helpers/flash_messages_helper.rb index d05d75608864..0e8b668c9352 100644 --- a/app/helpers/flash_messages_helper.rb +++ b/app/helpers/flash_messages_helper.rb @@ -34,26 +34,10 @@ module FlashMessagesHelper include FlashMessagesOutputSafetyHelper end - def render_primer_banner_message? - flash[:primer_banner].present? - end - - def render_primer_banner_message - return unless render_primer_banner_message? - - render(BannerMessageComponent.new(**flash[:primer_banner].to_hash)) - end - - # Primer's flash message component wrapped in a component which is empty initially but can be updated via turbo stream - def render_streameable_primer_banner_message - render(FlashMessageComponent.new) - end - # Renders flash messages def render_flash_messages - return if render_primer_banner_message? - messages = flash + .reject { |k, _| k.to_s == "op_primer_flash" } .reject { |k, _| k.start_with? "_" } .map do |k, v| if k.to_sym == :modal diff --git a/app/helpers/omniauth_helper.rb b/app/helpers/omniauth_helper.rb index f716e973de81..9045ebd43648 100644 --- a/app/helpers/omniauth_helper.rb +++ b/app/helpers/omniauth_helper.rb @@ -31,6 +31,10 @@ def omniauth_direct_login? direct_login_provider.is_a? String end + def direct_login_provider_url(params = {}) + omni_auth_start_url(direct_login_provider, params) + end + ## # Per default the user may choose the usual password login as well as several omniauth providers # on the login page and in the login drop down menu. diff --git a/app/helpers/pagination_helper.rb b/app/helpers/pagination_helper.rb index 7792aca72f6d..c8a53aaadc42 100644 --- a/app/helpers/pagination_helper.rb +++ b/app/helpers/pagination_helper.rb @@ -111,25 +111,18 @@ def per_page_links(paginator, options) # Prefers page over the other two and # calculates page in it's absence based on limit and offset. # Return 1 if all else fails. - def page_param(options = params) page = if options[:page] - options[:page].to_i - elsif options[:offset] && options[:limit] - begin # + 1 as page is not 0 but 1 based (options[:offset].to_i / per_page_param(options)) + 1 rescue ZeroDivisionError 1 end - else - 1 - end if page > 0 @@ -141,12 +134,11 @@ def page_param(options = params) # Returns per_page option used for pagination # based on: - # * per_page session value # * per_page options value + # * per_page session value # * limit options value # in that order # Return smallest possible setting if all else fails. - def per_page_param(options = params) per_page_candidates = [options[:per_page].to_i, session[:per_page].to_i, options[:limit].to_i] diff --git a/modules/meeting/app/controllers/concerns/application_component_streams.rb b/app/helpers/primerized_flash_helper.rb similarity index 78% rename from modules/meeting/app/controllers/concerns/application_component_streams.rb rename to app/helpers/primerized_flash_helper.rb index 1d4b1b854704..ffe46356ab35 100644 --- a/modules/meeting/app/controllers/concerns/application_component_streams.rb +++ b/app/helpers/primerized_flash_helper.rb @@ -25,19 +25,19 @@ # # See COPYRIGHT and LICENSE files for more details. #++ +# -module ApplicationComponentStreams +module PrimerizedFlashHelper extend ActiveSupport::Concern - included do - def render_error_flash_message_via_turbo_stream(**kwargs) - update_flash_message_via_turbo_stream(**kwargs.merge(scheme: :danger, icon: :stop)) - end + def render_primerized_flash + return if flash[:op_primer_flash].blank? + + system_arguments = flash[:op_primer_flash] + message = system_arguments.delete(:message) - def update_flash_message_via_turbo_stream(**) - replace_via_turbo_stream( - component: FlashMessageComponent.new(**) - ) + render(OpPrimer::FlashComponent.new(**system_arguments)) do + message end end end diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index d34f4aab9b42..33f22971aeb5 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -32,39 +32,12 @@ module SettingsHelper extend self include OpenProject::FormTagHelper - def system_settings_tabs - [ - { - name: "general", - controller: "/admin/settings/general_settings", - label: :label_general - }, - { - name: "languages", - controller: "/admin/settings/languages_settings", - label: :label_languages - }, - { - name: "projects", - controller: "/admin/settings/projects_settings", - label: :label_project_plural - }, - { - name: "repositories", - controller: "/admin/settings/repositories_settings", - label: :label_repository_plural - }, - { - name: "experimental", - controller: "/admin/settings/experimental_settings", - label: :label_experimental - } - ] - end - def setting_select(setting, choices, options = {}) - if blank_text = options.delete(:blank) - choices = [[blank_text.is_a?(Symbol) ? I18n.t(blank_text) : blank_text, ""]] + choices + blank_text = options.delete(:blank) + + if blank_text + translated_blank = blank_text.is_a?(Symbol) ? I18n.t(blank_text) : blank_text + choices.unshift([translated_blank, ""]) end setting_label(setting, options) + diff --git a/app/helpers/wiki_helper.rb b/app/helpers/wiki_helper.rb index 8be019496d02..897db6b44830 100644 --- a/app/helpers/wiki_helper.rb +++ b/app/helpers/wiki_helper.rb @@ -58,10 +58,6 @@ def breadcrumb_for_page(page, action = nil) breadcrumb_paths(*paths) end - def nl2br(content) - content.gsub(/(?:\n\r?|\r\n?)/, "
").html_safe - end - private def wiki_page_options_for_select_of_level(pages, diff --git a/app/helpers/work_packages/split_view_helper.rb b/app/helpers/work_packages/split_view_helper.rb index b4e80d882d51..5f82668bd199 100644 --- a/app/helpers/work_packages/split_view_helper.rb +++ b/app/helpers/work_packages/split_view_helper.rb @@ -1,10 +1,6 @@ module WorkPackages::SplitViewHelper - def optional_work_package_split_view - return unless params[:work_package_split_view] - - content_for :content_body_right do - render split_view_instance - end + def render_work_package_split_view? + params[:work_package_split_view].present? end def split_view_instance diff --git a/app/models/custom_actions/actions/done_ratio.rb b/app/models/custom_actions/actions/done_ratio.rb index 894b22d0ee53..52bad025bc87 100644 --- a/app/models/custom_actions/actions/done_ratio.rb +++ b/app/models/custom_actions/actions/done_ratio.rb @@ -46,7 +46,7 @@ def maximum end def self.all - if WorkPackage.use_field_for_done_ratio? + if WorkPackage.work_based_mode? super else [] diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb index e8ba5ecaa3cd..076d972709d4 100644 --- a/app/models/custom_field.rb +++ b/app/models/custom_field.rb @@ -69,6 +69,9 @@ def uniqueness_of_name_with_scope validates :min_length, numericality: { less_than_or_equal_to: :max_length, message: :smaller_than_or_equal_to_max_length }, unless: Proc.new { |cf| cf.max_length.blank? } + validates :multi_value, absence: true, unless: :multi_value_possible? + validates :allow_non_open_versions, absence: true, unless: :allow_non_open_versions_possible? + before_validation :check_searchability after_destroy :destroy_help_text @@ -265,6 +268,10 @@ def list? field_format == "list" end + def user? + field_format == "user" + end + def version? field_format == "version" end @@ -277,22 +284,12 @@ def boolean? field_format == "bool" end - def multi_value? - multi_value - end - def multi_value_possible? - %w[version user list].include?(field_format) && - [ProjectCustomField, WorkPackageCustomField, TimeEntryCustomField, VersionCustomField].include?(self.class) - end - - def allow_non_open_versions? - allow_non_open_versions + version? || user? || list? end def allow_non_open_versions_possible? - version? && - [ProjectCustomField, WorkPackageCustomField, TimeEntryCustomField, VersionCustomField].include?(self.class) + version? end ## diff --git a/app/models/custom_field/order_statements.rb b/app/models/custom_field/order_statements.rb index e13a19a9f306..c4be1d1fc81c 100644 --- a/app/models/custom_field/order_statements.rb +++ b/app/models/custom_field/order_statements.rb @@ -38,12 +38,8 @@ def order_statements else [select_custom_option_position] end - when "string", "text", "date", "bool", "link" - if multi_value? - [select_custom_values_as_group] - else - [coalesce_select_custom_value_as_string] - end + when "string", "date", "bool", "link" + [coalesce_select_custom_value_as_string] when "int", "float" # Make the database cast values into numeric # Postgresql will raise an error if a value can not be casted! diff --git a/app/models/exports/concerns/csv.rb b/app/models/exports/concerns/csv.rb index cc1c7b59e542..859e6e0ccaa6 100644 --- a/app/models/exports/concerns/csv.rb +++ b/app/models/exports/concerns/csv.rb @@ -53,7 +53,7 @@ def success(serialized) ::Exports::Result .new format: :csv, title: csv_export_filename, - content: serialized, + content: "\xEF\xBB\xBF#{serialized}", # Make Excel open CSV happy by append UTF8 BOM mime_type: "text/csv" end diff --git a/app/models/journal.rb b/app/models/journal.rb index d393198b9132..6a004db89db5 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -77,6 +77,7 @@ class Journal < ApplicationRecord progress_mode_changed_to_status_based status_changed system_update + total_percent_complete_mode_changed_to_work_weighted_average work_package_children_changed_times work_package_parent_changed_times work_package_predecessor_changed_times diff --git a/app/models/journal/caused_by_total_percent_complete_mode_changed_to_simple_average.rb b/app/models/journal/caused_by_total_percent_complete_mode_changed_to_simple_average.rb new file mode 100644 index 000000000000..2adcf77163df --- /dev/null +++ b/app/models/journal/caused_by_total_percent_complete_mode_changed_to_simple_average.rb @@ -0,0 +1,33 @@ +#-- 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 Journal::CausedByTotalPercentCompleteModeChangedToSimpleAverage < CauseOfChange::Base + def initialize + super("total_percent_complete_mode_changed_to_simple_average") + end +end diff --git a/app/models/journal/caused_by_total_percent_complete_mode_changed_to_work_weighted_average.rb b/app/models/journal/caused_by_total_percent_complete_mode_changed_to_work_weighted_average.rb new file mode 100644 index 000000000000..b1d2ce41a29c --- /dev/null +++ b/app/models/journal/caused_by_total_percent_complete_mode_changed_to_work_weighted_average.rb @@ -0,0 +1,33 @@ +#-- 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 Journal::CausedByTotalPercentCompleteModeChangedToWorkWeightedAverage < CauseOfChange::Base + def initialize + super("total_percent_complete_mode_changed_to_work_weighted_average") + end +end diff --git a/app/models/permitted_params.rb b/app/models/permitted_params.rb index 6507f0ae91dc..944f962afaa4 100644 --- a/app/models/permitted_params.rb +++ b/app/models/permitted_params.rb @@ -549,6 +549,7 @@ def self.permitted_attributes :name, :redirect_uri, :confidential, + :enabled, :client_credentials_user_id, { scopes: [] } ], diff --git a/app/models/projects/exports/query_exporter.rb b/app/models/projects/exports/query_exporter.rb index a26d2ec7e69e..e4a110afd9bf 100644 --- a/app/models/projects/exports/query_exporter.rb +++ b/app/models/projects/exports/query_exporter.rb @@ -32,7 +32,7 @@ class QueryExporter < Exports::Exporter alias :query :object def columns - @columns ||= (forced_columns + selected_columns) + @columns ||= selected_columns end def page @@ -51,13 +51,6 @@ def projects private - def forced_columns - [ - { name: :id, caption: Project.human_attribute_name(:id) }, - { name: :identifier, caption: Project.human_attribute_name(:identifier) } - ] - end - def selected_columns query .selects diff --git a/app/models/projects/scopes/available_custom_fields.rb b/app/models/projects/scopes/available_custom_fields.rb index 8d5860250afb..e8a18cbd97be 100644 --- a/app/models/projects/scopes/available_custom_fields.rb +++ b/app/models/projects/scopes/available_custom_fields.rb @@ -32,20 +32,30 @@ module AvailableCustomFields class_methods do def with_available_custom_fields(custom_field_ids) - subquery = project_custom_fields_project_mapping_subquery(custom_field_ids:) - where(id: subquery) + where(id: project_custom_fields_join_table_subquery(custom_field_ids:)) + end + + def with_available_project_custom_fields(custom_field_ids) + where(id: project_custom_fields_project_mapping_subquery(custom_field_ids:)) end def without_available_custom_fields(custom_field_ids) - subquery = project_custom_fields_project_mapping_subquery(custom_field_ids:) - where.not(id: subquery) + where.not(id: project_custom_fields_join_table_subquery(custom_field_ids:)) + end + + def without_available_project_custom_fields(custom_field_ids) + where.not(id: project_custom_fields_project_mapping_subquery(custom_field_ids:)) end private def project_custom_fields_project_mapping_subquery(custom_field_ids:) - ProjectCustomFieldProjectMapping.select(:project_id) - .where(custom_field_id: custom_field_ids) + project_custom_fields_join_table_subquery(custom_field_ids:, join_table: ProjectCustomFieldProjectMapping) + end + + def project_custom_fields_join_table_subquery(custom_field_ids:, join_table: CustomFieldsProject) + join_table.select(:project_id) + .where(custom_field_id: custom_field_ids) end end end diff --git a/app/models/queries/projects.rb b/app/models/queries/projects.rb index f1dc49b0b1ca..bb25098c5322 100644 --- a/app/models/queries/projects.rb +++ b/app/models/queries/projects.rb @@ -30,6 +30,7 @@ module Queries::Projects ::Queries::Register.register(ProjectQuery) do filter Filters::AncestorFilter filter Filters::AvailableProjectAttributesFilter + filter Filters::AvailableCustomFieldsProjectsFilter filter Filters::TypeFilter filter Filters::ActiveFilter filter Filters::TemplatedFilter diff --git a/app/models/queries/projects/filters/available_custom_fields_projects_filter.rb b/app/models/queries/projects/filters/available_custom_fields_projects_filter.rb new file mode 100644 index 000000000000..0aa5a0d9531d --- /dev/null +++ b/app/models/queries/projects/filters/available_custom_fields_projects_filter.rb @@ -0,0 +1,70 @@ +# 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::Projects::Filters::AvailableCustomFieldsProjectsFilter < Queries::Projects::Filters::Base + def self.key + :available_custom_fields_projects + end + + def type + :list + end + + def allowed_values + @allowed_values ||= CustomFieldsProject + .includes(:custom_field) + .distinct + .pluck(:name, :custom_field_id) + end + + def available? + User.current.admin? + end + + def apply_to(_query_scope) + case operator + when "=" + super.with_available_custom_fields(values) + when "!" + super.without_available_custom_fields(values) + else + raise "unsupported operator" + end + end + + def where + nil + end + + def human_name + I18n.t(:label_available_custom_fields_projects) + end +end diff --git a/app/models/queries/projects/filters/available_project_attributes_filter.rb b/app/models/queries/projects/filters/available_project_attributes_filter.rb index 0fe1ca825261..56bdf29449dd 100644 --- a/app/models/queries/projects/filters/available_project_attributes_filter.rb +++ b/app/models/queries/projects/filters/available_project_attributes_filter.rb @@ -52,9 +52,9 @@ def available? def apply_to(_query_scope) case operator when "=" - super.with_available_custom_fields(values) + super.with_available_project_custom_fields(values) when "!" - super.without_available_custom_fields(values) + super.without_available_project_custom_fields(values) else raise "unsupported operator" end diff --git a/app/models/queries/projects/orders/custom_field_order.rb b/app/models/queries/projects/orders/custom_field_order.rb index 02b7bac6a928..30aa9e3b4558 100644 --- a/app/models/queries/projects/orders/custom_field_order.rb +++ b/app/models/queries/projects/orders/custom_field_order.rb @@ -29,32 +29,26 @@ class Queries::Projects::Orders::CustomFieldOrder < Queries::Orders::Base self.model = Project.all - EXCLUDED_CUSTOM_FIELD_TYPES = %w(text) - KEY_FORMAT = /cf_(\d+)/ + 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_project_custom_fields) do - ProjectCustomField.where.not(field_format: EXCLUDED_CUSTOM_FIELD_TYPES).visible.pluck(:id).join("|") + scope.pluck(:id) end - /cf_(#{valid_ids})/ + /\Acf_(#{valid_ids.join('|')})\z/ end - def custom_field - @custom_field ||= begin - id = KEY_FORMAT.match(attribute)[1] - - ProjectCustomField - .where.not(field_format: EXCLUDED_CUSTOM_FIELD_TYPES) - .visible - .find_by(id:) - end + def self.scope + ProjectCustomField.where.not(field_format: EXCLUDED_CUSTOM_FIELD_TYPES).visible end - def apply_to(_query_scope) - super.select(custom_field.order_statements) + 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? diff --git a/app/models/queries/projects/orders/default_order.rb b/app/models/queries/projects/orders/default_order.rb index e612807171e3..de5154c5b002 100644 --- a/app/models/queries/projects/orders/default_order.rb +++ b/app/models/queries/projects/orders/default_order.rb @@ -30,6 +30,6 @@ class Queries::Projects::Orders::DefaultOrder < Queries::Orders::Base self.model = Project def self.key - /\A(id|created_at|public|lft)\z/ + /\A(id|identifier|created_at|public|lft)\z/ end end diff --git a/app/models/queries/projects/orders/name_order.rb b/app/models/queries/projects/orders/name_order.rb index dd2e583b6863..a1d95ca2449b 100644 --- a/app/models/queries/projects/orders/name_order.rb +++ b/app/models/queries/projects/orders/name_order.rb @@ -33,10 +33,6 @@ def self.key :name end - def apply_to(_query_scope) - super.select("projects.*", "lower(projects.name)") - end - private def order(scope) diff --git a/app/models/queries/projects/selects/custom_field.rb b/app/models/queries/projects/selects/custom_field.rb index b1b19f29ee28..14d7401bde5c 100644 --- a/app/models/queries/projects/selects/custom_field.rb +++ b/app/models/queries/projects/selects/custom_field.rb @@ -29,8 +29,10 @@ class Queries::Projects::Selects::CustomField < Queries::Selects::Base validates :custom_field, presence: { message: I18n.t(:"activerecord.errors.messages.does_not_exist") } + KEY = /\Acf_(\d+)\z/ + def self.key - /cf_(\d+)/ + KEY end def self.all_available @@ -39,7 +41,7 @@ def self.all_available ProjectCustomField .visible .pluck(:id) - .map { |cf_id| new(:"cf_#{cf_id}") } + .map { |id| new(:"cf_#{id}") } end def caption @@ -47,9 +49,11 @@ def caption end def custom_field - @custom_field ||= ProjectCustomField - .visible - .find_by(id: self.class.key.match(attribute)[1]) + return @custom_field if defined?(@custom_field) + + @custom_field = ProjectCustomField + .visible + .find_by(id: attribute[KEY, 1]) end def available? diff --git a/app/models/queries/projects/selects/default.rb b/app/models/queries/projects/selects/default.rb index 59cb279f11c7..d3fd03def9bd 100644 --- a/app/models/queries/projects/selects/default.rb +++ b/app/models/queries/projects/selects/default.rb @@ -1,4 +1,4 @@ -# -- copyright +#-- copyright # OpenProject is an open source project management software. # Copyright (C) the OpenProject GmbH # @@ -27,10 +27,10 @@ # ++ class Queries::Projects::Selects::Default < Queries::Selects::Base - KEYS = %i[status_explanation hierarchy name public description].freeze + KEYS = %i[id identifier status_explanation hierarchy name public description].freeze def self.key - Regexp.new(KEYS.join("|")) + /\A(#{Regexp.union(KEYS.map(&:to_s))})\z/ end def self.all_available diff --git a/app/models/user.rb b/app/models/user.rb index 23e85c02b3bf..577ee7606183 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -55,6 +55,7 @@ class User < Principal inverse_of: :user has_one :rss_token, class_name: "::Token::RSS", dependent: :destroy has_many :api_tokens, class_name: "::Token::API", dependent: :destroy + has_many :oauth_client_tokens, dependent: :destroy # The user might have one invitation token has_one :invitation_token, class_name: "::Token::Invitation", dependent: :destroy diff --git a/app/models/work_package.rb b/app/models/work_package.rb index 859a093eb4d6..51d387b21e6a 100644 --- a/app/models/work_package.rb +++ b/app/models/work_package.rb @@ -45,6 +45,7 @@ class WorkPackage < ApplicationRecord include OpenProject::Journal::AttachmentHelper DONE_RATIO_OPTIONS = %w[field status].freeze + TOTAL_PERCENT_COMPLETE_MODE_OPTIONS = %w[work_weighted_average simple_average].freeze belongs_to :project belongs_to :type @@ -212,12 +213,8 @@ def self.work_based_mode? Setting.work_package_done_ratio == "field" end - def self.use_status_for_done_ratio? - Setting.work_package_done_ratio == "status" - end - - def self.use_field_for_done_ratio? - Setting.work_package_done_ratio == "field" + def self.complete_on_status_closed? + Setting.percent_complete_on_status_closed == "set_100p" end # Returns true if usr or current user is allowed to view the work_package @@ -305,7 +302,7 @@ def included_in_totals_calculation? end def done_ratio - if WorkPackage.use_status_for_done_ratio? && status && status.default_done_ratio + if WorkPackage.status_based_mode? && status && status.default_done_ratio status.default_done_ratio else read_attribute(:done_ratio) @@ -332,12 +329,12 @@ def done_ratio=(value) write_attribute :done_ratio, convert_value_to_percentage(value) end - def derived_progress_hints=(hints) - @derived_progress_hints = hints + def set_derived_progress_hint(field_name, hint, **params) + derived_progress_hints[field_name] = ProgressHint.new("#{field_name}.#{hint}", params) end - def derived_progress_hints - @derived_progress_hints ||= {} + def derived_progress_hint(field_name) + derived_progress_hints[field_name] end def duration_in_hours @@ -380,7 +377,7 @@ def attributes=(new_attributes) # Set the done_ratio using the status if that setting is set. This will keep the done_ratios # even if the user turns off the setting later def update_done_ratio_from_status - if WorkPackage.use_status_for_done_ratio? && status && status.default_done_ratio + if WorkPackage.status_based_mode? && status && status.default_done_ratio self.done_ratio = status.default_done_ratio end end @@ -553,6 +550,10 @@ def <=>(other) private + def derived_progress_hints + @derived_progress_hints ||= {} + end + def add_time_entry_for(user, attributes) return if time_entry_blank?(attributes) diff --git a/app/models/work_package/progress_hint.rb b/app/models/work_package/progress_hint.rb new file mode 100644 index 000000000000..9fa24566b3fc --- /dev/null +++ b/app/models/work_package/progress_hint.rb @@ -0,0 +1,54 @@ +# 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. +#++ + +# Hint to be displayed in the progress popover under a progress value. +# +# `key` is like `field_name`.`hint` and is used to build up the translation +# key. `params` is the translation parameters as some translation are +# parameterized. +class WorkPackage + ProgressHint = Data.define(:key, :params) do + def initialize(key:, params: {}) + super + end + + def message + I18n.t("work_package.progress.derivation_hints.#{key}", **to_hours(params)) + end + + def reason + key.split(".", 2).last + end + + def to_hours(params) + params.transform_values { |value| DurationConverter.output(value.abs) } + end + end +end diff --git a/modules/meeting/app/components/flash_message_component.rb b/app/seeders/oauth_applications_seeder.rb similarity index 57% rename from modules/meeting/app/components/flash_message_component.rb rename to app/seeders/oauth_applications_seeder.rb index 3636c5530ed6..b8f88606db18 100644 --- a/modules/meeting/app/components/flash_message_component.rb +++ b/app/seeders/oauth_applications_seeder.rb @@ -1,6 +1,8 @@ +# frozen_string_literal: true + #-- copyright # OpenProject is an open source project management software. -# Copyright (C) the OpenProject GmbH +# Copyright (C) 2012-2024 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. @@ -25,37 +27,37 @@ # # See COPYRIGHT and LICENSE files for more details. #++ +class OAuthApplicationsSeeder < Seeder + OPENPROJECT_MOBILE_APP_UID = "DgJZ7Rat23xHZbcq_nxPg5RUuxljonLCN7V7N7GoBAA" -class FlashMessageComponent < ApplicationComponent - include ApplicationHelper - include OpTurbo::Streamable - include OpPrimer::ComponentHelpers - - def initialize(message: nil, full: false, dismiss_scheme: :none, icon: nil, scheme: :default) - super - - @message = message - @full = full - @dismiss_scheme = dismiss_scheme - @icon = icon - @scheme = scheme - end - - def call - component_wrapper do - # even without provided message, the wrapper should be rendered as this allows - # for triggering a flash message via turbo stream - if @message.present? - flash_partial + def seed_data! + call = create_app + unless call.success? + print_error "Seeding mobile oauth application failed:" + call.errors.full_messages.each do |msg| + print_error " #{msg}" end end end - private + def applicable? + Doorkeeper::Application.find_by(id: OPENPROJECT_MOBILE_APP_UID).nil? + end + + def not_applicable_message + "No need to seed oauth applications as they are already present." + end - def flash_partial - render(Primer::Alpha::Banner.new( - full: @full, dismiss_scheme: @dismiss_scheme, icon: @icon, scheme: @scheme - )) { @message } + def create_app + OAuth::Applications::CreateService + .new(user: User.system) + .call( + enabled: true, + name: "OpenProject Mobile App", + redirect_uri: "openprojectapp://oauth-callback", + builtin: true, + confidential: false, + uid: OPENPROJECT_MOBILE_APP_UID + ) end end diff --git a/app/seeders/root_seeder.rb b/app/seeders/root_seeder.rb index c1a683ca0f5c..f1a150e4723f 100644 --- a/app/seeders/root_seeder.rb +++ b/app/seeders/root_seeder.rb @@ -70,6 +70,7 @@ def do_seed! # Basic data needs be seeded before anything else. seed_basic_data seed_admin_user + seed_oauth_data seed_demo_data seed_development_data if seed_development_data? seed_plugins_data @@ -132,6 +133,11 @@ def seed_admin_user AdminUserSeeder.new(seed_data).seed! end + def seed_oauth_data + print_status "*** Seeding OAuth applications" + OAuthApplicationsSeeder.new(seed_data).seed! + end + def seed_demo_data print_status "*** Seeding demo data" DemoDataSeeder.new(seed_data).seed! diff --git a/app/services/custom_fields/custom_field_projects/bulk_create_service.rb b/app/services/custom_fields/custom_field_projects/bulk_create_service.rb new file mode 100644 index 000000000000..3b452006ce68 --- /dev/null +++ b/app/services/custom_fields/custom_field_projects/bulk_create_service.rb @@ -0,0 +1,125 @@ +# 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 CustomFields + module CustomFieldProjects + class BulkCreateService < ::BaseServices::BaseCallable + def initialize(user:, projects:, custom_field:, include_sub_projects: false) + super() + @user = user + @projects = projects + @custom_field = custom_field + @include_sub_projects = include_sub_projects + end + + def perform + service_call = validate_permissions + service_call = validate_contract(service_call, incoming_mapping_ids) if service_call.success? + service_call = perform_bulk_create(service_call) if service_call.success? + + service_call + end + + private + + def validate_permissions(permission: :select_custom_fields) + return ServiceResult.failure(errors: I18n.t(:label_not_found)) if incoming_projects.empty? + + if @user.allowed_in_project?(permission, incoming_projects) + ServiceResult.success + else + ServiceResult.failure(errors: I18n.t("activerecord.errors.messages.error_unauthorized")) + end + end + + def validate_contract(service_call, project_ids) + set_attributes_results = project_ids.map do |id| + set_attributes(project_id: id, custom_field_id: @custom_field.id) + end + + if (failures = set_attributes_results.select(&:failure?)).any? + service_call.success = false + service_call.errors = failures.map(&:errors) + else + service_call.result = set_attributes_results.map(&:result) + end + + service_call + end + + def perform_bulk_create(service_call) + custom_field_project_mapping_class.insert_all( + service_call.result.map { |model| model.attributes.slice("project_id", "custom_field_id") }, + unique_by: %i[project_id custom_field_id] + ) + + service_call + end + + def incoming_mapping_ids + project_ids = incoming_projects.pluck(:id) + project_ids - existing_project_mappings(project_ids) + end + + def incoming_projects + @projects.each_with_object(Set.new) do |project, projects_set| + next unless project.active? + + projects_set << project + projects_set.merge(project.active_subprojects.to_a) if @include_sub_projects + end.to_a + end + + def existing_project_mappings(project_ids) + custom_field_project_mapping_class.where( + custom_field_id: @custom_field.id, + project_id: project_ids + ).pluck(:project_id) + end + + def set_attributes(params) + attributes_service_class + .new(user: @user, + model: instance(params), + contract_class: default_contract_class, + contract_options: {}) + .call(params) + end + + def instance(params) + custom_field_project_mapping_class.new(params) + end + + def attributes_service_class = CustomFields::CustomFieldProjects::SetAttributesService + def default_contract_class = CustomFields::CustomFieldProjects::UpdateContract + def custom_field_project_mapping_class = CustomFieldsProject + end + end +end diff --git a/app/services/custom_fields/custom_field_projects/delete_service.rb b/app/services/custom_fields/custom_field_projects/delete_service.rb new file mode 100644 index 000000000000..41069ffa527e --- /dev/null +++ b/app/services/custom_fields/custom_field_projects/delete_service.rb @@ -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. +#++ + +module CustomFields + module CustomFieldProjects + class DeleteService < ::BaseServices::Delete + # Mappings have custom deletion rules that are similar to the update rules all derived from the base contract + # Reuse the update contract to ensure that the deletion rules are consistent with the update rules + def default_contract_class = CustomFields::CustomFieldProjects::UpdateContract + end + end +end diff --git a/app/services/custom_fields/custom_field_projects/set_attributes_service.rb b/app/services/custom_fields/custom_field_projects/set_attributes_service.rb new file mode 100644 index 000000000000..7b3100166c9b --- /dev/null +++ b/app/services/custom_fields/custom_field_projects/set_attributes_service.rb @@ -0,0 +1,34 @@ +#-- 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 CustomFields + module CustomFieldProjects + class SetAttributesService < ::BaseServices::SetAttributes + end + end +end diff --git a/app/services/oauth/applications/create_service.rb b/app/services/oauth/applications/create_service.rb new file mode 100644 index 000000000000..102be06afdcd --- /dev/null +++ b/app/services/oauth/applications/create_service.rb @@ -0,0 +1,37 @@ +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) 2012-2024 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 OAuth + module Applications + class CreateService < BaseServices::Create + def instance(*) + Doorkeeper::Application.new + end + end + end +end diff --git a/app/services/oauth/applications/delete_service.rb b/app/services/oauth/applications/delete_service.rb new file mode 100644 index 000000000000..430f77977f73 --- /dev/null +++ b/app/services/oauth/applications/delete_service.rb @@ -0,0 +1,34 @@ +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) 2012-2024 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 OAuth + module Applications + class DeleteService < ::BaseServices::Delete + end + end +end diff --git a/app/services/oauth/applications/set_attributes_service.rb b/app/services/oauth/applications/set_attributes_service.rb new file mode 100644 index 000000000000..72a81dc965f5 --- /dev/null +++ b/app/services/oauth/applications/set_attributes_service.rb @@ -0,0 +1,53 @@ +#-- 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 OAuth + module Applications + class SetAttributesService < ::BaseServices::SetAttributes + private + + def set_default_attributes(*) + model.extend(OpenProject::ChangedBySystem) + model.change_by_system do + set_secret_and_id + set_default_owner unless model.owner_id + end + end + + def set_secret_and_id + model.renew_secret if model.secret.blank? + model.uid = Doorkeeper::OAuth::Helpers::UniqueToken.generate if model.uid.blank? + end + + def set_default_owner + model.owner = user + model.owner_type = "User" + end + end + end +end diff --git a/app/services/oauth/applications/update_service.rb b/app/services/oauth/applications/update_service.rb new file mode 100644 index 000000000000..67d1852be2d7 --- /dev/null +++ b/app/services/oauth/applications/update_service.rb @@ -0,0 +1,34 @@ +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) 2012-2024 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 OAuth + module Applications + class UpdateService < ::BaseServices::Update + end + end +end diff --git a/app/services/project_custom_field_project_mappings/bulk_create_service.rb b/app/services/project_custom_field_project_mappings/bulk_create_service.rb index 982a27a03e6e..432112326ac1 100644 --- a/app/services/project_custom_field_project_mappings/bulk_create_service.rb +++ b/app/services/project_custom_field_project_mappings/bulk_create_service.rb @@ -29,99 +29,19 @@ #++ module ProjectCustomFieldProjectMappings - class BulkCreateService < ::BaseServices::BaseCallable + class BulkCreateService < ::CustomFields::CustomFieldProjects::BulkCreateService def initialize(user:, projects:, project_custom_field:, include_sub_projects: false) - super() - @user = user - @projects = projects - @project_custom_field = project_custom_field - @include_sub_projects = include_sub_projects - end - - def perform - service_call = validate_permissions - service_call = validate_contract(service_call, incoming_mapping_ids) if service_call.success? - service_call = perform_bulk_create(service_call) if service_call.success? - - service_call + super(user:, projects:, custom_field: project_custom_field, include_sub_projects:) end private - def validate_permissions - return ServiceResult.failure(errors: I18n.t(:label_not_found)) if incoming_projects.empty? - - if @user.allowed_in_project?(:select_project_custom_fields, incoming_projects) - ServiceResult.success - else - ServiceResult.failure(errors: I18n.t("activerecord.errors.messages.error_unauthorized")) - end - end - - def validate_contract(service_call, project_ids) - set_attributes_results = project_ids.map do |id| - set_attributes(project_id: id, custom_field_id: @project_custom_field.id) - end - - if (failures = set_attributes_results.select(&:failure?)).any? - service_call.success = false - service_call.errors = failures.map(&:errors) - else - service_call.result = set_attributes_results.map(&:result) - end - - service_call - end - - def perform_bulk_create(service_call) - ProjectCustomFieldProjectMapping.insert_all( - service_call.result.map { |model| model.attributes.slice("project_id", "custom_field_id") }, - unique_by: %i[project_id custom_field_id] - ) - - service_call - end - - def incoming_mapping_ids - project_ids = incoming_projects.pluck(:id) - project_ids - existing_project_mappings(project_ids) + def validate_permissions(permission: :select_project_custom_fields) + super end - def incoming_projects - @projects.each_with_object(Set.new) do |project, projects_set| - next unless project.active? - - projects_set << project - projects_set.merge(project.active_subprojects.to_a) if @include_sub_projects - end.to_a - end - - def existing_project_mappings(project_ids) - ProjectCustomFieldProjectMapping.where( - custom_field_id: @project_custom_field.id, - project_id: project_ids - ).pluck(:project_id) - end - - def set_attributes(params) - attributes_service_class - .new(user: @user, - model: instance(params), - contract_class: default_contract_class, - contract_options: {}) - .call(params) - end - - def instance(params) - ProjectCustomFieldProjectMapping.new(params) - end - - def attributes_service_class - ProjectCustomFieldProjectMappings::SetAttributesService - end - - def default_contract_class - ProjectCustomFieldProjectMappings::UpdateContract - end + def attributes_service_class = ProjectCustomFieldProjectMappings::SetAttributesService + def default_contract_class = ProjectCustomFieldProjectMappings::UpdateContract + def custom_field_project_mapping_class = ProjectCustomFieldProjectMapping end end diff --git a/app/services/settings/update_service.rb b/app/services/settings/update_service.rb index a8eda6a5e1dc..591114db7138 100644 --- a/app/services/settings/update_service.rb +++ b/app/services/settings/update_service.rb @@ -45,11 +45,29 @@ def set_setting_value(name, value) old_value = Setting[name] new_value = derive_value(value) Setting[name] = new_value - if name == :work_package_done_ratio && old_value != "status" && new_value == "status" - WorkPackages::Progress::ApplyStatusesChangeJob.perform_later(cause_type: "progress_mode_changed_to_status_based") + + if name == :work_package_done_ratio + trigger_update_job_for_progress_mode_change(old_value, new_value) + elsif name == :total_percent_complete_mode + trigger_update_job_for_total_percent_complete_mode_change(old_value, new_value) end end + def trigger_update_job_for_progress_mode_change(old_value, new_value) + return if old_value == new_value + return if new_value != "status" # only trigger if changing to status-based + + WorkPackages::Progress::ApplyStatusesChangeJob.perform_later(cause_type: "progress_mode_changed_to_status_based") + end + + def trigger_update_job_for_total_percent_complete_mode_change(old_value, new_value) + return if old_value == new_value + + WorkPackages::Progress::ApplyTotalPercentCompleteModeChangeJob + .perform_later(mode: new_value, + cause_type: "total_percent_complete_mode_changed_to_#{new_value}") + end + def derive_value(value) case value when Array, Hash diff --git a/app/services/work_packages/set_attributes_service.rb b/app/services/work_packages/set_attributes_service.rb index ee168d4dbd0a..cd1118d965af 100644 --- a/app/services/work_packages/set_attributes_service.rb +++ b/app/services/work_packages/set_attributes_service.rb @@ -285,15 +285,17 @@ def update_duration end def update_progress_attributes - derive_progress_values_class = - if OpenProject::FeatureDecisions.percent_complete_edition_active? - WorkPackage.use_status_for_done_ratio? ? DeriveProgressValuesStatusBased : DeriveProgressValuesWorkBased - else - Pre144DeriveProgressValues - end derive_progress_values_class.new(work_package).call end + def derive_progress_values_class + if WorkPackage.status_based_mode? + DeriveProgressValuesStatusBased + else + DeriveProgressValuesWorkBased + end + end + def set_version_to_nil if work_package.version && work_package.project && diff --git a/app/services/work_packages/set_attributes_service/derive_progress_values_base.rb b/app/services/work_packages/set_attributes_service/derive_progress_values_base.rb index fa057d81076f..3293be1010cf 100644 --- a/app/services/work_packages/set_attributes_service/derive_progress_values_base.rb +++ b/app/services/work_packages/set_attributes_service/derive_progress_values_base.rb @@ -79,6 +79,10 @@ def work_valid? DurationConverter.valid?(work_package.estimated_hours_before_type_cast) end + def work_invalid? + !work_valid? + end + def remaining_work work_package.remaining_hours end @@ -115,6 +119,10 @@ def remaining_work_valid? DurationConverter.valid?(work_package.remaining_hours_before_type_cast) end + def remaining_work_invalid? + !remaining_work_valid? + end + def percent_complete work_package.done_ratio end @@ -149,8 +157,8 @@ def percent_complete_not_provided_by_user? private - def set_hint(field, hint) - work_package.derived_progress_hints[field] = hint + def set_hint(field, hint, **params) + work_package.set_derived_progress_hint(field, hint, **params) end def round_progress_values diff --git a/app/services/work_packages/set_attributes_service/derive_progress_values_status_based.rb b/app/services/work_packages/set_attributes_service/derive_progress_values_status_based.rb index 3035a88ccafc..00ea713c06af 100644 --- a/app/services/work_packages/set_attributes_service/derive_progress_values_status_based.rb +++ b/app/services/work_packages/set_attributes_service/derive_progress_values_status_based.rb @@ -33,24 +33,40 @@ class DeriveProgressValuesStatusBased < DeriveProgressValuesBase def derive_progress_attributes raise ArgumentError, "Cannot use #{self.class.name} in work-based mode" if WorkPackage.work_based_mode? - update_percent_complete - update_remaining_work_from_percent_complete + # do not change anything if some values are invalid: this will be detected + # by the contract and errors will be set. + return if invalid_progress_values? + + update_percent_complete if derive_percent_complete? + update_remaining_work if derive_remaining_work? + end + + def invalid_progress_values? + work_invalid? + end + + def derive_percent_complete? + status_percent_complete_changed? + end + + def derive_remaining_work? + status_percent_complete_changed? || work_changed? + end + + def status_percent_complete_changed? + work_package.status_id.present? && work_package.status_id_came_from_user? \ + && work_package.status.default_done_ratio != work_package.done_ratio_was end # Update +% complete+ from the status if the status changed. def update_percent_complete - return unless work_package.status_id_changed? - self.percent_complete = work_package.status.default_done_ratio end # When in "Status-based" mode for progress calculation, remaining work is # always derived from % complete and work. If work is unset, then remaining # work must be unset too. - def update_remaining_work_from_percent_complete - return if remaining_work_came_from_user? - return if work&.negative? - + def update_remaining_work if work_empty? return unless work_changed? diff --git a/app/services/work_packages/set_attributes_service/derive_progress_values_work_based.rb b/app/services/work_packages/set_attributes_service/derive_progress_values_work_based.rb index 69cb6736875e..1576eb1647d0 100644 --- a/app/services/work_packages/set_attributes_service/derive_progress_values_work_based.rb +++ b/app/services/work_packages/set_attributes_service/derive_progress_values_work_based.rb @@ -39,6 +39,7 @@ def derive_progress_attributes # by the contract and errors will be set. return if invalid_progress_values? + set_complete if set_complete_for_closed_status? update_work if derive_work? update_remaining_work if derive_remaining_work? update_percent_complete if derive_percent_complete? @@ -56,6 +57,13 @@ def percent_complete_out_of_range? percent_complete && !percent_complete.between?(0, 100) end + def set_complete_for_closed_status? + WorkPackage.complete_on_status_closed? \ + && percent_complete_not_provided_by_user? \ + && work_package.status_id_changed? \ + && work_package.closed? + end + def derive_work? work_not_provided_by_user? && (remaining_work_changed? || percent_complete_changed?) end @@ -69,6 +77,11 @@ def derive_percent_complete? && !skip_percent_complete_derivation end + def set_complete + self.percent_complete = 100 + skip_percent_complete_derivation! + end + # rubocop:disable Metrics/AbcSize,Metrics/PerceivedComplexity def update_work return if remaining_work_empty? && percent_complete_empty? @@ -100,9 +113,9 @@ def update_remaining_work elsif work_changed? && work_set? && remaining_work_set? && percent_complete_not_provided_by_user? delta = work - work_was if delta.positive? - set_hint(:remaining_hours, :increased_like_work) + set_hint(:remaining_hours, :increased_by_delta_like_work, delta:) elsif delta.negative? - set_hint(:remaining_hours, :decreased_like_work) + set_hint(:remaining_hours, :decreased_by_delta_like_work, delta:) end self.remaining_work = (remaining_work + delta).clamp(0.0, work) elsif work_empty? @@ -161,14 +174,6 @@ def work_from_percent_complete_and_remaining_work remaining_work / remaining_percent_complete end - def work_invalid? - !work_valid? - end - - def remaining_work_invalid? - !remaining_work_valid? - end - def percent_complete_unparsable? !PercentageConverter.valid?(work_package.done_ratio_before_type_cast) end diff --git a/app/services/work_packages/set_attributes_service/pre_14_4_derive_progress_values.rb b/app/services/work_packages/set_attributes_service/pre_14_4_derive_progress_values.rb deleted file mode 100644 index 0248a413bf8f..000000000000 --- a/app/services/work_packages/set_attributes_service/pre_14_4_derive_progress_values.rb +++ /dev/null @@ -1,186 +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. -#++ - -# rubocop:disable Metrics/AbcSize -class WorkPackages::SetAttributesService - class Pre144DeriveProgressValues - attr_reader :work_package - - def initialize(work_package) - @work_package = work_package - end - - def call - update_progress_attributes - end - - # From this point, copied over from 109b135b:app/services/work_packages/set_attributes_service.rb#L287-L427 - def update_progress_attributes - if WorkPackage.use_status_for_done_ratio? - update_done_ratio - update_remaining_hours - elsif only_percent_complete_initially_set? - update_remaining_hours_from_percent_complete - else - update_estimated_hours - update_remaining_hours - update_done_ratio - end - round_progress_values - end - - def only_percent_complete_initially_set? - return false if work_package.done_ratio.nil? - return false if work_package.remaining_hours.present? - - work_package.estimated_hours_changed? && work_package.estimated_hours.present? - end - - def work_was_unset_and_remaining_work_is_set? - work_package.estimated_hours_was.nil? && work_package.remaining_hours.present? - end - - # Compute and update +done_ratio+ if its dependent attributes are being modified. - # The dependent attributes for +done_ratio+ are - # - +remaining_hours+ - # - +estimated_hours+ - # - # Unless both +remaining_hours+ and +estimated_hours+ are set, +done_ratio+ will be - # considered nil. - def update_done_ratio - if WorkPackage.use_status_for_done_ratio? - return unless work_package.status_id_changed? - - work_package.done_ratio = work_package.status.default_done_ratio - else - return unless work_package.remaining_hours_changed? || work_package.estimated_hours_changed? - - work_package.done_ratio = if done_ratio_dependent_attribute_unset? - nil - else - compute_done_ratio - end - end - end - - def round_progress_values - rounded = work_package.estimated_hours&.round(2) - if rounded != work_package.estimated_hours - work_package.estimated_hours = rounded - end - rounded = work_package.remaining_hours&.round(2) - if rounded != work_package.remaining_hours - work_package.remaining_hours = rounded - end - end - - def update_remaining_hours_from_percent_complete - return if work_package.remaining_hours_came_from_user? - return if work_package.estimated_hours&.negative? - - work_package.remaining_hours = remaining_hours_from_done_ratio_and_estimated_hours - end - - def done_ratio_dependent_attribute_unset? - work_package.remaining_hours.nil? || work_package.estimated_hours.nil? - end - - def compute_done_ratio - # do not change done ratio if the values are invalid - if invalid_progress_values? - return work_package.done_ratio - end - - completed_work = work_package.estimated_hours - work_package.remaining_hours - completion_ratio = completed_work.to_f / work_package.estimated_hours - - (completion_ratio * 100).round(2) - end - - def invalid_progress_values? - work = work_package.estimated_hours - remaining_work = work_package.remaining_hours - - return true if work.negative? - return true if remaining_work.negative? - - work && remaining_work && remaining_work > work - end - - def update_estimated_hours - return unless WorkPackage.use_field_for_done_ratio? - return if work_package.estimated_hours_came_from_user? - return unless work_package.remaining_hours_changed? - - work = work_package.estimated_hours - remaining_work = work_package.remaining_hours - return if work.present? - return if remaining_work.nil? || remaining_work.negative? - - work_package.estimated_hours = estimated_hours_from_done_ratio_and_remaining_hours - end - - # When in "Status-based" mode for % Complete, remaining hours are based - # on the computation of it derived from the status's default done ratio - # and the estimated hours. If the estimated hours are unset, then also - # unset the remaining hours. - # rubocop:disable Metrics/PerceivedComplexity - def update_remaining_hours - if WorkPackage.use_status_for_done_ratio? - update_remaining_hours_from_percent_complete - elsif WorkPackage.use_field_for_done_ratio? && - work_package.estimated_hours_changed? - return if work_package.remaining_hours_came_from_user? - return if work_package.estimated_hours&.negative? - return if work_was_unset_and_remaining_work_is_set? # remaining work is kept and % complete will be set - - if work_package.estimated_hours.nil? || work_package.remaining_hours.nil? - work_package.remaining_hours = work_package.estimated_hours - else - delta = work_package.estimated_hours - work_package.estimated_hours_was - work_package.remaining_hours = (work_package.remaining_hours + delta).clamp(0.0, work_package.estimated_hours) - end - end - end - # rubocop:enable Metrics/PerceivedComplexity - - def estimated_hours_from_done_ratio_and_remaining_hours - remaining_ratio = 1.0 - ((work_package.done_ratio || 0) / 100.0) - work_package.remaining_hours / remaining_ratio - end - - def remaining_hours_from_done_ratio_and_estimated_hours - return nil if work_package.done_ratio.nil? || work_package.estimated_hours.nil? - - completed_work = work_package.estimated_hours * work_package.done_ratio / 100.0 - remaining_hours = (work_package.estimated_hours - completed_work).round(2) - remaining_hours.clamp(0.0, work_package.estimated_hours) - end - end -end -# rubocop:enable Metrics/AbcSize diff --git a/app/services/work_packages/update_ancestors/loader.rb b/app/services/work_packages/update_ancestors/loader.rb index 966a04fd4620..dcf4ae002740 100644 --- a/app/services/work_packages/update_ancestors/loader.rb +++ b/app/services/work_packages/update_ancestors/loader.rb @@ -30,6 +30,8 @@ class WorkPackages::UpdateAncestors::Loader parent_id: "parent_id", estimated_hours: "estimated_hours", remaining_hours: "remaining_hours", + done_ratio: "done_ratio", + derived_done_ratio: "derived_done_ratio", status_excluded_from_totals: "statuses.excluded_from_totals", schedule_manually: "schedule_manually", ignore_non_working_days: "ignore_non_working_days" diff --git a/app/services/work_packages/update_ancestors_service.rb b/app/services/work_packages/update_ancestors_service.rb index b6f0c3e0d78f..877833bd8582 100644 --- a/app/services/work_packages/update_ancestors_service.rb +++ b/app/services/work_packages/update_ancestors_service.rb @@ -120,15 +120,45 @@ def derive_done_ratio(ancestor, loader) end def compute_derived_done_ratio(work_package, loader) + return if no_children?(work_package, loader) + + case Setting.total_percent_complete_mode + when "work_weighted_average" + calculate_work_weighted_average_percent_complete(work_package) + when "simple_average" + calculate_simple_average_percent_complete(work_package, loader) + end + end + + def calculate_work_weighted_average_percent_complete(work_package) return if work_package.derived_estimated_hours.nil? || work_package.derived_remaining_hours.nil? return if work_package.derived_estimated_hours.zero? - return if no_children?(work_package, loader) work_done = (work_package.derived_estimated_hours - work_package.derived_remaining_hours) progress = (work_done.to_f / work_package.derived_estimated_hours) * 100 progress.round end + def calculate_simple_average_percent_complete(work_package, loader) + all_done_ratios = children_done_ratio_values(work_package, loader) + + if work_package.done_ratio.present? && !work_package.status.excluded_from_totals + all_done_ratios << work_package.done_ratio + end + + return if all_done_ratios.empty? + + progress = all_done_ratios.sum.to_f / all_done_ratios.count + progress.round + end + + def children_done_ratio_values(work_package, loader) + loader + .children_of(work_package) + .filter(&:included_in_totals_calculation?) + .map { |child| child.derived_done_ratio || child.done_ratio || 0 } + end + # Sets the ignore_non_working_days to true if any descendant has its value set to true. # If there is no value returned from the descendants, that means that the work package in # question no longer has a descendant. But since we are in the service going up the ancestor chain, diff --git a/app/views/account/_auth_providers.html.erb b/app/views/account/_auth_providers.html.erb index a828b896617b..f399507f0332 100644 --- a/app/views/account/_auth_providers.html.erb +++ b/app/views/account/_auth_providers.html.erb @@ -26,7 +26,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. See COPYRIGHT and LICENSE files for more details. ++#%> - <% # Remove this ugly hack when creating an authentication plugin. # @@ -44,9 +43,11 @@ wclass = local_assigns[:wide] ? 'wide' : '' <% if auth_provider_html.strip != '' %> <%= styled_button_tag t(:button_save), - data:({ confirm: t('admin.custom_styles.theme_warning') } unless @current_theme.present?) %> - - -<% end %> - -<%= form_for @custom_style, url: custom_style_path, html: { multipart: true, class: "form -vertical" } do |f| %> -
-
- <%= I18n.t(:label_custom_logo) %> - - <% if @custom_style.id && @custom_style.logo.present? %> -
- <%# Don't use image_tag here due to asset host %> - <%= tag('img', src: custom_style_logo_path(digest: @custom_style.digest, filename: @custom_style.logo_identifier), class: 'custom-logo-preview') %> - <%= link_to t(:button_delete), - custom_style_logo_delete_path, - method: :delete, - class: 'icon icon-delete confirm-form-submit' %> -
- <% end %> - -
-
-
-
- <%= f.file_field :logo, required: true, class: "attachment_choose_file", size: "15" %> -
-
-
- <%= t('text_custom_logo_instructions') %> -
-
-
- - <%= styled_button_tag I18n.t(@custom_style.logo.present? ? :button_replace : :button_upload), - class: "button #{@custom_style.logo.blank? ? '-with-icon icon-add' : ''}" %> - -
-
-<% end %> - -<%= form_for @custom_style, url: custom_style_path, html: { multipart: true, class: "form -vertical" } do |f| %> -
-
- <%= I18n.t(:label_custom_favicon) %> - - <% if @custom_style.id && @custom_style.favicon.present? %> -
- <%= tag('img', src: custom_style_favicon_path(digest: @custom_style.digest, filename: @custom_style.favicon_identifier), class: 'custom-favicon-preview') %> - <%= link_to t(:button_delete), - custom_style_favicon_delete_path, - method: :delete, - class: 'icon icon-delete confirm-form-submit' %> -
- <% end %> - -
-
-
-
- <%= f.file_field :favicon, required: true, class: "attachment_choose_file", size: "15" %> -
-
-
- <%= t('text_custom_favicon_instructions') %> -
-
-
- - <%= styled_button_tag t(@custom_style.favicon.present? ? :button_replace : :button_upload), class: "button #{@custom_style.favicon.blank? ? '-with-icon icon-add' : ''}" %> - -
-
-<% end %> - -<%= form_for @custom_style, url: custom_style_path, html: { multipart: true, class: "form -vertical" } do |f| %> -
-
- <%= I18n.t(:label_custom_touch_icon) %> - - <% if @custom_style.id && @custom_style.touch_icon.present? %> -
- <%= tag('img', src: custom_style_touch_icon_path(digest: @custom_style.digest, filename: @custom_style.touch_icon_identifier), class: 'custom-touch-icon-preview') %> - <%= link_to t(:button_delete), - custom_style_touch_icon_delete_path, - method: :delete, - class: 'icon icon-delete confirm-form-submit' %> -
- <% end %> - -
-
-
-
- <%= f.file_field :touch_icon, required: true, class: "attachment_choose_file", size: "15" %> -
-
-
- <%= t('text_custom_touch_icon_instructions') %> -
-
-
- - <%= styled_button_tag t(@custom_style.touch_icon.present? ? :button_replace : :button_upload), class: "button #{@custom_style.touch_icon.blank? ? '-with-icon icon-add' : ''}" %> - + data: { test_selector: "color-theme-button", confirm: (t('admin.custom_styles.theme_warning') unless @current_theme.present?)} %>
<% end %> -<% custom_export_expanded = @custom_style.id && (@custom_style.export_logo.present? || @custom_style.export_cover.present? || @custom_style.export_cover_text_color.present?) %> - - - - -<%= form_tag update_design_colors_path, method: :post, class: "form" do %> -
-
- <%= I18n.t(:label_advanced_settings) %> - - <% DesignColor.setables.each do |design_color| %> -
- - -
- <%= icon_for_color(OpenStruct.new(variable: design_color.variable, - hexcode: design_color.hexcode), - data: { target: "#design_colors_" + design_color.variable }) %> -
- - <%= styled_text_field_tag "design_colors[]" + design_color.variable, - design_color.hexcode, - class: 'design-color--variable-input', - data: { 'variable-name': design_color.variable } - %> - -
-
- <% instruction_key = "admin.custom_styles.instructions.#{design_color.variable}" %> - <% if I18n.exists?(instruction_key, :en) %> - <%= I18n.t(instruction_key) %> - <% end %> -
-
- <% end %> - - - -
-
- - <%# Fill in the computed css variables in the inputs as their defaults %> - <%= nonced_javascript_tag do %> - var computedStyle = getComputedStyle(document.documentElement); - - document - .querySelectorAll('.design-color--variable-input') - .forEach(function(el) { - if (!el.value || el.value === '') { - el.placeholder = computedStyle.getPropertyValue('--' + el.dataset.variableName).trim(); - } - }); - <% end %> -<% end %> +<%= render_tabs design_tabs, with_tab_nav: false %> diff --git a/app/views/homescreen/blocks/_news.html.erb b/app/views/homescreen/blocks/_news.html.erb index e56798705466..54ec263adb53 100644 --- a/app/views/homescreen/blocks/_news.html.erb +++ b/app/views/homescreen/blocks/_news.html.erb @@ -8,7 +8,7 @@ <%= link_to_project(news.project) + ': ' %> <%= link_to h(news.title), news_path(news) %> -
<%= authoring_at Date.strptime(news.created_at.to_s), news.author %>
+
<%= authoring_at format_date(news.created_at), news.author %>

<%= news.summary %>

<% end %> diff --git a/app/views/hooks/login/_auth_provider.html.erb b/app/views/hooks/login/_auth_provider.html.erb index 8a93ce74af98..90c2f7f664b6 100644 --- a/app/views/hooks/login/_auth_provider.html.erb +++ b/app/views/hooks/login/_auth_provider.html.erb @@ -35,7 +35,7 @@ See COPYRIGHT and LICENSE files for more details. opts[:origin] = params['back_url'] end %> - + Omniauth Developer <% end %> diff --git a/app/views/layouts/base.html.erb b/app/views/layouts/base.html.erb index 47ac73419ed5..b30d04035b06 100644 --- a/app/views/layouts/base.html.erb +++ b/app/views/layouts/base.html.erb @@ -116,9 +116,12 @@ See COPYRIGHT and LICENSE files for more details. <% end %>
-
- <%= render_primer_banner_message %> - <%= render_streameable_primer_banner_message %> + <%= content_tag :main, id: "content-wrapper", class: initial_classes, data: stimulus_content_data do %> + <%# Primerized flash messages are being rendered separately %> +
+ <%= render_primerized_flash %> +
+ <%# Flash messages are being rendered using the old op-flash style %> <%= render_flash_messages %> @@ -131,8 +134,7 @@ See COPYRIGHT and LICENSE files for more details. <% end %> <%= content_tag :div, id: 'content', - class: "#{initial_classes} #{'content--split' if content_for?(:content_body_right)}", - data: stimulus_content_data do %> + class: "#{initial_classes} #{'content--split' if content_for?(:content_body_right)}" do %>

<%= t(:label_content) %>

<% if content_for?(:content_header) %>
@@ -159,7 +161,7 @@ See COPYRIGHT and LICENSE files for more details. <%= content_for :content_body_right %> <% end %> <% end %> -
+ <% end %> diff --git a/app/views/notifications/index.html.erb b/app/views/notifications/index.html.erb index 3e975299c184..c41256b40582 100644 --- a/app/views/notifications/index.html.erb +++ b/app/views/notifications/index.html.erb @@ -11,7 +11,11 @@ <% content_for :content_body do %> <%= angular_component_tag "opce-notification-center" %> - +dd <% end %> -<% optional_work_package_split_view %> +<% content_for :content_body_right do %> + <%# When we update the split screen from a turbo frame requset, the title is not correctly updated (Hack for #57705) %> + <%= turbo_stream.set_title(title: page_title(*html_title_parts)) if turbo_frame_request? %> + <%= render(split_view_instance) if render_work_package_split_view? %> +<% end %> diff --git a/app/views/oauth/applications/_form.html.erb b/app/views/oauth/applications/_form.html.erb index 1bd043582fa3..e0d45a78235e 100644 --- a/app/views/oauth/applications/_form.html.erb +++ b/app/views/oauth/applications/_form.html.erb @@ -30,6 +30,13 @@ See COPYRIGHT and LICENSE files for more details. <%= error_messages_for @application %>
+
+ <%= f.check_box :enabled, container_class: '-middle' %> + + <%= t('oauth.application.instructions.enabled') %> + +
+
<%= f.text_field :name, required: true, size: 25, container_class: '-middle' %> diff --git a/app/views/oauth/applications/index.html.erb b/app/views/oauth/applications/index.html.erb index 3f290aa417bf..c9dc6f66d2ae 100644 --- a/app/views/oauth/applications/index.html.erb +++ b/app/views/oauth/applications/index.html.erb @@ -24,8 +24,8 @@ 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. - ++#%> + <% html_title t(:label_administration), t("oauth.application.plural") -%> <%= @@ -50,4 +50,4 @@ See COPYRIGHT and LICENSE files for more details. end %> -<%= render ::OAuth::Applications::TableComponent.new(rows: @applications) %> +<%= render ::OAuth::Applications::IndexComponent.new(oauth_applications: @applications) %> diff --git a/app/views/oauth/applications/show.html.erb b/app/views/oauth/applications/show.html.erb index 589274cc0a28..c2f07ed2595d 100644 --- a/app/views/oauth/applications/show.html.erb +++ b/app/views/oauth/applications/show.html.erb @@ -29,7 +29,6 @@ See COPYRIGHT and LICENSE files for more details. <% html_title t(:label_administration), t('oauth.application.singular'), h(@application.name) -%> <% local_assigns[:additional_breadcrumb] = h(@application.name) %> - <%= render OAuth::ShowPageHeaderComponent.new(application: @application) %> <%= render(AttributeGroups::AttributeGroupComponent.new) do |component| %> @@ -72,6 +71,11 @@ See COPYRIGHT and LICENSE files for more details. value: @application.confidential? ? t(:general_text_Yes) : t(:general_text_No) ) %> + <% component.with_attribute( + key: @application.class.human_attribute_name(:enabled), + value: @application.enabled? ? t(:general_text_Yes) : t(:general_text_No) + ) %> + <% component.with_attribute( key: @application.class.human_attribute_name(:redirect_uri), value: safe_join(@application.redirect_uri.split("\n"), tag(:br)) diff --git a/app/views/projects/_toolbar.html.erb b/app/views/projects/_toolbar.html.erb index a9f699a27294..88047c9c6caf 100644 --- a/app/views/projects/_toolbar.html.erb +++ b/app/views/projects/_toolbar.html.erb @@ -79,7 +79,8 @@ See COPYRIGHT and LICENSE files for more details.
  • <%= link_to confirm_destroy_project_path(@project), class: 'button delete', - title: t(:label_delete_project) do %> + title: t(:label_delete_project), + data: { turbo: false } do %> <%= op_icon('button--icon icon-delete') %> <%= t(:button_delete) %> <% end %> diff --git a/app/views/statuses/edit.html.erb b/app/views/statuses/edit.html.erb index d955e4ce3c2c..428fe61dd969 100644 --- a/app/views/statuses/edit.html.erb +++ b/app/views/statuses/edit.html.erb @@ -33,7 +33,7 @@ See COPYRIGHT and LICENSE files for more details. render Primer::OpenProject::PageHeader.new do |header| header.with_title { @status.name } header.with_breadcrumbs([{ href: admin_index_path, text: t("label_administration") }, - { href: admin_settings_work_package_tracking_path, text: t(:label_work_package_plural) }, + { href: admin_settings_work_packages_general_path, text: t(:label_work_package_plural) }, { href: statuses_path, text: t(:label_status) }, @status.name]) end diff --git a/app/views/statuses/index.html.erb b/app/views/statuses/index.html.erb index 5bbbfe24fc45..cf0dbfb93692 100644 --- a/app/views/statuses/index.html.erb +++ b/app/views/statuses/index.html.erb @@ -33,7 +33,7 @@ See COPYRIGHT and LICENSE files for more details. render Primer::OpenProject::PageHeader.new do |header| header.with_title { I18n.t(:label_status) } header.with_breadcrumbs([{ href: admin_index_path, text: t("label_administration") }, - { href: admin_settings_work_package_tracking_path, text: t(:label_work_package_plural) }, + { href: admin_settings_work_packages_general_path, text: t(:label_work_package_plural) }, I18n.t(:label_status)]) end %> diff --git a/app/views/statuses/new.html.erb b/app/views/statuses/new.html.erb index a3537b90d16e..8b5b660713a6 100644 --- a/app/views/statuses/new.html.erb +++ b/app/views/statuses/new.html.erb @@ -33,7 +33,7 @@ See COPYRIGHT and LICENSE files for more details. render Primer::OpenProject::PageHeader.new do |header| header.with_title { t(:label_work_package_status_new) } header.with_breadcrumbs([{ href: admin_index_path, text: t("label_administration") }, - { href: admin_settings_work_package_tracking_path, text: t(:label_work_package_plural) }, + { href: admin_settings_work_packages_general_path, text: t(:label_work_package_plural) }, { href: statuses_path, text: t(:label_status) }, t(:label_work_package_status_new)]) end diff --git a/app/views/types/index.html.erb b/app/views/types/index.html.erb index 7794772696fe..1b8856b626e1 100644 --- a/app/views/types/index.html.erb +++ b/app/views/types/index.html.erb @@ -33,7 +33,7 @@ See COPYRIGHT and LICENSE files for more details. render Primer::OpenProject::PageHeader.new do |header| header.with_title { t(:label_type_plural) } header.with_breadcrumbs([{ href: admin_index_path, text: t("label_administration") }, - { href: admin_settings_work_package_tracking_path, text: t(:label_work_package_plural) }, + { href: admin_settings_work_packages_general_path, text: t(:label_work_package_plural) }, t(:label_type_plural)]) end %> diff --git a/app/views/types/new.html.erb b/app/views/types/new.html.erb index 44eee4a52a3a..60cc30a16a0e 100644 --- a/app/views/types/new.html.erb +++ b/app/views/types/new.html.erb @@ -33,7 +33,7 @@ See COPYRIGHT and LICENSE files for more details. render Primer::OpenProject::PageHeader.new do |header| header.with_title { t(:label_type_new) } header.with_breadcrumbs([{ href: admin_index_path, text: t("label_administration") }, - { href: admin_settings_work_package_tracking_path, text: t(:label_work_package_plural) }, + { href: admin_settings_work_packages_general_path, text: t(:label_work_package_plural) }, { href: types_path, text: t(:label_type_plural) }, t(:label_type_new)]) end diff --git a/app/views/wiki/diff.html.erb b/app/views/wiki/diff.html.erb index 934f6af2725d..a15ab391feda 100644 --- a/app/views/wiki/diff.html.erb +++ b/app/views/wiki/diff.html.erb @@ -44,5 +44,5 @@ See COPYRIGHT and LICENSE files for more details. (<%= @diff.content_to.user ? link_to_user(@diff.content_to.user) : t(:label_user_anonymous) %>, <%= format_time(@diff.content_to.created_at) %>)

    - <%= nl2br @html_diff %> + <%= @html_diff.html_safe %>
    diff --git a/app/views/work_packages/progress/update.turbo_stream.erb b/app/views/work_packages/progress/update.turbo_stream.erb deleted file mode 100644 index eb5c77eb6d17..000000000000 --- a/app/views/work_packages/progress/update.turbo_stream.erb +++ /dev/null @@ -1,3 +0,0 @@ -<%= turbo_stream.update "work_package_progress_modal" do %> - <%= render modal_class.new(@work_package, focused_field: params[:field]) %> -<% end %> diff --git a/app/workers/work_packages/progress/apply_statuses_change_job.rb b/app/workers/work_packages/progress/apply_statuses_change_job.rb index affb1979cea7..eeecc42ec4be 100644 --- a/app/workers/work_packages/progress/apply_statuses_change_job.rb +++ b/app/workers/work_packages/progress/apply_statuses_change_job.rb @@ -70,12 +70,10 @@ def adjust_progress_values if WorkPackage.work_based_mode? clear_percent_complete_when_0h_work elsif WorkPackage.status_based_mode? - set_p_complete_from_status - if OpenProject::FeatureDecisions.percent_complete_edition_active? - fix_remaining_work_set_with_100p_complete - derive_unset_work_from_remaining_work_and_p_complete - end - derive_remaining_work_from_work_and_p_complete + set_percent_complete_from_status + fix_remaining_work_set_with_100_percent_complete + derive_unset_work_from_remaining_work_and_percent_complete + derive_remaining_work_from_work_and_percent_complete end end diff --git a/app/workers/work_packages/progress/apply_total_percent_complete_mode_change_job.rb b/app/workers/work_packages/progress/apply_total_percent_complete_mode_change_job.rb new file mode 100644 index 000000000000..d14fd19fcea7 --- /dev/null +++ b/app/workers/work_packages/progress/apply_total_percent_complete_mode_change_job.rb @@ -0,0 +1,94 @@ +#-- 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::Progress::ApplyTotalPercentCompleteModeChangeJob < WorkPackages::Progress::Job + VALID_CAUSE_TYPES = %w[ + total_percent_complete_mode_changed_to_work_weighted_average + total_percent_complete_mode_changed_to_simple_average + ].freeze + + attr_reader :cause_type, :mode + + # Updates the total % complete of all work packages after the total + # percent complete mode has been changed. + # + # It creates a journal entry with the System user describing the changes. + # + # + # Updates the total % complete of all work packages after the total + # percent complete mode has been changed. + # + # It creates a journal entry with the System user describing the changes. + # + # @param [String] cause_type The cause type of the change + # @param [String] mode The new total percent complete mode + # @return [void] + def perform(cause_type:, mode:) + @cause_type = cause_type + @mode = mode + + with_temporary_total_percent_complete_table do + update_total_percent_complete + copy_total_percent_complete_values_to_work_packages_and_update_journals(journal_cause) + end + end + + private + + def update_total_percent_complete + case mode + when "work_weighted_average" + update_total_percent_complete_in_work_weighted_average_mode + when "simple_average" + update_total_percent_complete_in_simple_average_mode + else + raise ArgumentError, "Invalid total percent complete mode: #{mode}" + end + end + + def journal_cause + assert_valid_cause_type! + + @journal_cause ||= + case cause_type + when "total_percent_complete_mode_changed_to_work_weighted_average" + Journal::CausedByTotalPercentCompleteModeChangedToWorkWeightedAverage.new + when "total_percent_complete_mode_changed_to_simple_average" + Journal::CausedByTotalPercentCompleteModeChangedToSimpleAverage.new + else + raise "Unable to handle cause type #{cause_type.inspect}" + end + end + + def assert_valid_cause_type! + unless VALID_CAUSE_TYPES.include?(cause_type) + raise ArgumentError, "Invalid cause type #{cause_type.inspect}. " \ + "Valid values are #{VALID_CAUSE_TYPES.inspect}" + end + end +end diff --git a/app/workers/work_packages/progress/migrate_values_job.rb b/app/workers/work_packages/progress/migrate_values_job.rb index 6fcf14aad81c..186fd72634dd 100644 --- a/app/workers/work_packages/progress/migrate_values_job.rb +++ b/app/workers/work_packages/progress/migrate_values_job.rb @@ -50,24 +50,33 @@ def perform(current_mode:, previous_mode:) def adjust_progress_values case current_mode when "field" - unset_all_percent_complete_values if previous_mode == "disabled" - fix_remaining_work_set_with_100p_complete - fix_remaining_work_exceeding_work - fix_only_work_being_set - fix_only_remaining_work_being_set - derive_unset_remaining_work_from_work_and_p_complete - derive_unset_work_from_remaining_work_and_p_complete - derive_p_complete_from_work_and_remaining_work + adjust_progress_values_for_work_based_mode when "status" - set_p_complete_from_status - fix_remaining_work_set_with_100p_complete - derive_unset_work_from_remaining_work_and_p_complete - derive_remaining_work_from_work_and_p_complete + adjust_progress_values_for_status_based_mode else raise "Unknown progress calculation mode: #{current_mode}, aborting." end end + def adjust_progress_values_for_work_based_mode + unset_all_percent_complete_values if previous_mode == "disabled" + fix_remaining_work_set_with_100_percent_complete + fix_remaining_work_exceeding_work + fix_only_work_being_set + fix_only_remaining_work_being_set + derive_unset_work_from_remaining_work_and_percent_complete + derive_unset_percent_complete_from_work_and_remaining_work + fix_percent_complete_and_remaining_work_when_work_is_0h + derive_remaining_work_from_work_and_percent_complete + end + + def adjust_progress_values_for_status_based_mode + set_percent_complete_from_status + fix_remaining_work_set_with_100_percent_complete + derive_unset_work_from_remaining_work_and_percent_complete + derive_remaining_work_from_work_and_percent_complete + end + def unset_all_percent_complete_values execute(<<~SQL.squish) UPDATE temp_wp_progress_values @@ -97,32 +106,26 @@ def fix_only_work_being_set SQL end - def fix_only_remaining_work_being_set + def fix_percent_complete_and_remaining_work_when_work_is_0h execute(<<~SQL.squish) UPDATE temp_wp_progress_values - SET estimated_hours = remaining_hours - WHERE estimated_hours IS NULL - AND remaining_hours IS NOT NULL - AND done_ratio IS NULL + SET remaining_hours = 0, + done_ratio = NULL + WHERE estimated_hours = 0 SQL end - def derive_unset_remaining_work_from_work_and_p_complete + def fix_only_remaining_work_being_set execute(<<~SQL.squish) UPDATE temp_wp_progress_values - SET remaining_hours = - GREATEST(0, - LEAST(estimated_hours, - ROUND((estimated_hours - (estimated_hours * done_ratio / 100.0))::numeric, 2) - ) - ) - WHERE estimated_hours IS NOT NULL - AND remaining_hours IS NULL - AND done_ratio IS NOT NULL + SET estimated_hours = remaining_hours + WHERE estimated_hours IS NULL + AND remaining_hours IS NOT NULL + AND done_ratio IS NULL SQL end - def derive_p_complete_from_work_and_remaining_work + def derive_unset_percent_complete_from_work_and_remaining_work execute(<<~SQL.squish) UPDATE temp_wp_progress_values SET done_ratio = CASE @@ -131,6 +134,7 @@ def derive_p_complete_from_work_and_remaining_work END WHERE estimated_hours >= 0 AND remaining_hours >= 0 + AND done_ratio IS NULL SQL end diff --git a/app/workers/work_packages/progress/sql_commands.rb b/app/workers/work_packages/progress/sql_commands.rb index b00763d1098f..6d367d0f7f95 100644 --- a/app/workers/work_packages/progress/sql_commands.rb +++ b/app/workers/work_packages/progress/sql_commands.rb @@ -32,8 +32,10 @@ module WorkPackages::Progress::SqlCommands def with_temporary_progress_table WorkPackage.transaction do create_temporary_progress_table + create_temporary_depth_table yield ensure + drop_temporary_depth_table drop_temporary_progress_table end end @@ -42,15 +44,18 @@ def create_temporary_progress_table execute(<<~SQL.squish) CREATE UNLOGGED TABLE temp_wp_progress_values AS SELECT - id, + work_packages.id, + parent_id as parent_id, status_id, estimated_hours, remaining_hours, done_ratio, + statuses.excluded_from_totals AS status_excluded_from_totals, NULL::double precision AS total_work, NULL::double precision AS total_remaining_work, NULL::integer AS total_p_complete FROM work_packages + LEFT JOIN statuses ON work_packages.status_id = statuses.id SQL end @@ -60,7 +65,75 @@ def drop_temporary_progress_table SQL end - def derive_remaining_work_from_work_and_p_complete + def with_temporary_total_percent_complete_table + WorkPackage.transaction do + case mode + when "work_weighted_average" + create_temporary_total_percent_complete_table_for_work_weighted_average_mode + when "simple_average" + create_temporary_total_percent_complete_table_for_simple_average_mode + create_temporary_depth_table + else + raise ArgumentError, "Invalid total percent complete mode: #{mode}" + end + + yield + ensure + drop_temporary_total_percent_complete_table + drop_temporary_depth_table + end + end + + def create_temporary_total_percent_complete_table_for_work_weighted_average_mode + execute(<<~SQL.squish) + CREATE UNLOGGED TABLE temp_wp_progress_values AS + SELECT + id, + derived_estimated_hours as total_work, + derived_remaining_hours as total_remaining_work, + derived_done_ratio as total_p_complete + FROM work_packages + SQL + end + + def create_temporary_total_percent_complete_table_for_simple_average_mode + execute(<<~SQL.squish) + CREATE UNLOGGED TABLE temp_wp_progress_values AS + SELECT + work_packages.id as id, + work_packages.parent_id as parent_id, + statuses.excluded_from_totals AS status_excluded_from_totals, + done_ratio, + NULL::INTEGER AS total_p_complete + FROM work_packages + LEFT JOIN statuses ON work_packages.status_id = statuses.id + SQL + end + + def create_temporary_depth_table + execute(<<~SQL.squish) + CREATE UNLOGGED TABLE temp_work_package_depth AS + SELECT + ancestor_id as id, + max(generations) as depth + FROM work_package_hierarchies + GROUP BY ancestor_id + SQL + end + + def drop_temporary_total_percent_complete_table + execute(<<~SQL.squish) + DROP TABLE IF EXISTS temp_wp_progress_values + SQL + end + + def drop_temporary_depth_table + execute(<<~SQL.squish) + DROP TABLE IF EXISTS temp_work_package_depth + SQL + end + + def derive_remaining_work_from_work_and_percent_complete execute(<<~SQL.squish) UPDATE temp_wp_progress_values SET remaining_hours = @@ -74,7 +147,7 @@ def derive_remaining_work_from_work_and_p_complete SQL end - def set_p_complete_from_status + def set_percent_complete_from_status execute(<<~SQL.squish) UPDATE temp_wp_progress_values SET done_ratio = statuses.default_done_ratio @@ -83,7 +156,7 @@ def set_p_complete_from_status SQL end - def fix_remaining_work_set_with_100p_complete + def fix_remaining_work_set_with_100_percent_complete execute(<<~SQL.squish) UPDATE temp_wp_progress_values SET estimated_hours = remaining_hours, @@ -94,7 +167,7 @@ def fix_remaining_work_set_with_100p_complete SQL end - def derive_unset_work_from_remaining_work_and_p_complete + def derive_unset_work_from_remaining_work_and_percent_complete execute(<<~SQL.squish) UPDATE temp_wp_progress_values SET estimated_hours = @@ -111,14 +184,19 @@ def derive_unset_work_from_remaining_work_and_p_complete # Computes total work, total remaining work and total % complete for all work # packages having children. def update_totals + update_work_and_remaining_work_totals + if Setting.total_percent_complete_mode == "work_weighted_average" + update_total_percent_complete_in_work_weighted_average_mode + elsif Setting.total_percent_complete_mode == "simple_average" + update_total_percent_complete_in_simple_average_mode + end + end + + def update_work_and_remaining_work_totals execute(<<~SQL.squish) UPDATE temp_wp_progress_values SET total_work = totals.total_work, - total_remaining_work = totals.total_remaining_work, - total_p_complete = CASE - WHEN totals.total_work = 0 THEN NULL - ELSE (1 - (totals.total_remaining_work / totals.total_work)) * 100 - END + total_remaining_work = totals.total_remaining_work FROM ( SELECT wp_tree.ancestor_id AS id, SUM(estimated_hours) AS total_work, @@ -139,6 +217,96 @@ def update_totals SQL end + def update_total_percent_complete_in_work_weighted_average_mode + execute(<<~SQL.squish) + UPDATE temp_wp_progress_values + SET total_p_complete = CASE + WHEN total_work IS NULL OR total_remaining_work IS NULL THEN NULL + WHEN total_work = 0 THEN NULL + ELSE ROUND( + ((total_work - total_remaining_work)::float / total_work) * 100 + ) + END + WHERE id IN ( + SELECT ancestor_id + FROM work_package_hierarchies + GROUP BY ancestor_id + HAVING MAX(generations) > 0 + ) + SQL + end + + def update_total_percent_complete_in_simple_average_mode + execute(<<~SQL.squish) + DO $$ + DECLARE + min_depth INTEGER := 0; + max_depth INTEGER := (SELECT MAX(depth) FROM temp_work_package_depth); + current_depth INTEGER := min_depth; + BEGIN + /* Navigate work packages and perform updates bottom-up */ + while current_depth <= max_depth loop + UPDATE temp_wp_progress_values wp + SET + total_p_complete = CASE + WHEN current_depth = min_depth THEN NULL + ELSE ROUND( + ( + /* Exclude the current work package if it has a status excluded from totals */ + CASE WHEN wp.status_excluded_from_totals + THEN 0 + /* Otherwise, use the current work package's % complete value or 0 if unset */ + ELSE COALESCE(wp.done_ratio, 0) + END + ( + SELECT + SUM( + COALESCE(child_wp.total_p_complete, child_wp.done_ratio, 0) + ) + FROM + temp_wp_progress_values child_wp + WHERE + child_wp.parent_id = wp.id + /* Exclude children with a status excluded from totals */ + AND NOT child_wp.status_excluded_from_totals + ) + ) / ( + /* Exclude the current work package if it has a status excluded from totals */ + CASE WHEN wp.status_excluded_from_totals + THEN 0 + /* Otherwise, count the current work package if it has a % complete value set */ + ELSE(CASE WHEN wp.done_ratio IS NOT NULL THEN 1 ELSE 0 END) + END + ( + SELECT + COUNT(1) + FROM + temp_wp_progress_values child_wp + WHERE + child_wp.parent_id = wp.id + /* Exclude children with a status excluded from totals */ + AND NOT child_wp.status_excluded_from_totals + ) + ) + ) + END + /* Select only work packages at the curren depth */ + WHERE + wp.id IN ( + SELECT + id + FROM + temp_work_package_depth + WHERE + depth = current_depth + ); + + /* Go up a level from a child to a parent*/ + current_depth := current_depth + 1; + + END loop; + END $$; + SQL + end + def copy_progress_values_to_work_packages_and_update_journals(cause) updated_work_package_ids = copy_progress_values_to_work_packages create_journals_for_updated_work_packages(updated_work_package_ids, cause:) @@ -170,6 +338,28 @@ def copy_progress_values_to_work_packages results.column_values(0) end + def copy_total_percent_complete_values_to_work_packages_and_update_journals(cause) + updated_work_package_ids = copy_total_percent_complete_values_to_work_packages + create_journals_for_updated_work_packages(updated_work_package_ids, cause:) + end + + def copy_total_percent_complete_values_to_work_packages + results = execute(<<~SQL.squish) + UPDATE work_packages + SET derived_done_ratio = temp_wp_progress_values.total_p_complete, + lock_version = lock_version + 1, + updated_at = NOW() + FROM temp_wp_progress_values + WHERE work_packages.id = temp_wp_progress_values.id + AND ( + work_packages.derived_done_ratio IS DISTINCT FROM temp_wp_progress_values.total_p_complete + ) + RETURNING work_packages.id + SQL + + results.column_values(0) + end + def create_journals_for_updated_work_packages(updated_work_package_ids, cause:) WorkPackage.where(id: updated_work_package_ids).find_each do |work_package| Journals::CreateService diff --git a/config/constants/settings/definition.rb b/config/constants/settings/definition.rb index cfda12e8083e..e2bf418d9669 100644 --- a/config/constants/settings/definition.rb +++ b/config/constants/settings/definition.rb @@ -231,6 +231,11 @@ class Definition default: nil, writable: false }, + total_percent_complete_mode: { + description: "Mode in which the total % Complete for work packages in a hierarchy is calculated", + default: "work_weighted_average", + allowed: %w[work_weighted_average simple_average] + }, commit_fix_keywords: { description: "Keywords to look for in commit for fixing work packages", default: "fixes,closes" @@ -741,6 +746,11 @@ class Definition per_page_options: { default: "20, 100" }, + percent_complete_on_status_closed: { + description: "Describes how % complete should change when setting a work package status to a closed one", + default: "no_change", + allowed: %w[no_change set_100p] + }, plain_text_mail: { default: false }, diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index c0c37cdd056b..d6bb582a183a 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -6,6 +6,9 @@ # Add additional assets to the asset load path. # config.assets.paths << Emoji.images_path + config.assets.paths << File.join(Gem + .loaded_specs["openproject-primer_view_components"] + .full_gem_path, "app", "assets", "images") # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in the app/assets @@ -15,4 +18,9 @@ locales/*.js openapi-explorer.min.js ) + + # Special place to load assets of Primer + config.assets.precompile += %w( + loading_indicator.svg + ) end diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb index 46080077b757..aba43849043a 100644 --- a/config/initializers/doorkeeper.rb +++ b/config/initializers/doorkeeper.rb @@ -8,6 +8,11 @@ logged_user.presence || redirect_to(signin_path(back_url: request.fullpath)) end + # Configure to prevent grants when the application is disabled + allow_grant_flow_for_client do |_grant_type, client| + client.enabled? + end + # If you are planning to use Doorkeeper in Rails 5 API-only application, then you might # want to use API mode that will skip all the views management and change the way how # Doorkeeper responds to a requests. diff --git a/config/initializers/feature_decisions.rb b/config/initializers/feature_decisions.rb index 373a37fbb91d..d2d1d2caeb6e 100644 --- a/config/initializers/feature_decisions.rb +++ b/config/initializers/feature_decisions.rb @@ -38,11 +38,5 @@ # initializer 'the_engine.feature_decisions' do # OpenProject::FeatureDecisions.add :some_flag # end -OpenProject::FeatureDecisions.add :percent_complete_edition, - description: "Allow edition of % Complete in work-based progress calculation mode. " \ - "Will be enabled by default in OpenProject 15.0. " \ - "See work package #52233 for more details." - -OpenProject::FeatureDecisions.add :meeting_updated_notification, - description: "Allow flash messages to notify users about concurrent meeting edits. " \ - "See work package #54744 for more details." +OpenProject::FeatureDecisions.add :built_in_oauth_applications, + description: "Allows the display and use of built-in OAuth applications." diff --git a/config/initializers/menus.rb b/config/initializers/menus.rb index 8800c3d6a770..e52606a27690 100644 --- a/config/initializers/menus.rb +++ b/config/initializers/menus.rb @@ -300,15 +300,15 @@ parent: :users_and_permissions menu.push :admin_work_packages, - { controller: "/admin/settings/work_packages_settings", action: :show }, + { controller: "/admin/settings/work_packages_general", action: :show }, if: Proc.new { User.current.admin? }, caption: :label_work_package_plural, icon: "op-view-list" - menu.push :work_packages_setting, - { controller: "/admin/settings/work_packages_settings", action: :show }, + menu.push :work_packages_general, + { controller: "/admin/settings/work_packages_general", action: :show }, if: Proc.new { User.current.admin? }, - caption: :label_work_packages_settings, + caption: :label_general, parent: :admin_work_packages menu.push :types, @@ -321,8 +321,13 @@ { controller: "/statuses" }, if: Proc.new { User.current.admin? }, caption: :label_status, - parent: :admin_work_packages, - html: { class: "statuses" } + parent: :admin_work_packages + + menu.push :progress_tracking, + { controller: "/admin/settings/progress_tracking", action: :show }, + if: Proc.new { User.current.admin? }, + caption: :label_progress_tracking, + parent: :admin_work_packages menu.push :workflows, { controller: "/workflows", action: "edit" }, @@ -409,13 +414,29 @@ caption: :label_system_settings, icon: "gear" - SettingsHelper.system_settings_tabs.each do |node| - menu.push :"settings_#{node[:name]}", - { controller: node[:controller], action: :show }, - caption: node[:label], - if: Proc.new { User.current.admin? && (node[:name] != "experimental" || Rails.env.development?) }, - parent: :settings - end + menu.push :settings_general, + { controller: "/admin/settings/general_settings", action: :show }, + if: Proc.new { User.current.admin? }, + caption: :label_general, + parent: :settings + + menu.push :settings_languages, + { controller: "/admin/settings/languages_settings", action: :show }, + if: Proc.new { User.current.admin? }, + caption: :label_languages, + parent: :settings + + menu.push :settings_repositories, + { controller: "/admin/settings/repositories_settings", action: :show }, + if: Proc.new { User.current.admin? }, + caption: :label_repository_plural, + parent: :settings + + menu.push :settings_experimental, + { controller: "/admin/settings/experimental_settings", action: :show }, + if: Proc.new { User.current.admin? && Rails.env.development? }, + caption: :label_experimental, + parent: :settings menu.push :mail_and_notifications, { controller: "/admin/settings/aggregation_settings", action: :show }, diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb index 21ac2dd65d90..89bf62e81583 100644 --- a/config/initializers/omniauth.rb +++ b/config/initializers/omniauth.rb @@ -28,6 +28,10 @@ OmniAuth.config.logger = Rails.logger +OmniAuth.config.on_failure = Proc.new do |env| + OmniAuthLoginController.action(:failure).call(env) +end + Rails.application.config.middleware.use OmniAuth::Builder do unless Rails.env.production? provider :developer, fields: %i[first_name last_name email] diff --git a/config/initializers/permissions.rb b/config/initializers/permissions.rb index 3cbf2786414c..d0ea7360287d 100644 --- a/config/initializers/permissions.rb +++ b/config/initializers/permissions.rb @@ -49,7 +49,7 @@ }, permissible_on: :global, require: :loggedin, - enabled: -> { OpenProject::Configuration.backup_enabled? } + visible: -> { OpenProject::Configuration.backup_enabled? } map.permission :create_user, { diff --git a/config/locales/crowdin/af.yml b/config/locales/crowdin/af.yml index 284f7224dc26..1206cee548fd 100644 --- a/config/locales/crowdin/af.yml +++ b/config/locales/crowdin/af.yml @@ -31,6 +31,9 @@ af: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ af: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ af: title: "Pasgemaakte aksies" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ af: uid: "Client ID" secret: "Client secret" owner: "Eienaar" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ af: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ af: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ af: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ af: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "kleinletter (bv. 'a')" uppercase: "grootletter (bv. 'A')" numeric: "numeries (bv. ' 1')" @@ -1630,7 +1648,7 @@ af: error_menu_item_not_saved: Kieslysitem kon nie gestoor word nie error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Veranderingstel geredigeer" @@ -1802,7 +1820,7 @@ af: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ af: label_additional_workflow_transitions_for_assignee: "Bykomende oorgange toegelaat wanneer die gebruiker die gedelegeerde is" label_additional_workflow_transitions_for_author: "Bykomende oorgange toegelaat wanneer die gebruiker die outeur is" label_administration: "Administrasie" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Ouderdom" label_ago: "dae gelede" label_all: "alle" @@ -1944,6 +1963,7 @@ af: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Waarmerking" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ af: label_copy_project: "Dupliseer projek" label_core_version: "Kern weergawe" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Huidige status" label_current_version: "Huidige weergawe" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ af: label_custom_field_plural: "Pasgemaakte velde" label_custom_field_default_type: "Leë tipe" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Beheerpaneel" label_database_version: "PostgreSQL version" label_date: "Datum" @@ -2143,9 +2165,9 @@ af: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Beskrywing Vergelyking" label_language: "Taal" @@ -2295,6 +2317,7 @@ af: label_product_version: "Produk weergawe" label_profile: "Profiel" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Projek" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ af: label_work_package_new: "Nuwe werkspakket" label_work_package_edit: "Redigeer werkspakket %{name}" label_work_package_plural: "Werkspakkete" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Werkspakket status" label_work_package_status_new: "Nuwe status" label_work_package_status_plural: "Werkspakket statusse" @@ -3119,11 +3141,13 @@ af: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ af: setting_password_min_length: "Minimum lengte" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ af: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ af: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Opmerking" @@ -3718,12 +3748,16 @@ af: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ af: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/ar.yml b/config/locales/crowdin/ar.yml index f7608821cd0c..11fc4fc98dea 100644 --- a/config/locales/crowdin/ar.yml +++ b/config/locales/crowdin/ar.yml @@ -31,6 +31,9 @@ ar: custom_styles: color_theme: "لون السمة" color_theme_custom: "(تخصيص)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ ar: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ ar: title: "إجراءات مخصصة" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -659,6 +668,8 @@ ar: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -830,6 +841,7 @@ ar: blank: "لا يمكن أن يكون فارغا." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "حزمة العمل لا يمكن أن تكون مرتبطة إلى واحدة من المهام الفرعية." circular_dependency: "ان هذه العلاقة خلق تبعية دائرية." confirmation: "لا يتطابق مع %{attribute}." @@ -903,6 +915,10 @@ ar: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) مسموح بقيمة واحدة فقط." empty: "(%{name}) لا يمكن أن تكون القيمة فارغة." @@ -933,6 +949,8 @@ ar: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1130,7 +1148,7 @@ ar: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "يجب أن تحتوي على أحرف الفئات التالية (على الأقل %{min_count} %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "أحرف صغيرة (مثل 'a')" uppercase: "أحرف كبيرة (على سبيل المثال، 'A')" numeric: "رقمية (على سبيل المثال، '1')" @@ -1770,7 +1788,7 @@ ar: error_menu_item_not_saved: لا يمكن حفظ عنصر القائمة error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "تم تحرير مجموعة التغييرات" @@ -1942,7 +1960,7 @@ ar: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -2051,7 +2069,8 @@ ar: label_additional_workflow_transitions_for_assignee: "يسمح بالتحولات إضافية عندما يكون العمل قد احيل للمستخدم" label_additional_workflow_transitions_for_author: "يسمح بالتحولات الإضافية عندما يكون المستخدم هو منشئ مجموعة العمل" label_administration: "الإدارة" - label_advanced_settings: "الإعدادات المتقدمة" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "العمر" label_ago: "أيام مضت" label_all: "الكل" @@ -2084,6 +2103,7 @@ ar: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "المصادقة" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2156,6 +2176,7 @@ ar: label_copy_project: "نسخ المشروع" label_core_version: "النسخة الأساسية" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "الحالة الحالية" label_current_version: "النسخة الحالية" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2163,6 +2184,7 @@ ar: label_custom_field_plural: "الحقول المخصصة" label_custom_field_default_type: "نوع فارغ" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: " لوحة القيادة" label_database_version: "PostgreSQL version" label_date: "التاريخ" @@ -2283,9 +2305,9 @@ ar: label_share: "شارك" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "إظهار / إخفاء" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "يوميات" label_journal_diff: "مقارنة التوصيف" label_language: "اللغة" @@ -2435,6 +2457,7 @@ ar: label_product_version: "إصدار المنتج" label_profile: "الصفحة الشخصية" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "مشروع" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2620,7 +2643,6 @@ ar: label_work_package_new: "مجموعة عمل جديدة" label_work_package_edit: "تعديل مجموعة العمل %{name}" label_work_package_plural: "مجموعات العمل" - label_work_packages_settings: "Work packages settings" label_work_package_status: "حالة مجموعة العمل" label_work_package_status_new: "حالة جديدة" label_work_package_status_plural: "حالات مجموعة العمل" @@ -3265,11 +3287,13 @@ ar: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "خصائص مجموعة العمل" @@ -3290,6 +3314,13 @@ ar: setting_password_min_length: "الطول الأدنى" setting_password_min_adhered_rules: "الحد الأدنى لعدد من الفئات المطلوبة" setting_per_page_options: "الكائنات لكل خيارات الصفحة" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "بريد النص العادي (لا إتش تي أم ال)" setting_protocol: "البروتوكول Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3659,7 +3690,6 @@ ar: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3674,9 +3704,9 @@ ar: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "تعليق" @@ -3868,12 +3898,16 @@ ar: close_warning: "تجاهل هذا التحذير." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3882,6 +3916,10 @@ ar: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/az.yml b/config/locales/crowdin/az.yml index e4ccc80d6cf1..445b5b98a369 100644 --- a/config/locales/crowdin/az.yml +++ b/config/locales/crowdin/az.yml @@ -31,6 +31,9 @@ az: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ az: contact: "Demo üçün bizimlə əlaqə saxlayın" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ az: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ az: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ az: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ az: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ az: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ az: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1630,7 +1648,7 @@ az: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ az: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ az: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1944,6 +1963,7 @@ az: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ az: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ az: label_custom_field_plural: "Özəl sahələr" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2143,9 +2165,9 @@ az: label_share: "Paylaş" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2295,6 +2317,7 @@ az: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ az: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ az: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ az: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ az: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ az: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3718,12 +3748,16 @@ az: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ az: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/be.yml b/config/locales/crowdin/be.yml index b8b13477d37e..2ad5fadb1ceb 100644 --- a/config/locales/crowdin/be.yml +++ b/config/locales/crowdin/be.yml @@ -31,6 +31,9 @@ be: custom_styles: color_theme: "Каляровая тэма" color_theme_custom: "(Карыстальніцкая)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Асноўная кнопка" accent-color: "Акцэнт" @@ -79,6 +82,7 @@ be: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ be: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -645,6 +654,8 @@ be: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -816,6 +827,7 @@ be: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -889,6 +901,10 @@ be: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -919,6 +935,8 @@ be: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1116,7 +1134,7 @@ be: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1700,7 +1718,7 @@ be: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1872,7 +1890,7 @@ be: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1981,7 +1999,8 @@ be: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -2014,6 +2033,7 @@ be: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2086,6 +2106,7 @@ be: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2093,6 +2114,7 @@ be: label_custom_field_plural: "Карыстальніцкія палі" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Дата" @@ -2213,9 +2235,9 @@ be: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2365,6 +2387,7 @@ be: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2550,7 +2573,6 @@ be: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3193,11 +3215,13 @@ be: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3218,6 +3242,13 @@ be: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3585,7 +3616,6 @@ be: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3600,9 +3630,9 @@ be: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3794,12 +3824,16 @@ be: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3808,6 +3842,10 @@ be: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/bg.yml b/config/locales/crowdin/bg.yml index 89e61416b5e4..9bd85f39761a 100644 --- a/config/locales/crowdin/bg.yml +++ b/config/locales/crowdin/bg.yml @@ -31,6 +31,9 @@ bg: custom_styles: color_theme: "Цвят на темата" color_theme_custom: "Потребителски" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Основен бутон" accent-color: "Акцент" @@ -79,6 +82,7 @@ bg: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ bg: title: "Персонализирани действия" description: "Потребителските действия са преки пътища с едно кликване до набор от предварително дефинирани действия, които можете да направите достъпни за определени работни пакети въз основа на статус, роля, тип или проект." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > За да добавите нови потребителски полета към даден проект, първо трябва да ги създадете, преди да можете да ги добавите към този проект. is_enabled_globally: "Активирано е глобално" @@ -631,6 +640,8 @@ bg: uid: "№ на клиент" secret: "Тайна на клиента" owner: "Собственик" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Пренасочване на URI" client_credentials_user_id: "Клиентски идентификационни данни Потребителски ИД" scopes: "Обхвати" @@ -802,6 +813,7 @@ bg: blank: "не може да бъде празно." blank_nested: "трябва да бъде зададено свойството '%{property}'." cannot_delete_mapping: "е необходимо. Не може да бъде изтрит." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Работния пакет не може да бъде свързан с една от неговите подзадачи." circular_dependency: "Тази връзка ще доведе до циклична зависимост." confirmation: "не съвпада с %{attribute}." @@ -875,6 +887,10 @@ bg: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ bg: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ bg: confirmation: "Потвърждението на паролата не съвпада с паролата." format: "%{message}" password: - weak: "Трябва да съдържа знаци от следните класове (най-малко %{min_count} на %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "малки букви (например \"а\")" uppercase: "главни (например \"А\")" numeric: "цифрова (например ' 1')" @@ -1630,7 +1648,7 @@ bg: error_menu_item_not_saved: Елементът от менюто не може да бъде записан error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Възникна грешка по време на външно удостоверяване. Моля, опитайте отново." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Редактиран пакет промени" @@ -1802,7 +1820,7 @@ bg: progress_mode_changed_to_status_based: Режим на изчисление на напредъка, зададен на базата на състоянието status_excluded_from_totals_set_to_false_message: сега са включени в общите суми на йерархията status_excluded_from_totals_set_to_true_message: сега са изключени от общите стойности на йерархията - status_percent_complete_changed: "% завършеност променен от %{old_value}% на %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Отсега нататък дейностите, свързани с файлови връзки (файлове, съхранявани във външни хранилища), ще се показват тук, в раздела Дейности. По-долу е представена дейност, свързана с връзки, които вече са съществували: @@ -1911,7 +1929,8 @@ bg: label_additional_workflow_transitions_for_assignee: "Допълнителни промени са рарзрешени, когато потребителят е назначен към задачата" label_additional_workflow_transitions_for_author: "Допълнителни промени са рарзрешени, когато потребителят е автор" label_administration: "Администрация" - label_advanced_settings: "Разширени настройки" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Възраст" label_ago: "преди" label_all: "всички" @@ -1944,6 +1963,7 @@ bg: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Оторизация" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ bg: label_copy_project: "Копирай проекта" label_core_version: "Версия на ядрото" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Текущо състояние" label_current_version: "Настояща версия" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ bg: label_custom_field_plural: "допълнителни полета" label_custom_field_default_type: "Празен тип" label_custom_style: "Дизайн" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Табло" label_database_version: "Версия на PostgreSQL" label_date: "Дата" @@ -2143,9 +2165,9 @@ bg: label_share: "Споделяне" label_share_project_list: "Споделяне на списък с проекти" label_share_work_package: "Share work package" - label_show_hide: "Покажи/Скрий" - label_show_hide_n_items: "Показване/скриване елементите на %{count}" label_show_all_registered_users: "Показване на всички регистрирани потребители" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Дневник" label_journal_diff: "Сравнение на описание" label_language: "Език" @@ -2295,6 +2317,7 @@ bg: label_product_version: "Версия на продукта" label_profile: "Профил" label_percent_complete: "% Завършено" + label_progress_tracking: "Progress tracking" label_project: "Проект" label_project_activity: "Project activity" label_project_attribute_plural: "Атрибути на проекта" @@ -2480,7 +2503,6 @@ bg: label_work_package_new: "Нов работен пакет" label_work_package_edit: "Редактиране на работен пакет %{name}" label_work_package_plural: "Работни пакети" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Статус на работен пакет" label_work_package_status_new: "Ново състояние" label_work_package_status_plural: "Статуси на работни пакети" @@ -3119,11 +3141,13 @@ bg: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Имейлът за активиране изтича след" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ bg: setting_password_min_length: "Минимална дължина" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Протокол" setting_project_gantt_query: "Gantt изглед портфолиото на проекта" @@ -3509,7 +3540,6 @@ bg: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ bg: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Коментар" @@ -3718,12 +3748,16 @@ bg: close_warning: "Игнориране на това предупреждение." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ bg: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "№ на клиент" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/ca.yml b/config/locales/crowdin/ca.yml index c1c196367968..a5bae9e91eab 100644 --- a/config/locales/crowdin/ca.yml +++ b/config/locales/crowdin/ca.yml @@ -31,6 +31,9 @@ ca: custom_styles: color_theme: "Tema de color" color_theme_custom: "(Personalitzat)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Botó principal" accent-color: "Accent" @@ -79,6 +82,7 @@ ca: contact: "Contacta amb nosaltres per una demostració" enterprise_info_html: "és una extensió de l'edició Enterprise ." upgrade_info: "Si us plau, actualitza a una versió de pagament per tal d'activar i començar a utilitzar aquesta funcionalitat en el teu equip." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Les accions individuals d'un sol usuari (per exemple actualitzar dos cops un paquet de treball) seran agregades en una sola acció si la diferència temporal és menor a l'especificada. Aquests seran exposats com una acció individual dins l'aplicació. Això, també reduïra el número d'emails enviats i el retràs en el %{webhook_link} ja que les notificacións també seran retrasades." @@ -199,6 +203,11 @@ ca: title: "Accions personalitzades" description: "Les accions personalitzades són accessos ràpids d'un sol clic que et permeten crear accions predefinides en els paquets de treball que desitgis basat en estat, rol, estil o projecte." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Per afegir nous camps personalitzats a un projecte primer has de crear-los abans de poder-los afegir a aquest projecte. is_enabled_globally: "És habilitat globalment" @@ -627,6 +636,8 @@ ca: uid: "ID de Client" secret: "Clau secreta del Client" owner: "Propietari" + builtin: "Builtin" + enabled: "Active" redirect_uri: "URI de redirecció" client_credentials_user_id: "ID d'Usuari Credencials de Client" scopes: "Àmbits" @@ -798,6 +809,7 @@ ca: blank: "no pot estar en blanc." blank_nested: "és necessari de definir la propietat '%{property}' ." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Un paquet de treball no es pot enllaçar a una de les seves subtasques." circular_dependency: "Aquesta relació crearia una dependència circular." confirmation: "no coincideix amb el %{attribute}." @@ -871,6 +883,10 @@ ca: minimum: "necessita d'incloure almenys un filtre per a principal, a context o id amb l'operador '='." custom_field: at_least_one_custom_option: "Al menys hi ha d'haver una opció disponible." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) sols és permès un valor." empty: "(%{name}) el valor no ser buit." @@ -901,6 +917,8 @@ ca: name: blank: "és obligatori. Si us plau, selecciona un nom." not_unique: "ja està en ús. Si us plau, selecciona un altre nom." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "És necessari d'especificar almenys un canal per enviar notificacions." attributes: @@ -1098,7 +1116,7 @@ ca: confirmation: "La confirmació de la contrasenya no coincideix." format: "%{message}" password: - weak: "Ha de contenir caràcters de les següents classes (com a mínim %{min_count} de %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "minúscules (ex. \"a\")" uppercase: "majúscules (p. ex. ' A')" numeric: "numèric (p. ex. \"1\")" @@ -1626,7 +1644,7 @@ ca: error_menu_item_not_saved: No es pot desar l'element de menú error_wiki_root_menu_item_conflict: > No es pot reanomenar "%{old_name}" a "%{new_name}" a causa d'un conflicte resultant en l'element de menú amb l'element de menú existent "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "S'ha produït un error durant l'autentificació externa. Torneu-ho a provar." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atribut(s) no destacables: %{attributes}" events: changeset: "Conjunt de canvis editat" @@ -1798,7 +1816,7 @@ ca: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1907,7 +1925,8 @@ ca: label_additional_workflow_transitions_for_assignee: "Transicions addicionals permeses quan l'usuari és l'assignat" label_additional_workflow_transitions_for_author: "Transicions addicionals permeses quan l'usuari és l'autor" label_administration: "Administració" - label_advanced_settings: "Configuració avançada" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Edat" label_ago: "dies abans" label_all: "tot" @@ -1940,6 +1959,7 @@ ca: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Autenticació" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Fòrums disponibles" @@ -2012,6 +2032,7 @@ ca: label_copy_project: "Copiar projecte" label_core_version: "Versió base" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Estat actual" label_current_version: "Versió actual" label_custom_field_add_no_type: "Afegeix aquest camp a una classe de paquet de treball" @@ -2019,6 +2040,7 @@ ca: label_custom_field_plural: "Camps personalitzats" label_custom_field_default_type: "Tipus buit" label_custom_style: "Disseny" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Tauler de control" label_database_version: "Versió PostgreSQL" label_date: "Data" @@ -2139,9 +2161,9 @@ ca: label_share: "Compartir" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Mostrae/ocultar" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Mostra tots els usuaris registrats" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Diari" label_journal_diff: "Descripció de comparació" label_language: "Idioma" @@ -2291,6 +2313,7 @@ ca: label_product_version: "Versió del producte" label_profile: "Perfil" label_percent_complete: "% Complet" + label_progress_tracking: "Progress tracking" label_project: "Projecte" label_project_activity: "Activitat del projecte" label_project_attribute_plural: "Atributs de projecte" @@ -2476,7 +2499,6 @@ ca: label_work_package_new: "Paquet de treball nou" label_work_package_edit: "Editar paquet de treball %{name}" label_work_package_plural: "Paquets de treball" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Estat del paquet de treball" label_work_package_status_new: "Nou estat" label_work_package_status_plural: "Estats de paquet de treball" @@ -3108,11 +3130,13 @@ ca: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "L'activació de correu electrònic caduca després de" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Propietats de paquet de treball" @@ -3133,6 +3157,13 @@ ca: setting_password_min_length: "Longitud mínima" setting_password_min_adhered_rules: "Nombre mínim de classes exigides" setting_per_page_options: "Opcions d'objectes per pàgina" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Només text pla (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Cartera de projecte en diagrama Gantt" @@ -3498,7 +3529,6 @@ ca: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3513,9 +3543,9 @@ ca: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comentari" @@ -3707,12 +3737,16 @@ ca: close_warning: "Ignora aquesta advertència." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Aplicació OAuth" plural: "Aplicacions OAuth" named: "Aplicació OAuth \"%{name}\"." new: "Nova aplicació OAuth" + non_confidential: Non confidential default_scopes: "(Àmbit per defecte)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "El nom de la teva aplicació. Aquest serà mostrat a altres usuaris després d'autoritzar-ho." redirect_uri_html: > Les URLs permeses en les que usuaris autoritzats poden ser redirigits. Una entrada per línia.
    Si estàs registrant una aplicació d'escriptori, utilitza l'URL següent. @@ -3721,6 +3755,10 @@ ca: client_credential_user_id: "ID d'usuari opcional per personificar quan clients utilitzen l'aplicació. Deixa-ho buit per permetre només accés públic" register_intro: "Si estàs desenvolupant una aplicació OAuth API per OpenProject, pots registrar-la utilitzant aquest formulari per a tots els usuaris per utilitzar-la." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID de client" client_secret_notice: > Aquesta és l'única vegada que pots imprimir la clau de client secreta, si us plau, anota-la i guarda-la en un lloc segur. S'ha de tractar com una contrasenya i no pot ser regenerada més tard per OpenProject. diff --git a/config/locales/crowdin/ckb-IR.yml b/config/locales/crowdin/ckb-IR.yml index c09d098fcdea..69803d15e9e8 100644 --- a/config/locales/crowdin/ckb-IR.yml +++ b/config/locales/crowdin/ckb-IR.yml @@ -31,6 +31,9 @@ ckb-IR: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ ckb-IR: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ ckb-IR: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ ckb-IR: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ ckb-IR: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ ckb-IR: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ ckb-IR: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ ckb-IR: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1630,7 +1648,7 @@ ckb-IR: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ ckb-IR: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ ckb-IR: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1944,6 +1963,7 @@ ckb-IR: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ ckb-IR: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ ckb-IR: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2143,9 +2165,9 @@ ckb-IR: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2295,6 +2317,7 @@ ckb-IR: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ ckb-IR: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ ckb-IR: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ ckb-IR: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ ckb-IR: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ ckb-IR: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3718,12 +3748,16 @@ ckb-IR: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ ckb-IR: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/cs.yml b/config/locales/crowdin/cs.yml index 2b0028f8651d..82a3476a3051 100644 --- a/config/locales/crowdin/cs.yml +++ b/config/locales/crowdin/cs.yml @@ -31,6 +31,9 @@ cs: custom_styles: color_theme: "Barevné téma" color_theme_custom: "Vlastní" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primární tlačítko" accent-color: "Odstín" @@ -79,6 +82,7 @@ cs: contact: "Kontaktujte nás pro demo" enterprise_info_html: "je doplněk Enterprise edice ." upgrade_info: "Přejděte na placenou verzi a začněte ji používat ve vašem týmu." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individuální akce/úpravy uživatele (např. dvojnásobná aktualizace pracovního balíčku se sečtou do jediné akce, pokud je jejich časový rozdíl menší než stanovený čas. Budou zobrazeny jako jedna akce v rámci aplikace. Toto také zpozdí oznámení o stejný čas a sníží tak počet zasílaných e-mailů a ovlivní se také zpoždění na adrese %{webhook_link}." @@ -202,6 +206,11 @@ cs: title: "Vlastní akce" description: "Vlastní akce jsou zkratky jedním kliknutím na sadu předem definovaných akcí, které můžete zpřístupnit na základě stavu některých pracovních balíčků. role, typ nebo projekt." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Chcete-li přidat nová vlastní pole do projektu, musíte je nejprve vytvořit, než je budete moci přidat do tohoto projektu. is_enabled_globally: "Globálně povoleno" @@ -462,7 +471,7 @@ cs: irreversible: "Tato akce je nevratná" confirmation: "Zadejte název zástupného uživatele %{name} pro potvrzení odstranění." upsale: - title: Placeholder uživatel + title: placeholder uživatel description: > Placeholder uživatelé jsou způsob, jak přiřadit pracovní balíčky uživatelům, kteří nejsou součástí vašeho projektu. Mohou být užiteční v řadě scénářů; například, pokud potřebujete sledovat úkoly u zdroje, který ještě nejsou pojmenovány nebo dostupné, nebo pokud nechcete této osobě umožnit přístup k OpenProject ale stále chcete sledovat úkoly, které jim byly přiděleny. prioritiies: @@ -645,6 +654,8 @@ cs: uid: "ID klienta" secret: "Tajný klíč klienta" owner: "Vlastník" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Přesměrovací URI" client_credentials_user_id: "Uživatelské ID klienta" scopes: "Rozsah" @@ -684,7 +695,7 @@ cs: false: "archivováno" identifier: "Identifikátor" latest_activity_at: "Poslední aktivita" - parent: "Nadřazený projekt" + parent: "Podprojekt" public_value: title: "Viditelnost" true: "veřejný" @@ -790,7 +801,7 @@ cs: true: "zahrnuje nepracovní dny" notify: "Oznámit" #used in custom actions parent: "Nadřazený" - parent_issue: "Nadřazený" + parent_issue: "Rodič" parent_work_package: "Nadřazený" priority: "Priorita" progress: "% Dokončeno" @@ -816,6 +827,7 @@ cs: blank: "nemůže být prázdné." blank_nested: "musí mít nastavenou vlastnost '%{property}'." cannot_delete_mapping: "je povinné. Nelze odstranit." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Pracovní balíček nemůže být propojen s jedním z jeho podúkolů." circular_dependency: "Tento vztah by vytvořil kruhovou závislost." confirmation: "neshoduje se s %{attribute}." @@ -889,6 +901,10 @@ cs: minimum: "musí obsahovat alespoň jeden filtr pro hlavní, kontext nebo id operátora „=“." custom_field: at_least_one_custom_option: "Alespoň jedna možnost musí být k dispozici." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) je povolena pouze jedna hodnota." empty: "(%{name}) hodnota nemůže být prázdná." @@ -919,8 +935,10 @@ cs: name: blank: "je povinné. Zvolte prosím název." not_unique: " už bylo použito. Prosím vyberte jiný název." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." 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í " @@ -1116,7 +1134,7 @@ cs: confirmation: "Hesla se neshodují!" format: "%{message}" password: - weak: "Musí obsahovat znaky z následujících tříd (alespoň %{min_count} z %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "malá písmena (například 'a')" uppercase: "velká písmena (například ' A')" numeric: "číselné (např. 1)" @@ -1172,11 +1190,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: "Projekt" project_query: one: "Seznam projektů" @@ -1700,7 +1718,7 @@ cs: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Nelze přejmenovat "%{old_name}" na "%{new_name}" kvůli konfliktu výsledné položky nabídky s existující položkou nabídky "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Vyskytla sa chyba během externí autentifikace. Prosím zkuste to znova." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atribut není zvýrazněn: %{attributes}" events: changeset: "Sada změn upravena" @@ -1872,7 +1890,7 @@ cs: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: nyní zahrnuty v součtech hierarchie status_excluded_from_totals_set_to_true_message: nyní vyloučen z součtů hierarchie - status_percent_complete_changed: "% dokončeno se změnilo z %{old_value}% na %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Od této chvíle se zde v záložce Aktivita zobrazí činnost související s odkazy na soubory (soubory uložené v externím úložišti). Níže uvedené představují činnost týkající se již existujících: @@ -1890,7 +1908,7 @@ cs: instructions_after_error: "Zkuste se znovu přihlásit kliknutím na %{signin}. Pokud chyba přetrvává, požádejte správce o pomoc." menus: admin: - mail_notification: "E-mailové notifikace" + mail_notification: "E-mailová upozornění" mails_and_notifications: "E-maily a oznámení" aggregation: "Agregace" api_and_webhooks: "API & Webhooky" @@ -1953,7 +1971,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." @@ -1981,7 +1999,8 @@ cs: label_additional_workflow_transitions_for_assignee: "Povolené dodatečné přechody, pokud je uživatel přiřazený" label_additional_workflow_transitions_for_author: "Povolené dodatečné přechody, pokud je uživatel autor" label_administration: "Administrace" - label_advanced_settings: "Pokročilá nastavení" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Věk" label_ago: "dnů před" label_all: "vše" @@ -2014,6 +2033,7 @@ cs: label_attribute_expand_text: "Úplný text pro '%{attribute}'" label_authentication: "Ověření" label_authentication_settings: "Nastavení ověření" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Dostupné globální role" label_available_project_attributes: "Dostupné atributy projektu" label_available_project_forums: "Dostupná fóra" @@ -2086,6 +2106,7 @@ cs: label_copy_project: "Kopírovat projekt" label_core_version: "Verze jádra" label_core_build: "Build jádra" + label_created_by: "Created by %{user}" label_current_status: "Aktuální stav" label_current_version: "Aktuální verze" label_custom_field_add_no_type: "Přidat toto pole k typu pracovního balíčku" @@ -2093,6 +2114,7 @@ cs: label_custom_field_plural: "Vlastní pole" label_custom_field_default_type: "Prázdný typ" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "Verze PostgreSQL" label_date: "Datum" @@ -2213,9 +2235,9 @@ cs: label_share: "Sdílet" label_share_project_list: "Sdílet seznam projektů" label_share_work_package: "Sdílet pracovní balíček" - label_show_hide: "Zobrazit/skrýt" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Zobrazit registrované uživatele" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Deník" label_journal_diff: "Popis porovnání" label_language: "Jazyk" @@ -2346,9 +2368,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" @@ -2365,12 +2387,13 @@ cs: label_product_version: "Verze produktu" label_profile: "Profil" label_percent_complete: "% Dokončeno" + label_progress_tracking: "Progress tracking" label_project: "Projekt" label_project_activity: "Aktivita projektu" 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_latest: "Nejnovější projekty" label_project_default_type: "Povolit prázdný typ" label_project_hierarchy: "Hierarchie projektu" @@ -2512,7 +2535,7 @@ cs: label_users_settings: "Uživatelská nastavení" label_version_new: "Nová verze" 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" @@ -2550,7 +2573,6 @@ cs: label_work_package_new: "Nový pracovní balíček" label_work_package_edit: "Upravit pracovní balíček %{name}" label_work_package_plural: "Pracovní balíčky" - label_work_packages_settings: "Nastavení pracovních balíčků" label_work_package_status: "Stav pracovního balíčku" label_work_package_status_new: "Nový stav" label_work_package_status_plural: "Stav pracovního balíčku" @@ -2618,28 +2640,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}" notification: - center: "Centrum notifikací" + center: "Centrum oznámení" see_in_center: "Zobrazit komentář v oznamovacím centru" settings: "Změnit nastavení e-mailu" salutation: "Ahoj %{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" 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: "Existuje ještě 1 pracovní balíček s oznámeními." + few: "Existuje ještě %{count} pracovních balíčků s oznámeními." + many: "Existuje ještě %{count} pracovních balíčků s oznámeními." + 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" @@ -2648,7 +2670,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" see_all: "Zobrazit vše" @@ -2922,7 +2944,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" @@ -3192,11 +3214,13 @@ cs: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Platnost aktivačního e-mailu vyprší po" - setting_work_package_done_ratio: "Výpočet průběhu" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Na základě práce" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Na základě stavu" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Vlastnosti pracovního balíčku" @@ -3217,6 +3241,13 @@ cs: setting_password_min_length: "Minimální délka" setting_password_min_adhered_rules: "Minimální počet požadovaných tříd" setting_per_page_options: "Objektů na stránku" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Prostý text (ne HTML)" setting_protocol: "Protokol" setting_project_gantt_query: "Gantt Zobrazení projektového portfolia" @@ -3301,7 +3332,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 iCalendar předplatné. 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" @@ -3386,7 +3417,7 @@ cs: text_destroy_with_associated: "Existují další objekty, které jsou přiřazeny k pracovním balíčkům a které mají být odstraněny. Tyto objekty jsou následující typy:" 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.\nNakonfigurujte váš SMTP server pro jejich povolení." + text_email_delivery_not_configured: "Doručení e-mailu není nakonfigurováno a oznámení jsou zakázána.\nNakonfigurujte 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ě." text_file_repository_writable: "Do adresáře příloh lze zapisovat" @@ -3583,7 +3614,6 @@ cs: label_note: "Poznámka:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3598,9 +3628,9 @@ cs: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komentář" @@ -3792,12 +3822,16 @@ cs: close_warning: "Ignorovat toto upozornění." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth aplikace" plural: "OAuth aplikace" named: "OAuth aplikace '%{name}'" new: "Nová OAuth aplikace" + non_confidential: Non confidential default_scopes: "(Výchozí rozsahy)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Název vaší aplikace. Bude zobrazen ostatním uživatelům po autorizaci." redirect_uri_html: > Povolené adresy URL oprávněných uživatelů mohou být přesměrovány na jeden záznam na řádek.
    Pokud registrujete aplikaci pro stolní počítač, použijte následující URL. @@ -3806,6 +3840,10 @@ cs: client_credential_user_id: "Volitelné uživatelské ID pro osobu, když klient používá tuto aplikaci. Ponechte prázdné pro povolení pouze veřejného přístupu" register_intro: "Pokud vytváříte klientskou aplikaci OAuth API pro OpenProject, můžete ji zaregistrovat pomocí tohoto formuláře pro všechny uživatele." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID klienta" client_secret_notice: > Toto je jediná doba, kdy můžeme vytisknout klientské tajemství, prosím všimněte si jej a udržte ho v bezpečí. S ním by mělo být zacházeno jako s heslem a OpenProject jej nemůže získat později. diff --git a/config/locales/crowdin/da.yml b/config/locales/crowdin/da.yml index 2487a37df3b6..b2ee686021c7 100644 --- a/config/locales/crowdin/da.yml +++ b/config/locales/crowdin/da.yml @@ -31,6 +31,9 @@ da: custom_styles: color_theme: "Farvetema" color_theme_custom: "(Tilpas)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ da: contact: "Kontakt os for en demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -200,6 +204,11 @@ da: title: "Brugerdefinerede handlinger" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > For at tilføje nye brugerdefinerede felter til et projekt, skal du først oprette dem, før du kan føje dem til dette projekt. is_enabled_globally: "Er aktiveret globalt" @@ -629,6 +638,8 @@ da: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -800,6 +811,7 @@ da: blank: "må ikke være tomt." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "En arbejdspakke kan ikke knyttes til en af dens underopgaver." circular_dependency: "Denne relation vil skabe en cirkulær afhængighed." confirmation: "matcher ikke %{attribute}." @@ -873,6 +885,10 @@ da: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -903,6 +919,8 @@ da: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1100,7 +1118,7 @@ da: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Skal indeholde tegn fra følgende klasser (minimum %{min_count} af %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "små bogstaver (f.eks. \"a\")" uppercase: "store bogstaver (f.eks. \"A\")" numeric: "tal (fx \"1\")" @@ -1628,7 +1646,7 @@ da: error_menu_item_not_saved: Menupunktet kunne ikke gemmes error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Der opstod en fejl under ekstern godkendelse. Prøv venligst igen." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Pakke af ændringer er redigeret" @@ -1800,7 +1818,7 @@ da: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1909,7 +1927,8 @@ da: label_additional_workflow_transitions_for_assignee: "Yderligere overgange tilladt når brugeren er opdragsgiveren" label_additional_workflow_transitions_for_author: "Yderligere overgange tilladt når brugeren er forfatteren" label_administration: "Administration" - label_advanced_settings: "Avancerede indstillinger" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Alder" label_ago: "dage siden" label_all: "alle" @@ -1942,6 +1961,7 @@ da: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Godkendelse" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2014,6 +2034,7 @@ da: label_copy_project: "Kopier projekt" label_core_version: "Kerneversion" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Nuværende status" label_current_version: "Nuværende version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2021,6 +2042,7 @@ da: label_custom_field_plural: "Selvvalgte felter" label_custom_field_default_type: "Tom typebetegnelse" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Dato" @@ -2141,9 +2163,9 @@ da: label_share: "Del" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Vis/Skjul" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Sammenligning af beskrivelser" label_language: "Sprog" @@ -2293,6 +2315,7 @@ da: label_product_version: "Product version" label_profile: "Profil" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Prjoekt" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2478,7 +2501,6 @@ da: label_work_package_new: "Ny arbejdspakke" label_work_package_edit: "Rediger arbejdspakke %{name}" label_work_package_plural: "Arbejdspakker" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Status for arbejdspakke" label_work_package_status_new: "Ny status" label_work_package_status_plural: "Statusser for arbejdspakke" @@ -3115,11 +3137,13 @@ da: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Egenskaber for arbejdspakke" @@ -3140,6 +3164,13 @@ da: setting_password_min_length: "Mindste længde" setting_password_min_adhered_rules: "Mindste antal krævede typer" setting_per_page_options: "Mulige objekter per side" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Simpel tekst mails (ingen HTML)" setting_protocol: "Protokol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3505,7 +3536,6 @@ da: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3520,9 +3550,9 @@ da: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Kommentér" @@ -3714,12 +3744,16 @@ da: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3728,6 +3762,10 @@ da: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml index 0581d4408526..4647e1be406c 100644 --- a/config/locales/crowdin/de.yml +++ b/config/locales/crowdin/de.yml @@ -31,6 +31,9 @@ de: custom_styles: color_theme: "Farbschema" color_theme_custom: "(Benutzerdefiniert)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primäre Schaltfläche" accent-color: "Akzent" @@ -48,7 +51,7 @@ de: main-menu-border-color: "Rahmenfarbe des Hauptmenüs" custom_colors: "Benutzerdefinierte Farben" customize: "Passen Sie Ihre OpenProject Installation mit Ihrem eigenen Logo und eigenen Farben an." - enterprise_notice: "Dieses kleine Add-on steht den Abonnenten der Enterprise-Edition ganz exklusiv als kleines Dankeschön für deren finanzielle Unterstützung zur Verfügung." + enterprise_notice: "Diese kleine Erweiterung steht den Abonnenten der Enterprise edition ganz exklusiv als kleines Dankeschön für deren finanzielle Unterstützung zur Verfügung." enterprise_more_info: "Hinweis: Das verwendete Logo wird öffentlich zugänglich sein." manage_colors: "Farbauswahloptionen bearbeiten" instructions: @@ -61,15 +64,15 @@ de: main-menu-bg-color: "Hintergrundfarbe des Menüs in der linken Seitenleiste." theme_warning: Das Ändern des Themes wird Ihr benutzerdefiniertes Design überschreiben. Alle Änderungen werden dann verloren gehen. Sind Sie sicher, dass Sie fortfahren möchten? enterprise: - upgrade_to_ee: "Auf Enterprise-Edition upgraden" - add_token: "Enterprise-Edition Support Token hochladen" + upgrade_to_ee: "Auf Enterprise edition upgraden" + add_token: "Enterprise edition Support Token hochladen" delete_token_modal: - text: "Sind Sie sicher, dass Sie das aktuelle Enterprise Edition-Token entfernen möchten?" + text: "Sind Sie sicher, dass Sie das aktuelle Enterprise edition token entfernen möchten?" title: "Token löschen" 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" @@ -79,6 +82,7 @@ de: contact: "Kontaktieren Sie uns für eine Demo" enterprise_info_html: "ist ein Enterprise Add-on." upgrade_info: "Bitte steigen Sie auf einen kostenpflichtigen Plan um, um diese Funktion zu aktivieren und in Ihrem Team zu verwenden." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individuelle Aktionen eines Benutzers (z.B. ein Arbeitspaket zweimal aktualisieren) werden zu einer einzigen Aktion zusammengefasst, wenn ihr Altersunterschied kleiner ist als der angegebene Zeitraum. Sie werden als eine einzige Aktion innerhalb der Anwendung angezeigt. Dadurch werden Benachrichtigungen um die gleiche Zeit verzögert, wodurch die Anzahl der gesendeten E-Mails verringert wird. Dies wirkt sich auch auf die Verzögerung von %{webhook_link} aus." @@ -199,6 +203,11 @@ de: title: "Benutzerdefinierte Aktionen" description: "Benutzerdefinierte Aktionen sind Ein-Klick-Verknüpfungen zu einer Reihe vordefinierter Aktionen, die Sie für bestimmte Arbeitspakete verfügbar machen können, basierend auf Status, Rolle, Typ oder Projekt." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: Für alle Projekte + description: Dieses Projekt-Attribut ist in allen Projekten aktiviert, da die Option "Für alle Projekte" aktiviert ist. Es kann nicht für einzelne Projekte deaktiviert werden. text_add_new_custom_field: > Um neue benutzerdefinierte Felder einem Projekt zuzuweisen, müssen Sie diese erst global erstellen, um Sie dann an dieser Stelle aktivieren zu können. is_enabled_globally: "Für alle Projekte aktiviert" @@ -625,6 +634,8 @@ de: uid: "Client-ID" secret: "Clientschlüssel" owner: "Besitzer" + builtin: "Intern" + enabled: "Aktiv" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User-ID" scopes: "Geltungsbereiche" @@ -796,6 +807,7 @@ de: blank: "muss ausgefüllt werden." blank_nested: "muss die Eigenschaft '%{property}' gesetzt haben." cannot_delete_mapping: "ist erforderlich. Kann nicht gelöscht werden." + is_for_all_cannot_modify: "ist für alle. Kann nicht geändert werden." cant_link_a_work_package_with_a_descendant: "Ein Arbeitspaket kann nicht mit einer seiner Unteraufgaben verlinkt werden." circular_dependency: "Diese Beziehung würde eine zyklische Abhängigkeit erzeugen." confirmation: "stimmt nicht mit %{attribute} überein." @@ -869,6 +881,10 @@ de: minimum: "müssen mindestens einen Filter für Principal, Kontext oder ID mit dem '=' Operator enthalten." custom_field: at_least_one_custom_option: "Mindestens ein Wert muss verfügbar sein." + custom_fields_project: + attributes: + project_ids: + blank: "Bitte wählen Sie ein Projekt aus." custom_actions: only_one_allowed: "(%{name}) nur ein Wert ist zulässig." empty: "(%{name}) Wert darf nicht leer sein." @@ -899,6 +915,8 @@ de: name: blank: "ist obligatorisch. Bitte wählen Sie einen Namen aus." not_unique: "ist bereits in Gebrauch. Bitte wählen Sie einen anderen Namen aus." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Mindestens ein Kanal zum Senden von Benachrichtigungen muss angegeben werden." attributes: @@ -1096,7 +1114,7 @@ de: confirmation: "Passwort und Bestätigung stimmt nicht überein." format: "%{message}" password: - weak: "Muss Zeichen aus folgenden Klassen beinhalten (mindestens %{min_count} von %{all_count}): %{rules}." + weak: "muss Zeichen aus folgenden Klassen beinhalten (mindestens %{min_count} von %{all_count}): %{rules}." lowercase: "Kleinbuchstaben (z.B. 'a')" uppercase: "Großbuchstaben (z.B. 'A')" numeric: "Ziffern (z.B. '1')" @@ -1591,7 +1609,7 @@ de: error_cookie_missing: "Das OpenProject Cookie fehlt. Bitte stellen Sie sicher, dass Cookies aktiviert sind, da diese Applikation ohne aktivierte Cookies nicht korrekt funktioniert." error_custom_option_not_found: "Option ist nicht vorhanden." 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}" @@ -1624,7 +1642,7 @@ de: error_menu_item_not_saved: Menüpunkt konnte nicht aktualisiert werden. error_wiki_root_menu_item_conflict: > Kann "%{old_name}" nicht in "%{new_name}" umbenennen, weil es mit dem bestehenden Menüeintrag "%{existing_caption}" (%{existing_identifier}) kollidiert. - error_external_authentication_failed: "Die externe Authentifizierung ist fehlgeschlagen. Bitte versuchen Sie es erneut." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Nicht hervorhebbare Attribut(e): %{attributes}" events: changeset: "Projektarchiv-Änderung bearbeitet" @@ -1756,10 +1774,10 @@ de: blocks: community: "OpenProject Community" upsale: - title: "Auf Enterprise-Edition upgraden" + title: "Auf Enterprise edition upgraden" more_info: "Weitere Informationen" links: - upgrade_enterprise_edition: "Auf Enterprise-Edition upgraden" + upgrade_enterprise_edition: "Auf Enterprise edition upgraden" postgres_migration: "Migration Ihrer Installation zu PostgreSQL" user_guides: "Benutzerhandbuch" faq: "Häufig gestellte Fragen" @@ -1793,10 +1811,10 @@ 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: "% vollständig von %{old_value}% auf %{new_value} % geändert" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Ab sofort erscheinen hier Aktivitäten, die sich auf Datei-Links beziehen (Dateien in externen Speichermedien) auf der Registerkarte Aktivität. Folgende Aktivitäten betreffen bereits existierende Links: @@ -1905,7 +1923,8 @@ de: label_additional_workflow_transitions_for_assignee: "Zusätzliche Workflow-Übergänge für den Nutzer, dem ein Arbeitspaket zugewiesen ist" label_additional_workflow_transitions_for_author: "Zusätzliche Workflow-Übergänge wenn der Nutzer der Autor des Arbeitspakets ist" label_administration: "Administration" - label_advanced_settings: "Erweiterte Einstellungen" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Geändert vor" label_ago: "vor (Tage)" label_all: "alle" @@ -1938,6 +1957,7 @@ de: label_attribute_expand_text: "Der vollständige Text für '%{attribute}'" label_authentication: "Authentifizierung" label_authentication_settings: "Authentifizierungseinstellungen" + label_available_custom_fields_projects: "Verfügbare benutzerdefinierte Felder in Projekten" label_available_global_roles: "Verfügbare globale Rollen" label_available_project_attributes: "Verfügbare Projektattribute" label_available_project_forums: "Verfügbare Foren" @@ -2010,6 +2030,7 @@ de: label_copy_project: "Projekt kopieren" label_core_version: "Core Version" label_core_build: "Core-Buildinformation" + label_created_by: "Erstellt von %{user}" label_current_status: "Gegenwärtiger Status" label_current_version: "Gegenwärtige Version" label_custom_field_add_no_type: "Dieses Feld zu einem Arbeitspaket-Typ hinzufügen" @@ -2017,6 +2038,7 @@ de: label_custom_field_plural: "Benutzerdefinierte Felder" label_custom_field_default_type: "Leerer Typ" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL-Version" label_date: "Datum" @@ -2065,7 +2087,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_enterprise_addon: "Enterprise Add-on" label_environment: "Umgebung" @@ -2137,9 +2159,9 @@ de: label_share: "Teilen" label_share_project_list: "Projektliste teilen" label_share_work_package: "Arbeitspaket teilen" - label_show_hide: "Einblenden / Ausblenden" - label_show_hide_n_items: "%{count} weitere anzeigen/ausblenden" label_show_all_registered_users: "Alle registrierten Benutzer anzeigen" + label_show_less: "Weniger anzeigen" + label_show_more: "Show more" label_journal: "Änderungen" label_journal_diff: "Beschreibungsvergleich" label_language: "Sprache" @@ -2289,6 +2311,7 @@ de: label_product_version: "Produktversion" label_profile: "Profil" label_percent_complete: "% abgeschlossen" + label_progress_tracking: "Fortschrittsverfolgung" label_project: "Projekt" label_project_activity: "Projektaktivität" label_project_attribute_plural: "Projekt-Attribute" @@ -2474,7 +2497,6 @@ de: label_work_package_new: "Neues Arbeitspaket" label_work_package_edit: "Arbeitspaket %{name} editieren" label_work_package_plural: "Arbeitspakete" - label_work_packages_settings: "Arbeitspaket-Einstellungen" label_work_package_status: "Arbeitspaket-Status" label_work_package_status_new: "Neuer Status" label_work_package_status_plural: "Arbeitspaket-Status" @@ -3011,8 +3033,8 @@ de: update_timeout: "Speichere die Informationen bzgl. des genutzten Festplattenspeichers eines Projektarchivs für N Minuten.\nErhöhen Sie diesen Wert zur Verbesserung der Performance, da die Erfassung des genutzten Festplattenspeichers Ressourcen-intensiv ist." oauth_application_details: "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_link_text: "Dateispeicher einrichten" + 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: "Datei-Speicher 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: existing_title: "Vorhandenes Subversion Projektarchiv" @@ -3113,11 +3135,13 @@ de: setting_hours_per_day_explanation: >- Dies legt fest, was als "Tag" angesehen wird, wenn eine zeitliche Dauer angezeigt werden (zum Beispiel: Wenn die Länge eines Tages 8 Stunden beträgt, wird eine Eingabe von 32 Stunden als 4 Tage angezeigt). setting_invitation_expiration_days: "Aktivierungs-Mail läuft ab nach" - setting_work_package_done_ratio: "Fortschrittsberechnung" + setting_work_package_done_ratio: "Modus der Fortschrittsberechnung" setting_work_package_done_ratio_field: "Arbeitsbezogen" + setting_work_package_done_ratio_field_caption_html: >- + % abgeschlossen kann auf jeden beliebigen Wert gesetzt werden. Wenn Sie optional einen Wert für Aufwand eingeben, wird verbleibender Aufwand automatisch abgeleitet. setting_work_package_done_ratio_status: "Statusbezogen" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - Im arbeitsbezogenen Modus beschreibt % abgeschlossen das Verhältnis zwischen verbeibendem Aufwand und Gesamtaufwand. Im statusbasierten Modus ist jedem Status ein Wert für % abgeschlossen zugeordnet. Wenn Sie den Status ändern, ändert sich % abgeschlossen. + setting_work_package_done_ratio_status_caption_html: >- + Jeder Status ist mit einem Wert für % abgeschlossen verbunden. Wenn Sie den Status ändern, ändert sich auch % abgeschlossen. setting_work_package_done_ratio_explanation_html: > Im arbeitsbezogenen Modus ist % abgeschlossen frei wählbar. Falls Sie einen Wert für Aufwand angeben, wird Verbleibender Aufand automatisch abgeleitet. Im statusbasierten Modus ist jedem Status ein Wert für % abgeschlossen zugeordnet. Wenn Sie den Status ändern, ändert sich % abgeschlossen. setting_work_package_properties: "Arbeitspaket-Eigenschaften" @@ -3138,6 +3162,13 @@ de: setting_password_min_length: "Minimale Länge" setting_password_min_adhered_rules: "Mindestanzahl zu verwendender Zeichenklassen" setting_per_page_options: "Objekte pro Seite" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "Keine Änderung" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatisch auf 100 % eingestellt" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Nur reinen Text (kein HTML) senden" setting_protocol: "Protokoll" setting_project_gantt_query: "Projekt-Portfolioübersicht" @@ -3472,7 +3503,7 @@ de: warning_user_limit_reached_admin: > Das Hinzufügen zusätzlicher Benutzer überschreitet das aktuelle Benutzerlimit. Bitte aktualisieren Sie Ihr Abonnement 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. + 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: > warning_bar: @@ -3502,7 +3533,6 @@ de: label_note: "Hinweis:" modal: work_based_help_text: "Jedes Feld wird, wenn möglich, automatisch aus den beiden anderen berechnet." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Abgeschlossen wird automatisch aus Aufwand und Verbleibender Aufwand abgeleitet." status_based_help_text: "% Abgeschlossen wird durch den Status des Arbeitspakets festgelegt." migration_warning_text: "Im aufwandsbezogenen Modus, kann % Fertig nicht manuell eingegeben werden und ist immer an den Aufwand gebunden. Der vorhandene Wert wurde beibehalten, kann aber nicht bearbeitet werden. Bitte geben Sie zuerst den Wert für Aufwand ein." derivation_hints: @@ -3517,9 +3547,9 @@ de: remaining_hours: cleared_because_work_is_empty: "Gelöscht, weil Aufwand leer ist." cleared_because_percent_complete_is_empty: "Gelöscht, da % abgeschlossen leer ist." - decreased_like_work: "Verringert um den gleichen Betrag wie Aufwand." + decreased_by_delta_like_work: "Verringert um %{delta}, entsprechend der Reduzierung des Aufwands." derived: "Abgeleitet von Aufwand und % abgeschlossen." - increased_like_work: "Erhöht um den gleichen Betrag wie Aufwand." + increased_by_delta_like_work: "Erhöht um %{delta}, was dem Anstieg bei Aufwand entspricht." same_as_work: "Auf denselben Wert wie Aufwand gesetzt." permissions: comment: "Kommentar" @@ -3711,12 +3741,16 @@ de: close_warning: "Diese Warnung ignorieren." oauth: application: + builtin: Interne Anwendung für diese Instanz + confidential: Vertraulich singular: "OAuth-Anwendung" plural: "OAuth-Anwendungen" named: "OAuth-Anwendung '%{name}'" new: "Neue OAuth-Anwendung" + non_confidential: Nicht vertraulich default_scopes: "(Voreingestellte Geltungsbereiche)" instructions: + enabled: "Aktivieren Sie diese Anwendung, so dass Benutzer mit ihr Autorisierungen vornehmen können." name: "Der Name Ihrer OAuth-Anwendung. Dieser wird anderen Benutzern bei der Autorisierung angezeigt." redirect_uri_html: > Die erlaubten URLs auf welche autorisierte Benutzer weitergeleitet werden können. Ein Eintrag pro Zeile.
    Wenn Sie eine Desktop-Anwendung registrieren, verwenden Sie die folgende URL. @@ -3725,6 +3759,10 @@ de: client_credential_user_id: "Optionaler Nutzer, der bei der Nutzung dieser Anwendung verkörpert wird. Leer lassen, um nur öffentlichen Zugriff zu erlauben" register_intro: "Wenn Sie eine OAuth API-Client-Anwendung für OpenProject entwickeln, können Sie es mit diesem Formular für alle Benutzer registrieren." default_scopes: "" + header: + builtin_applications: Eingebaute OAuth-Anwendungen + other_applications: Andere OAuth-Anwendungen + empty_application_lists: Es wurden noch keine OAuth-Anwendungen registriert. client_id: "Client-ID" client_secret_notice: > Dies ist das einzige Mal, dass wir das Client-Geheimnis anzeigen können. Bitte speichern Sie es ab und halten Sie es sicher. Es sollte als Passwort behandelt werden und kann später nicht mehr von OpenProject abgerufen werden. diff --git a/config/locales/crowdin/el.yml b/config/locales/crowdin/el.yml index bd60ed22a685..44f612ebf5e0 100644 --- a/config/locales/crowdin/el.yml +++ b/config/locales/crowdin/el.yml @@ -31,6 +31,9 @@ el: custom_styles: color_theme: "Χρωματικό θέμα" color_theme_custom: "(Προσαρμοσμένο)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ el: contact: "Επικοινωνήστε μαζί μας για μια επίδειξη" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -198,6 +202,11 @@ el: title: "Προσαρμοσμένες ενέργειες" description: "Οι προσαρμοσμένες ενέργειες είναι συντομεύσεις με ένα κλικ προς ένα σύνολο προκαθορισμένων ενεργειών που μπορείτε να διαθέσετε σε συγκεκριμένα πακέτα εργασίας με βάση την κατάσταση, ρόλος, τύπος ή έργο." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Για να προσθέσετε νέα προσαρμοσμένα πεδία σε ένα έργο, πρέπει πρώτα να τα δημιουργήσετε για να τα προσθέσετε σε αυτό το έργο. is_enabled_globally: "Είναι ενεργοποιημένο σε όλο το σύστημα" @@ -627,6 +636,8 @@ el: uid: "Ταυτότητα Πελάτη" secret: "Μυστικό πελάτη" owner: "Ιδιοκτήτης" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Σύνδεσμος Ανακατεύθυνσης (URI)" client_credentials_user_id: "Διαπιστευτήρια Πελάτη Ταυτότητα Χρήστη" scopes: "Φυσικά αντικείμενα" @@ -798,6 +809,7 @@ el: blank: "δεν πρέπει να είναι κενό." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Ένα πακέτο εργασίας δεν μπορεί να συνδεθεί με μια από τις υποεργασίες του." circular_dependency: "Αυτή η σχέση θα δημιουργήσει κυκλική εξάρτηση." confirmation: "δεν ταιριάζει με %{attribute}." @@ -871,6 +883,10 @@ el: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "Τουλάχιστον μια επιλογή πρέπει να είναι διαθέσιμη." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) μόνο μια τιμή επιτρέπεται." empty: "(%{name}) η τιμή δεν μπορεί να είναι άδεια." @@ -901,6 +917,8 @@ el: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1098,7 +1116,7 @@ el: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Πρέπει να περιέχει χαρακτήρες από τις ακόλουθες κλάσεις (τουλάχιστον %{min_count} από %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "πεζά γράμματα (π.χ. 'α')" uppercase: "κεφαλαία γράμματα (π.χ. 'Α')" numeric: "αριθμητικό (π.χ. '1')" @@ -1626,7 +1644,7 @@ el: error_menu_item_not_saved: Δεν ήταν δυνατή η αποθήκευση του αντικειμένου μενού error_wiki_root_menu_item_conflict: > Δεν είναι δυνατή η μετονομασία από "%{old_name}" σε "%{new_name}" λόγω μιας σύγκρουσης του αντικειμένου μενού που προκύπτει με ένα υπάρχον αντικείμενο μενού "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Παρουσιάστηκε σφάλμα κατά τη διάρκεια της εξωτερικής ταυτοποίησης. Παρακαλούμε προσπαθήστε ξανά." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Δεν είναι δυνατή η επισήμανση του(-ών) χαρακτηριστικού(-ών): %{attributes}" events: changeset: "Οι αλλαγές επεξεργάστηκαν" @@ -1798,7 +1816,7 @@ el: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1907,7 +1925,8 @@ el: label_additional_workflow_transitions_for_assignee: "Επιτρέπονται επιπλέον μεταβάσεις όταν ο χρήστης είναι το άτομο που του έχει ανατεθεί" label_additional_workflow_transitions_for_author: "Επιτρέπονται επιπλέον μεταβάσεις όταν ο χρήστης είναι ο συγγραφέας" label_administration: "Διαχείριση" - label_advanced_settings: "Προηγμένες ρυθμίσεις" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Ηλικία" label_ago: "ημέρες πριν" label_all: "όλα" @@ -1940,6 +1959,7 @@ el: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Ταυτοποίηση" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Διαθέσιμα φόρουμ" @@ -2012,6 +2032,7 @@ el: label_copy_project: "Αντιγραφή έργου" label_core_version: "Βασική έκδοση" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Τρέχουσα κατάσταση" label_current_version: "Τρέχουσα έκδοση" label_custom_field_add_no_type: "Προσθέστε αυτό το πεδίο σε έναν τύπο πακέτου εργασίας" @@ -2019,6 +2040,7 @@ el: label_custom_field_plural: "Προσαρμοσμένα πεδία" label_custom_field_default_type: "Άδειος τύπος" label_custom_style: "Σχεδιασμός" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Πίνακας Ελέγχου" label_database_version: "Έκδοση PostgreSQL" label_date: "Ημερομηνία" @@ -2139,9 +2161,9 @@ el: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Εμφάνιση/απόκρυψη" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Εμφάνιση όλων των εγγεγραμμένων χρηστών" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Ημερολόγιο" label_journal_diff: "Σύγκριση Περιγραφών" label_language: "Γλώσσα" @@ -2291,6 +2313,7 @@ el: label_product_version: "Έκδοση προϊόντος" label_profile: "Προφίλ" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Έργο" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2476,7 +2499,6 @@ el: label_work_package_new: "Νέο πακέτο εργασίας" label_work_package_edit: "Επεξεργασία του πακέτου εργασίας %{name}" label_work_package_plural: "Πακέτα εργασίας" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Κατάσταση εργασίας" label_work_package_status_new: "Νέα κατάσταση" label_work_package_status_plural: "Καταστάσεις πακέτων εργασίας" @@ -3114,11 +3136,13 @@ el: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Το μήνυμα ενεργοποίησης λήγει μετά από" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Ιδιότητες πακέτου εργασίας" @@ -3139,6 +3163,13 @@ el: setting_password_min_length: "Ελάχιστο μήκος" setting_password_min_adhered_rules: "Ελάχιστος αριθμός των απαιτούμενων κλάσεων" setting_per_page_options: "Αντικείμενα ανά σελίδα επιλογών" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Email απλού κειμένου (χωρίς HTML)" setting_protocol: "Πρωτόκολλο" setting_project_gantt_query: "Προβολή Gantt για portfolio έργου" @@ -3503,7 +3534,6 @@ el: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3518,9 +3548,9 @@ el: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Σχόλιο" @@ -3712,12 +3742,16 @@ el: close_warning: "Αγνοείστε αυτή την προειδοποίηση." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth εφαρμογή" plural: "OAuth εφαρμογές" named: "OAuth εφαρμογή '%{name}'" new: "Νέα OAuth εφαρμογή" + non_confidential: Non confidential default_scopes: "(Προεπιλεγμένα φυσικά αντικείμενα)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Το όνομα τις εφαρμογής. Αυτό θα εμφανίζεται στους υπόλοιπους χρήστες μόλις γίνει η εξουσιοδότηση." redirect_uri_html: > Τα επιτρεπόμενα URLs στα οποία ανακατευθύνονται οι ταυτοποιημένοι χρήστες.
    Αν εγγράφεστε από την εφαρμογή υπολογιστή, χρησιμοποιείστε το ακόλουθο URL. @@ -3726,6 +3760,10 @@ el: client_credential_user_id: "Προαιρετική ταυτότητα χρήστη για να υποδυθεί όταν οι πελάτες χρησιμοποιούν αυτή την εφαρμογή. Αφήστε κενό για να επιτρέψετε μόνο δημόσια πρόσβαση" register_intro: "Αν αναπτύσσετε μια εφαρμογή πελάτη OAuth API για το OpenProject, μπορείτε να την καταχωρήσετε χρησιμοποιώντας αυτή τη φόρμα για να μπορούν να τη χρησιμοποιήσουν όλοι οι χρήστες." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Ταυτότητα Πελάτη" client_secret_notice: > Αυτή είναι η μόνη φορά που μπορούμε να τυπώσουμε το μυστικό πελάτη, παρακαλούμε σημειώστε το και κρατήστε το ασφαλές. Θα πρέπει να το χειρίζεστε ως κωδικό πρόσβασης και δεν μπορεί να ανακτηθεί από το OpenProject αργότερα. diff --git a/config/locales/crowdin/eo.yml b/config/locales/crowdin/eo.yml index 5c4292ef7cea..112a4d70da16 100644 --- a/config/locales/crowdin/eo.yml +++ b/config/locales/crowdin/eo.yml @@ -31,6 +31,9 @@ eo: custom_styles: color_theme: "Tema koloro" color_theme_custom: "(Propra)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ eo: contact: "Kontaktu nin por provoversio" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ eo: title: "Adaptitaj agoj" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Ĉie ŝaltita" @@ -631,6 +640,8 @@ eo: uid: "ID de la kliento" secret: "Sekreto de la kliento" owner: "Posedanto" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Alidirekti URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ eo: blank: "ne povas esti malplena." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Laborpakaĵo ne povis esti ligita al unu el siaj subtaskoj." circular_dependency: "Tiu ĉi rilato povus krei cirklan dependon." confirmation: "ne kongruas kun %{attribute}" @@ -875,6 +887,10 @@ eo: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "Minimume unu opcio devus esti disponebla." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) nur unu valoro estas permesita." empty: "(%{name}) valoro ne povas esti malplena." @@ -905,6 +921,8 @@ eo: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ eo: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "minuskle (Ekz. 'a')" uppercase: "majuskle (Ekz. 'A')" numeric: "nombra (ekz. '1')" @@ -1630,7 +1648,7 @@ eo: error_menu_item_not_saved: Ne eblis konservi la menueron error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Ŝanĝaro redaktita" @@ -1802,7 +1820,7 @@ eo: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ eo: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administrado" - label_advanced_settings: "Altnivelaj agordoj" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Aĝo" label_ago: "tagoj antaŭe" label_all: "ĉiuj" @@ -1944,6 +1963,7 @@ eo: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Aŭtentigo" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Disponeblaj forumoj" @@ -2016,6 +2036,7 @@ eo: label_copy_project: "Kopii projekton" label_core_version: "Kerna versio" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Nuna stato" label_current_version: "Nuna versio" label_custom_field_add_no_type: "Aldoni tiun ĉi kampon al la laborpakaĵa tipo" @@ -2023,6 +2044,7 @@ eo: label_custom_field_plural: "Propraj kampoj" label_custom_field_default_type: "Malplena tipo" label_custom_style: "Aspektigo" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Paneloj" label_database_version: "PostgreSQL version" label_date: "Dato" @@ -2143,9 +2165,9 @@ eo: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Vidigi/kaŝi" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Vidigi ĉiujn registritajn uzantojn" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Protokolo" label_journal_diff: "Komparo de la priskribo" label_language: "Lingvo" @@ -2295,6 +2317,7 @@ eo: label_product_version: "Versio de la produkto" label_profile: "Profilo" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Projekto" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ eo: label_work_package_new: "New work package" label_work_package_edit: "Redakti laborpakaĵon %{name}" label_work_package_plural: "Laborpakaĵoj" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Stato de la laborpakaĵo" label_work_package_status_new: "Nova stato" label_work_package_status_plural: "Laborpakaĵa stato" @@ -3119,11 +3141,13 @@ eo: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ eo: setting_password_min_length: "Minimuma longeco" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ eo: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ eo: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komento" @@ -3718,12 +3748,16 @@ eo: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth aplikaĵo" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ eo: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID de la kliento" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/es.yml b/config/locales/crowdin/es.yml index 9b29cb802a63..d8dc5392b6b7 100644 --- a/config/locales/crowdin/es.yml +++ b/config/locales/crowdin/es.yml @@ -31,6 +31,9 @@ es: custom_styles: color_theme: "Tema de color" color_theme_custom: "(Personalizado)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Botón primario" accent-color: "Acento" @@ -79,6 +82,7 @@ es: contact: "Contáctenos para una demostración" enterprise_info_html: "es una extensión Enterprise ." upgrade_info: "Actualice a un plan de pago para activarlo y empezar a usarlo en su equipo." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Las acciones individuales de un usuario (como actualizar dos veces un paquete de trabajo) se combinan en una sola acción si la diferencia de antigüedad es inferior al intervalo de tiempo especificado. Se mostrarán como una sola acción en la aplicación. También se retrasarán las notificaciones por la misma cantidad de tiempo, lo que reducirá el número de correos electrónicos enviados y causará también que se retrase el %{webhook_link}." @@ -199,6 +203,11 @@ es: title: "Acciones personalizadas" description: "Las acciones personalizadas son accesos directos de un solo clic para crear conjuntos de acciones predefinidas que pueden utilizarse en ciertos paquetes de trabajo basados en el estado, rol, tipo o proyecto." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Para agregar nuevos campos personalizados a un proyecto, primero debe crearlos, y luego añadirlos a este proyecto. is_enabled_globally: "Está activado a nivel global" @@ -628,6 +637,8 @@ es: uid: "ID de cliente" secret: "Clave de cliente secreta" owner: "Propietario" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redireccionar URI" client_credentials_user_id: "ID de Usuario de Credenciales del Cliente" scopes: "Ámbitos" @@ -799,6 +810,7 @@ es: blank: "no puede estar en blanco." blank_nested: "necesita tener la propiedad '%{property}' definida." cannot_delete_mapping: "es obligatorio. No se puede eliminar." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Un paquete de trabajo no puede ser vinculado a una de sus subtareas." circular_dependency: "Esta relación podría crear una dependencia circular." confirmation: "no coincide con %{attribute}." @@ -872,6 +884,10 @@ es: minimum: "necesita incluir como mínimo un filtro de entidad de seguridad, contexto o identificador con el operador «=»." custom_field: at_least_one_custom_option: "Como mínimo, tiene que estar disponible una opción." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "Solo se permite un valor (%{name})." empty: "El valor (%{name}) no puede estar vacío." @@ -902,6 +918,8 @@ es: name: blank: "es obligatorio. Por favor, seleccione un nombre." not_unique: "ya está en uso. Por favor, seleccione otro nombre." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Debe especificarse al menos un canal para enviar notificaciones." attributes: @@ -1099,7 +1117,7 @@ es: confirmation: "La confirmación de contraseña no coincide con la contraseña." format: "%{message}" password: - weak: "Debe contener caracteres de las siguientes tipos (como mínimo %{min_count} de %{all_count}):%{rules}." + weak: "Debe contener caracteres de las siguientes clases (al menos %{min_count} a %{all_count}): %{rules}" lowercase: "en minúsculas (por ejemplo 'a')" uppercase: "en mayúsculas (por ejemplo ' A')" numeric: "numérico (por ejemplo, ' 1')" @@ -1627,7 +1645,7 @@ es: error_menu_item_not_saved: Elemento de menú no podría ser guardado error_wiki_root_menu_item_conflict: > No se puede renombrar "%{old_name}" a "%{new_name}" debido a un conflicto en el elemento de menú resultante con el elemento de menú existente "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Se produjo un error durante la autenticación externa. Vuelva a intentarlo." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atributos que no pueden resaltarse: %{attributes}" events: changeset: "Set de cambios editado" @@ -1799,7 +1817,7 @@ es: progress_mode_changed_to_status_based: Modo de cálculo del progreso establecido como basado en el estado status_excluded_from_totals_set_to_false_message: ahora incluido en totales de jerarquía status_excluded_from_totals_set_to_true_message: ahora excluido de los totales de la jerarquía - status_percent_complete_changed: "% completado cambiado de %{old_value} % a %{new_value} %" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > A partir de ahora, la actividad relacionada con los enlaces de archivos (archivos almacenados en almacenamiento externo) aparecerá aquí en la pestaña Actividad. La siguiente representa la actividad relativa a los enlaces que ya existían: @@ -1908,7 +1926,8 @@ es: label_additional_workflow_transitions_for_assignee: "Transiciones adicionales permitidas cuando el usuario es el asignado" label_additional_workflow_transitions_for_author: "Transiciones adicionales permitidas cuando el usuario es el autor" label_administration: "Administración" - label_advanced_settings: "Ajustes avanzados" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Edad" label_ago: "días antes" label_all: "todos" @@ -1941,6 +1960,7 @@ es: label_attribute_expand_text: "El texto completo para «%{attribute}»" label_authentication: "Autentificación" label_authentication_settings: "Ajustes de autenticación" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Roles globales disponibles" label_available_project_attributes: "Atributos del proyecto disponibles" label_available_project_forums: "Foros disponibles" @@ -2013,6 +2033,7 @@ es: label_copy_project: "Copiar proyecto" label_core_version: "Versión base" label_core_build: "Núcleo base" + label_created_by: "Created by %{user}" label_current_status: "Estado actual" label_current_version: "Version actual" label_custom_field_add_no_type: "Agregue este campo a un tipo de paquete de trabajo" @@ -2020,6 +2041,7 @@ es: label_custom_field_plural: "Campos personalizados" label_custom_field_default_type: "Tipo vacío" label_custom_style: "Diseño" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Paneles de control" label_database_version: "Versión de PostgreSQL" label_date: "Fecha" @@ -2140,9 +2162,9 @@ es: label_share: "Compartir" label_share_project_list: "Listas de proyectos compartidas" label_share_work_package: "Compartir paquete de trabajo" - label_show_hide: "Mostrar/ocultar" - label_show_hide_n_items: "Mostrar/ocultar %{count} elementos" label_show_all_registered_users: "Mostrar todos los usuarios registrados" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Diario" label_journal_diff: "Comparación de la descripción" label_language: "Idioma" @@ -2292,6 +2314,7 @@ es: label_product_version: "Versión del producto" label_profile: "Perfil" label_percent_complete: "% compleado" + label_progress_tracking: "Progress tracking" label_project: "Proyecto" label_project_activity: "Actividad del proyecto" label_project_attribute_plural: "Atributos del proyecto" @@ -2477,7 +2500,6 @@ es: label_work_package_new: "Nuevo paquete de trabajo" label_work_package_edit: "Editar paquete de trabajo %{name}" label_work_package_plural: "Paquetes de trabajo" - label_work_packages_settings: "Ajustes de los paquetes de trabajo" label_work_package_status: "Estado del paquete de trabajo" label_work_package_status_new: "Nuevo estatus" label_work_package_status_plural: "Estatus del paquete de trabajo" @@ -3115,11 +3137,13 @@ es: setting_hours_per_day_explanation: >- Define lo que se considera un "día" cuando se muestra la duración en días y horas (por ejemplo, si un día tiene 8 horas, 32 horas serían 4 días). setting_invitation_expiration_days: "El correo electrónico de activación caduca después de" - setting_work_package_done_ratio: "Cálculo del progreso" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Basado en el trabajo" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Basado en el estado" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - En el modo basado en el trabajo, el % completado se calcula a partir de cuánto trabajo se ha realizado en relación con el trabajo total. En el modo basado en el estado, cada estado tiene asociado un valor de % completado. El cambio de estado modificará el % completado. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > En el modo basado en trabajo, el % completado puede fijarse libremente en cualquier valor. Si introduce opcionalmente un valor para Trabajo, se derivará automáticamente Trabajo restante. En el modo basado en estados, cada estado tiene asociado un valor de % completado. Si cambia de estado, cambiará el % completado. setting_work_package_properties: "Propiedades de paquete de trabajo" @@ -3140,6 +3164,13 @@ es: setting_password_min_length: "Longitud mínima" setting_password_min_adhered_rules: "Numero mínimo de clases requeridas" setting_per_page_options: "Objetos por página de opciones" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Correo en texto plano (sin HTML)" setting_protocol: "Protocolo" setting_project_gantt_query: "Diagrama de Gantt de la cartera de proyectos" @@ -3504,7 +3535,6 @@ es: label_note: "Nota:" modal: work_based_help_text: "Cada campo se calcula automáticamente a partir de los otros dos cuando es posible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "El % completado se obtiene automáticamente a partir del Trabajo y del Trabajo restante." status_based_help_text: "% completado se establece por el estado del paquete de trabajo." migration_warning_text: "En el modo de cálculo del progreso basado en el trabajo, el % completado no puede fijarse manualmente y está vinculado al Trabajo. El valor existente se mantiene, pero no puede editarse. Introduzca primero el Trabajo." derivation_hints: @@ -3519,9 +3549,9 @@ es: remaining_hours: cleared_because_work_is_empty: "Borrado porque Trabajo está vacío." cleared_because_percent_complete_is_empty: "Borrado porque % completado está vacío." - decreased_like_work: "Disminuido en la misma cantidad que Trabajo." + decreased_by_delta_like_work: "Disminuido en %{delta}, igualando la reducción de Trabajo." derived: "Derivado de Trabajo y % completado." - increased_like_work: "Aumentado en la misma cantidad que Trabajo." + increased_by_delta_like_work: "Aumentado en %{delta}, igualando el aumento de Trabajo." same_as_work: "Ajustar al mismo valor que Trabajo." permissions: comment: "Comentario" @@ -3713,12 +3743,16 @@ es: close_warning: "Ignore esta advertencia." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Aplicación OAuth" plural: "Aplicaciones OAuth" named: "Aplicación OAuth '%{name}'" new: "Nueva aplicación OAuth" + non_confidential: Non confidential default_scopes: "(Ámbitos por defecto)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "El nombre de tu aplicación. Se mostrará a otros usuarios tras previa autorización." redirect_uri_html: > Las URLs permitidas a las que los usuarios autorizados serán redirigidos. Una entrada por línea.
    Si estás registrando una aplicación de escritorio, usa la siguiente URL. @@ -3727,6 +3761,10 @@ es: client_credential_user_id: "ID de usuario opcional para representar a clientes que usan esta aplicación. No necesita rellenarse si permites un acceso público" register_intro: "Si estás desarrollando una aplicación de cliente API de OAuth para OpenProject, puedes registrarla usando este formulario para todos los usuarios." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID de cliente" client_secret_notice: > Esta es la única vez que podremos imprimirte la clave de cliente secreta, por favor apúntalo y mantenlo en un lugar seguro. Debe tratarse como una contraseña y no puede ser recuperado de OpenProject más adelante. diff --git a/config/locales/crowdin/et.yml b/config/locales/crowdin/et.yml index 5d51a6e3dfc4..f62e9c673097 100644 --- a/config/locales/crowdin/et.yml +++ b/config/locales/crowdin/et.yml @@ -31,6 +31,9 @@ et: custom_styles: color_theme: "Värviteema" color_theme_custom: "(Kohandatud)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ et: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ et: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ et: uid: "Kliendi ID" secret: "Kliendi salasõna" owner: "Omanik" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ et: blank: "ei tohi olla tühi." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ et: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ et: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ et: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "väiketäht (näiteks \"a\")" uppercase: "suurtäht (näiteks 'A')" numeric: "arvuline (nt 1, 2, 3)" @@ -1630,7 +1648,7 @@ et: error_menu_item_not_saved: Menüü üksust ei saanud salvestada error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Toimikut on muudetud" @@ -1802,7 +1820,7 @@ et: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ et: label_additional_workflow_transitions_for_assignee: "Täiendavad üleminekud on lubatud juhul kui kasutaja on tööpaketi teostaja" label_additional_workflow_transitions_for_author: "Täiendavad üleminekud on lubatud juhul kui kasutaja on tööpaketi autor" label_administration: "Haldamine" - label_advanced_settings: "Täpsemad seaded" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Vanus" label_ago: "päeva tagasi" label_all: "kõik" @@ -1944,6 +1963,7 @@ et: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Autentimine" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ et: label_copy_project: "Kopeeri projekt" label_core_version: "Tuumiku versioon" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Praegune olek" label_current_version: "Praegune versioon" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ et: label_custom_field_plural: "Lisaväljad" label_custom_field_default_type: "Määramata tüüp" label_custom_style: "Kavandamine" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Kuupäev" @@ -2143,9 +2165,9 @@ et: label_share: "Jaga" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Kirjelduse võrdlus" label_language: "Keel" @@ -2295,6 +2317,7 @@ et: label_product_version: "Product version" label_profile: "Profiil" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Projekt" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ et: label_work_package_new: "Uus teema" label_work_package_edit: "Muuda teemat %{name}" label_work_package_plural: "Teemad" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Teema olek" label_work_package_status_new: "Uus olek" label_work_package_status_plural: "Teemade olekud" @@ -3119,11 +3141,13 @@ et: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Teemade atribuudid" @@ -3144,6 +3168,13 @@ et: setting_password_min_length: "Lühima lubatud parooli pikkus" setting_password_min_adhered_rules: "Minimaalne nõutav erineva tähemärgiklassi kasutamine paroolis" setting_per_page_options: "Kuvatud tulemuste arv lehe kohta" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "E-kiri tavalise tekstina (ilma HTML-ta)" setting_protocol: "Protokoll" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ et: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ et: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Kommentaar" @@ -3718,12 +3748,16 @@ et: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ et: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Kliendi ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/eu.yml b/config/locales/crowdin/eu.yml index 6be20c08f8e2..946786fe6b4b 100644 --- a/config/locales/crowdin/eu.yml +++ b/config/locales/crowdin/eu.yml @@ -31,6 +31,9 @@ eu: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ eu: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ eu: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ eu: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ eu: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ eu: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ eu: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ eu: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1630,7 +1648,7 @@ eu: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ eu: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ eu: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1944,6 +1963,7 @@ eu: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ eu: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ eu: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Panela" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2143,9 +2165,9 @@ eu: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2295,6 +2317,7 @@ eu: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ eu: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ eu: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ eu: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ eu: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ eu: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3718,12 +3748,16 @@ eu: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ eu: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/fa.yml b/config/locales/crowdin/fa.yml index 1a30588d90cb..0491973f93d3 100644 --- a/config/locales/crowdin/fa.yml +++ b/config/locales/crowdin/fa.yml @@ -31,6 +31,9 @@ fa: custom_styles: color_theme: "رنگ زمینه" color_theme_custom: "شخصی" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ fa: contact: "جهت نسخه نمایشی با ما تماس بگیرید" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ fa: title: "اقدامات سفارشی" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ fa: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ fa: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ fa: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ fa: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ fa: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "بايد كاراكترهايي از اين گروهها داشته باشد: حداقل %{min_count} كاراكتر %{all_count}: %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "حروف كوچك" uppercase: "حروف بزرگ" numeric: "عدد" @@ -1630,7 +1648,7 @@ fa: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ fa: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ fa: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "مدیریت" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1944,6 +1963,7 @@ fa: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ fa: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ fa: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "پیشخوان" label_database_version: "PostgreSQL version" label_date: "تاریخ" @@ -2143,9 +2165,9 @@ fa: label_share: "به اشتراک گذاری" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "نمایش تمام کاربران ثبت نام شده" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "زبان" @@ -2295,6 +2317,7 @@ fa: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "پروژه" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ fa: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "بسته های کاری" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ fa: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ fa: setting_password_min_length: "حداقل طول" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ fa: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ fa: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "نظر" @@ -3718,12 +3748,16 @@ fa: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ fa: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/fi.yml b/config/locales/crowdin/fi.yml index 44891111d2d9..97a4e3366d47 100644 --- a/config/locales/crowdin/fi.yml +++ b/config/locales/crowdin/fi.yml @@ -31,6 +31,9 @@ fi: custom_styles: color_theme: "Väriteema" color_theme_custom: "(Mukautettu)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ fi: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ fi: title: "Mukautetut toiminnot" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Jotta voit lisätä tälle projektille uusia muokattavia kenttiä, tulee sinun ensin luoda ne. is_enabled_globally: "On käytössä kaikkialla" @@ -631,6 +640,8 @@ fi: uid: "Client ID" secret: "Client secret" owner: "Omistaja" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ fi: blank: "ei voi olla sisällötön." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Tehtävää ei voida yhdistää alitehtäviin." circular_dependency: "Tämä riippuvuus loisi kehän." confirmation: "ei vastaa %{attribute}." @@ -875,6 +887,10 @@ fi: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ fi: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ fi: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "On sisällettävä merkkejä seuraavista luokista (ainakin %{min_count} %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "pieniä kirjaimia (esim. \"a\")" uppercase: "isoja kirjaimia (esim. A)" numeric: "numeerinen (esim. 1)" @@ -1630,7 +1648,7 @@ fi: error_menu_item_not_saved: Valikkokohta ei voitu tallentaa error_wiki_root_menu_item_conflict: > Arvoa "%{old_name}" ei voi uudelleennimetä arvoksi "%{new_name}" koska se olisi konfliktissa valikkoarvon "%{existing_caption}" (%{existing_identifier}) kanssa. - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ fi: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ fi: label_additional_workflow_transitions_for_assignee: "Vastuulliselle käyttäjälle on olemassa lisää siirtymiä" label_additional_workflow_transitions_for_author: "Aloittajalle on olemassa lisää siirtymiä" label_administration: "Ylläpito" - label_advanced_settings: "Lisäasetukset" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Ikä" label_ago: "päiviä sitten" label_all: "kaikki" @@ -1944,6 +1963,7 @@ fi: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Kirjautuminen" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ fi: label_copy_project: "Kopioi projekti" label_core_version: "Nykyinen versio" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Nykyinen tila" label_current_version: "Nykyinen versio" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ fi: label_custom_field_plural: "Mukautetut kentät" label_custom_field_default_type: "Tyhjä tyyppi" label_custom_style: "Ulkoasu" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Päivämäärä" @@ -2143,9 +2165,9 @@ fi: label_share: "Jaa" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Näytä/piilota" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Kuvauksen vertailu" label_language: "Kieli" @@ -2295,6 +2317,7 @@ fi: label_product_version: "Tuotteen versio" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Projekti" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ fi: label_work_package_new: "Uusi tehtävä" label_work_package_edit: "Muokkaa tehtävää %{name}" label_work_package_plural: "Tehtävät" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Tehtävän tila" label_work_package_status_new: "Uusi tila" label_work_package_status_plural: "Tehtävien tilat" @@ -3119,11 +3141,13 @@ fi: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Sähköpostisi vahvistuslinkki vanhentuu" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Tehtävän ominaisuudet" @@ -3144,6 +3168,13 @@ fi: setting_password_min_length: "Vähimmäispituus" setting_password_min_adhered_rules: "Luokkien vähimmäismäärä" setting_per_page_options: "Sivun objektien määrän asetukset" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "vain muotoilematonta tekstiä (ei HTML)" setting_protocol: "Protokolla" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ fi: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ fi: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Kommentti" @@ -3718,12 +3748,16 @@ fi: close_warning: "Ohita tämä varoitus." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ fi: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/fil.yml b/config/locales/crowdin/fil.yml index f987cd7bfaa3..1c2ce2b62964 100644 --- a/config/locales/crowdin/fil.yml +++ b/config/locales/crowdin/fil.yml @@ -31,6 +31,9 @@ fil: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ fil: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ fil: title: "Mga custom aksyon" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Upang magdagdag ng mga kustom na patlang sa isang proyekto kinakailangan mo muna likhain bago ka muna sila idagdag sa proyektong ito. is_enabled_globally: "Ay pinagana pandaigdigan" @@ -631,6 +640,8 @@ fil: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ fil: blank: "hindi pwedeng blanko." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Ang isang package ng pagawaan ay hindi maaring mai-ugnay sa isa sa mga substak." circular_dependency: "Itong pakikipag-ugnayan ay lilikha ng kabilugang dependecia." confirmation: "hindi tugma %{attribute}." @@ -875,6 +887,10 @@ fil: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "Kahit isang opsyon lang ang kinakailangan na magagamit." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "%{name} isang halaga lamang ay pinahintulutan." empty: "(%{name}) ang hakaga ay hindi maaring walang laman." @@ -905,6 +921,8 @@ fil: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ fil: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Dapat naglalaman ng mga karakter sa mga sumusunod na klase (kahit na %{min_count} sa %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g 'A')" numeric: "numeric (e.g.'1')" @@ -1630,7 +1648,7 @@ fil: error_menu_item_not_saved: Aytem ng pagpipilian ay hindi pwede i-save error_wiki_root_menu_item_conflict: > Hindi mapalitan ng pangalan ang "%{old_name}" sa "%{new_name}" dahil sa kasalungatan sa resulta ng pagpipiliang aytem sa umiiral na pagpipiliang aytem "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Naka-edit ang changeset" @@ -1802,7 +1820,7 @@ fil: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ fil: label_additional_workflow_transitions_for_assignee: "Karagdagang transistion pinahintulutan kung ang gumagamit ay nakatalaga" label_additional_workflow_transitions_for_author: "Karagdagang transistion pinahintulutan kung ang gumagamit ay ang akda" label_administration: "Tagapangasiwa" - label_advanced_settings: "Naka-advance ang mga setting" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Edad" label_ago: "ang mga araw nakalipas" label_all: "lahat" @@ -1944,6 +1963,7 @@ fil: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Pagpapatunay" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ fil: label_copy_project: "Kopyahin ang proyekto" label_core_version: "Ang core bersyon" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Kasulukuyang bersyon" label_current_version: "Kasukukuyang bersyon" label_custom_field_add_no_type: "Idagdag ang patlang na ito sa uri ng work package" @@ -2023,6 +2044,7 @@ fil: label_custom_field_plural: "Mga pasadyang patlang" label_custom_field_default_type: "Uri ng walang laman" label_custom_style: "Disenyo" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Petsa" @@ -2143,9 +2165,9 @@ fil: label_share: "Ibahagi" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Ipakita/itago" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Ipakita lahay ang mga nakarehistrong gumagamit" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Talaarawan" label_journal_diff: "Paglalarawan ng paghahambing" label_language: "Linggwahe" @@ -2295,6 +2317,7 @@ fil: label_product_version: "Produktong bersyon" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Proyekto" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ fil: label_work_package_new: "Bagong work package" label_work_package_edit: "I-edit ang work package %{name}" label_work_package_plural: "Ang mga work package" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Estado ng pakete ng gumagawa" label_work_package_status_new: "Bagong estado" label_work_package_status_plural: "Ang mga estado ng work package" @@ -3117,11 +3139,13 @@ fil: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Ang mga property ng work package" @@ -3142,6 +3166,13 @@ fil: setting_password_min_length: "Ang pinaka mababang sukat ng haba" setting_password_min_adhered_rules: "Pinakamababang bilang" setting_per_page_options: "Ang mga bagay kada pahina ng pagpipilian" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (walang HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3507,7 +3538,6 @@ fil: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3522,9 +3552,9 @@ fil: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komento" @@ -3716,12 +3746,16 @@ fil: close_warning: "Huwag pansinin ang babala ito." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3730,6 +3764,10 @@ fil: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index 2d1e83b633a5..dd2ca8f212f8 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -31,6 +31,9 @@ fr: custom_styles: color_theme: "Thème de couleur" color_theme_custom: "(Personnalisé)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Bouton principal" accent-color: "Couleur d'accentuation" @@ -79,6 +82,7 @@ fr: contact: "Contactez-nous pour une démo" enterprise_info_html: "est un module de la version Enterprise." upgrade_info: "Veuillez passer à un plan payant pour l'activer et commencer à l'utiliser dans votre équipe." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Les actions individuelles d'un utilisateur (par ex. mis à jour un lot de travaux deux fois) sont agrégés en une seule action si leur différence d'âge est inférieure à la période spécifiée. Elles seront affichées en une seule action dans l'application. Cela retardera également les notifications du même temps réduisant donc le nombre d'e-mails envoyés et affectera également le délai %{webhook_link}." @@ -202,6 +206,11 @@ fr: title: "Actions personnalisées" description: "Les actions personnalisées sont des raccourcis en un clic vers un ensemble d'actions prédéfinies que vous pouvez rendre disponibles sur certains lots de travaux en fonction de l'état, rôle, type ou projet." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Pour ajouter de nouveaux champs personnalisés à un projet, vous devez d’abord les créer avant de pouvoir les ajouter à ce projet. is_enabled_globally: "Est activé globalement" @@ -630,6 +639,8 @@ fr: uid: "Id du client" secret: "Clé secrète du client" owner: "Propriétaire" + builtin: "Builtin" + enabled: "Active" redirect_uri: "URI de redirection" client_credentials_user_id: "ID d'utilisateur d'informations d'identification client" scopes: "Portées" @@ -801,6 +812,7 @@ fr: blank: "ne peut pas être vide." blank_nested: "doit avoir la propriété « %{property} » définie." cannot_delete_mapping: "est requis. Ne peut être supprimé." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Un lot de travaux ne peut pas être lié à l'une de ses sous-tâches." circular_dependency: "Cette relation créerait une dépendance circulaire." confirmation: "ne correspond pas à %{attribute}." @@ -874,6 +886,10 @@ fr: minimum: "devez inclure au moins un filtre pour le principal, le contexte ou l'identifiant avec l'opérateur '='." custom_field: at_least_one_custom_option: "Au moins une option doit être disponible." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) seule valeur est autorisée." empty: "La zone (%{name}) ne peut pas être vide." @@ -904,6 +920,8 @@ fr: name: blank: "est obligatoire. Veuillez sélectionner un nom." not_unique: "est déjà utilisé. Veuillez choisir un autre nom." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Au moins un canal pour envoyer des notifications doit être spécifié." attributes: @@ -1101,7 +1119,7 @@ fr: confirmation: "La confirmation du mot de passe ne correspond pas au mot de passe." format: "%{message}" password: - weak: "Doit contenir des caractères des classes suivantes (au moins %{min_count} sur %{all_count}) : %{rules}." + weak: "Doit contenir des caractères des classes suivantes (au moins %{min_count} sur %{all_count}) : %{rules}" lowercase: "minuscules (par exemple, « a »)" uppercase: "majuscule (e.g. « A »)" numeric: "numérique (e.g. « 1 »)" @@ -1629,7 +1647,7 @@ fr: error_menu_item_not_saved: L'élément de menu n'a pas pu être sauvegardé error_wiki_root_menu_item_conflict: > Impossible de renommer "%{old_name}" en "%{new_name}" en raison d’un conflit dans l’élément de menu résultant avec l’élément de menu existant "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Une erreur s'est produite lors de l'authentification externe. Veuillez réessayer." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribut(s) ne pouvant pas être mis en surbrillance: %{attributes}" events: changeset: "Lot de modification édité" @@ -1801,7 +1819,7 @@ fr: progress_mode_changed_to_status_based: Le calcul de la progression est désormais basé sur le statut status_excluded_from_totals_set_to_false_message: désormais inclus dans les totaux de la hiérarchie status_excluded_from_totals_set_to_true_message: désormais exclus des totaux de la hiérarchie - status_percent_complete_changed: "% réalisé passé de %{old_value} % à %{new_value} %" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > À partir de maintenant, l'activité liée aux liens de fichiers (fichiers stockés sur des supports externes) apparaîtra ici dans l'onglet Activité. Les activités suivantes concernent des liens déjà existants : @@ -1910,7 +1928,8 @@ fr: label_additional_workflow_transitions_for_assignee: "Transitions supplémentaires autorisées lorsque l'utilisateur est l'assigné" label_additional_workflow_transitions_for_author: "Transitions supplémentaires autorisées lorsque l'utilisateur est l'auteur" label_administration: "Administration" - label_advanced_settings: "Paramètres avancés" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Âge" label_ago: "il y a" label_all: "tous" @@ -1943,6 +1962,7 @@ fr: label_attribute_expand_text: "Le texte complet pour « %{attribute} »." label_authentication: "Authentification" label_authentication_settings: "Paramètres d'authentification" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Rôles globaux disponibles" label_available_project_attributes: "Attributs de projet disponibles" label_available_project_forums: "Forums disponibles" @@ -2015,6 +2035,7 @@ fr: label_copy_project: "Copier projet" label_core_version: "Version du cœur" label_core_build: "Construction de base" + label_created_by: "Created by %{user}" label_current_status: "Statut actuel" label_current_version: "Version actuelle" label_custom_field_add_no_type: "Ajouter ce champ à un type de lot de travaux" @@ -2022,6 +2043,7 @@ fr: label_custom_field_plural: "Champs personnalisés" label_custom_field_default_type: "Type défaut" label_custom_style: "Apparence" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Tableau de bord" label_database_version: "Version de PostgreSQL" label_date: "Date" @@ -2142,9 +2164,9 @@ fr: label_share: "Partager" label_share_project_list: "Partager la liste des projets" label_share_work_package: "Partager le lot de travaux" - label_show_hide: "Afficher/masquer" - label_show_hide_n_items: "Afficher/masquer %{count} éléments" label_show_all_registered_users: "Afficher tous les utilisateurs enregistrés" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Comparaison de description" label_language: "Langue" @@ -2294,6 +2316,7 @@ fr: label_product_version: "Version du produit" label_profile: "Profil" label_percent_complete: "% réalisé" + label_progress_tracking: "Progress tracking" label_project: "Projet" label_project_activity: "Activité du projet" label_project_attribute_plural: "Attributs du projet" @@ -2479,7 +2502,6 @@ fr: label_work_package_new: "Nouveau Lot de Travaux" label_work_package_edit: "Éditer le lot de travaux %{name}" label_work_package_plural: "Lots de Travaux" - label_work_packages_settings: "Paramètres des lots de travaux" label_work_package_status: "Statut du lot de travaux" label_work_package_status_new: "Nouveau statut" label_work_package_status_plural: "Statuts du lot de travaux" @@ -3118,11 +3140,13 @@ fr: setting_hours_per_day_explanation: >- Cela définit ce qui est considéré comme un « jour » lors de l'affichage de la durée en jours et en heures (par exemple, si un jour dure 8 heures, 32 heures représentent 4 jours). setting_invitation_expiration_days: "L'émail d’activation expire après" - setting_work_package_done_ratio: "Calcul de la progression" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Basé sur le travail" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Basé sur le statut" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - En mode Basé sur le travail, le % d'achèvement est calculé à partir de la quantité de travail effectuée par rapport au total du travail. En mode Basé sur le statut, chaque état a une valeur de % d'achèvement associée. Le changement de statut changera la valeur de % d'achèvement. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > En mode Basé sur le travail, le % d'achèvement peut être librement défini sur n'importe quelle valeur. Si vous saisissez une valeur pour le travail, le travail restant sera automatiquement dérivé. En mode Basé sur le statut, chaque état a une valeur de % d'achèvement associée. Le changement de statut changera la valeur de % d'achèvement. setting_work_package_properties: "Propriétés du Lot de Travaux" @@ -3143,6 +3167,13 @@ fr: setting_password_min_length: "Longueur minimale" setting_password_min_adhered_rules: "Nombre minimale des classe de caractère requise" setting_per_page_options: "Options des objets par page" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Courriel au format texte (pas de HTML)" setting_protocol: "Protocole" setting_project_gantt_query: "Vue Gantt du portefeuille du projet" @@ -3507,7 +3538,6 @@ fr: label_note: "Note :" modal: work_based_help_text: "Chaque champ est calculé automatiquement à partir des deux autres lorsque cela est possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "Le % d'achèvement est automatiquement dérivé du travail et du travail restant." status_based_help_text: "Le % réalisé est défini par le statut du lot de travaux." migration_warning_text: "Dans le mode de calcul de la progression basé sur le travail, le % réalisé ne peut pas être défini manuellement et est lié au travail. La valeur existante a été conservée mais ne peut pas être modifiée. Veuillez d'abord renseigner Travail." derivation_hints: @@ -3522,9 +3552,9 @@ fr: remaining_hours: cleared_because_work_is_empty: "Effacé parce que le travail est vide." cleared_because_percent_complete_is_empty: "Effacé parce que le % d'achèvement est vide." - decreased_like_work: "Diminué du même montant que le travail." + decreased_by_delta_like_work: "Diminué de %{delta}, correspondant à la réduction du travail." derived: "Dérivé du travail et du % d'achèvement." - increased_like_work: "Augmenté du même montant que le travail." + increased_by_delta_like_work: "Augmenté de %{delta}, correspondant à l'augmentation du travail." same_as_work: "Régler à la même valeur que le travail." permissions: comment: "Commentaire" @@ -3716,12 +3746,16 @@ fr: close_warning: "Ignorer cet avertissement." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Application OAuth" plural: "Applications OAuth" named: "Application OAuth '%{name}'" new: "Nouvelle application Oauth" + non_confidential: Non confidential default_scopes: "(Portée par défaut)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Le nom de votre application. Ceci sera affiché aux autres utilisateurs sur autorisation." redirect_uri_html: > Les URL autorisées où peuvent être redirigés les utilisateurs. Une entrée par ligne.
    Si vous enregistrez une application de bureau, utilisez l'URL suivante. @@ -3730,6 +3764,10 @@ fr: client_credential_user_id: "ID utilisateur facultatif à emprunter lorsque les clients utilisent cette application. Laisser vide pour permettre l'accès public uniquement" register_intro: "Si vous développez une application client OAuth API pour OpenProject, vous pouvez l'enregistrer en utilisant ce formulaire pour qu’elle soit utilisée par tous les utilisateurs." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Id du client" client_secret_notice: > Il s’agit de la seule fois où nous pouvons imprimer le secret du client, veuillez en prendre note et le garder dans un lieu sûr. Il doit être traité comme un mot de passe et ne peut pas être récupéré par OpenProject ultérieurement. diff --git a/config/locales/crowdin/he.yml b/config/locales/crowdin/he.yml index 6b02af36c7ae..889b14c25516 100644 --- a/config/locales/crowdin/he.yml +++ b/config/locales/crowdin/he.yml @@ -31,6 +31,9 @@ he: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ he: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ he: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -645,6 +654,8 @@ he: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -816,6 +827,7 @@ he: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -889,6 +901,10 @@ he: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -919,6 +935,8 @@ he: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1116,7 +1134,7 @@ he: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "אותיות קטנות (למשל 'a')" uppercase: "אותיות רישיות (למשל ' A')" numeric: "מספריים (למשל ' 1')" @@ -1700,7 +1718,7 @@ he: error_menu_item_not_saved: לא היתה אפשרות לשמור את פריט התפריט error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "אוסף שינוים נערך" @@ -1872,7 +1890,7 @@ he: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1981,7 +1999,8 @@ he: label_additional_workflow_transitions_for_assignee: "מעברים נוספים מותר כאשר המשתמש הוא מקבל ההקצאה" label_additional_workflow_transitions_for_author: "מעברים נוספים מותר כאשר המשתמש הוא המחבר" label_administration: "ניהול" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "גיל" label_ago: "ימים לפני" label_all: "כל" @@ -2014,6 +2033,7 @@ he: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "אימות" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2086,6 +2106,7 @@ he: label_copy_project: "העתק פרוייקט" label_core_version: "גרסת ליבה" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "המצב הנוכחי" label_current_version: "גרסה נוכחית" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2093,6 +2114,7 @@ he: label_custom_field_plural: "שדות מותאמים אישית" label_custom_field_default_type: "סוג ריק" label_custom_style: "עיצוב" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "דאשבורד" label_database_version: "PostgreSQL version" label_date: "תאריך" @@ -2213,9 +2235,9 @@ he: label_share: "שתף" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "שפה" @@ -2365,6 +2387,7 @@ he: label_product_version: "Product version" label_profile: "פרופיל" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "פרוייקט" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2550,7 +2573,6 @@ he: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "חבילת עבודה" - label_work_packages_settings: "Work packages settings" label_work_package_status: "מצב חבילת העבודה" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3193,11 +3215,13 @@ he: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3218,6 +3242,13 @@ he: setting_password_min_length: "אורך מינימלי" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "פרוטוקול" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3585,7 +3616,6 @@ he: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3600,9 +3630,9 @@ he: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "תגובה" @@ -3794,12 +3824,16 @@ he: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3808,6 +3842,10 @@ he: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/hi.yml b/config/locales/crowdin/hi.yml index 5964f51f44f9..3cc78f8dfcb7 100644 --- a/config/locales/crowdin/hi.yml +++ b/config/locales/crowdin/hi.yml @@ -31,6 +31,9 @@ hi: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ hi: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ hi: title: "विशेष या कस्टम क्रियाएँ" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > परियोजना में नई custom fields जोडनें हेतु, पहले आपको उनका सृजन करना पडेगा, तत्पष्चात ही आप उन्हें परियोजना में जोड सकेंगे. is_enabled_globally: "Is enabled globally" @@ -629,6 +638,8 @@ hi: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -800,6 +811,7 @@ hi: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -873,6 +885,10 @@ hi: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) केवल एक मान की अनुमति है ।" empty: "(%{name}) मान रिक्त नहीं हो सकता ।" @@ -903,6 +919,8 @@ hi: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1100,7 +1118,7 @@ hi: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "लोअरकेस (उदा. ' a ')" uppercase: "अपरकेस (उदा. ' A ')" numeric: "सांख्यिक (उदा. ' 1 ')" @@ -1628,7 +1646,7 @@ hi: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "गुण हाइलाइट नहीं करने लायक: %{attributes}" events: changeset: "Changeset edited" @@ -1800,7 +1818,7 @@ hi: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1909,7 +1927,8 @@ hi: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "दिन पहले" label_all: "सभी" @@ -1942,6 +1961,7 @@ hi: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "प्रमाणीकरण" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2014,6 +2034,7 @@ hi: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "इस फ़ील्ड को किसी कार्य पैकेज प्रकार में जोड़ें" @@ -2021,6 +2042,7 @@ hi: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "तिथि" @@ -2141,9 +2163,9 @@ hi: label_share: "सांझा करें" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "विवरण तुलना" label_language: "भाषा " @@ -2293,6 +2315,7 @@ hi: label_product_version: "Product version" label_profile: "प्रोफ़ाइल" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "परियोजना" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2478,7 +2501,6 @@ hi: label_work_package_new: "नया कार्य पैकेज" label_work_package_edit: "कार्य पैकेज संपादित करें %{name}" label_work_package_plural: "कार्य पैकेज" - label_work_packages_settings: "Work packages settings" label_work_package_status: "कार्य पैकेज स्थिति" label_work_package_status_new: "नई स्थिति" label_work_package_status_plural: "कार्य पैकेज स्थिति" @@ -3117,11 +3139,13 @@ hi: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3142,6 +3166,13 @@ hi: setting_password_min_length: "न्यूनतम लम्बाई" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3507,7 +3538,6 @@ hi: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3522,9 +3552,9 @@ hi: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "टिप्पणी" @@ -3716,12 +3746,16 @@ hi: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3730,6 +3764,10 @@ hi: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/hr.yml b/config/locales/crowdin/hr.yml index dd65bf0422bc..e06c8633c9d2 100644 --- a/config/locales/crowdin/hr.yml +++ b/config/locales/crowdin/hr.yml @@ -31,6 +31,9 @@ hr: custom_styles: color_theme: "Color theme" color_theme_custom: "(Prilagođeno)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ hr: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ hr: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -638,6 +647,8 @@ hr: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -809,6 +820,7 @@ hr: blank: "ne može biti prazan unos." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Radni paket ne može biti pridružen podređenim radnim zadacima." circular_dependency: "Ova relacija izraditi će skupnu odnosno cirkularnu ovisnost." confirmation: "ne odgovara %{attribute}." @@ -882,6 +894,10 @@ hr: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -912,6 +928,8 @@ hr: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1109,7 +1127,7 @@ hr: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Mora sadržavati znakove sljedećih klasa (najamanje %{min_count} od %{all_count}: %{rules})." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "mala slova (npr. 'a')" uppercase: "velika slova (npr. ' A')" numeric: "numerički (npr. ' 1')" @@ -1665,7 +1683,7 @@ hr: error_menu_item_not_saved: Nije moguće spremiti element izbornika error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset uređen" @@ -1837,7 +1855,7 @@ hr: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1946,7 +1964,8 @@ hr: label_additional_workflow_transitions_for_assignee: "Dodatne workflow tranzicije su dopuštene samo kad je korisnik opunomoćen za određeni zadatak" label_additional_workflow_transitions_for_author: "Dodatne workflow tranzicije su dopuštene kada je korisnik autor" label_administration: "Administracija" - label_advanced_settings: "Napredne postavke" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Dob" label_ago: "dana ranije" label_all: "sve" @@ -1979,6 +1998,7 @@ hr: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Autentifikacija" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2051,6 +2071,7 @@ hr: label_copy_project: "Kopiraj projekt" label_core_version: "Temeljna verzija" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Trenutni status" label_current_version: "Trenutna verzija" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2058,6 +2079,7 @@ hr: label_custom_field_plural: "Prilagođena polja" label_custom_field_default_type: "Prazan tip" label_custom_style: "Dizajn" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Datum" @@ -2178,9 +2200,9 @@ hr: label_share: "Podijeli" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Pokaži/Sakrij" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Opis uspoređivanja" label_language: "Jezik" @@ -2330,6 +2352,7 @@ hr: label_product_version: "Verzija proizvoda" label_profile: "Profil" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Projekt" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2515,7 +2538,6 @@ hr: label_work_package_new: "Novi radni paket" label_work_package_edit: "Uredi radni paket %{name}" label_work_package_plural: "Radni paketi" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Status Radnog paketa" label_work_package_status_new: "Novi status" label_work_package_status_plural: "Statusi radnog paketa" @@ -3156,11 +3178,13 @@ hr: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Postavke radnih paketa" @@ -3181,6 +3205,13 @@ hr: setting_password_min_length: "Minimalna duljina" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Postavke objekata po stranici" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protokol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3547,7 +3578,6 @@ hr: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3562,9 +3592,9 @@ hr: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komentar" @@ -3756,12 +3786,16 @@ hr: close_warning: "Ignorirati ovo upozorenje." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3770,6 +3804,10 @@ hr: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/hu.yml b/config/locales/crowdin/hu.yml index e9a12d94deab..a0d0cdf273b3 100644 --- a/config/locales/crowdin/hu.yml +++ b/config/locales/crowdin/hu.yml @@ -31,6 +31,9 @@ hu: custom_styles: color_theme: "Színséma" color_theme_custom: "(Egyéni)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Elsődleges gomb" accent-color: "Kiemelőszín" @@ -79,6 +82,7 @@ hu: contact: "Keressen fel minket a próbaverzióért" enterprise_info_html: "egy Enterprise kiegészítő." upgrade_info: "Kérjük, válasszon egy fizetős csomagot az aktiváláshoz, hogy mihamarabb használhassa a csapatában." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "A felhasználó egyes műveletei (pl. egy munkacsomag kétszeri frissítése) egyetlen műveletté egyesülnek, ha korkülönbségük kisebb, mint a megadott időtartam. Ezek egyetlen műveletként jelennek meg az alkalmazásban. Ez ugyanannyi idővel késlelteti az értesítéseket, csökkenti az elküldött emailek számát, valamint befolyásolja a %{webhook_link} késleltetését is.\n" @@ -201,6 +205,11 @@ hu: title: "Egyéni műveletek" description: "Az egyéni műveletek egy kattintással elérhető parancsikonok előre meghatározott műveletek csoportjához, amelyeket állapot, szerep, típus vagy projekt alapján elérhetővé tehet bizonyos munkacsomagokon." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Új egyéni mezők hozzáadásához először létre kell hozni őket, még mielőtt felvenné azokat a projekthez. is_enabled_globally: "Globálisan engedélyezve van" @@ -628,6 +637,8 @@ hu: uid: "Ügyfél azonosító" secret: "Kliens titok" owner: "Tulajdonos" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Átirányítás URI" client_credentials_user_id: "Ügyféladatok Felhasználói azonosító\n" scopes: "Hatáskörök" @@ -799,6 +810,7 @@ hu: blank: "nem lehet üres." blank_nested: "be kell állítani a '%{property}' tulajdonságot.\n" cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A feladatcsoport nem kapcsolható saját részfeladatához." circular_dependency: "Ez a kapcsolat egy körkörös függőséget eredményezne." confirmation: "%{attribute} nem egyezik." @@ -872,6 +884,10 @@ hu: minimum: "tartalmaznia kell legalább egy szűrőt a fő, kontextus vagy azonosító számára a '=' operátorral.\n" custom_field: at_least_one_custom_option: "Minimum egy opciónak elérhetőnek kell lennie." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) csak egy érték megengedett." empty: "(%{name}) az érték nem lehet üres." @@ -902,6 +918,8 @@ hu: name: blank: "kötelező. Kérjük, válasszon egy nevet." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Legalább egy csatornát meg kell adni az értesítések küldésére.\n" attributes: @@ -1099,7 +1117,7 @@ hu: confirmation: "A két jelszó nem egyezik!" format: "%{message}\n" password: - weak: "Az alábbi karakter típusokból tartalmaznia kell karaktert (legalább %{min_count} a %{all_count} típusból): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "Kisbetű (pl. 'a')" uppercase: "Nagybetű (pl. 'A')" numeric: "Szám (pl. '1')" @@ -1627,7 +1645,7 @@ hu: error_menu_item_not_saved: Menüelem nem menthető error_wiki_root_menu_item_conflict: > Nem lehet átnevezni "%{old_name}", mert "%{new_name}" menü egy már létező menüvel "%{existing_caption}" (%{existing_identifier}) ütközik. - error_external_authentication_failed: "Hiba történt a külső hitelesítés során. Kérjük, próbálja meg újra." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Tulajdonság(ok) nem kiemelhetők: %{attributes}" events: changeset: "Commit szerkesztve" @@ -1799,7 +1817,7 @@ hu: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1908,7 +1926,8 @@ hu: label_additional_workflow_transitions_for_assignee: "A következő státuszváltások engedélyezettek ha a felhasználó jogosult rá" label_additional_workflow_transitions_for_author: "A következő státuszváltások engedélyezettek a szerzők számára" label_administration: "Adminisztráció" - label_advanced_settings: "Speciális beállítások" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Életkor" label_ago: "nappal ezelőtt" label_all: "mind" @@ -1941,6 +1960,7 @@ hu: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Hitelesítés" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Elérhető fórumok" @@ -2013,6 +2033,7 @@ hu: label_copy_project: "Projekt másolása" label_core_version: "Core verzió" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Jelenlegi állapot" label_current_version: "Jelenlegi verzió" label_custom_field_add_no_type: "Mező hozzáadása egy feladatcsoport típushoz" @@ -2020,6 +2041,7 @@ hu: label_custom_field_plural: "Választható mezők" label_custom_field_default_type: "Üres típus" label_custom_style: "Kinézet" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Vezérlőpult" label_database_version: "PostgreSQL verzió" label_date: "dátum" @@ -2140,9 +2162,9 @@ hu: label_share: "Megosztás" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Megjelenítés/Elrejtés" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Minden regisztrált felhasználó megjelenítése" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Hírközlés" label_journal_diff: "Leírás összehasonlítás" label_language: "Nyelv" @@ -2292,6 +2314,7 @@ hu: label_product_version: "Termékverzió" label_profile: "Profil" label_percent_complete: "%-ban kész" + label_progress_tracking: "Progress tracking" label_project: "Projekt" label_project_activity: "Project activity" label_project_attribute_plural: "Projekt attribútumok" @@ -2477,7 +2500,6 @@ hu: label_work_package_new: "Új munkacsomag" label_work_package_edit: "Munkacsomag %{name} szerkesztése" label_work_package_plural: "Munkacsomagok" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Feladatcsoport állapot" label_work_package_status_new: "Új állapot" label_work_package_status_plural: "A munkacsomag állapotai" @@ -3115,11 +3137,13 @@ hu: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Az aktivációs email lejár ekkor" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "feladatcsoport tulajdonságok" @@ -3140,6 +3164,13 @@ hu: setting_password_min_length: "Minimum hosszúság" setting_password_min_adhered_rules: "Minimális számú szükséges ezekhez az osztályokhoz" setting_per_page_options: "Objektum per oldal opció" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Egyszerű szöveges e-mail (nem HTML)" setting_protocol: "Protokol" setting_project_gantt_query: "Projekt portfólió Gantt nézet" @@ -3505,7 +3536,6 @@ hu: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3520,9 +3550,9 @@ hu: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Vélemény" @@ -3714,12 +3744,16 @@ hu: close_warning: "Figyelmeztetés figyelmen kívül hagyása." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth alkalmazás" plural: "OAuth alkalmazások" named: "OAuth-alkalmazás neve %{name}" new: "Új OAuth alkalmazás" + non_confidential: Non confidential default_scopes: "Alapértelmezett hatáskörök" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Az alkalmazás neve. Ez más felhasználók számára jelenik meg engedélyezéskor.\n" redirect_uri_html: > Az engedélyezett URL -címek átirányíthatók a jogosult felhasználókra. Soronként egy bejegyzés.
    Ha asztali alkalmazást regisztrál, használja a következő URL -t. @@ -3728,6 +3762,10 @@ hu: client_credential_user_id: "Választható felhasználói azonosító, amelyet az ügyfelek az alkalmazás használatakor megszemélyesíthetnek. Üresen hagyva csak nyilvános hozzáférést engedélyez\n" register_intro: "Ha OAuth API kliensalkalmazást fejleszt az OpenProject számára, akkor ezen az űrlapon regisztrálhatja azt, hogy minden felhasználó használhassa." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Ügyfél azonosító" client_secret_notice: > Ez az egyetlen alkalom, amikor kinyomtathatjuk az ügyfél titkát, jegyezze fel és tartsa biztonságban. Jelszóként kell kezelni, és az OpenProject később nem tudja lekérni. diff --git a/config/locales/crowdin/id.yml b/config/locales/crowdin/id.yml index 82e9efbfd7aa..d24932c8f063 100644 --- a/config/locales/crowdin/id.yml +++ b/config/locales/crowdin/id.yml @@ -31,6 +31,9 @@ id: custom_styles: color_theme: "Warna tema" color_theme_custom: "Kustomisasi" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ id: contact: "Hubungi kami untuk demo" enterprise_info_html: "adalah add-on Perusahaan." upgrade_info: "Tingkatkan ke paket berbayar untuk mengaktifkan dan mulai menggunakannya di tim Anda." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Setiap tindakan pengguna (mis. memperbarui paket kerja dua kali) digabungkan menjadi satu tindakan jika perbedaan usianya kurang dari rentang waktu yang ditentukan. Mereka akan ditampilkan sebagai tindakan tunggal dalam aplikasi. Ini juga akan menunda pemberitahuan dengan jumlah waktu yang sama sehingga mengurangi jumlah email yang dikirim dan juga akan memengaruhi penundaan %{webhook_link}." @@ -196,6 +200,11 @@ id: title: "Tindakan khusus" description: "Tindakan kustom adalah pintasan sekali klik ke serangkaian tindakan yang ditentukan sebelumnya yang dapat Anda sediakan pada paket kerja tertentu berdasarkan status, peran, jenis, atau proyek." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Untuk menambahkan kolom kustom baru untuk sebuah proyek, pertama-tama Anda harus membuatnya, sebelum Anda dapat menambahkannya ke proyek ini. is_enabled_globally: "Diaktifkan secara global" @@ -617,6 +626,8 @@ id: uid: "ID Pelanggan" secret: "Rahasia klien" owner: "Pemilik" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Alihkan URI" client_credentials_user_id: "ID Pengguna Kredensial Klien" scopes: "Cakupan" @@ -788,6 +799,7 @@ id: blank: "harus di isi." blank_nested: "harus menyetel properti '%{property}'." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Work package tidak dapat dihubungkan dengan subtask-nya." circular_dependency: "Relasi ini menyebabkan dependensi circular." confirmation: "tidak sesuai dengan %{attribute}." @@ -861,6 +873,10 @@ id: minimum: "perlu menyertakan setidaknya satu filter untuk prinsipal, konteks, atau id dengan operator '='." custom_field: at_least_one_custom_option: "Paling tidak, satu pilihan dibutuhkan untuk tersedia." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) hanya satu nilai yang diperbolehkan." empty: "Nilai (%{name}) tidak boleh kosong." @@ -891,6 +907,8 @@ id: name: blank: "adalah wajib. Silakan pilih nama." not_unique: "sudah digunakan. Silakan pilih nama lain." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Setidaknya satu saluran untuk mengirim notifikasi harus ditentukan." attributes: @@ -1088,7 +1106,7 @@ id: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "huruf kecil (spt. 'a')" uppercase: "huruf besar (spt. 'A')" numeric: "numerik (spt. ' 1')" @@ -1588,7 +1606,7 @@ id: error_menu_item_not_saved: Menu item tidak bisa disimpan error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Terjadi kesalahan selama autentikasi eksternal. Silakan coba lagi." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atribut tidak dapat disorot: %{attributes}" events: changeset: "Set-Perubahan telah diedit" @@ -1760,7 +1778,7 @@ id: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1869,7 +1887,8 @@ id: label_additional_workflow_transitions_for_assignee: "Tambahan transisi diperbolehkan ketika user mendapat penugasan" label_additional_workflow_transitions_for_author: "Tambahan transisi diperbolehkan ketika user adalah Penulis" label_administration: "Administrasi" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Usia" label_ago: "hari yang lalu" label_all: "semua" @@ -1902,6 +1921,7 @@ id: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Otentikasi" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Forums tersedia" @@ -1974,6 +1994,7 @@ id: label_copy_project: "Copy Project" label_core_version: "Core versi" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Status saat ini" label_current_version: "Versi saat ini" label_custom_field_add_no_type: "Tambahkan field ini ke sebuah jenis paket kerja" @@ -1981,6 +2002,7 @@ id: label_custom_field_plural: "Isian kustom" label_custom_field_default_type: "Tipe kosong" label_custom_style: "Rancangan" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dasbor" label_database_version: "Versi PostgreSQL" label_date: "Tanggal" @@ -2055,7 +2077,7 @@ id: label_file_plural: "File" label_filter_add: "Tambah Filter" label_filter: "Filter" - label_filter_plural: "Penyaring" + label_filter_plural: "Filter" label_filters_toggle: "Tampilkan/Sembunyikan penyaringan" label_float: "Float" label_folder: "Folder" @@ -2101,9 +2123,9 @@ id: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Menampilkan semua pengguna teregistrasi" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Deskripsi perbandingan" label_language: "Bahasa" @@ -2253,6 +2275,7 @@ id: label_product_version: "Product version" label_profile: "Profil" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Atribut proyek" @@ -2438,7 +2461,6 @@ id: label_work_package_new: "Paket-Penugasan baru" label_work_package_edit: "Edit Paket-Penugasan %{name}" label_work_package_plural: "Paket-Penugasan" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Status Work Package" label_work_package_status_new: "Status baru" label_work_package_status_plural: "Status Paket-Penugasan" @@ -3071,11 +3093,13 @@ id: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Properti Paket-Penugasan" @@ -3096,6 +3120,13 @@ id: setting_password_min_length: "Panjang minimum" setting_password_min_adhered_rules: "Jumlah Min. class yang diperlukan" setting_per_page_options: "Opsi objek per halaman" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Teks (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3460,7 +3491,6 @@ id: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3475,9 +3505,9 @@ id: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komentar" @@ -3669,12 +3699,16 @@ id: close_warning: "Abaikan peringatan ini." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "aplikasi OAuth" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3683,6 +3717,10 @@ id: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID Pelanggan" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/it.yml b/config/locales/crowdin/it.yml index 5531f080506b..25c97e8305df 100644 --- a/config/locales/crowdin/it.yml +++ b/config/locales/crowdin/it.yml @@ -31,6 +31,9 @@ it: custom_styles: color_theme: "Tema a colori" color_theme_custom: "(Personalizzato)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Pulsante principale" accent-color: "Accento" @@ -64,11 +67,11 @@ it: upgrade_to_ee: "Aggiorna a Enterprise edition" add_token: "Carica un token di assistenza per Enterprise edition" delete_token_modal: - text: "Vuoi davvero rimuovere il token Enterprise Edition attualmente utilizzato?" + text: "Vuoi davvero rimuovere il token Enterprise edition attualmente utilizzato?" title: "Elimina token" replace_token: "Sostituisci il token di assistenza attuale" order: "Ordina l'edizione Enterprise on-premises" - paste: "Incolla il tuo token di assistenza per Enterprise Edition" + paste: "Incolla il tuo token di assistenza per Enterprise edition" required_for_feature: "Questa aggiunta è disponibile solo con un token di assistenza Enterprise Edition attivo." enterprise_link: "Per ulteriori informazioni, clicca qui." start_trial: "Inizia la prova gratuita" @@ -79,6 +82,7 @@ it: contact: "Contattaci per una demo" enterprise_info_html: "è un componente aggiuntivo di Imprese ." upgrade_info: "Esegui l'upgrade a un piano a pagamento per attivarlo e iniziare a usarlo nel tuo team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Le singole azioni di un utente (es. l'aggiornamento di una macro-attività due volte) vengono aggregate in un'unica azione se il tempo intercorso tra esse è inferiore al periodo minimo di tempo impostato. Verranno visualizzate quindi come un'unica azione all'interno dell'applicazione. Questo ritarderà anche le notifiche della stessa quantità di tempo, riducendo così il numero di email inviate, e influirà anche sul ritardo di %{webhook_link}." @@ -199,6 +203,11 @@ it: title: "Azioni personalizzate" description: "Le azioni personalizzate sono scorciatoie che con un clic ti consentono di eseguire una serie di azioni predefinite che è possibile rendere disponibili su determinate macro-attività in base a stato, ruolo, tipo o progetto." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Per aggiungere nuovi campi personalizzati a un progetto, è necessario prima crearli. is_enabled_globally: "Abilitato a livello globale" @@ -628,6 +637,8 @@ it: uid: "Client ID" secret: "Chiave segreta del client" owner: "Proprietario" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Reindirizzamento URI" client_credentials_user_id: "ID utente delle credenziali client" scopes: "Ambiti" @@ -799,12 +810,13 @@ it: blank: "non può essere lasciato vuoto." blank_nested: "deve avere la proprietà '%{property}' impostata." cannot_delete_mapping: "è necessario. Non può essere cancellato." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Una macro-attività non può essere collegato a una delle sue sottoattività." circular_dependency: "Questa relazione creerebbe una dipendenza circolare." confirmation: "non coincide con %{attribute}." could_not_be_copied: "%{dependency} non può essere (completamente) copiato." does_not_exist: "non esiste." - error_enterprise_only: "%{action} è disponibile solo in OpenProject Enterprise Edition" + error_enterprise_only: "%{action} è disponibile solo in OpenProject Enterprise edition" error_unauthorized: "potrebbe non essere accessibile." error_readonly: "è in sola lettura, pertanto non è stato possibile modificarlo." error_conflict: "L'informazione è stata aggiornata da almeno un altro utente nel frattempo." @@ -872,6 +884,10 @@ it: minimum: "necessità di includere almeno un filtro per il principale, per il contesto o per l'id con l'operatore '='." custom_field: at_least_one_custom_option: "Deve essere disponibile almeno un'opzione." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) solo un valore è permesso." empty: "(%{name}) valore non può essere vuoto." @@ -902,6 +918,8 @@ it: name: blank: "è obbligatorio. Sei pregato di selezionare un nome." not_unique: "è già in uso. Sei pregato di selezionare un altro nome." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Deve essere specificato almeno un canale per l'invio delle notifiche." attributes: @@ -1099,7 +1117,7 @@ it: confirmation: "Le password non corrispondono." format: "%{message}" password: - weak: "Deve contenere caratteri delle seguenti classi (almeno %{min_count} di %{all_count}): %{rules}." + weak: "Deve contenere caratteri delle seguenti classi (almeno %{min_count} di %{all_count}): %{rules}" lowercase: "minuscolo (es. 'a')" uppercase: "maiuscolo (es. 'A')" numeric: "numerico (es. '1')" @@ -1594,7 +1612,7 @@ it: error_cookie_missing: "Il cookie di OpenProject è mancante. Prego, verifica che i cookie siano attivati, questa applicazione non funziona correttamente senza." error_custom_option_not_found: "L'opzione non esiste." error_enterprise_activation_user_limit: "Il tuo account potrebbe non essere attivo (raggiunto il limite utente). Si prega di contattare l'amministratore per ottenere l'accesso." - error_enterprise_token_invalid_domain: "L'Enterprise Edition non è attiva. Il dominio del token Enterprise (%{actual}) non corrisponde al nome host del sistema (%{expected})." + error_enterprise_token_invalid_domain: "L'Enterprise edition non è attiva. Il dominio del token Enterprise (%{actual}) non corrisponde al nome host del sistema (%{expected})." error_failed_to_delete_entry: "Cancellazione voce non riuscita." error_in_dependent: "Errore nel tentativo di modificare l'oggetto dipendente: %{dependent_class} #%{related_id} - %{related_subject}: %{error}" error_in_new_dependent: "Errore nel tentativo di creare un oggetto dipendente: %{dependent_class} - %{related_subject}: %{error}" @@ -1627,7 +1645,7 @@ it: error_menu_item_not_saved: La voce di menu non può essere salvata error_wiki_root_menu_item_conflict: > Impossibile rinominare "%{old_name}" a "%{new_name}" a causa di un conflitto nella voce di menu risultante con la voce di menu esistente "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Si è verificato un errore durante l'autenticazione esterna. Per favore riprova." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attributo/i non sottolineabile/i: %{attributes}" events: changeset: "Changeset modificato" @@ -1759,10 +1777,10 @@ it: blocks: community: "Comunità di OpenProject" upsale: - title: "Aggiorna ad Enterprise Edition" + title: "Aggiorna ad Enterprise edition" more_info: "Altre informazioni" links: - upgrade_enterprise_edition: "Aggiorna ad Enterprise Edition" + upgrade_enterprise_edition: "Aggiorna ad Enterprise edition" postgres_migration: "Migrazione dell'installazione su PostgreSQL" user_guides: "Guide utente" faq: "FAQ" @@ -1799,7 +1817,7 @@ it: progress_mode_changed_to_status_based: La modalità di calcolo dell'avanzamento è impostata in funzione dello stato. status_excluded_from_totals_set_to_false_message: ora incluso nei totali della gerarchia status_excluded_from_totals_set_to_true_message: ora escluso dai totali della gerarchia - status_percent_complete_changed: "% di completamento cambiata da %{old_value}% a %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > D'ora in poi, l'attività relativa ai collegamenti ai file (file archiviati in archivi esterni) verrà visualizzata qui nella scheda Attività. Di seguito trovi attività riguardanti link già esistenti: @@ -1908,7 +1926,8 @@ it: label_additional_workflow_transitions_for_assignee: "Transizioni aggiuntive consentite quando l'utente è l'assegnatario" label_additional_workflow_transitions_for_author: "Transizioni aggiuntive consentite quando l'utente è l'autore" label_administration: "Amministrazione" - label_advanced_settings: "Impostazioni avanzate" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Età" label_ago: "giorni fa" label_all: "tutti" @@ -1941,6 +1960,7 @@ it: label_attribute_expand_text: "Testo completo per \"%{attribute}\"" label_authentication: "Autenticazione" label_authentication_settings: "Impostazioni di autenticazione" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Ruoli globali disponibili" label_available_project_attributes: "Attributi del progetto disponibili" label_available_project_forums: "Forum disponibili" @@ -2013,6 +2033,7 @@ it: label_copy_project: "Copia progetto" label_core_version: "Versione core" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Stato attuale" label_current_version: "Versione corrente" label_custom_field_add_no_type: "Aggiungi questo campo a un tipo di macro-attività" @@ -2020,6 +2041,7 @@ it: label_custom_field_plural: "Campo personalizzato" label_custom_field_default_type: "Tipo vuoto" label_custom_style: "Progettazione" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "Versione di PostgreSQL" label_date: "Data" @@ -2068,7 +2090,7 @@ it: label_enumerations: "Enumerazioni" label_enterprise: "Enterprise" label_enterprise_active_users: "%{current}/%{limit} utenti attivi riservati" - label_enterprise_edition: "Enterprise Edition" + label_enterprise_edition: "Enterprise edition" label_enterprise_support: "Supporto per Imprese" label_enterprise_addon: "Componente aggiuntivo Enterprise" label_environment: "Ambiente" @@ -2140,9 +2162,9 @@ it: label_share: "Condividi" label_share_project_list: "Condividi elenco progetti" label_share_work_package: "Condividi macro-attività" - label_show_hide: "Mostra/Nascondi" - label_show_hide_n_items: "Mostra/nascondi %{count} elementi" label_show_all_registered_users: "Mostra tutti gli utenti registrati" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Diario" label_journal_diff: "Confronto Descrizione" label_language: "Linguaggio" @@ -2292,6 +2314,7 @@ it: label_product_version: "Versione del prodotto" label_profile: "Profilo" label_percent_complete: "% completamento" + label_progress_tracking: "Progress tracking" label_project: "Progetto" label_project_activity: "Attività del progetto" label_project_attribute_plural: "Attributi del progetto" @@ -2477,7 +2500,6 @@ it: label_work_package_new: "Nuova macro-attività" label_work_package_edit: "Modifica la macro-attività %{name}" label_work_package_plural: "Macro-attività" - label_work_packages_settings: "Impostazioni macro-attività" label_work_package_status: "Stato della macro-attività" label_work_package_status_new: "Nuovo stato" label_work_package_status_plural: "Stati della macro-attività" @@ -3116,11 +3138,13 @@ it: setting_hours_per_day_explanation: >- Definisce ciò che viene considerato un "giorno" quando si visualizza la durata in giorni e ore (per esempio, se un giorno è di 8 ore, 32 ore sono 4 giorni). setting_invitation_expiration_days: "L'email di attivazione scade dopo" - setting_work_package_done_ratio: "Calcolo dei progressi" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Basato sul lavoro" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Basato sullo stato" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - Nella modalità basata sul lavoro, la % completamento viene calcolata in base alla quantità di lavoro svolto rispetto al lavoro totale. Nella modalità basata sullo stato, a ogni stato è associato un valore di % completamento. La modifica dello stato cambierà la % completamento. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > Nella modalità basata sul lavoro, la % completamento può assumere qualsiasi valore. Se inserisci facoltativamente un Lavoro, il Lavoro residuo verrà automaticamente calcolato. Nella modalità basata sullo stato, a ogni stato è associato un valore di % completamento. La modifica dello stato cambierà la % completamento. setting_work_package_properties: "Proprietà della macro-attività" @@ -3141,6 +3165,13 @@ it: setting_password_min_length: "Lunghezza minima" setting_password_min_adhered_rules: "Numero minimo di classi richieste" setting_per_page_options: "Opzioni degli oggetti per pagina" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Posta in formato testo semplice (no HTML)" setting_protocol: "Protocollo" setting_project_gantt_query: "Visione Gantt portafoglio progetti" @@ -3506,7 +3537,6 @@ it: label_note: "Nota:" modal: work_based_help_text: "Ogni campo viene calcolato automaticamente dagli altri due, quando possibile." - work_based_help_text_pre_14_4_without_percent_complete_edition: "La % completamento viene ricavata automaticamente dal Lavoro e dal Lavoro residuo." status_based_help_text: "La % completamento è stabilita dallo stato della macro-attività." migration_warning_text: "Nella modalità di calcolo basata sul lavoro, la % completamento non può essere impostata manualmente ed è legata al lavoro. Il valore esistente è stato mantenuto ma non può essere modificato. Specifica prima il lavoro." derivation_hints: @@ -3521,9 +3551,9 @@ it: remaining_hours: cleared_because_work_is_empty: "Azzerato perché il Lavoro è vuoto." cleared_because_percent_complete_is_empty: "Azzerato perché la % completamento è vuota." - decreased_like_work: "Diminuite della stessa quantità di Lavoro." + decreased_by_delta_like_work: "Diminuito di %{delta}, in linea con la riduzione del Lavoro." derived: "Derivato da Lavoro e da % completamento." - increased_like_work: "Aumentate della stessa quantità di Lavoro." + increased_by_delta_like_work: "Aumentato di %{delta}, in linea con l'aumento del Lavoro." same_as_work: "Impostato allo stesso valore del Lavoro." permissions: comment: "Commentare" @@ -3715,12 +3745,16 @@ it: close_warning: "Ignora questo avviso." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Applicazione OAuth" plural: "Applicazioni OAuth" named: "Applicazione OAuth \"%{name}\"" new: "Nuova Applicazione OAuth" + non_confidential: Non confidential default_scopes: "(Ambiti predefiniti)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Il nome della tua applicazione. Verrà visualizzato dagli altri utenti all'autorizzazione." redirect_uri_html: > Gli URL consentiti a cui possono essere reindirizzati gli utenti autorizzati. Una voce per riga.
    Se stai registrando un'applicazione desktop, usa il seguente URL. @@ -3729,6 +3763,10 @@ it: client_credential_user_id: "ID utente opzionale da impersonare quando i client usano questa applicazione. Lascia vuoto per consentire solo l'accesso pubblico" register_intro: "Se stai sviluppando un'applicazione client OAuth API per OpenProject è possibile registrarla utilizzando questo modulo per consentirne l'uso a tutti gli utenti." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > Questa è l'unico momento in cui possiamo stampare il segreto del client, abbi cura di annotarlo e tenerlo al sicuro. Dovrebbe essere trattato come una password e non può essere recuperato da OpenProject in un momento successivo. diff --git a/config/locales/crowdin/ja.yml b/config/locales/crowdin/ja.yml index 44a7aaa6b0c1..6ca720db428b 100644 --- a/config/locales/crowdin/ja.yml +++ b/config/locales/crowdin/ja.yml @@ -31,6 +31,9 @@ ja: custom_styles: color_theme: "カラーテーマ" color_theme_custom: "(カスタム)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ ja: contact: "デモについてはお問い合わせください" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -200,6 +204,11 @@ ja: title: "カスタムアクション" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > 新しいカスタムフィールドをプロジェクトに追加するには、それをこのプロジェクトに追加する前に、まず作成する必要があります。 is_enabled_globally: "グローバルで有効" @@ -620,6 +629,8 @@ ja: uid: "クライアントID" secret: "秘密鍵" owner: "所有者" + builtin: "Builtin" + enabled: "Active" redirect_uri: "リダイレクトURI" client_credentials_user_id: "クライアント資格情報ユーザーID" scopes: "範囲" @@ -791,6 +802,7 @@ ja: blank: "は空白にすることができません。" blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "親子関係にあるワークパッケージ間で関係の設定はできません。" circular_dependency: "この関係は循環依存になります。" confirmation: "は%{attribute} と一致しません。" @@ -864,6 +876,10 @@ ja: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "少なくとも 1 つオプションが有効である必要があります。" + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) 1 つの値のみ可能です。" empty: "(%{name}) 値を空にすることはできません。" @@ -894,6 +910,8 @@ ja: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1091,7 +1109,7 @@ ja: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "次の文字の種類が含まれるようにしてください (%{all_count} つのうちに %{min_count} つ以上):%{rules}。" + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "アルファベット小文字 (例: 'a')" uppercase: "アルファベット大文字 (例: ' A')" numeric: "数値 (例: '1')" @@ -1591,7 +1609,7 @@ ja: error_menu_item_not_saved: メニュー項目を保存できませんでした。 error_wiki_root_menu_item_conflict: > 結果のメニュー項目が既存のメニュー項目 "%{existing_caption}" (%{existing_identifier}) と競合するため、"%{old_name}" の名前を "%{new_name}" に変更できません。 - error_external_authentication_failed: "外部認証中にエラーが発生しました。もう一度やり直してください。" + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "強調表示されない属性: %{attributes}" events: changeset: "変更セットが編集されました。" @@ -1763,7 +1781,7 @@ ja: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1872,7 +1890,8 @@ ja: label_additional_workflow_transitions_for_assignee: "ユーザーが担当者である場合、追加遷移を許可する" label_additional_workflow_transitions_for_author: "ユーザーが作成者である場合、追加遷移を許可する" label_administration: "管理" - label_advanced_settings: "詳細設定" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "経過" label_ago: "○日前" label_all: "全て" @@ -1905,6 +1924,7 @@ ja: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "認証" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "利用可能なフォーラム" @@ -1977,6 +1997,7 @@ ja: label_copy_project: "プロジェクトをコピー" label_core_version: "メインのバージョン" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "現在のステータス" label_current_version: "最新版" label_custom_field_add_no_type: "このフィールドをワークパッケージタイプに追加" @@ -1984,6 +2005,7 @@ ja: label_custom_field_plural: "カスタムフィールド" label_custom_field_default_type: "空の種類" label_custom_style: "デザイン" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "ダッシュボード" label_database_version: "PostgreSQL バージョン" label_date: "日付" @@ -2104,9 +2126,9 @@ ja: label_share: "共有" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "表示/非表示" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "すべての登録ユーザーを表示" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "履歴記述" label_journal_diff: "説明の比較" label_language: "言語" @@ -2256,6 +2278,7 @@ ja: label_product_version: "製品バージョ​​ン" label_profile: "プロファイル" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "プロジェクト" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2441,7 +2464,6 @@ ja: label_work_package_new: "新しいワークパッケージ" label_work_package_edit: "ワークパッケージ %{name} を編集" label_work_package_plural: "ワークパッケージ" - label_work_packages_settings: "Work packages settings" label_work_package_status: "ステータス名" label_work_package_status_new: "新規ステータス" label_work_package_status_plural: "ステータスの種類" @@ -3078,11 +3100,13 @@ ja: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "アクティベーションのメールは次で有効期限切れ" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "項目名" @@ -3103,6 +3127,13 @@ ja: setting_password_min_length: "最短長" setting_password_min_adhered_rules: "最小限の必要な文字の種類" setting_per_page_options: "オプションページごとの項目数" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "テキストメール(HTMLなし)" setting_protocol: "プロトコル" setting_project_gantt_query: "プロジェクトポートフォリオガントビュー" @@ -3466,7 +3497,6 @@ ja: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3481,9 +3511,9 @@ ja: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "コメント" @@ -3675,12 +3705,16 @@ ja: close_warning: "この警告を無視する。" oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuthアプリケーション" plural: "OAuthアプリケーション" named: "OAuthアプリケーション '%{name}'" new: "新しいOAuthアプリケーション" + non_confidential: Non confidential default_scopes: "(既定の範囲)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "アプリケーションの名前。これは承認時に他のユーザーに表示されます。" redirect_uri_html: > 許可されたURLで承認されたユーザーにリダイレクトできます。 1行に1エントリ。
    デスクトップアプリケーションを登録する場合は、次のURLを使用してください。 @@ -3689,6 +3723,10 @@ ja: client_credential_user_id: "クライアントがこのアプリケーションを使用するときに偽装するためのオプションのユーザーIDです。 パブリックアクセスのみを許可するには空のままにします" register_intro: "OpenProject用のOAuth APIクライアントアプリケーションを開発している場合は、このフォームを使用してすべてのユーザーが使用できるように登録できます。" default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "クライアントID" client_secret_notice: > クライアントシークレットを表示できる唯一の瞬間です。書き留めて安全に保管してください。 これはパスワードとして扱われるべきであり、後でOpenProjectによって検索することはできません。 diff --git a/config/locales/crowdin/js-af.yml b/config/locales/crowdin/js-af.yml index f50600c150d2..17415dc56e50 100644 --- a/config/locales/crowdin/js-af.yml +++ b/config/locales/crowdin/js-af.yml @@ -278,8 +278,6 @@ af: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ af: mentioned: "Mentioned" watched: "Dophouer" assigned: "Gedelegeerde" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Geskep" scheduled: "Geskeduleer" commented: "Kommentaar gelewer" diff --git a/config/locales/crowdin/js-ar.yml b/config/locales/crowdin/js-ar.yml index 4bef3259e9d1..f286aedfea93 100644 --- a/config/locales/crowdin/js-ar.yml +++ b/config/locales/crowdin/js-ar.yml @@ -278,8 +278,6 @@ ar: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ ar: mentioned: "Mentioned" watched: "المشاهد" assigned: "المُسند إليه" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "تم إنشاؤه" scheduled: "مُجدول" commented: "علّق" diff --git a/config/locales/crowdin/js-az.yml b/config/locales/crowdin/js-az.yml index 14e45b25d7ab..17848eb42891 100644 --- a/config/locales/crowdin/js-az.yml +++ b/config/locales/crowdin/js-az.yml @@ -278,8 +278,6 @@ az: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ az: mentioned: "Mentioned" watched: "Watcher" assigned: "Assignee" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-be.yml b/config/locales/crowdin/js-be.yml index 560e177c52e3..a916e9f3dbb5 100644 --- a/config/locales/crowdin/js-be.yml +++ b/config/locales/crowdin/js-be.yml @@ -278,8 +278,6 @@ be: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ be: mentioned: "Mentioned" watched: "Watcher" assigned: "Прызначаная асоба" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-bg.yml b/config/locales/crowdin/js-bg.yml index 229963c47c64..74b3c8389d8e 100644 --- a/config/locales/crowdin/js-bg.yml +++ b/config/locales/crowdin/js-bg.yml @@ -278,8 +278,6 @@ bg: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ bg: mentioned: "Mentioned" watched: "Наблюдател" assigned: "Изпълнител" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Създадено" scheduled: "Планиран" commented: "Коментирани" diff --git a/config/locales/crowdin/js-ca.yml b/config/locales/crowdin/js-ca.yml index 49e7a3134e69..5612eb22f2e4 100644 --- a/config/locales/crowdin/js-ca.yml +++ b/config/locales/crowdin/js-ca.yml @@ -102,7 +102,7 @@ ca: button_save: "Desa" button_settings: "Configuració" button_uncheck_all: "Desmarca-ho tot" - button_update: "Actualitzar" + button_update: "Actualitza" button_export-pdf: "Descarregar PDF" button_export-atom: "Descarregar Atom" button_create: "Crear" @@ -278,8 +278,6 @@ ca: Els canvis poden tardar un temps a ser aplicats. Et notificarem un cop s'hagin actualitzat tots els paquets de treball rellevants. Estàs segur que vols continuar? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ ca: mentioned: "Mencionat" watched: "Observador" assigned: "Assignat a" - accountable: "Responsable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Creat" scheduled: "Programat" commented: "Comentat" @@ -757,7 +757,7 @@ ca: label: "Pausa els correu electrònic recordatori temporalment" first_day: "Primer dia" last_day: "Últim dia" - text_are_you_sure: "N'estas segur?" + text_are_you_sure: "N'esteu segur?" text_data_lost: "Totes les dades entrades es perdran." text_user_wrote: "%{value} va escriure:" types: diff --git a/config/locales/crowdin/js-ckb-IR.yml b/config/locales/crowdin/js-ckb-IR.yml index 54dafd8c8425..c69c1033f69b 100644 --- a/config/locales/crowdin/js-ckb-IR.yml +++ b/config/locales/crowdin/js-ckb-IR.yml @@ -278,8 +278,6 @@ ckb-IR: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ ckb-IR: mentioned: "Mentioned" watched: "Watcher" assigned: "Assignee" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-cs.yml b/config/locales/crowdin/js-cs.yml index 4f5cfc020a55..74cb63004fdd 100644 --- a/config/locales/crowdin/js-cs.yml +++ b/config/locales/crowdin/js-cs.yml @@ -277,8 +277,6 @@ cs: warning: > work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ cs: mentioned: "Zmíněné" watched: "Sledující" assigned: "Řešitel" - accountable: "Odpovědný" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Vytvořeno" scheduled: "Naplánováno" commented: "Komentované" diff --git a/config/locales/crowdin/js-da.yml b/config/locales/crowdin/js-da.yml index 59c46f3d4ddd..d8c5472757eb 100644 --- a/config/locales/crowdin/js-da.yml +++ b/config/locales/crowdin/js-da.yml @@ -277,8 +277,6 @@ da: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ da: mentioned: "Mentioned" watched: "Tilsynsførende" assigned: "Tildelt" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Oprettet" scheduled: "Planlagt" commented: "Kommenterede" diff --git a/config/locales/crowdin/js-de.yml b/config/locales/crowdin/js-de.yml index 729b038f35e5..6b8bcac91db1 100644 --- a/config/locales/crowdin/js-de.yml +++ b/config/locales/crowdin/js-de.yml @@ -277,8 +277,6 @@ de: Es kann einige Zeit dauern, bis die Änderungen wirksam werden. Sie werden benachrichtigt, wenn alle relevanten Arbeitspakete aktualisiert worden sind. Sind Sie sicher, dass Sie fortfahren möchten? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Wenn Sie den Modus der Fortschrittsberechnung von statusbezogen auf aufwandsbezogen ändern, wird % Abgeschlossen zu einem nicht editierbaren Feld, dessen Wert von Aufwand und Verbleibender Aufwand abgeleitet wird. Vorhandene Werte für % Abgeschlossen werden beibehalten. Wenn die Werte für Aufwand und Verbleibender Aufwand nicht vorhanden waren, werden sie benötigt, um % Abgeschlossen zu ändern. warning_progress_calculation_mode_change_from_status_to_field_html: >- Wenn Sie den Modus der Fortschrittsberechnung von statusbasiert auf arbeitsbasiert ändern, ist das Feld % abgeschlossen frei editierbar. Wenn Sie optional Werte für Aufwand oder Verbleibenden Aufwand eingeben, werden diese auch mit % abgeschlossen verknüpft. Eine Änderung des verbleibenden Aufwands aktualisiert dann % abgschlossen. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ de: mentioned: "Erwähnt" watched: "Beobachter" assigned: "Beauftragter" - accountable: "Verantwortlich" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Erstellt" scheduled: "Geplant" commented: "Kommentiert" diff --git a/config/locales/crowdin/js-el.yml b/config/locales/crowdin/js-el.yml index f7e9a36dc177..989cb024c41a 100644 --- a/config/locales/crowdin/js-el.yml +++ b/config/locales/crowdin/js-el.yml @@ -277,8 +277,6 @@ el: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ el: mentioned: "Mentioned" watched: "Παρατηρητής" assigned: "Ανάθεση σε" - accountable: "Υπόλογος" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Δημιουργήθηκε" scheduled: "Προγραμματισμένο" commented: "Σχολιασμένο" diff --git a/config/locales/crowdin/js-eo.yml b/config/locales/crowdin/js-eo.yml index 9b8da316d90f..bca76a4d3ae6 100644 --- a/config/locales/crowdin/js-eo.yml +++ b/config/locales/crowdin/js-eo.yml @@ -278,8 +278,6 @@ eo: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ eo: mentioned: "Mentioned" watched: "Atentanto" assigned: "Asignita al" - accountable: "Respondeculo" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Planita" commented: "Komentita" diff --git a/config/locales/crowdin/js-es.yml b/config/locales/crowdin/js-es.yml index 9ae813820060..4c4f33d8b62f 100644 --- a/config/locales/crowdin/js-es.yml +++ b/config/locales/crowdin/js-es.yml @@ -278,8 +278,6 @@ es: Los cambios pueden tardar algún tiempo en surtir efecto. Se le notificará cuando todos los paquetes de trabajo relevantes hayan sido actualizados. ¿Está seguro de que desea continuar? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Cambiar el modo de cálculo del progreso de basado en el estado a basado en el trabajo hará que % completado sea un campo no editable cuyo valor se deriva de Trabajo y Trabajo restante. Los valores existentes para % completado se conservan. Si los valores para Trabajo y Trabajo restante no estaban presentes, serán necesarios para cambiar % completado. warning_progress_calculation_mode_change_from_status_to_field_html: >- Cambiar el modo de cálculo del progreso de basado en el estado a basado en el trabajo hará que el campo % completado se pueda editar libremente. Si introduce opcionalmente valores para Trabajo o Trabajo restante, también se vincularán a % completado. Cambiar Trabajo restante puede entonces actualizar % completado. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ es: mentioned: "Mencionado" watched: "Observador" assigned: "Asignado a" - accountable: "Responsable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Creado" scheduled: "Programado" commented: "Comentado" diff --git a/config/locales/crowdin/js-et.yml b/config/locales/crowdin/js-et.yml index 51b950d193f9..6f31f5d51f9b 100644 --- a/config/locales/crowdin/js-et.yml +++ b/config/locales/crowdin/js-et.yml @@ -278,8 +278,6 @@ et: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ et: mentioned: "Mentioned" watched: "Jälgija" assigned: "Määratud tegija" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Loodud" scheduled: "Scheduled" commented: "Kommenteeritud" diff --git a/config/locales/crowdin/js-eu.yml b/config/locales/crowdin/js-eu.yml index 4f9bbdd048e1..9544f9cfae6e 100644 --- a/config/locales/crowdin/js-eu.yml +++ b/config/locales/crowdin/js-eu.yml @@ -278,8 +278,6 @@ eu: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ eu: mentioned: "Mentioned" watched: "Watcher" assigned: "Assignee" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-fa.yml b/config/locales/crowdin/js-fa.yml index 5405500caabf..616923abbd32 100644 --- a/config/locales/crowdin/js-fa.yml +++ b/config/locales/crowdin/js-fa.yml @@ -278,8 +278,6 @@ fa: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ fa: mentioned: "Mentioned" watched: "ناظر" assigned: "نماینده" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "ایجاد شد" scheduled: "Scheduled" commented: "دارای اظهار نظر" diff --git a/config/locales/crowdin/js-fi.yml b/config/locales/crowdin/js-fi.yml index 23056e7adadd..9ea591b0770a 100644 --- a/config/locales/crowdin/js-fi.yml +++ b/config/locales/crowdin/js-fi.yml @@ -278,8 +278,6 @@ fi: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ fi: mentioned: "Mentioned" watched: "Seuraajat" assigned: "Työn suorittaja" - accountable: "Vastuuhenkilö" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Luotu" scheduled: "Ajoitettu" commented: "Kommentoitu" diff --git a/config/locales/crowdin/js-fil.yml b/config/locales/crowdin/js-fil.yml index c47020c09ed0..2eba24a4c8eb 100644 --- a/config/locales/crowdin/js-fil.yml +++ b/config/locales/crowdin/js-fil.yml @@ -278,8 +278,6 @@ fil: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ fil: mentioned: "Mentioned" watched: "Tagapagmasid" assigned: "Naitalaga" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Nilikha" scheduled: "Naka-iskedyul" commented: "Ang komento" diff --git a/config/locales/crowdin/js-fr.yml b/config/locales/crowdin/js-fr.yml index 123be203f408..fbbfb38c23e9 100644 --- a/config/locales/crowdin/js-fr.yml +++ b/config/locales/crowdin/js-fr.yml @@ -278,8 +278,6 @@ fr: Les modifications pourraient prendre un certain temps pour être appliquées. Vous serez averti(e) lorsque tous les lots de travaux pertinents auront été mis à jour. Voulez-vous continuer ? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Passer du mode de calcul de la progression basé sur le statut au mode basé sur le travail transformera % réalisé en champ non modifiable dont la valeur est dérivée des champs Travail et Travail restant. Les valeurs existantes pour % réalisé sont conservées. Des valeurs pour Travail et Travail restant sont requises pour modifier % réalisé. warning_progress_calculation_mode_change_from_status_to_field_html: >- Passer du mode de calcul de la progression basé sur le statut au mode basé sur le travail transformera % réalisé en champ librement modifiable. Si vous complétez les champs Travail et Travail restant, ils seront également liés à % réalisé. Changer le champ Travail restant peut alors changer le % réalisé. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ fr: mentioned: "Mentionné" watched: "Observateur" assigned: "Personne assignée" - accountable: "Responsable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Créé" scheduled: "Planifié" commented: "Commenté" diff --git a/config/locales/crowdin/js-he.yml b/config/locales/crowdin/js-he.yml index d6d3b782b314..eebdb4a09ec6 100644 --- a/config/locales/crowdin/js-he.yml +++ b/config/locales/crowdin/js-he.yml @@ -278,8 +278,6 @@ he: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ he: mentioned: "Mentioned" watched: "צופה" assigned: "משויך אל" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "נוצר" scheduled: "מתוזמן" commented: "תגובות" diff --git a/config/locales/crowdin/js-hi.yml b/config/locales/crowdin/js-hi.yml index ba460dff221a..57b880414403 100644 --- a/config/locales/crowdin/js-hi.yml +++ b/config/locales/crowdin/js-hi.yml @@ -278,8 +278,6 @@ hi: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ hi: mentioned: "Mentioned" watched: "वॉचर" assigned: "अनुदिष्ट" - accountable: "जवाबदेह" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "रचनातिथी" scheduled: "अनुसूचित" commented: "टिप्पणियाँकृत" diff --git a/config/locales/crowdin/js-hr.yml b/config/locales/crowdin/js-hr.yml index 3ea56362a85c..c881b735febb 100644 --- a/config/locales/crowdin/js-hr.yml +++ b/config/locales/crowdin/js-hr.yml @@ -278,8 +278,6 @@ hr: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ hr: mentioned: "Mentioned" watched: "Nadglednik" assigned: "Opunomoćeno" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Kreirano" scheduled: "Planirano" commented: "Komentirano" diff --git a/config/locales/crowdin/js-hu.yml b/config/locales/crowdin/js-hu.yml index b9c9b5007c24..88801b892be6 100644 --- a/config/locales/crowdin/js-hu.yml +++ b/config/locales/crowdin/js-hu.yml @@ -278,8 +278,6 @@ hu: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ hu: mentioned: "Megemlített" watched: "Megfigyelő" assigned: "Megbízott" - accountable: "Felelős" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Létrehoz" scheduled: "Beütemezve" commented: "Hozzászólás" diff --git a/config/locales/crowdin/js-id.yml b/config/locales/crowdin/js-id.yml index 28389794aaed..0fc26660369d 100644 --- a/config/locales/crowdin/js-id.yml +++ b/config/locales/crowdin/js-id.yml @@ -102,7 +102,7 @@ id: button_save: "Simpan" button_settings: "Pengaturan" button_uncheck_all: "Uncek semua" - button_update: "Perbarui" + button_update: "Update" button_export-pdf: "Download PDF" button_export-atom: "Download Atom" button_create: "Buat baru" @@ -278,8 +278,6 @@ id: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ id: mentioned: "Mentioned" watched: "Pemantau" assigned: "Pelimpahan" - accountable: "Akuntabel" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Dibuat" scheduled: "Scheduled" commented: "Komentar" diff --git a/config/locales/crowdin/js-it.yml b/config/locales/crowdin/js-it.yml index 4b5d003a3bbb..ca1d4cac84a4 100644 --- a/config/locales/crowdin/js-it.yml +++ b/config/locales/crowdin/js-it.yml @@ -278,8 +278,6 @@ it: L'applicazione delle modifiche potrebbe richiedere del tempo. Riceverai una notifica quando tutti i pacchetti di lavoro pertinenti saranno aggiornati. Vuoi davvero continuare? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - La modifica della modalità di calcolo dei progressi da basata sullo stato a basata su lavoro renderà % completamento un campo non modificabile il cui valore è derivato da Lavoro e Lavoro residuo. I valori esistenti per % completamento sono conservati. Se i valori per Lavoro e Lavoro residuo non erano presenti, saranno necessari per modificare % completamento. warning_progress_calculation_mode_change_from_status_to_field_html: >- La modifica della modalità di calcolo dei progressi da basata sullo stato a basata sul lavoro renderà il campo % completamento liberamente modificabile. Se inserisci facoltativamente valori per Lavoro o Lavoro residuo, questi verranno collegati anche a % completamento. La modifica di Lavoro residuo può quindi aggiornare % completamento. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ it: mentioned: "Menzionato" watched: "Osservatore" assigned: "Assegnatario" - accountable: "Responsabile" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Creato" scheduled: "Programmato" commented: "Commentato" diff --git a/config/locales/crowdin/js-ja.yml b/config/locales/crowdin/js-ja.yml index 6d326895c17a..3e352c3368d4 100644 --- a/config/locales/crowdin/js-ja.yml +++ b/config/locales/crowdin/js-ja.yml @@ -279,8 +279,6 @@ ja: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -613,7 +611,9 @@ ja: mentioned: "Mentioned" watched: "ウォッチャー" assigned: "担当者" - accountable: "責任者" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "作成日時" scheduled: "スケジュール済" commented: "コメントしました。" diff --git a/config/locales/crowdin/js-ka.yml b/config/locales/crowdin/js-ka.yml index 82de37bed037..c3b27619b196 100644 --- a/config/locales/crowdin/js-ka.yml +++ b/config/locales/crowdin/js-ka.yml @@ -278,8 +278,6 @@ ka: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ ka: mentioned: "მოხსენიებულები" watched: "მეთვალყურე" assigned: "დამსაქმებელი" - accountable: "ანგარიშვალდებული" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "შეიქმნა" scheduled: "დაგეგმილია" commented: "კომენტარით" diff --git a/config/locales/crowdin/js-kk.yml b/config/locales/crowdin/js-kk.yml index 54ef56f955d2..4613b23aeb3c 100644 --- a/config/locales/crowdin/js-kk.yml +++ b/config/locales/crowdin/js-kk.yml @@ -278,8 +278,6 @@ kk: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ kk: mentioned: "Mentioned" watched: "Watcher" assigned: "Assignee" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-ko.yml b/config/locales/crowdin/js-ko.yml index 783e090e2ca6..b65917673268 100644 --- a/config/locales/crowdin/js-ko.yml +++ b/config/locales/crowdin/js-ko.yml @@ -278,8 +278,6 @@ ko: 변경 사항이 적용되는 데 시간이 걸릴 수 있습니다. 모든 관련 작업 패키지가 업데이트되면 알림이 전송됩니다. 계속하시겠습니까? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - 진행률 계산 모드를 상태 기반에서 작업 기반으로 변경하면 완료 %가 편집할 수 없는 필드가 되며 해당 값은 작업남은 작업에서 파생됩니다. 완료 %의 기존 값은 유지됩니다. 작업남은 작업의 값이 없는 경우, 완료 %를 변경하려면 해당 값이 필요합니다. warning_progress_calculation_mode_change_from_status_to_field_html: >- 진행률 계산 모드를 상태 기반에서 작업 기반으로 변경하면 완료 % 필드를 자유롭게 편집할 수 있습니다. 선택적으로 작업 또는 남은 작업에 대한 값을 입력하면 해당 값도 완료 %에 링크됩니다. 남은 작업을 변경하면 완료 %가 업데이트될 수 있습니다. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ ko: mentioned: "멘션됨" watched: "주시자" assigned: "담당자" - accountable: "담당자" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "생성됨" scheduled: "예약됨" commented: "코멘트 작성됨" diff --git a/config/locales/crowdin/js-lt.yml b/config/locales/crowdin/js-lt.yml index bcb33257c337..1a9ae2418bdc 100644 --- a/config/locales/crowdin/js-lt.yml +++ b/config/locales/crowdin/js-lt.yml @@ -278,8 +278,6 @@ lt: Pakeitimų įsigaliojimas gali užtrukti. Jums bus pranešta, kai visi susiję darbo paketai bus atnaujinti. Ar tikrai norite tęsti? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ lt: mentioned: "Paminėtas" watched: "Stebėtojas" assigned: "Paskirtas" - accountable: "Atsakingas" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Sukurta" scheduled: "Suplanuota" commented: "Komentavo" diff --git a/config/locales/crowdin/js-lv.yml b/config/locales/crowdin/js-lv.yml index 42f05157e3e4..e046b3811912 100644 --- a/config/locales/crowdin/js-lv.yml +++ b/config/locales/crowdin/js-lv.yml @@ -278,8 +278,6 @@ lv: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ lv: mentioned: "Mentioned" watched: "Sekotājs" assigned: "Pašreizējais atbildīgais" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Izveidots" scheduled: "Scheduled" commented: "Komentēja" diff --git a/config/locales/crowdin/js-mn.yml b/config/locales/crowdin/js-mn.yml index 74dbcfe7a2b0..98a92c64c8a7 100644 --- a/config/locales/crowdin/js-mn.yml +++ b/config/locales/crowdin/js-mn.yml @@ -278,8 +278,6 @@ mn: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ mn: mentioned: "Mentioned" watched: "Watcher" assigned: "Assignee" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-ms.yml b/config/locales/crowdin/js-ms.yml index dc62c89c9e6f..9aa762a9fdbe 100644 --- a/config/locales/crowdin/js-ms.yml +++ b/config/locales/crowdin/js-ms.yml @@ -278,8 +278,6 @@ ms: Perubahan mungkin mengambil sedikit masa untuk berkesan. Anda akan dimaklumkan apabila semua pakej kerja yang berkaitan telah dikemas kini. Adakah anda pasti anda ingin teruskan? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ ms: mentioned: "Telah disebutkan" watched: "Pemerhati" assigned: "Penerima tugasan" - accountable: "Bertanggungjawab" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Dicipta" scheduled: "Dijadualkan" commented: "Komen" diff --git a/config/locales/crowdin/js-ne.yml b/config/locales/crowdin/js-ne.yml index 518687e23c1c..32c7d93fd720 100644 --- a/config/locales/crowdin/js-ne.yml +++ b/config/locales/crowdin/js-ne.yml @@ -278,8 +278,6 @@ ne: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ ne: mentioned: "Mentioned" watched: "Watcher" assigned: "Assignee" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-nl.yml b/config/locales/crowdin/js-nl.yml index b9b0d4bc275f..3497091f9ea1 100644 --- a/config/locales/crowdin/js-nl.yml +++ b/config/locales/crowdin/js-nl.yml @@ -278,8 +278,6 @@ nl: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ nl: mentioned: "Genoemd" watched: "Kijker" assigned: "Toegewezene" - accountable: "Verantwoording afleggen" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Gemaakt" scheduled: "Gepland" commented: "Becommentarieerd" diff --git a/config/locales/crowdin/js-no.yml b/config/locales/crowdin/js-no.yml index f9f2459c928a..83ebe795d946 100644 --- a/config/locales/crowdin/js-no.yml +++ b/config/locales/crowdin/js-no.yml @@ -102,7 +102,7 @@ button_save: "Lagre" button_settings: "Innstillinger" button_uncheck_all: "Avmerk alle" - button_update: "Oppdater" + button_update: "Oppdatèr" button_export-pdf: "Last ned PDF" button_export-atom: "Last ned Atom" button_create: "Opprett" @@ -278,8 +278,6 @@ Endringene kan ta noe tid på å bli effektivisert. Du vil bli varslet når alle relevante arbeidspakker har blitt oppdatert. Er du sikker på at du vil fortsette? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ mentioned: "Nevnt" watched: "Overvåker" assigned: "Deltaker" - accountable: "Ansvarlig" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Opprettet" scheduled: "Planlagt" commented: "Kommentert" diff --git a/config/locales/crowdin/js-pl.yml b/config/locales/crowdin/js-pl.yml index e6c595355d74..0b30914820b9 100644 --- a/config/locales/crowdin/js-pl.yml +++ b/config/locales/crowdin/js-pl.yml @@ -278,8 +278,6 @@ pl: Zmiany mogą wejść w życie po pewnym czasie. Gdy wszystkie odpowiednie pakiety robocze zostaną zaktualizowane, otrzymasz powiadomienie. Czy na pewno chcesz kontynuować? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Zmiana trybu obliczania postępu z opartego na statusie na oparty na pracy sprawi, że atrybut % ukończenia będzie nieedytowalnym polem, którego wartość pochodzi z atrybutów Praca i Pozostała praca. Istniejące wartości atrybutu % ukończenia zostaną zachowane. Jeśli wartości atrybutów Praca i Pozostała praca nie były obecne, będą one wymagane w celu zmiany wartości % ukończenia. warning_progress_calculation_mode_change_from_status_to_field_html: >- Zmiana trybu obliczania postępu z opartego na statusie na oparty na pracy spowoduje, że pole % ukończenia będzie można dowolnie edytować. Jeśli opcjonalnie wprowadzisz wartości Praca lub Pozostała praca, zostaną one również powiązane z wartością % ukończenia. Zmiana wartości Pozostała praca może wówczas skutkować zaktualizowaniem wartości % ukończenia. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ pl: mentioned: "Wzmianka" watched: "Obserwator" assigned: "Przypisana osoba" - accountable: "Osoba odpowiedzialna" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Utworzono" scheduled: "Zaplanowany" commented: "Skomentował" diff --git a/config/locales/crowdin/js-pt-BR.yml b/config/locales/crowdin/js-pt-BR.yml index 0e24354f59e5..fe507612b0eb 100644 --- a/config/locales/crowdin/js-pt-BR.yml +++ b/config/locales/crowdin/js-pt-BR.yml @@ -277,8 +277,6 @@ pt-BR: As alterações podem demorar algum tempo para entrar em vigor. Receberá uma notificação quando todos os pacotes de trabalho relevantes forem atualizados. Tem a certeza de que deseja continuar? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Alterar o modo de cálculo do progresso de "baseado em status" para "baseado em trabalho" tornará o campo % de conclusão não editável, com seu valor derivado de Trabalho e Trabalho Restante. Os valores existentes de % de conclusão serão preservados. Se os valores de Trabalho e Trabalho Restante não estiverem presentes, eles serão necessários para modificar a % de conclusão. warning_progress_calculation_mode_change_from_status_to_field_html: >- Alterar o modo de cálculo de progresso de baseado em status para baseado em trabalho tornará o campo % de conclusão editável livremente. Se você optar por inserir valores para Trabalho ou Trabalho restante, eles também estarão vinculados ao % de conclusão. Alterar Trabalho restante pode, então, atualizar % de conclusão. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ pt-BR: mentioned: "Mencionado" watched: "Observador" assigned: "Cessionário" - accountable: "Responsável" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Criado" scheduled: "Planejado" commented: "Comentado" diff --git a/config/locales/crowdin/js-pt-PT.yml b/config/locales/crowdin/js-pt-PT.yml index 82f6f3b819ab..e9fd50dfc13b 100644 --- a/config/locales/crowdin/js-pt-PT.yml +++ b/config/locales/crowdin/js-pt-PT.yml @@ -278,8 +278,6 @@ pt-PT: As alterações podem demorar algum tempo a entrar em vigor. Receberá uma notificação quando todos os pacotes de trabalho relevantes forem atualizados. Tem a certeza de que quer continuar? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Alterar o modo de cálculo do progresso de "baseado no estado" para "baseado no trabalho" fará com que a % de conclusão seja um campo não editável cujo valor é derivado de Trabalho e Trabalho restante. Os valores existentes para a % de conclusão são preservados. Se os valores para Trabalho e Trabalho restante não estiverem presentes, eles serão necessários para alterar a % de conclusão. warning_progress_calculation_mode_change_from_status_to_field_html: >- Se alterar o modo de cálculo do progresso de baseado no estado para baseado no trabalho, o campo % de conclusão poderá ser editado livremente. Se, opcionalmente, introduzir valores para Trabalho ou Trabalho restante, estes também serão associado a % de conclusão. Se alterar o Trabalho restante, pode atualizar a % de conclusão. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ pt-PT: mentioned: "Mencionado" watched: "Observador" assigned: "Pessoa atribuída" - accountable: "Responsável" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Criado" scheduled: "Agendado" commented: "Comentado" diff --git a/config/locales/crowdin/js-ro.yml b/config/locales/crowdin/js-ro.yml index 446298d02e23..dc822aa7a0d9 100644 --- a/config/locales/crowdin/js-ro.yml +++ b/config/locales/crowdin/js-ro.yml @@ -102,7 +102,7 @@ ro: button_save: "Salvează" button_settings: "Setări" button_uncheck_all: "Deselectează tot" - button_update: "Actualizează" + button_update: "Actualizare" button_export-pdf: "Descarcă PDF" button_export-atom: "Descarcă Atom" button_create: "Creează" @@ -277,8 +277,6 @@ ro: Modificările ar putea dura ceva timp pentru a produce efecte. Vei fi notificat când toate pachetele de lucru relevante au fost actualizate. Ești sigur că vrei să continui? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ ro: mentioned: "Menţionat" watched: "Observator" assigned: "Executant" - accountable: "Responsabil" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Creat pe" scheduled: "Planificat" commented: "Cu comentarii" @@ -757,7 +757,7 @@ ro: label: "Întrerupeți temporar memento-urile zilnice prin e-mail" first_day: "Prima zi" last_day: "Ultima zi" - text_are_you_sure: "Ești sigur?" + text_are_you_sure: "Sunteți sigur?" text_data_lost: "Toate datele introduse vor fi pierdute." text_user_wrote: "%{value} a scris:" types: diff --git a/config/locales/crowdin/js-ru.yml b/config/locales/crowdin/js-ru.yml index 94404c02121d..074cd0fdc2f1 100644 --- a/config/locales/crowdin/js-ru.yml +++ b/config/locales/crowdin/js-ru.yml @@ -102,7 +102,7 @@ ru: button_save: "Сохранить" button_settings: "Настройки" button_uncheck_all: "Снять все отметки" - button_update: "Обновить" + button_update: "Обновление" button_export-pdf: "Скачать PDF" button_export-atom: "Скачать Atom" button_create: "Создать" @@ -277,8 +277,6 @@ ru: Для вступления изменений в силу может потребоваться некоторое время. Вы будете уведомлены, когда все соответствующие пакеты работ будут обновлены. Хотите продолжить? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - При изменении расчета прогресса с режима "На основе статуса" на режим "На основе трудозатрат" поле % Завершения станет нередактируемым, его значение будет получено из значений Работа и Оставшаяся работа. Существующие значения для % Завершения сохраняются. Если значения для Работа и Оставшаяся работа отсутствуют, они потребуются для изменения % Завершения. warning_progress_calculation_mode_change_from_status_to_field_html: >- При изменении расчета прогресса с режима "На основе статуса" на режим "На основе трудозатрат" поле % Завершения станет редактируемым. Если Вы дополнительно введете значения для Работы или Оставшейся работы, они также будут связаны с % Завершения. Изменение значения Оставшейся работы может привести к обновлению % Завершения. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ ru: mentioned: "Упомянутый" watched: "Наблюдатель" assigned: "Назначенный" - accountable: "Ответственный" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Создано" scheduled: "Запланировано" commented: "Прокомментировано" diff --git a/config/locales/crowdin/js-rw.yml b/config/locales/crowdin/js-rw.yml index 720748414931..3e806685e7e7 100644 --- a/config/locales/crowdin/js-rw.yml +++ b/config/locales/crowdin/js-rw.yml @@ -278,8 +278,6 @@ rw: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ rw: mentioned: "Mentioned" watched: "Watcher" assigned: "Assignee" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-si.yml b/config/locales/crowdin/js-si.yml index d3adfe9195c8..16fc779a85d9 100644 --- a/config/locales/crowdin/js-si.yml +++ b/config/locales/crowdin/js-si.yml @@ -278,8 +278,6 @@ si: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ si: mentioned: "Mentioned" watched: "මුරකරු" assigned: "අස්ගිනී" - accountable: "වගවීම" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "නියමිත" commented: "අදහස් දැක්වීය" diff --git a/config/locales/crowdin/js-sk.yml b/config/locales/crowdin/js-sk.yml index 7d644a83c772..86fdec412c45 100644 --- a/config/locales/crowdin/js-sk.yml +++ b/config/locales/crowdin/js-sk.yml @@ -278,8 +278,6 @@ sk: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ sk: mentioned: "Mentioned" watched: "Pozorovateľ" assigned: "Priradené" - accountable: "Zodpovedný" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Vytvorený" scheduled: "Naplánované" commented: "Komentované" diff --git a/config/locales/crowdin/js-sl.yml b/config/locales/crowdin/js-sl.yml index db27deae7642..f3a6f02d6669 100644 --- a/config/locales/crowdin/js-sl.yml +++ b/config/locales/crowdin/js-sl.yml @@ -277,8 +277,6 @@ sl: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ sl: mentioned: "Omenjen" watched: "Opazovalec" assigned: "Prevzemnik" - accountable: "Odgovorni" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Ustvarjen" scheduled: "Načrtovano" commented: "Komentar" diff --git a/config/locales/crowdin/js-sr.yml b/config/locales/crowdin/js-sr.yml index 636ea4d9e734..21f3e40625a3 100644 --- a/config/locales/crowdin/js-sr.yml +++ b/config/locales/crowdin/js-sr.yml @@ -278,8 +278,6 @@ sr: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ sr: mentioned: "Mentioned" watched: "Watcher" assigned: "Zadužen" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-sv.yml b/config/locales/crowdin/js-sv.yml index 78fa0df05543..8f43b94ad8d1 100644 --- a/config/locales/crowdin/js-sv.yml +++ b/config/locales/crowdin/js-sv.yml @@ -277,8 +277,6 @@ sv: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ sv: mentioned: "Mentioned" watched: "Bevakare" assigned: "Tilldelad till" - accountable: "Huvudansvarig" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Skapad" scheduled: "Schemalagt" commented: "Kommenterade" diff --git a/config/locales/crowdin/js-th.yml b/config/locales/crowdin/js-th.yml index 69aa33e796bf..08adf84d9adb 100644 --- a/config/locales/crowdin/js-th.yml +++ b/config/locales/crowdin/js-th.yml @@ -278,8 +278,6 @@ th: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ th: mentioned: "Mentioned" watched: "ผู้ดูข้อมูล" assigned: "ผู้ได้รับมอบหมาย" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "ที่ถูกสร้างขึ้น" scheduled: "Scheduled" commented: "แสดงความเห็น" diff --git a/config/locales/crowdin/js-tr.yml b/config/locales/crowdin/js-tr.yml index 22c038274531..b58250135a38 100644 --- a/config/locales/crowdin/js-tr.yml +++ b/config/locales/crowdin/js-tr.yml @@ -277,8 +277,6 @@ tr: warning: > Değişikliklerin geçerlilik kazanması biraz zaman alabilir. İlgili tüm iş paketleri güncellendiğinde bilgilendirileceksiniz. Devam etmek istediğine emin misin? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ tr: mentioned: "Bahsedilen" watched: "Takipçi" assigned: "Atanan" - accountable: "Sorumlu" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Oluşturuldu" scheduled: "Zamanlandı" commented: "Yorumlananlar" diff --git a/config/locales/crowdin/js-uk.yml b/config/locales/crowdin/js-uk.yml index 7d17abe6627a..e5a297150b2c 100644 --- a/config/locales/crowdin/js-uk.yml +++ b/config/locales/crowdin/js-uk.yml @@ -278,8 +278,6 @@ uk: Застосування змін може тривати деякий час. Ви отримаєте сповіщення, коли всі відповідні пакети робіт буде оновлено. Продовжити? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Якщо перейти з режиму обчислення прогресу на основі статусу на режим на основі роботи, атрибут % завершення стане недоступним для редагування полем, значення якого виводитиметься зі значень атрибутів Робота й Залишок роботи. Наявні значення атрибута % завершення буде збережено. Якщо значення атрибутів Робота й Залишок роботи не задано, їх потрібно буде задати, щоб змінити значення атрибута % завершення. warning_progress_calculation_mode_change_from_status_to_field_html: >- Якщо перейти з режиму обчислення прогресу на основі статусу на режим на основі роботи, атрибут % завершення стане доступним для редагування полем. Якщо визначено атрибути Робота й Залишок роботи, їх значення буде також пов’язано з атрибутом % завершення. Змінення значення атрибута Залишок роботи призводить до оновлення атрибута % завершення. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ uk: mentioned: "Згадано" watched: "Спостерігач" assigned: "Виконавець" - accountable: "Відповідальний" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Створено" scheduled: "Заплановано" commented: "Прокоментовано" diff --git a/config/locales/crowdin/js-uz.yml b/config/locales/crowdin/js-uz.yml index addb9b6a7c41..fdc16f5b567c 100644 --- a/config/locales/crowdin/js-uz.yml +++ b/config/locales/crowdin/js-uz.yml @@ -278,8 +278,6 @@ uz: The changes might take some time to take effect. You will be notified when all relevant work packages have been updated. Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make % Complete a non-editable field whose value is derived from Work and Remaining work. Existing values for % Complete are preserved. If values for Work and Remaining work were not present, they will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values for Work or Remaining work, they will also be linked to % Complete. Changing Remaining work can then update % Complete. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ uz: mentioned: "Mentioned" watched: "Watcher" assigned: "Assignee" - accountable: "Accountable" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/locales/crowdin/js-vi.yml b/config/locales/crowdin/js-vi.yml index 1a19be391f4d..aca95c7c7078 100644 --- a/config/locales/crowdin/js-vi.yml +++ b/config/locales/crowdin/js-vi.yml @@ -102,7 +102,7 @@ vi: button_save: "Lưu" 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-pdf: "Tải xuống PDF" button_export-atom: "Tải xuống Atom" button_create: "Tạo" @@ -278,8 +278,6 @@ vi: Các thay đổi có thể mất một thời gian để có hiệu lực. Bạn sẽ được thông báo khi tất cả các công việc liên quan đã được cập nhật. Bạn có chắc chắn muốn tiếp tục không? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Thay đổi chế độ tính toán tiến độ từ dựa trên trạng thái sang dựa trên công việc sẽ biến % Hoàn thành thành trường không thể chỉnh sửa có giá trị được lấy từ Công việcCông việc còn lại. Các giá trị hiện tại cho % Hoàn thành được giữ nguyên. Nếu các giá trị cho Công việcCông việc còn lại không có, chúng sẽ được yêu cầu để thay đổi % Hoàn thành. warning_progress_calculation_mode_change_from_status_to_field_html: >- Thay đổi chế độ tính toán tiến độ từ dựa trên trạng thái sang dựa trên công việc sẽ làm cho trường % Hoàn thành có thể chỉnh sửa tự do. Nếu bạn tùy ý nhập giá trị cho Công việc hoặc Công việc còn lại, chúng cũng sẽ được liên kết với % Hoàn thành. Thay đổi Công việc còn lại sau đó có thể cập nhật % Hoàn thành. warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -612,7 +610,9 @@ vi: mentioned: "nhắc đến" watched: "người theo dõi" assigned: "người được giao" - accountable: "Có trách nhiệm" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "Accountable" created: "được tạo" scheduled: "được lên lịch" commented: "bình luận" diff --git a/config/locales/crowdin/js-zh-CN.yml b/config/locales/crowdin/js-zh-CN.yml index 491cd4ed3a88..7f2706a281a6 100644 --- a/config/locales/crowdin/js-zh-CN.yml +++ b/config/locales/crowdin/js-zh-CN.yml @@ -277,8 +277,6 @@ zh-CN: warning: > 更改可能需要一些时间才能生效。当更新完所有相关工作包时,您将收到通知。 work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - 将进度计算模式从基于状态改为基于工时,将使完成 %变为不可编辑字段,其值来自工时剩余工时完成 %现有值将保留。如果没有 工时剩余工时的值,则需要这些值才能更改 完成 %。 warning_progress_calculation_mode_change_from_status_to_field_html: >- 将进度计算模式从基于状态改为基于工时,将使完成 %字段可自由编辑。如果您选择输入工时剩余工时的值,它们也将与完成 %相关联。更改剩余工时就可以更新完成 %。 warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -611,7 +609,9 @@ zh-CN: mentioned: "被提及" watched: "关注者" assigned: "指定人" - accountable: "负责人" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "负责人" created: "已创建" scheduled: "已计划" commented: "已评论" diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index 5ea45fdfc7da..a11c370449dd 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -276,8 +276,6 @@ zh-TW: warning: > 更改可能需要一些時間才能生效。當更新完所有相關工作包時,您將收到通知。 work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - 將進度計算模式從基於狀態更改為基於工作將使完成百分比成為不可編輯,其值源自工時剩餘工時% Complete 的現有值將會保留。如果工時剩餘工時的值不存在,則需要更改它們'才能修改完成百分比。 warning_progress_calculation_mode_change_from_status_to_field_html: >- 將進度計算模式從基於狀態變更為基於工作將使完成百分比欄位可自由編輯。如果您選擇輸入工時剩餘工時,它們也會連結到完成百分比。更改剩餘工作可以更新完成百分比。 warning_progress_calculation_mode_change_from_field_to_status_html: >- @@ -610,7 +608,9 @@ zh-TW: mentioned: "被提及" watched: "監看者" assigned: "執行者" - accountable: "負責人" + #The enum value is named 'responsible' in the database and that is what is transported through the API + #up to the frontend. + responsible: "負責人" created: "已建立" scheduled: "已排程" commented: "已留言" diff --git a/config/locales/crowdin/ka.yml b/config/locales/crowdin/ka.yml index 9587e445a0ef..296ab5be5e6b 100644 --- a/config/locales/crowdin/ka.yml +++ b/config/locales/crowdin/ka.yml @@ -31,6 +31,9 @@ ka: custom_styles: color_theme: "ფერის სქემა" color_theme_custom: "(მომხმარებლის)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ ka: contact: "დემოსთვის დაგვიკავშირდით" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ ka: title: "მორგებული ქმედებები" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ ka: uid: "კლიენტის ID" secret: "კლიენტის კოდი" owner: "მფლობელი" + builtin: "Builtin" + enabled: "Active" redirect_uri: "გადამისამართების ბმული" client_credentials_user_id: "Client Credentials User ID" scopes: "ფარგლები" @@ -802,6 +813,7 @@ ka: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ ka: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ ka: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ ka: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1630,7 +1648,7 @@ ka: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ ka: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ ka: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "ადმინისტრირება" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "ასაკი" label_ago: "დღის წინ" label_all: "ყველა" @@ -1944,6 +1963,7 @@ ka: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "ავთენტიკაცია" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ ka: label_copy_project: "პროექტის კოპირება" label_core_version: "ბირთვის ვერსია" label_core_build: "ბირთვის აგება" + label_created_by: "Created by %{user}" label_current_status: "მიმდინარე სტატუსი" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ ka: label_custom_field_plural: "მორგებადი ველები" label_custom_field_default_type: "ცარიელი ტიპი" label_custom_style: "დიზაინი" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "სამუშაო დაფა" label_database_version: "PostgreSQL version" label_date: "თარიღი" @@ -2143,9 +2165,9 @@ ka: label_share: "გაზიარება" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "ჩვენება/დამალვა" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "ჟურნალი" label_journal_diff: "Description Comparison" label_language: "ენა" @@ -2295,6 +2317,7 @@ ka: label_product_version: "Product version" label_profile: "პროფილი" label_percent_complete: "% დასრულებულია" + label_progress_tracking: "Progress tracking" label_project: "პროექტი" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ ka: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "სამუშაო პაკეტები" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "ახალი სტატუსი" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ ka: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ ka: setting_password_min_length: "მინიმალური სიგრძე" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "პროტოკოლი" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ ka: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ ka: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "კომენტარი" @@ -3718,12 +3748,16 @@ ka: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ ka: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "კლიენტის ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/kk.yml b/config/locales/crowdin/kk.yml index d8b27f7bb10e..3559fc8ad592 100644 --- a/config/locales/crowdin/kk.yml +++ b/config/locales/crowdin/kk.yml @@ -31,6 +31,9 @@ kk: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ kk: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ kk: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ kk: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ kk: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ kk: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ kk: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ kk: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1630,7 +1648,7 @@ kk: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ kk: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ kk: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1944,6 +1963,7 @@ kk: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ kk: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ kk: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2143,9 +2165,9 @@ kk: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2295,6 +2317,7 @@ kk: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ kk: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ kk: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ kk: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ kk: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ kk: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3718,12 +3748,16 @@ kk: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ kk: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/ko.yml b/config/locales/crowdin/ko.yml index 202ce85d7118..c473cbcc6039 100644 --- a/config/locales/crowdin/ko.yml +++ b/config/locales/crowdin/ko.yml @@ -31,6 +31,9 @@ ko: custom_styles: color_theme: "컬러 테마" color_theme_custom: "(사용자 지정)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "기본 버튼" accent-color: "강조 색" @@ -79,6 +82,7 @@ ko: contact: "당사에 데모 요청하기" enterprise_info_html: "- Enterprise 추가 기능입니다." upgrade_info: "활성화하고 팀에서 사용하려면 유료 플랜으로 업그레이드하세요." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "사용자의 개별 작업(예: 작업 패키지를 두 번 업데이트)은 연령 차이가 지정된 기간 미만인 경우 단일 작업으로 집계됩니다. 애플리케이션 내에서 단일 작업으로 표시됩니다. 또한 이는 전송되는 이메일 수를 줄이는 동일한 시간만큼 알림을 지연시키고 %{webhook_link} 지연에도 영향을 미칩니다." @@ -202,6 +206,11 @@ ko: title: "사용자 지정 작업" description: "사용자 지정 작업은 상태, 역할, 유형 또는 프로젝트를 기반으로 특정 작업 패키지에서 사용할 수 있도록 미리 정의된 작업 세트에 대한 원클릭 바로 가기입니다." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > 프로젝트에 새 사용자 지정 필드를 추가하려면 먼저 해당 필드를 만들어야 합니다. 그래야 이 프로젝트에 해당 필드를 추가할 수 있습니다. is_enabled_globally: "는 세계적으로 사용 가능합니다." @@ -623,6 +632,8 @@ ko: uid: "고객 ID" secret: "클라이언트 비밀번호" owner: "소유자" + builtin: "Builtin" + enabled: "Active" redirect_uri: "리디렉션 URI" client_credentials_user_id: "클라이언트 자격 증명 사용자 ID" scopes: "범위" @@ -794,6 +805,7 @@ ko: blank: "내용을 입력해주세요" blank_nested: "- '%{property}' 속성이 설정되어 있어야 합니다." cannot_delete_mapping: "- 필수입니다. 삭제할 수 없습니다." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "작업 패키지는 하위 작업패키지들 중 하나에 연결 될 수 없습니다." circular_dependency: "이 연계는 순환 종속관계를 만듭니다." confirmation: "%{attribute} 속성에 부합하지 않습니다." @@ -867,6 +879,10 @@ ko: minimum: "'=' 연산자를 사용하여 주체, 컨텍스트 또는 ID에 대해 하나 이상의 필터를 포함시켜야 합니다." custom_field: at_least_one_custom_option: "하나 이상의 옵션을 사용할 수 있어야 합니다." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) 하나의 값만 허용됩니다." empty: "(%{name}) 값은 비워둘 수 없습니다." @@ -897,6 +913,8 @@ ko: name: blank: "- 필수입니다. 이름을 선택하세요." not_unique: "- 사용 중입니다. 다른 이름을 선택하세요." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "알림을 보낼 채널을 하나 이상 지정해야 합니다." attributes: @@ -1094,7 +1112,7 @@ ko: confirmation: "비밀번호와 비밀번호 확인이 일치하지 않습니다." format: "%{message}" password: - weak: "다음과 같은 문자를 포함 해야 합니다 (최소 %{all_count} 중 %{min_count}): %{rules}." + weak: "다음과 같은 클래스의 문자를 포함해야 합니다(최소 %{min_count} / %{all_count}): %{rules}" lowercase: "소문자(예: 'a')" uppercase: "대문자(예: 'A')" numeric: "숫자 (예: ' 1')" @@ -1594,7 +1612,7 @@ ko: error_menu_item_not_saved: 메뉴 항목을 저장할 수 없습니다. error_wiki_root_menu_item_conflict: > 결과 메뉴 항목에서 기존 메뉴 항목 "%{existing_caption}" (%{existing_identifier})과(와)의 충돌로 인해 "%{old_name}"을(를) "%{new_name}"(으)로 이름을 바꿀 수 없습니다. - error_external_authentication_failed: "외부 인증 중에 오류가 발생했습니다. 다시 시도하세요." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "강조 표시되지 않는 특성: %{attributes}" events: changeset: "변경 집합 편집됨" @@ -1766,7 +1784,7 @@ ko: progress_mode_changed_to_status_based: 진행률 계산 모드가 상태 기반으로 설정되었습니다 status_excluded_from_totals_set_to_false_message: 이제 계층 합계에 포함됨 status_excluded_from_totals_set_to_true_message: 이제 계층 합계에서 제외됨 - status_percent_complete_changed: "완료 %가 %{old_value}%에서 %{new_value}%(으)로 변경되었습니다" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > 지금부터 파일 링크(외부 저장소에 저장된 파일)와 관련된 활동이 활동 탭에 표시됩니다. 다음은 이미 존재하는 링크와 관련된 활동을 나타냅니다. @@ -1875,7 +1893,8 @@ ko: label_additional_workflow_transitions_for_assignee: "사용자가 담당자일 때 허용되는 추가 전환" label_additional_workflow_transitions_for_author: "사용자가 작성자일 때 허용되는 추가 전환" label_administration: "관리" - label_advanced_settings: "고급 설정" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "기간" label_ago: "일 전" label_all: "모두" @@ -1908,6 +1927,7 @@ ko: label_attribute_expand_text: "'%{attribute}'의 전체 텍스트" label_authentication: "인증" label_authentication_settings: "인증 설정" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "사용 가능한 글로벌 역할" label_available_project_attributes: "사용 가능한 프로젝트 특성" label_available_project_forums: "사용 가능한 포럼" @@ -1980,6 +2000,7 @@ ko: label_copy_project: "프로젝트 복사" label_core_version: "코어 버전" label_core_build: "코어 빌드" + label_created_by: "Created by %{user}" label_current_status: "현재 상태" label_current_version: "현재 버전" label_custom_field_add_no_type: "작업 패키지 유형에 이 필드 추가" @@ -1987,6 +2008,7 @@ ko: label_custom_field_plural: "사용자 정의 필드" label_custom_field_default_type: "빈 유형" label_custom_style: "디자인" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "대시보드" label_database_version: "PostgreSQL 버전" label_date: "날짜" @@ -2107,9 +2129,9 @@ ko: label_share: "공유" label_share_project_list: "프로젝트 목록 공유" label_share_work_package: "작업 패키지 공유" - label_show_hide: "표시/숨기기" - label_show_hide_n_items: "%{count}개 항목 표시/숨기기" label_show_all_registered_users: "등록된 사용자 모두 표시" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "기록일지" label_journal_diff: "설명 비교" label_language: "언어" @@ -2259,6 +2281,7 @@ ko: label_product_version: "제품 버전" label_profile: "프로필" label_percent_complete: "완료 %" + label_progress_tracking: "Progress tracking" label_project: "프로젝트" label_project_activity: "프로젝트 활동" label_project_attribute_plural: "프로젝트 특성" @@ -2444,7 +2467,6 @@ ko: label_work_package_new: "새 작업 패키지" label_work_package_edit: "작업 패키지 %{name} 편집" label_work_package_plural: "작업 패키지" - label_work_packages_settings: "작업 패키지 설정" label_work_package_status: "작업 패키지 상태" label_work_package_status_new: "새 상태" label_work_package_status_plural: "작업 패키지 상태" @@ -3078,11 +3100,13 @@ ko: setting_hours_per_day_explanation: >- 일 및 시간으로 기간을 표시할 때 "하루"로 간주되는 시간을 정의합니다(예: 하루가 8시간이면 32시간은 4일이 됩니다). setting_invitation_expiration_days: "활성화 이메일 만료 기간:" - setting_work_package_done_ratio: "진행률 계산" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "작업 기반" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "상태 기반" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - 작업 기반 모드에서 완료 %는 총 작업 대비 완료된 작업을 기준으로 계산됩니다. 상태 기반 모드에서는 각 상태에 완료 % 값이 연결되어 있습니다. 상태를 변경하면 완료 %도 변경됩니다. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > 작업 기반 모드에서 완료 %는 어떤 값으로든 자유롭게 설정할 수 있습니다. 선택적으로 작업에 대한 값을 입력하면 남은 작업이 자동으로 파생됩니다. 상태 기반 모드에서는 각 상태에 완료 % 값이 연결되어 있습니다. 상태를 변경하면 완료 %도 변경됩니다. setting_work_package_properties: "작업 패키지 속성" @@ -3103,6 +3127,13 @@ ko: setting_password_min_length: "최소 길이" setting_password_min_adhered_rules: "최소 필수 클래스 수" setting_per_page_options: "페이지당 개체 옵션" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "일반 텍스트 메일(HTML 없음)" setting_protocol: "프로토콜" setting_project_gantt_query: "프로젝트 포트폴리오 Gantt 보기" @@ -3467,7 +3498,6 @@ ko: label_note: "참고:" modal: work_based_help_text: "가능한 경우 각 필드는 다른 두 필드에서 자동으로 계산됩니다." - work_based_help_text_pre_14_4_without_percent_complete_edition: "완료 %는 작업 및 남은 작업에서 자동으로 파생됩니다." status_based_help_text: "완료 %는 작업 패키지 상태에 따라 설정됩니다." migration_warning_text: "작업 기반 진행률 계산 모드에서 완료 %는 수동으로 설정할 수 없으며 작업에 연결됩니다. 기존 값은 유지되지만 편집할 수 없습니다. 먼저 작업을 입력하세요." derivation_hints: @@ -3482,9 +3512,9 @@ ko: remaining_hours: cleared_because_work_is_empty: "작업이 비어 있으므로 지워졌습니다." cleared_because_percent_complete_is_empty: "완료 %가 비어 있으므로 지워졌습니다." - decreased_like_work: "작업과 동일하게 감소했습니다." + decreased_by_delta_like_work: "%{delta} 감소하여 작업의 감소와 일치합니다." derived: "작업 및 완료 %에서 파생되었습니다." - increased_like_work: "작업과 동일하게 증가했습니다." + increased_by_delta_like_work: "%{delta} 증가하여 작업의 증가와 일치합니다." same_as_work: "작업과 동일한 값으로 설정합니다." permissions: comment: "코멘트" @@ -3676,12 +3706,16 @@ ko: close_warning: "이 경고를 무시하십시오." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth 애플리케이션" plural: "OAuth 애플리케이션" named: "OAuth 애플리케이션 '%{name}'" new: "새로운 OAuth 애플리케이션" + non_confidential: Non confidential default_scopes: "(기본 범위)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "애플리케이션 이름입니다. 권한 부여 시 다른 사용자에게 표시됩니다." redirect_uri_html: > 허용된 URL 인증 사용자로 리디렉션될 수 있습니다. 라인별로 하나의 항목이 있습니다.
    데스크톱 애플리케이션을 등록하려면 다음 URL을 사용하세요. @@ -3690,6 +3724,10 @@ ko: client_credential_user_id: "클라이언트가 이 애플리케이션을 사용할 때 가장하기 위한 선택적 사용자 ID입니다. 공용 액세스만 허용하려면 비워두세요." register_intro: "OpenProject용 OAuth API 클라이언트 애플리케이션을 개발할 경우 이 양식을 사용하여 모든 사용자가 사용할 수 있도록 등록할 수 있습니다." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "고객 ID" client_secret_notice: > 클라이언트 비밀번호를 인쇄할 수 있는 유일한 순간입니다. 이 비밀번호를 기록하고 안전하게 보관하십시오. 이 비밀번호는 암호로 취급해야 하며 나중에 OpenProject로 검색할 수 없습니다. diff --git a/config/locales/crowdin/lt.yml b/config/locales/crowdin/lt.yml index 483876a1246e..e9d5a2a7578e 100644 --- a/config/locales/crowdin/lt.yml +++ b/config/locales/crowdin/lt.yml @@ -31,6 +31,9 @@ lt: custom_styles: color_theme: "Spalvų tema" color_theme_custom: "(Pasirinktinis)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Pagrindinis mygtukas" accent-color: "Akcentas" @@ -79,6 +82,7 @@ lt: contact: "Susisiekite su mumis dėl demonstracijos" enterprise_info_html: "yra Enterprise priedas." upgrade_info: "Prašome atsinaujinti į mokamą planą, kad aktyvuotumėte ir pradėtumėte ji naudoti savo komandoje." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Visi atskiri naudotojo veiksmai (t.y. darbų paketo atnaujinimas du kartus) yra sugrupuojami į vieną veiksmą, jei laiko tarpas tarp jų yra mažesnis už šį nustatymą. Programoje jie bus rodomi kaip vienas veiksmas. Tiek pat bus pavėlinti ir pranešimai. Dėl to sumažės siunčiamų el.laiškų skaičius ir taipogi įtakos %{webhook_link} delsimą." @@ -199,6 +203,11 @@ lt: title: "Pasirinktiniai veiksmai" description: "Savo veiksmai yra vieno paspaudimo kombinacijos, leidžiančios nustatyti veiksmus, kuriuos galite padaryti preinamais kai kuriuose darbo paketuose pagal jų būseną, rolę, tipą ar projektą." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Norėdami pridėti naujus pritaikytus laukelius prie projekto, pirmiausia reikia juos sukurti. Tik tada yra galimybė juos pridėti prie šio projekto. is_enabled_globally: "Yra įgalintas globaliai" @@ -642,6 +651,8 @@ lt: uid: "Kliento ID" secret: "Kliento paslaptis" owner: "Savininkas" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Peradresavimo URI" client_credentials_user_id: "Kliento įgaliojimų naudotojo ID" scopes: "Apimtys" @@ -813,6 +824,7 @@ lt: blank: "negali būti tuščia." blank_nested: "reikalauja, kad savybė '%{property}' būtų nustatyta." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Darbų paketas negali būti susietas su viena iš savo vidinių užduočių." circular_dependency: "Šis ryšys sukurtų ciklinę priklausomybę." confirmation: "nesutampa su %{attribute}." @@ -886,6 +898,10 @@ lt: minimum: "turite įtraukti bent vieną nario, konteksto ar id filtrą su „=“ operatoriumi." custom_field: at_least_one_custom_option: "Turi būti prieinama bent viena savybė." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "leidžiama (%{name}) tik viena reikšmė." empty: "(%{name}) reikšmė negali būti tuščia." @@ -916,6 +932,8 @@ lt: name: blank: "yra privalomas. Prašome pasirinkti pavadinimą." not_unique: "jau naudojamas. Prašome pasirinkti kitą pavadinimą." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Turi būti nurodytas bent vienas kanalas pranešimų siuntimui." attributes: @@ -1113,7 +1131,7 @@ lt: confirmation: "Slaptažodžio patvirtinimas nesutampa su įvestu slaptažodžiu." format: "%{message}" password: - weak: "Turi turėti simbolius iš šitų klasių (mažiausiai %{min_count} iš %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "mažosios raidės (pvz., „a“)" uppercase: "didžiosios raidės (pvz., „A“)" numeric: "skaitinė reikšmė (pvz., „1“)" @@ -1697,7 +1715,7 @@ lt: error_menu_item_not_saved: Meniu punktas negali būti išsaugotas error_wiki_root_menu_item_conflict: > Negalima pervadinti „%{old_name}“ į „%{new_name}“ dėl konflikto su esamu meniu punktu „%{existing_caption}“ (%{existing_identifier}). - error_external_authentication_failed: "Įvyko klaida vykstant išorinei autentifikacijai. Bandykite dar kartą." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atributai, kurių negalima paryškinti: %{attributes}" events: changeset: "Pakeitimų paketas redaguotas" @@ -1869,7 +1887,7 @@ lt: progress_mode_changed_to_status_based: Nustatytas eigos skaičiavimo režimas priklausantis-nuo-būsenos status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Nuo dabar, su failų nuorodomis (failais, saugomais išorinse saugyklose) susiję veiksmai bus rodomi Veiksmų kortelėje. Žemiau pateikiamas jau egzistavusių nuorodų veiksmų sąrašas: @@ -1978,7 +1996,8 @@ lt: label_additional_workflow_transitions_for_assignee: "Papildomi darbų eigos variantai leistini, kai darbas paskirtas vartotojui" label_additional_workflow_transitions_for_author: "Papildomi darbų eigos variantai leistini, kai vartotojas yra autorius" label_administration: "Administravimas" - label_advanced_settings: "Išplėstiniai nustatymai" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Amžius" label_ago: "dienų prieš" label_all: "visi" @@ -2011,6 +2030,7 @@ lt: label_attribute_expand_text: "Pilnas tekstas, skirtas „%{attribute}“" label_authentication: "Autentifikacija" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Galimi globalūs vaidmenys" label_available_project_attributes: "Galimi projekto atributai" label_available_project_forums: "Galimi forumai" @@ -2083,6 +2103,7 @@ lt: label_copy_project: "Kopijuoti projektą" label_core_version: "Branduolio versija" label_core_build: "Branduolio versija" + label_created_by: "Created by %{user}" label_current_status: "Dabartinė būsena" label_current_version: "Esama versija" label_custom_field_add_no_type: "Pridėti šį laukelį prie darbų paketo tipo" @@ -2090,6 +2111,7 @@ lt: label_custom_field_plural: "Pritaikyti laukai" label_custom_field_default_type: "Tuščias tipas" label_custom_style: "Išvaizda" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Skydelis" label_database_version: "PostgreSQL versija" label_date: "Data" @@ -2210,9 +2232,9 @@ lt: label_share: "Dalintis" label_share_project_list: "Share project list" label_share_work_package: "Dalintis darbo paketu" - label_show_hide: "Rodyti/slėpti" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Rodyti visus registruotus vartotojus" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Žurnalas" label_journal_diff: "Aprašymų palyginimas" label_language: "Kalba" @@ -2362,6 +2384,7 @@ lt: label_product_version: "Produkto versija" label_profile: "Profilis" label_percent_complete: "% baigta" + label_progress_tracking: "Progress tracking" label_project: "Projektas" label_project_activity: "Projekto aktyvumas" label_project_attribute_plural: "Projekto atributai" @@ -2547,7 +2570,6 @@ lt: label_work_package_new: "Naujas darbų paketas" label_work_package_edit: "Redaguoti darbų paketą %{name}" label_work_package_plural: "Darbų paketai" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Darbų paketo būsena" label_work_package_status_new: "Nauja būsena" label_work_package_status_plural: "Darbų paketo būsenos" @@ -3186,11 +3208,13 @@ lt: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Aktyvavimo laiško galiojimas baigiasi po" - setting_work_package_done_ratio: "Eigos skaičiavimas" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Pagal-darbą" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Pagal-būseną" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Darbų paketo ypatybės" @@ -3211,6 +3235,13 @@ lt: setting_password_min_length: "Minimalus ilgis" setting_password_min_adhered_rules: "Minimalus reikalingų klasių skaičius" setting_per_page_options: "Įrašų puslapyje nustatymai" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Tik tekstas laiške (be HTML)" setting_protocol: "Protokolas" setting_project_gantt_query: "Projektų portfelio Gantt diagrama" @@ -3577,7 +3608,6 @@ lt: label_note: "Pastaba:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% baigta nustatoma pagal paketo būseną." migration_warning_text: "Darbu paremtame eigos skaičiavimo režime % baigta negali būti nustatomas rankomis ir yra susietas su darbu. Esamos reikšmės buvo išlaikytos, bet negali būti keičiamos. Prašome iš pradžių įveskite darbą." derivation_hints: @@ -3592,9 +3622,9 @@ lt: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komentaras" @@ -3786,12 +3816,16 @@ lt: close_warning: "Ignoruoti šį perspėjimą." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth aplikacija" plural: "OAuth aplikacijos" named: "OAuth aplikacija „%{name}“" new: "Nauja OAuth aplikacija" + non_confidential: Non confidential default_scopes: "(Numatytos apimtys)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Jūsų aplikacijos pavadinimas. Bus rodomas kitiems naudotojams autorizacijos metu." redirect_uri_html: > Leidžiami URL, kur gali būti peradresuojami autorizuoti naudotojai. Po vieną įrašą eilutėje.
    Jei jūs registruojate darbastalio aplikaciją, naudokite šį URL. @@ -3800,6 +3834,10 @@ lt: client_credential_user_id: "Neprivalomas naudotojo ID, naudojamas kai klientai naudoja šią aplikaciją. Palikite tuščią, jei norite leisti tik viešą prieigą" register_intro: "Jei kuriate OAuth API kliento aplikaciją skirtą OpenProject, jūs galite registruoti ją visiems naudotojams naudojant šią formą." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Kliento ID" client_secret_notice: > Tai vienintelis kartas, kai mes galime atspausdinti kliento paslaptį, prašome ją užsirašyti ir laikyti saugiai. Ji turi būti saugoma kaip slaptažodis ir jos vėliau nebebus galima ištraukti iš OpenProject. diff --git a/config/locales/crowdin/lv.yml b/config/locales/crowdin/lv.yml index 9453fd3d3e3a..3198b093c469 100644 --- a/config/locales/crowdin/lv.yml +++ b/config/locales/crowdin/lv.yml @@ -31,6 +31,9 @@ lv: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ lv: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ lv: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -638,6 +647,8 @@ lv: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -809,6 +820,7 @@ lv: blank: "nevar būt tukšs." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Darbu kompleksu nevar saistīt vienu no tā apakšuzdevumiem." circular_dependency: "Šī attiecība radītu riņķveida saistību." confirmation: "neatbilst %{attribute}." @@ -882,6 +894,10 @@ lv: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -912,6 +928,8 @@ lv: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1109,7 +1127,7 @@ lv: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Jāsatur rakstzīmes no šādām klasēm (vismaz %{min_count} no %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "mazaie burti (piemēram 'a')" uppercase: "lielaie burti (piemēram, ' A')" numeric: "cipari (piemēram, \"1\")" @@ -1665,7 +1683,7 @@ lv: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1837,7 +1855,7 @@ lv: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1946,7 +1964,8 @@ lv: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Papildu iestatījumi" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1979,6 +1998,7 @@ lv: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2051,6 +2071,7 @@ lv: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2058,6 +2079,7 @@ lv: label_custom_field_plural: "Pielāgotie lauki" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Informācijas panelis" label_database_version: "PostgreSQL version" label_date: "Datums" @@ -2178,9 +2200,9 @@ lv: label_share: "Koplietot" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Rādīt/paslēpt" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Valoda" @@ -2330,6 +2352,7 @@ lv: label_product_version: "Product version" label_profile: "Profils" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Projekts" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2515,7 +2538,6 @@ lv: label_work_package_new: "Jauns pieteikums" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Pieteikumi" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Pieteikumu statusi" @@ -3156,11 +3178,13 @@ lv: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3181,6 +3205,13 @@ lv: setting_password_min_length: "Minimālais garums" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3547,7 +3578,6 @@ lv: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3562,9 +3592,9 @@ lv: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komentârs" @@ -3756,12 +3786,16 @@ lv: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3770,6 +3804,10 @@ lv: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/mn.yml b/config/locales/crowdin/mn.yml index 0a1910469053..ffda64cb600a 100644 --- a/config/locales/crowdin/mn.yml +++ b/config/locales/crowdin/mn.yml @@ -31,6 +31,9 @@ mn: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ mn: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ mn: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ mn: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ mn: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ mn: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ mn: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ mn: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1630,7 +1648,7 @@ mn: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ mn: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ mn: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1944,6 +1963,7 @@ mn: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ mn: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ mn: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: " Хянах самбар" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2143,9 +2165,9 @@ mn: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2295,6 +2317,7 @@ mn: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ mn: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ mn: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ mn: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ mn: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ mn: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3718,12 +3748,16 @@ mn: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ mn: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/ms.yml b/config/locales/crowdin/ms.yml index 87460827c899..a173ca0cc42c 100644 --- a/config/locales/crowdin/ms.yml +++ b/config/locales/crowdin/ms.yml @@ -31,6 +31,9 @@ ms: custom_styles: color_theme: "Tema warna" color_theme_custom: "(Tersuai)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Butang utama" accent-color: "Aksen" @@ -79,6 +82,7 @@ ms: contact: "Hubungi kami untuk demo" enterprise_info_html: "ialah tambahan Enterprise ." upgrade_info: "Sila naik taraf ke pelan berbayar untuk mengaktifkan dan mula menggunakannya dalam pasukan anda." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Tindakan individu pengguna (cth. mengemas kini pakej kerja dua kali) dikumpulkan ke dalam satu tindakan tunggal jika perbezaan umur mereka kurang daripada tempoh masa yang ditetapkan. Mereka akan dipaparkan sebagai tindakan tunggal dalam aplikasi. Ini juga akan menangguhkan pemberitahuan dengan jumlah masa yang sama, mengurangkan bilangan e-mel yang dihantar serta akan memberi kesan kepada penagguhan %{webhook_link}." @@ -201,6 +205,11 @@ ms: title: "Tindakan tersuai" description: "Tindakan tersuai adalah pintasan satu klik ke satu set tindakan yang telah ditetapkan yang anda boleh sediakan untuk pakej kerja tertentu berdasarkan status, peranan, jenis atau projek." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Untuk menambah ruang tersuai ke projek, anda perlu menciptanya terlebih dahulu sebelum anda boleh menambahnya ke projek ini. is_enabled_globally: "Adalah diaktifkan secara global" @@ -622,6 +631,8 @@ ms: uid: "ID Pelanggan" secret: "Rahsia pelanggan" owner: "Pemilik" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Ubah hala URI" client_credentials_user_id: "ID Pengguna Kelayakan Pelanggan" scopes: "Skop\n" @@ -793,6 +804,7 @@ ms: blank: "tidak boleh dibiarkan kosong." blank_nested: "perlu ada ciri-ciri '%{property}' yang ditetapkan." cannot_delete_mapping: "diperlukan. Tidak boleh dipadam." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Pakej kerja tidak boleh dipautkan ke salah satu subtugasnya." circular_dependency: "Hubungan ini akan mencipta kebergantungan bulat." confirmation: "tidak sepadan dengan %{attribute}." @@ -866,6 +878,10 @@ ms: minimum: "perlu sertakan sekurang-kurangnya satu saringan utama, konteks, atau id dengan operator '='." custom_field: at_least_one_custom_option: "Sekurang-kurangnya satu pilihan perlu tersedia." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) hanya satu nilai yang dibenarkan." empty: "(%{name}) nilai tidak boleh kosong." @@ -896,6 +912,8 @@ ms: name: blank: "adalah wajib. Sila pilih nama." not_unique: "sudah digunakan. Sila pilih nama lain." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Sekurang-kurangnya satu saluran untuk menghantar pemberitahuan perlu ditentukan." attributes: @@ -1093,7 +1111,7 @@ ms: confirmation: "Pengesahan kata laluan tidak sepadan dengan kata laluan." format: "%{message}" password: - weak: "Perlu mengandungi karakter-karakter kelas berikut (sekurang-kurangnya %{min_count} dari %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "huruf kecil (cth. 'a')" uppercase: "huruf besar (cth. 'A')" numeric: "angka (cth. '1')" @@ -1593,7 +1611,7 @@ ms: error_menu_item_not_saved: Item menu tidak dapat disimpan error_wiki_root_menu_item_conflict: > Tidak dapat menamakan semula "%{old_name}" ke "%{new_name}" disebabkan konflik dalam item menu yang dihasilkan dengan item menu yang sedia ada "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Ralat berlaku semasa pengesahan luaran. Sila cuba sekali lagi." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atribut tidak boleh disorotkan: %{attributes}" events: changeset: "Set perubahan telah diedit" @@ -1765,7 +1783,7 @@ ms: progress_mode_changed_to_status_based: Mod pengiraan perkembangan ditetapkan kepada berasaskan status status_excluded_from_totals_set_to_false_message: kini termasuk dalam jumlah hierarki status_excluded_from_totals_set_to_true_message: kini dikeluarkan daripada jumlah hierarki - status_percent_complete_changed: "% selesai ditukar daripada %{old_value}% kepada %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Mulai sekarang, aktiviti berkaitan dengan pautan fail (fail-fail yang disimpan di storan luaran) akan muncul dalam tab Aktiviti. Yang berikut mewakili aktiviti berkenaan pautan yang sudah sedia ada: @@ -1874,7 +1892,8 @@ ms: label_additional_workflow_transitions_for_assignee: "Peralihan tambahan dibenarkan jika pengguna ialah penerima tugasan" label_additional_workflow_transitions_for_author: "Peralihan tambahan dibenarkan apabila pengguna ialah pengarang" label_administration: "Pentadbiran" - label_advanced_settings: "Tetapan lanjutan" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Umur" label_ago: "hari yang lalu" label_all: "semua" @@ -1907,6 +1926,7 @@ ms: label_attribute_expand_text: "Teks yang lengkap untuk '%{attribute}'" label_authentication: "Pengesahan" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Peranan global yang tersedia" label_available_project_attributes: "Atribut projek yang tersedia" label_available_project_forums: "Forum yang tersedia" @@ -1979,6 +1999,7 @@ ms: label_copy_project: "Salin projek" label_core_version: "Versi teras" label_core_build: "Binaan teras" + label_created_by: "Created by %{user}" label_current_status: "Status semasa" label_current_version: "Versi semasa" label_custom_field_add_no_type: "Tambah ruangan ini ke jenis pakej kerja" @@ -1986,6 +2007,7 @@ ms: label_custom_field_plural: "Ruang tersuai" label_custom_field_default_type: "Jenis kosong" label_custom_style: "Reka bentuk" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Papan Pemuka" label_database_version: "Versi PostgreSQL" label_date: "Tarikh" @@ -2106,9 +2128,9 @@ ms: label_share: "Kongsi" label_share_project_list: "Share project list" label_share_work_package: "Kongsi pakej kerja" - label_show_hide: "Papar/sembunyi" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Paparkan semua pengguna berdaftar" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Jurnal" label_journal_diff: "Perbandingan Deskripsi" label_language: "Bahasa" @@ -2258,6 +2280,7 @@ ms: label_product_version: "Versi produk" label_profile: "Profil" label_percent_complete: "% Selesai" + label_progress_tracking: "Progress tracking" label_project: "Projek" label_project_activity: "Aktiviti projek" label_project_attribute_plural: "Atribut projek" @@ -2443,7 +2466,6 @@ ms: label_work_package_new: "Pakej kerja baharu" label_work_package_edit: "Edit pakej kerja %{name}" label_work_package_plural: "Pakej kerja" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Status pakej kerja" label_work_package_status_new: "Status baharu" label_work_package_status_plural: "Status pakej kerja" @@ -3078,11 +3100,13 @@ ms: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Pengaktifan e-mel tamat tempoh selepas" - setting_work_package_done_ratio: "Pengiraan perkembangan" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Berasaskan kerja" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Berasaskan status" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Ciri-ciri pakej kerja" @@ -3103,6 +3127,13 @@ ms: setting_password_min_length: "Panjang minimum" setting_password_min_adhered_rules: "Bilangan minimum kelas yang diperlukan" setting_per_page_options: "Pilihan objek setiap halaman" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Teks mel biasa (tiada HTML)" setting_protocol: "Protokol" setting_project_gantt_query: "Paparan Gantt portfolio projek" @@ -3467,7 +3498,6 @@ ms: label_note: "Perhatian:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Selesai ditetapkan oleh status pakej kerja." migration_warning_text: "Dalam mod pengiraan perkembangan berdasarkan kerja, % Selesai tidak boleh ditetapkan secara manual dan ianya terikat kepada Kerja. Nilai sedia ada tersebut telah disimpan tetapi tidak boleh diedit. Sila input Kerja dahulu." derivation_hints: @@ -3482,9 +3512,9 @@ ms: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komen" @@ -3676,12 +3706,16 @@ ms: close_warning: "Abaikan amaran ini." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Aplikasi OAuth" plural: "Aplikasi OAuth" named: "'%{name}' aplikasi OAuth" new: "Aplikasi OAuth baharu" + non_confidential: Non confidential default_scopes: "(Skop default)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Nama aplikasi anda. Ini akan dipaparkan ke pengguna lain selepas kebenaran." redirect_uri_html: > URL yang dibenarkan membenarkan pengguna boleh diubah hala. Satu entri setiap baris.
    Jika anda mendaftar aplikasi desktop, gunakan URL berikut. @@ -3690,6 +3724,10 @@ ms: client_credential_user_id: "ID pengguna pilihan untuk menyamar apabila pelanggan menggunakan aplikasi ini. Tinggalkan kosong untuk benarkan akses awam sahaja." register_intro: "Jika anda sedang membangunkan aplikasi pelanggan API OAuth untuk OpenProject, anda boleh mendaftarkannya menggunakan borang ini untuk semua pengguna menggunakannya." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID pelanggan" client_secret_notice: > Ini adalah satu-satunya masa di mana kita boleh mencetak rahsia pelanggan, sila catat dan simpankan ia dengan selamat. Ia perlu diperlakukan sebagai sebuah kata laluan dan tidak boleh dipulihkan oleh OpenProject pada masa kemudian. diff --git a/config/locales/crowdin/ne.yml b/config/locales/crowdin/ne.yml index 470ea2f63798..004e1174b2b5 100644 --- a/config/locales/crowdin/ne.yml +++ b/config/locales/crowdin/ne.yml @@ -31,6 +31,9 @@ ne: custom_styles: color_theme: "रंग विषयवस्तु" color_theme_custom: "(अनुकूलन)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ ne: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ ne: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ ne: uid: "Client ID" secret: "Client secret" owner: "मालिक" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ ne: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ ne: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ ne: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ ne: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1630,7 +1648,7 @@ ne: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ ne: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ ne: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1944,6 +1963,7 @@ ne: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "उपलब्ध फोरमहरु" @@ -2016,6 +2036,7 @@ ne: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ ne: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2143,9 +2165,9 @@ ne: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2295,6 +2317,7 @@ ne: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ ne: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ ne: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ ne: setting_password_min_length: "न्यूनतम लम्बाई" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ ne: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ ne: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3718,12 +3748,16 @@ ne: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ ne: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/nl.yml b/config/locales/crowdin/nl.yml index 2395316f3f79..92207c12813b 100644 --- a/config/locales/crowdin/nl.yml +++ b/config/locales/crowdin/nl.yml @@ -31,6 +31,9 @@ nl: custom_styles: color_theme: "Kleurenschema" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ nl: contact: "Neem contact met ons op voor een demo" enterprise_info_html: "is een Enterprise add-on." upgrade_info: "Gelieve te upgraden naar een betaald abonnement om het te activeren en te beginnen met het gebruik ervan in uw team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individuele acties van een gebruiker (bijv. het bijwerken van een werkpakket twee keer) wordt samengevoegd tot een enkele actie als hun leeftijdverschil minder is dan de aangegeven timespat. Ze worden weergegeven als een enkele actie binnen de applicatie. Dit zal ook meldingen vertragen met dezelfde tijd die het aantal verstuurde e-mails vermindert en zal ook %{webhook_link} vertraging beïnvloeden." @@ -199,6 +203,11 @@ nl: title: "Aangepaste acties" description: "Aangepaste acties zijn met één klik snelkoppelingen naar een aantal vooraf gedefinieerde acties die u op bepaalde werkpakketten op basis van status beschikbaar kunt maken rol, type of project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Om de nieuwe aangepaste velden toevoegen aan een project moet u deze eerst maken voordat u ze aan dit project toevoegen kunt. is_enabled_globally: "Is ingeschakeld Op het hoofdniveau" @@ -628,6 +637,8 @@ nl: uid: "Client-ID" secret: "Client secret" owner: "Eigenaar" + builtin: "Builtin" + enabled: "Active" redirect_uri: "URI omleiden" client_credentials_user_id: "Client referenties gebruiker ID" scopes: "Reikwijdte" @@ -799,6 +810,7 @@ nl: blank: "mag niet leeg zijn." blank_nested: "moet de eigenschap '%{property}' ingesteld hebben." cannot_delete_mapping: "is vereist. Kan niet worden verwijderd." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Een werkpakket kan niet worden gekoppeld aan een van de bijbehorende subtaken." circular_dependency: "Deze relatie zou een circulaire afhankelijkheid creëren." confirmation: "komt niet overeen met %{attribute}." @@ -872,6 +884,10 @@ nl: minimum: "moet ten minste één filter bevatten voor opdrachtgever, context of id met de '=' operator." custom_field: at_least_one_custom_option: "Ten minste één optie moet beschikbaar zijn." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) slechts één waarde is toegestaan." empty: "(%{name}) waarde kan niet leeg zijn." @@ -902,6 +918,8 @@ nl: name: blank: "Is verplicht. Selecteer een naam." not_unique: "is al in gebruik. Selecteer een andere naam." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Er moet ten minste één kanaal voor het verzenden van meldingen worden opgegeven." attributes: @@ -1099,7 +1117,7 @@ nl: confirmation: "Wachtwoordbevestiging komt niet overeen met wachtwoord." format: "%{message}" password: - weak: "Moet karakters bevatten van de volgende klassen (ten minste %{min_count} van %{all_count}):%{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "kleine letters (bijvoorbeeld 'a')" uppercase: "hoofdletters (bijvoorbeeld ' A')" numeric: "numerieke (bijvoorbeeld ' 1')" @@ -1627,7 +1645,7 @@ nl: error_menu_item_not_saved: Menu-item kan niet worden opgeslagen error_wiki_root_menu_item_conflict: > Kan "%{old_name}" niet naar "%{new_name}" hernoemen vanwege een conflict in het resulterende menu-item met het bestaande menu-item. "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Er is een fout opgetreden tijdens de externe verificatie. Probeer het opnieuw." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) niet markeerbaar: %{attributes}" events: changeset: "Wijzigingsset bewerkt" @@ -1799,7 +1817,7 @@ nl: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1908,7 +1926,8 @@ nl: label_additional_workflow_transitions_for_assignee: "Extra overgangen zijn toegestaan als de gebruiker de eigenaar is" label_additional_workflow_transitions_for_author: "Extra overgangen zijn toegestaan als de gebruiker de auteur is" label_administration: "Administratie" - label_advanced_settings: "Geavanceerde instellingen" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Leeftijd" label_ago: "dagen geleden" label_all: "alle" @@ -1941,6 +1960,7 @@ nl: label_attribute_expand_text: "De volledige tekst voor '%{attribute}'" label_authentication: "Verificatie" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Beschikbare projectattributen" label_available_project_forums: "Beschikbare forums" @@ -2013,6 +2033,7 @@ nl: label_copy_project: "Project kopiëren" label_core_version: "Core-versie" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Huidige status" label_current_version: "Huidige versie" label_custom_field_add_no_type: "Voegt dit veld toe aan een werkpakket type" @@ -2020,6 +2041,7 @@ nl: label_custom_field_plural: "Aangepaste velden" label_custom_field_default_type: "Leeg type" label_custom_style: "Ontwerp" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL versie" label_date: "Datum" @@ -2140,9 +2162,9 @@ nl: label_share: "Deel" label_share_project_list: "Projectlijst delen" label_share_work_package: "Werkpakket delen" - label_show_hide: "Weergeven/verbergen" - label_show_hide_n_items: "Toon/verberg %{count} items" label_show_all_registered_users: "Toon alle geregistreerde gebruikers" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Logboek" label_journal_diff: "Beschrijving vergelijking" label_language: "Taal" @@ -2292,6 +2314,7 @@ nl: label_product_version: "Versie van het product" label_profile: "Profiel" label_percent_complete: "% Voltooid" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Projectactiviteit" label_project_attribute_plural: "Project attributes" @@ -2477,7 +2500,6 @@ nl: label_work_package_new: "Nieuw werkpakket" label_work_package_edit: "Bewerk werkpakket %{name}" label_work_package_plural: "Werkpakketten" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Status werkpakket" label_work_package_status_new: "Nieuwe status" label_work_package_status_plural: "Werkpakket statussen" @@ -3115,11 +3137,13 @@ nl: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activatie e-mail verloopt na" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Werkpakketeigenschappen" @@ -3140,6 +3164,13 @@ nl: setting_password_min_length: "Minimale lengte" setting_password_min_adhered_rules: "Minimum aantal vereiste klassen" setting_per_page_options: "Objecten per Pagina-opties" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Tekst zonder opmaak (geen HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt weergave" @@ -3504,7 +3535,6 @@ nl: label_note: "Opmerking:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Voltooid wordt ingesteld door de status van het werkpakket." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3519,9 +3549,9 @@ nl: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Commentaar" @@ -3713,12 +3743,16 @@ nl: close_warning: "Negeer deze waarschuwing." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth-authenticatie" plural: "OAuth toepassingen" named: "OAuth applicatie '%{name}'" new: "Nieuwe OAuth applicatie" + non_confidential: Non confidential default_scopes: "(Standaard scopen)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "De naam van uw applicatie. Dit wordt getoond aan andere gebruikers bij autorisatie." redirect_uri_html: > De toegestane URLs waar toegestane gebruikers kunnen worden doorgestuurd naar. Eén item per regel.
    Als u een desktop-applicatie registreert, gebruik dan de volgende URL. @@ -3727,6 +3761,10 @@ nl: client_credential_user_id: "Optionele gebruikersID om te impersoneren wanneer klanten deze applicatie gebruiken. Laat leeg om alleen openbare toegang toe te staan" register_intro: "Als u een OAuth API client applicatie voor OpenProject ontwikkelt, kunt u het registreren met dit formulier voor alle gebruikers om te gebruiken." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client-ID" client_secret_notice: > Dit is de enige keer dat we het cliënt geheim kunnen drukken, let het op en houd het veilig. Het moet als wachtwoord worden behandeld en kan niet later door OpenProject worden opgehaald. diff --git a/config/locales/crowdin/no.yml b/config/locales/crowdin/no.yml index a8c4bf072abd..358c1571fd5d 100644 --- a/config/locales/crowdin/no.yml +++ b/config/locales/crowdin/no.yml @@ -31,6 +31,9 @@ custom_styles: color_theme: "Fargetema" color_theme_custom: "Egendefinert" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primærknapp" accent-color: "Uthevet" @@ -79,6 +82,7 @@ contact: "Kontakt oss for en demo" enterprise_info_html: "er en Enterprise -utvidelse." upgrade_info: "Vennligst oppgrader til et betalt abonnement for å kunne aktivere og begynne å bruke det i ditt team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individuelle handlinger av en bruker (f.eks. oppdatering av en arbeidspakke to ganger) aggregeres til en enkelt handling hvis aldersforskjellen er mindre enn det spesifiserte tidsrommet. De vil bli vist som en enkelt handling i programmet. Dette vil også forsinke varslinger med samme tidsperiode som reduserer antall e-poster som sendes, og vil også påvirke %{webhook_link} forsinkelse." @@ -202,6 +206,11 @@ title: "Tilpassede handlinger" description: "Egendefinerte handlinger er snarveier med ett klikk til en rekke forhåndsdefinerte handlinger som du kan gjøre tilgjengelige på visse arbeidspakker basert på status, rolle, type eller prosjekt." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > For å legge til nye egendefinerte felt i et prosjekt må du først opprette dem før du kan legge dem til i dette prosjektet. is_enabled_globally: "Er aktivert globalt" @@ -630,6 +639,8 @@ uid: "Klient ID" secret: "Klient hemmlighet" owner: "Eier" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Omdiriger URI" client_credentials_user_id: "Klientens bruker-ID" scopes: "Omfang" @@ -801,6 +812,7 @@ blank: "kan ikke være blank." blank_nested: "må ha egenskapen '%{property}' aktivert." cannot_delete_mapping: "er påkrevd. Kan ikke slettes." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "En arbeidspakke kan ikke knyttes til en av sine deloppgaver." circular_dependency: "En slik relasjon ville lage en sirkulær avhengighet." confirmation: "samsvarer ikke med %{attribute}." @@ -874,6 +886,10 @@ minimum: "må inkludere minst ett filter for prinsipp, kontekst eller id med '='-operatøren." custom_field: at_least_one_custom_option: "Minst ett alternativ må være tilgjengelig." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) kun tillatt med én verdi." empty: "(%{name}) verdi kan ikke være tom." @@ -904,6 +920,8 @@ name: blank: "er obligatorisk. Velg et navn." not_unique: "er allerede i bruk. Velg et annet navn." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Minst en kanal for sending av varsler må angis." attributes: @@ -1101,7 +1119,7 @@ confirmation: "Passordbekreftelsen samsvarer ikke med passordet." format: "%{message}" password: - weak: "Må inneholde tegn fra de følgende klassene (minst %{min_count} av %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "små bokstaver (f.eks. \"a\")" uppercase: "store bokstaver (f.eks. \"A\")" numeric: "numerisk (f.eks. \"1\")" @@ -1629,7 +1647,7 @@ error_menu_item_not_saved: Menyelementet kunne ikke lagres error_wiki_root_menu_item_conflict: > Kan ikke endre navn fra %{old_name} til %{new_name} pga en konflikt mellom det resulterende menyelementet og eksisterende menyelementet "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Det oppstod en feil under ekstern autentisering. Vennligst prøv igjen." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Egenskap(er) kan ikke utheves: %{attributes}" events: changeset: "Changeset ble redigert" @@ -1801,7 +1819,7 @@ progress_mode_changed_to_status_based: Framdriftsmodus satt til statusbasert status_excluded_from_totals_set_to_false_message: nå inkludert i hierarkiske summer status_excluded_from_totals_set_to_true_message: nå ekskludert fra hierarkiske summer - status_percent_complete_changed: "% ferdig endret fra %{old_value}% til %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Fra nå av vil aktivitet knyttet til linker (filer lagret i eksterne lagringer) vises her i aktivitetsfanen. Følgende representerer aktivitet med lenker som allerede eksisterer: @@ -1910,7 +1928,8 @@ label_additional_workflow_transitions_for_assignee: "Ytterligere overganger tillatt når brukeren er deltaker" label_additional_workflow_transitions_for_author: "Flere overganger er tillatt når brukeren er forfatter" label_administration: "Administrasjon" - label_advanced_settings: "Avanserte innstillinger" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Alder" label_ago: "dager siden" label_all: "alle" @@ -1943,6 +1962,7 @@ label_attribute_expand_text: "Den fullstendige teksten for '%{attribute}'" label_authentication: "Autentisering" label_authentication_settings: "Autentiseringsinnstillinger" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Tilgjengelige globale roller" label_available_project_attributes: "Tilgjengelige prosjektegenskaper" label_available_project_forums: "Tilgjengelige forum" @@ -2015,6 +2035,7 @@ label_copy_project: "Kopier prosjekt" label_core_version: "Kildeversjon" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Gjeldende status" label_current_version: "Gjeldende versjon" label_custom_field_add_no_type: "Legg dette feltet til en arbeidspakketype" @@ -2022,6 +2043,7 @@ label_custom_field_plural: "Egendefinerte felter" label_custom_field_default_type: "Tom type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Kontrollpanel" label_database_version: "PostgreSQL versjon" label_date: "Dato" @@ -2142,9 +2164,9 @@ label_share: "Del" label_share_project_list: "Del prosjektliste" label_share_work_package: "Del arbeidspakke" - label_show_hide: "Vis/Skjul" - label_show_hide_n_items: "Vis/skjul %{count} elementer" label_show_all_registered_users: "Vis alle registrerte brukere" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Sammenligning av beskrivelse" label_language: "Språk" @@ -2294,6 +2316,7 @@ label_product_version: "Produktversjon" label_profile: "Profil" label_percent_complete: "% Ferdig" + label_progress_tracking: "Progress tracking" label_project: "Prosjekt" label_project_activity: "Aktivitet i prosjektet" label_project_attribute_plural: "Prosjekt egenskaper" @@ -2479,7 +2502,6 @@ label_work_package_new: "Ny arbeidspakke" label_work_package_edit: "Rediger arbeidspakke %{name}" label_work_package_plural: "Arbeidspakker" - label_work_packages_settings: "Innstillinger for arbeidspakker" label_work_package_status: "Status for arbeidspakke" label_work_package_status_new: "Ny status" label_work_package_status_plural: "Statuser for arbeidspakke" @@ -3118,11 +3140,13 @@ setting_hours_per_day_explanation: >- Dette vil definere hva som anses som en "dag" når varigheten vises i dager og timer (for eksempel hvis dagen er 8 timer, vil 32 timer være 4 dager). setting_invitation_expiration_days: "Aktiverings e-post utløper etter" - setting_work_package_done_ratio: "Beregning av fremdrift" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Arbeidsbasert" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Statusbasert" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Egenskaper for arbeidspakke" @@ -3143,6 +3167,13 @@ setting_password_min_length: "Minimumslengde" setting_password_min_adhered_rules: "Minste antall obligatoriske tegnklasser" setting_per_page_options: "Alternativer for oppføringer pr. side" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Ren tekst (ingen HTML)" setting_protocol: "Protokoll" setting_project_gantt_query: "Prosjektportefølje Gantt-visning" @@ -3508,7 +3539,6 @@ label_note: "Merk:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Ferdig er angitt etter status på arbeidspakken." migration_warning_text: "I arbeidsbasert fremdriftsberegningsmodus kan % Ferdig ferdigstilt ikke settes manuelt og er knyttet til jobber. Den eksisterende verdien er lagret, men kan ikke endres. Skriv inn arbeidet først." derivation_hints: @@ -3523,9 +3553,9 @@ remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Kommentar" @@ -3717,12 +3747,16 @@ close_warning: "Ignorer denne advarselen." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth program" plural: "OAuth programmer" named: "OAuth program '%{name}'" new: "Ny OAuth-app" + non_confidential: Non confidential default_scopes: "(Standard omfang)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Navnet på søknaden. Dette vises til andre brukere etter autorisasjon." redirect_uri_html: > De tillatte nettadresser autoriserte brukere kan bli omdirigert til. Én oppføring per linje.
    Hvis du registrerer et skrivebordsprogram, bruk følgende URL. @@ -3731,6 +3765,10 @@ client_credential_user_id: "Valgfri bruker-ID å gi seg selv når klienter bruker dette programmet. La stå tomt for å kun tillate offentlig tilgang" register_intro: "Hvis du utvikler en OAuth API-klient-app for OpenProject, kan du registrere den ved hjelp av dette skjemaet for alle brukere." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Klient ID" client_secret_notice: > Dette er eneste gang vi kan skrive ut klientens hemmelighet, merk den ned og hold den sikker. Den skal behandles som et passord og kan ikke hentes av OpenProject på et senere tidspunkt. diff --git a/config/locales/crowdin/pl.yml b/config/locales/crowdin/pl.yml index 3e82a818d2f0..dbe2f7f2dd49 100644 --- a/config/locales/crowdin/pl.yml +++ b/config/locales/crowdin/pl.yml @@ -31,6 +31,9 @@ pl: custom_styles: color_theme: "Kolor motywu" color_theme_custom: "(Niestandardowe)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Przycisk główny" accent-color: "Akcent" @@ -79,6 +82,7 @@ pl: contact: "Skontaktuj się z nami, aby uzyskać demo" enterprise_info_html: "jest dodatkiem wersji Enterprise ." upgrade_info: "Aby ją aktywować i zacząć korzystać z niej w zespole, przejdź na plan płatny." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Indywidualne działania użytkownika (np. dwukrotna aktualizacja pakietu roboczego) są agregowane w jedno działanie, jeśli różnica czasowa między nimi jest mniejsza niż określony przedział czasowy. Będą one wyświetlane jako jedno działanie w aplikacji. Spowoduje to również opóźnienie powiadomień o tę samą ilość czasu, zmniejszając liczbę wysyłanych wiadomości e-mail i wpłynie też na opóźnienie %{webhook_link}." @@ -199,6 +203,11 @@ pl: title: "Działania niestandardowe" description: "Akcje niestandardowe są skrótami do zestawu predefiniowanych akcji, które można udostępnić w określonych pakietach roboczych na podstawie statusu, roli, typu lub projektu." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Aby dodać do projektu nowe pola niestandardowe, najpierw należy je utworzyć. is_enabled_globally: "Jest włączony globalnie" @@ -642,6 +651,8 @@ pl: uid: "Numer klienta" secret: "Hasło klienta" owner: "Właściciel" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Identyfikator URI przekerowania" client_credentials_user_id: "Identyfikator użytkownika poświadczeń klienta" scopes: "Zakresy" @@ -813,12 +824,13 @@ pl: blank: "nie może być puste." blank_nested: "musi mieć ustawioną właściwość '%{property}'." cannot_delete_mapping: "jest wymagane. Nie można usunąć." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Zestaw zadań nie może być powiązany z jego podzadaniami." circular_dependency: "Ta relacja może wytworzyć zależność cykliczną." confirmation: "nie pasuje do %{attribute}." could_not_be_copied: "Nie można było (w pełni) skopiować %{dependency}." does_not_exist: "nie istnieje." - error_enterprise_only: "%{action} jest dostępna tylko w OpenProject Enterprise Edition" + error_enterprise_only: "%{action} jest dostępna tylko w OpenProject Enterprise edition" error_unauthorized: "— nie można uzyskac dostępu." error_readonly: "— podjęto próbę zapisu, ale nie jest zapisywalny." error_conflict: "Information has been updated by at least one other user in the meantime." @@ -886,6 +898,10 @@ pl: minimum: "musi zawierać co najmniej jeden filtr nazwy głównej, kontekstu lub identyfikatora z operatorem „=”." custom_field: at_least_one_custom_option: "Przynajmniej jedna opcja musi być dostępna." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) – dozwolona jest tylko jedna wartość." empty: "(%{name}) – wartość nie może być pusta." @@ -916,6 +932,8 @@ pl: name: blank: "jest obowiązkowy. Wybierz nazwę." not_unique: "jest już w użyciu. Wybierz inną nazwę." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Należy określić co najmniej jeden kanał dla wysyłania powiadomień." attributes: @@ -1113,7 +1131,7 @@ pl: confirmation: "Powtórzone hasło różni się od wprowadzonego hasła!" format: "%{message}" password: - weak: "Musi zawierać znaki z następujących klas (co najmniej %{min_count} z %{all_count}): %{rules}." + weak: "Musi zawierać znaki z następujących klas (co najmniej %{min_count} z %{all_count}): %{rules}" lowercase: "małe litery (np. 'a')" uppercase: "wielkie litery (np. 'A')" numeric: "liczbowe (np. 1)" @@ -1697,7 +1715,7 @@ pl: error_menu_item_not_saved: Nie można zapisać elementu menu error_wiki_root_menu_item_conflict: > Nie można zmienić nazwy "%{old_name}" na "%{new_name}", ze względu na konflikt w istniejącym elemencie menu "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Podczas uwierzytelniania zewnętrznego wystąpił błąd. Spróbuj ponownie." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atrybuty, których nie można wyróżnić: %{attributes}" events: changeset: "Komentarze edytowane" @@ -1869,7 +1887,7 @@ pl: progress_mode_changed_to_status_based: Tryb obliczania postępu ustawiono na oparty na statusie status_excluded_from_totals_set_to_false_message: teraz uwzględniono w sumach hierarchii status_excluded_from_totals_set_to_true_message: teraz wyłączono z sum hierarchii - status_percent_complete_changed: "% ukończenia zmienił się z %{old_value}% na %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Od teraz aktywność związana z linkami do plików (plików przechowywanych w magazynach zewnętrznych) będzie wyświetlana na karcie Aktywność. Poniżej przedstawiono aktywność dotyczącą linków, które już istniały: @@ -1978,7 +1996,8 @@ pl: label_additional_workflow_transitions_for_assignee: "Dodatkowe przejścia dozwolone, gdy użytkownik jest cesjonariuszem" label_additional_workflow_transitions_for_author: "Dodatkowe przejścia dozwolone, gdy użytkownik jest autorem" label_administration: "Administracja" - label_advanced_settings: "Zaawansowane ustawienia" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Wiek" label_ago: "dni temu" label_all: "wszystkie" @@ -2011,6 +2030,7 @@ pl: label_attribute_expand_text: "Pełny tekst atrybutu „%{attribute}”" label_authentication: "Uwierzytelnianie" label_authentication_settings: "Ustawienia uwierzytelniania" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Dostępne role globalne" label_available_project_attributes: "Dostępne atrybuty projektu" label_available_project_forums: "Dostępne fora" @@ -2083,6 +2103,7 @@ pl: label_copy_project: "Kopiuj projekt" label_core_version: "Wersja bazowa" label_core_build: "Kompilacja bazowa" + label_created_by: "Created by %{user}" label_current_status: "Aktualny stan" label_current_version: "Aktualna wersja" label_custom_field_add_no_type: "Dodaj to pole do typu zadania" @@ -2090,6 +2111,7 @@ pl: label_custom_field_plural: "Pola niestandardowe" label_custom_field_default_type: "Typ pusty" label_custom_style: "Kompozycja" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Pulpit nawigacyjny" label_database_version: "Wersja PostgreSQL" label_date: "Data" @@ -2210,9 +2232,9 @@ pl: label_share: "Udostępnij" label_share_project_list: "Udostępnij listę projektów" label_share_work_package: "Udostępnij pakiet roboczy" - label_show_hide: "Pokaż/Ukryj" - label_show_hide_n_items: "Pokaż/ukryj elementy (%{count})" label_show_all_registered_users: "Pokaż wszystkich zarejestrowanych użytkowników" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Dziennik" label_journal_diff: "Opis porównania" label_language: "Język" @@ -2362,6 +2384,7 @@ pl: label_product_version: "Wersja produktu" label_profile: "Profil" label_percent_complete: "% ukończenia" + label_progress_tracking: "Progress tracking" label_project: "Projekt" label_project_activity: "Aktywność projektu" label_project_attribute_plural: "Cechy projektu" @@ -2547,7 +2570,6 @@ pl: label_work_package_new: "Nowy pakiet roboczy" label_work_package_edit: "Edytuj pakiet roboczy %{name}" label_work_package_plural: "Pakiety robocze" - label_work_packages_settings: "Ustawienia pakietu roboczego" label_work_package_status: "Status pakietu roboczego" label_work_package_status_new: "Nowy status" label_work_package_status_plural: "Statusy pakietów roboczych" @@ -3187,11 +3209,13 @@ pl: setting_hours_per_day_explanation: >- To definiuje, co jest uważane za „dzień” podczas wyświetlania czasu trwania w dniach i godzinach (na przykład, jeśli dzień ma 8 godzin, 32 godziny będą 4 dniami). setting_invitation_expiration_days: "Ważność aktywacyjnej waidomości e-mail wygasa po" - setting_work_package_done_ratio: "Obliczenie postępu" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Oparte na pracy" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Oparte na statusie" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - W trybie opartym na pracy % ukończenia jest obliczany na podstawie ilości wykonanej pracy w stosunku do pracy całkowitej. W trybie opartym na statusie każdy status ma powiązaną wartość % ukończenia. Zmiana statusu spowoduje zmianę % ukończenia. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > W trybie opartym na pracy % ukończenia można swobodnie ustawić na dowolną wartość. Jeśli opcjonalnie wprowadzisz wartość Praca, Pozostała praca zostanie wyprowadzona automatycznie. W trybie opartym na statusie każdy status ma powiązaną wartość % ukończenia. Zmiana statusu spowoduje zmianę wartości % ukończenia. setting_work_package_properties: "Właściwości pakietu roboczego" @@ -3212,6 +3236,13 @@ pl: setting_password_min_length: "Minimalna długość" setting_password_min_adhered_rules: "Minimalna liczba wymaganych klas" setting_per_page_options: "Obiektów na stronie" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Poczta czystym tekstem (bez HTML)" setting_protocol: "Protokół" setting_project_gantt_query: "Widok wykresu Gantta portfolio projektu" @@ -3579,7 +3610,6 @@ pl: label_note: "Uwaga:" modal: work_based_help_text: "Każde pole jest automatycznie obliczane na podstawie dwóch innych, jeśli to możliwe." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% ukończenia jest automatycznie wyprowadzany z wartości Praca i Pozostała praca." status_based_help_text: "% ukończenia jest ustawiany na podstawie statusu pakietu roboczego." migration_warning_text: "W trybie obliczania postępu na podstawie pracy wartości % ukończenia nie można ustawić ręcznie i jest ona powiązana z wartością Praca. Istniejąca wartość została zachowana, ale nie można jej edytować. Najpierw wprowadź wartość Praca." derivation_hints: @@ -3594,9 +3624,9 @@ pl: remaining_hours: cleared_because_work_is_empty: "Wyczyszczono, ponieważ Praca jest pusta." cleared_because_percent_complete_is_empty: "Wyczyszczono, ponieważ % ukończenia jest pusty." - decreased_like_work: "Zmniejszono o taką samą wartość jak pole Praca." + decreased_by_delta_like_work: "Zmniejszono o %{delta}, co odpowiada zmniejszeniu wartości Praca." derived: "Wartość jest wyprowadzana z wartości Praca i % ukończenia." - increased_like_work: "Zwiększono o taką samą wartość jak pole Praca." + increased_by_delta_like_work: "Zwiększono o %{delta}, co odpowiada zwiększeniu wartości Praca." same_as_work: "Ustaw na tę samą wartość, co Praca." permissions: comment: "Komentarz" @@ -3788,12 +3818,16 @@ pl: close_warning: "Zignoruj to ostrzeżenie." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Aplikacje OAuth" plural: "Aplikacje OAuth" named: "Aplikacja OAuth „%{name}”" new: "Nowa aplikacja OAuth" + non_confidential: Non confidential default_scopes: "(Zakresy domyślne)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Nazwa aplikacji. Będzie wyświetlana innym użytkownikom po autoryzacji." redirect_uri_html: > Dozwolone adresy URL, do których mogą być przekierowywani autoryzowani użytkownicy. Jeden wpis w każdym wierszu.
    Jeśli rejestrujesz aplikację komputerową, użyj następującego adresu URL. @@ -3802,6 +3836,10 @@ pl: client_credential_user_id: "Opcjonalny identyfikator użytkownika, umożliwiający klientom korzystanie z tej aplikacji. Pozostaw pusty, aby umożliwić jedynie dostęp publiczny" register_intro: "Jeśli tworzysz aplikację kliencką interfejsu API OAuth do OpenProject, możesz zarejestrować ją za pomocą tego formularza do użytku wszystkich użytkowników." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Numer klienta" client_secret_notice: > Jest to jedyny moment, w którym możemy wydrukować tajne hasło klienta, zanotuj je i przechowuj w bezpiecznym miejscu. Należy je traktować jak hasło i nie można go później odzyskać przez OpenProject. diff --git a/config/locales/crowdin/pt-BR.yml b/config/locales/crowdin/pt-BR.yml index 2e0b798c4139..0d1d42bc2900 100644 --- a/config/locales/crowdin/pt-BR.yml +++ b/config/locales/crowdin/pt-BR.yml @@ -31,6 +31,9 @@ pt-BR: custom_styles: color_theme: "Tema Colorido" color_theme_custom: "(Personalizado)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Botão primário" accent-color: "Destaque" @@ -79,6 +82,7 @@ pt-BR: contact: "Contate-nos para uma demonstração" enterprise_info_html: "é um complemento do Enterprise." upgrade_info: "Por favor, faça o upgrade para um plano pago para ativar e começar a usá-lo em sua equipe." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "As ações individuais de um usuário (por exemplo, atualizar um pacote de trabalho duas vezes) são agregadas em uma única ação se o intervalo de tempo for menor que o intervalo especificado. Eles serão exibidos como uma única ação dentro do aplicativo. Isso também atrasará as notificações no mesmo intervalo de tempo, reduzindo o número de e-mails enviados e também afetará o atraso de %{webhook_link}." @@ -201,6 +205,11 @@ pt-BR: title: "Ações personalizadas" description: "As ações personalizadas são atalhos de clique único para um conjunto de ações pré-definidas que você pode disponibilizar em certos pacotes de trabalho com base no estado, função, tipo ou projeto." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: Em todos os projetos + description: Este campo personalizado é habilitado em todos os projetos, uma vez que a opção "para todos os projetos" está marcada. Ele não pode ser desativado para projetos individuais. text_add_new_custom_field: > Para adicionar campos personalizados a um projeto é necessário criá-los primeiro para depois adicioná-los a este projeto. is_enabled_globally: "Está habilitado globalmente" @@ -629,6 +638,8 @@ pt-BR: uid: "ID do cliente" secret: "Segredo do cliente" owner: "Proprietário" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirecionar URI" client_credentials_user_id: "ID do usuário de credenciais do cliente" scopes: "Escopos" @@ -800,6 +811,7 @@ pt-BR: blank: "não pode ficar em branco." blank_nested: "precisa ter a propriedade '%{property}' definida. " cannot_delete_mapping: "é obrigatório. Não pode ser excluído." + is_for_all_cannot_modify: "é para todos. Não pode ser modificado." cant_link_a_work_package_with_a_descendant: "Um pacote de trabalho não pode ser vinculado a uma das suas subtarefas." circular_dependency: "Esta relação vai criar uma dependência circular." confirmation: "não coincide com %{attribute}." @@ -873,6 +885,10 @@ pt-BR: minimum: "precisa incluir pelo menos um filtro para principal, contexto ou id com o operador '='." custom_field: at_least_one_custom_option: "Pelo menos uma opção precisa estar disponível." + custom_fields_project: + attributes: + project_ids: + blank: "Por favor, selecione um projeto." custom_actions: only_one_allowed: "(%{name}) apenas um valor é permitido." empty: "(%{name}) valor não pode ser vazio." @@ -903,6 +919,8 @@ pt-BR: name: blank: "é obrigatório. Selecione um nome." not_unique: "já está em uso. Selecione outro nome." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "É necessário especificar pelo menos um canal para o envio de notificações." attributes: @@ -1100,7 +1118,7 @@ pt-BR: confirmation: "A confirmação da senha não corresponde à senha!" format: "%{message}" password: - weak: "Deve conter caracteres das seguintes classes (pelo menos %{min_count} de %{all_count}): %{rules}." + weak: "Deve conter caracteres das seguintes classes (pelo menos %{min_count} de %{all_count}): %{rules}" lowercase: "minúscula (ex.: 'a')" uppercase: "maiúscula (ex.: 'A')" numeric: "número (ex.: '1')" @@ -1628,7 +1646,7 @@ pt-BR: error_menu_item_not_saved: Item de menu não pôde ser salvo error_wiki_root_menu_item_conflict: > Não é possível renomear de"%{old_name}" para "%{new_name}" devido a um conflito no item de menu resultante com o item de menu existente "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Ocorreu um erro durante a autenticação externa. Por favor, tente novamente." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atributo(s) não destacado(s): %{attributes}" events: changeset: "Conjunto de alterações editadas" @@ -1800,7 +1818,7 @@ pt-BR: progress_mode_changed_to_status_based: Modo de cálculo de progresso definido como com base no status status_excluded_from_totals_set_to_false_message: agora incluído nos totais da hierarquia status_excluded_from_totals_set_to_true_message: agora excluído dos totais da hierarquia - status_percent_complete_changed: "% de conclusão alterada de %{old_value}% para %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > A partir de agora, a atividade relacionada a links de arquivos (arquivos armazenados em armazenamentos externos) aparecerá aqui na guia Atividade. O seguinte representa a atividade relacionada aos links que já existiam: @@ -1909,7 +1927,8 @@ pt-BR: label_additional_workflow_transitions_for_assignee: "Transições adicionais permitidas quando o usuário é o responsável" label_additional_workflow_transitions_for_author: "Transições adicionais permitidas quando o usuário é o autor" label_administration: "Administração" - label_advanced_settings: "Configurações avançadas" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Idade" label_ago: "dias atrás" label_all: "todos" @@ -1942,6 +1961,7 @@ pt-BR: label_attribute_expand_text: "O texto concluído para '%{attribute}'" label_authentication: "Autenticação" label_authentication_settings: "Configurações de autenticação" + label_available_custom_fields_projects: "Projetos de campos personalizados disponíveis" label_available_global_roles: "Funções globais disponíveis" label_available_project_attributes: "Atributos de projeto disponíveis" label_available_project_forums: "Fóruns disponíveis" @@ -2014,6 +2034,7 @@ pt-BR: label_copy_project: "Cópiar projeto" label_core_version: "Versão do núcleo" label_core_build: "Construção principal" + label_created_by: "Created by %{user}" label_current_status: "Situação atual" label_current_version: "Versão atual" label_custom_field_add_no_type: "Adicionar este campo a um tipo de pacote de trabalho" @@ -2021,6 +2042,7 @@ pt-BR: label_custom_field_plural: "Campos personalizados" label_custom_field_default_type: "Tipo vazio" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Painel" label_database_version: "Versão do PostgreSQL" label_date: "Data" @@ -2141,9 +2163,9 @@ pt-BR: label_share: "Compartilhar" label_share_project_list: "Compartilhar lista de projeto" label_share_work_package: "Compartilhar pacote de trabalho" - label_show_hide: "Mostrar/ocultar" - label_show_hide_n_items: "Exibir/ocultar itens de %{count}" label_show_all_registered_users: "Mostrar todos usuários registrados" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Diário" label_journal_diff: "Comparação de Descrição" label_language: "Idioma" @@ -2293,6 +2315,7 @@ pt-BR: label_product_version: "Versão do produto" label_profile: "Perfil" label_percent_complete: "% de conclusão" + label_progress_tracking: "Progress tracking" label_project: "Projeto" label_project_activity: "Atividade do projeto" label_project_attribute_plural: "Atributos do projeto" @@ -2478,7 +2501,6 @@ pt-BR: label_work_package_new: "Novo pacote de trabalho" label_work_package_edit: "Editar pacote de trabalho %{name}" label_work_package_plural: "Pacotes de trabalho" - label_work_packages_settings: "Configurações dos pacotes de trabalho" label_work_package_status: "Situação do pacote de trabalho" label_work_package_status_new: "Nova situação" label_work_package_status_plural: "Situações do Pacote de Trabalho" @@ -3115,11 +3137,13 @@ pt-BR: setting_hours_per_day_explanation: >- Isso define o que é considerado um "dia" ao exibir a duração em dias e horas (por exemplo, se um dia tem 8 horas, 32 horas serão exibidas como 4 dias). setting_invitation_expiration_days: "E-mail de ativação expira após" - setting_work_package_done_ratio: "Cálculo de progresso" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Com base no trabalho" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Com base no estado" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - No modo com base no trabalho, a % de conclusão é calculada com base na quantidade de trabalho realizado em relação ao total de trabalho. Já no modo com base no estado, cada estado possui um valor de % de conclusão associado a ele. Alterar o estado resultará em uma mudança na % de conclusão. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > No modo baseado em trabalho, você pode definir o % de conclusão para qualquer valor desejado. Se você inserir um valor para o Trabalho, o Trabalho restante será calculado automaticamente. No modo baseado em status, cada status está associado a um valor de % de conclusão. Alterar o status irá atualizar o % de conclusão correspondente. setting_work_package_properties: "Propriedades do pacote de trabalho" @@ -3140,6 +3164,13 @@ pt-BR: setting_password_min_length: "Tamanho mínimo" setting_password_min_adhered_rules: "Número mínimo de classes de caracteres obrigatórias" setting_per_page_options: "Opções de objetos por página" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Mensagens de texto simples (sem HTML)" setting_protocol: "Protocolo" setting_project_gantt_query: "Visualização Gantt do portfólio de projetos" @@ -3504,7 +3535,6 @@ pt-BR: label_note: "Obs.:" modal: work_based_help_text: "Cada campo é calculado automaticamente a partir dos outros dois, sempre que possível." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% de conclusão é automaticamente calculada com base no trabalho total e no trabalho restante." status_based_help_text: "A % de conclusão é definida pelo estado do pacote de trabalho." migration_warning_text: "No modo de cálculo de progresso com base no trabalho, a % conclusão não pode ser definida manualmente e está vinculada ao Trabalho. O valor existente foi mantido, mas não pode ser editado. Favor inserir o Trabalho primeiro." derivation_hints: @@ -3519,9 +3549,9 @@ pt-BR: remaining_hours: cleared_because_work_is_empty: "Removido porque o Trabalho está vazio." cleared_because_percent_complete_is_empty: "Removido porque % de conclusão está vazio." - decreased_like_work: "Diminuído pela mesma quantidade que o Trabalho." + decreased_by_delta_like_work: "Diminuído por %{delta}, correspondendo à redução no Trabalho." derived: "Derivado de Trabalho e % de conclusão." - increased_like_work: "Aumentado pela mesma quantidade que o Trabalho." + increased_by_delta_like_work: "Aumentado por %{delta}, correspondendo ao aumento no Trabalho." same_as_work: "Defina para o mesmo valor que o Trabalho." permissions: comment: "Comentário" @@ -3713,12 +3743,16 @@ pt-BR: close_warning: "Ignorar este aviso." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Aplicação OAuth" plural: "Aplicações OAuth" named: "Aplicação OAuth '%{name}'" new: "Nova aplicação OAuth" + non_confidential: Non confidential default_scopes: "(Escopos padrão)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "O nome da sua aplicação. Isto será exibido para outros usuários mediante autorização." redirect_uri_html: > Os URLs permitidos dos usuários autorizados podem ser redirecionadas para. Uma entrada por linha.
    Se você estiver registrando uma aplicação desktop, use o seguinte URL. @@ -3727,6 +3761,10 @@ pt-BR: client_credential_user_id: "ID de usuário usado como representante quando os clientes usam esta aplicação. Deixe em branco para permitir apenas o acesso público" register_intro: "Se você estiver desenvolvendo uma aplicação cliente da API OAuth do OpenProject, poderá registrá-la usando este formulário para ser usada por todos os usuários." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID do cliente" client_secret_notice: > Esta é a única vez que podemos imprimir o segredo do cliente, por favor, anote-o e mantenha-o em local seguro. Ele deve ser tratado como uma senha e não poderá ser recuperado pelo OpenProject mais tarde. diff --git a/config/locales/crowdin/pt-PT.yml b/config/locales/crowdin/pt-PT.yml index 43176c279978..b24a6713d829 100644 --- a/config/locales/crowdin/pt-PT.yml +++ b/config/locales/crowdin/pt-PT.yml @@ -31,6 +31,9 @@ pt-PT: custom_styles: color_theme: "Cores do tema" color_theme_custom: "(Personalizado)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Botão principal" accent-color: "Destaque" @@ -79,6 +82,7 @@ pt-PT: contact: "Contacte-nos para obter uma demonstração" enterprise_info_html: "é um complemento de Enterprise ." upgrade_info: "Faça o upgrade para um plano pago para ativar e começar a usar na sua equipa." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "As ações individuais de um utilizador (por exemplo, atualizar um pacote de trabalho duas vezes) são agregadas numa única ação se a sua diferença de idade for menor que o intervalo de tempo especificado. Serão mostradas como uma única ação dentro da aplicação. Também vai atrasar as notificações pelo mesmo período de tempo, o que reduz o número de e-mails enviados, e afeta ainda o atraso de %{webhook_link}." @@ -200,6 +204,11 @@ pt-PT: title: "Ações personalizadas" description: "Ações personalizadas são atalhos de um clique para um conjunto de ações pré-definidas que pode disponibilizar em certos pacotes de trabalho com base no estado, função, tipo ou projeto." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Para adicionar novos campos personalizados a um projeto, primeiro precisa de criá-los para depois adicioná-los a este projeto. is_enabled_globally: "Ativado a nível global" @@ -629,6 +638,8 @@ pt-PT: uid: "ID de cliente" secret: "Segredo do cliente" owner: "Proprietário" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirecionar URI" client_credentials_user_id: "ID de utilizador de Credenciais do Cliente" scopes: "Âmbitos" @@ -800,6 +811,7 @@ pt-PT: blank: "não pode ficar em branco." blank_nested: "precisa de ter a propriedade '%{property}' configurada." cannot_delete_mapping: "é necessário. Não pode ser eliminado." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Um pacote de trabalho não pode ser ligado a uma das suas sub-tarefas." circular_dependency: "Esta relação vai criar uma dependência circular." confirmation: "não coincide %{attribute}." @@ -873,6 +885,10 @@ pt-PT: minimum: "tem de incluir pelo menos um filtro para o principal, o contexto ou a id com o operador '='." custom_field: at_least_one_custom_option: "Pelo menos uma opção precisa estar disponível." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) só é permitido um valor." empty: "(%{name}) valor não pode ficar vazio." @@ -903,6 +919,8 @@ pt-PT: name: blank: "é obrigatório. Selecione um nome." not_unique: "já está a ser utilizado. Escolha outro nome." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "É necessário especificar pelo menos um canal para o envio de notificações." attributes: @@ -1100,7 +1118,7 @@ pt-PT: confirmation: "A confirmação da palavra-passe não coincide com a palavra-passe." format: "%{message}" password: - weak: "Deve conter carateres das seguintes classes (pelo menos %{min_count} de %{all_count}): %{rules}." + weak: "Tem de conter caracteres das seguintes classes (pelo menos, %{min_count} de %{all_count}): %{rules}" lowercase: "minúsculas (exemplo, 'a')" uppercase: "maiúsculas (exemplo, 'A')" numeric: "numérico (exemplo, '1')" @@ -1628,7 +1646,7 @@ pt-PT: error_menu_item_not_saved: Item de menu não pôde ser guardado error_wiki_root_menu_item_conflict: > Não é possível mudar o nome de"%{old_name}" para "%{new_name}" devido a um conflito no item de menu resultante com o item de menu existente "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Ocorreu um erro durante a autenticação externa. Por favor, tente novamente." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atributos não destacáveis: %{attributes}" events: changeset: "Changeset editado" @@ -1800,7 +1818,7 @@ pt-PT: progress_mode_changed_to_status_based: Modo de cálculo do progresso definido como baseado no estado status_excluded_from_totals_set_to_false_message: agora incluído nos totais da hierarquia status_excluded_from_totals_set_to_true_message: agora excluído dos totais da hierarquia - status_percent_complete_changed: "% Completo alterada de %{old_value}% para %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > A partir de agora, a atividade relacionada a links de arquivos (arquivos armazenados em armazenamentos externos) aparecerá aqui na guia Atividade. O seguinte representa a atividade relacionada aos links que já existiam: @@ -1909,7 +1927,8 @@ pt-PT: label_additional_workflow_transitions_for_assignee: "Transições adicionais permitidas quando a tarefa está atribuída ao utilizador" label_additional_workflow_transitions_for_author: "Transições adicionais permitidas quando o utilizador é o autor da tarefa" label_administration: "Administração" - label_advanced_settings: "Configurações avançadas" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Idade" label_ago: "dias atrás" label_all: "todos" @@ -1942,6 +1961,7 @@ pt-PT: label_attribute_expand_text: "O texto completo para \"%{attribute}\"" label_authentication: "Autenticação" label_authentication_settings: "Definições da autenticação" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Papéis globais disponíveis" label_available_project_attributes: "Atributos do projeto disponíveis" label_available_project_forums: "Fóruns disponíveis" @@ -2014,6 +2034,7 @@ pt-PT: label_copy_project: "Copiar projeto" label_core_version: "Versão do núcleo" label_core_build: "Construção principal" + label_created_by: "Created by %{user}" label_current_status: "Estado atual" label_current_version: "Versão atual" label_custom_field_add_no_type: "Adicionar este campo a um tipo de pacote de trabalho" @@ -2021,6 +2042,7 @@ pt-PT: label_custom_field_plural: "Campos personalizados" label_custom_field_default_type: "Tipo de vazio" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Painel" label_database_version: "versão PostgreSQL" label_date: "Data" @@ -2141,9 +2163,9 @@ pt-PT: label_share: "Partilhar" label_share_project_list: "Partilhar lista de projetos" label_share_work_package: "Partilhar pacote de trabalho" - label_show_hide: "Mostrar/ocultar" - label_show_hide_n_items: "Mostrar/ocultar %{count} itens" label_show_all_registered_users: "Mostrar todos utilizadores registrados" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Diário" label_journal_diff: "Comparação de descrição" label_language: "Idioma" @@ -2293,6 +2315,7 @@ pt-PT: label_product_version: "Versão do produto" label_profile: "Perfil" label_percent_complete: "% de conclusão" + label_progress_tracking: "Progress tracking" label_project: "Projeto" label_project_activity: "Atividade do projeto" label_project_attribute_plural: "Atributos do projeto" @@ -2478,7 +2501,6 @@ pt-PT: label_work_package_new: "Nova tarefa" label_work_package_edit: "Editar pacote de trabalho %{name}" label_work_package_plural: "Tarefas" - label_work_packages_settings: "Definições dos pacotes de trabalho" label_work_package_status: "Estado da tarefa" label_work_package_status_new: "Novo estado" label_work_package_status_plural: "Estado da tarefa" @@ -3114,11 +3136,13 @@ pt-PT: setting_hours_per_day_explanation: >- Isto define o que é considerado um "dia" ao apresentar a duração em dias e horas (por exemplo, se um dia tiver 8 horas, 32 horas seriam 4 dias). setting_invitation_expiration_days: "O email de ativação expira após" - setting_work_package_done_ratio: "Cálculo do progresso" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Baseado no trabalho" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Baseado no estado" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - No modo baseado no trabalho, a % de conclusão é calculada a partir da quantidade de trabalho realizado em relação ao trabalho total. No modo baseado no estado, cada estado tem um valor de % de conclusão associado. A alteração do estado altera a % de conclusão. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > No modo baseado no trabalho, a % de conclusão pode ser definida livremente para qualquer valor. Se, opcionalmente, introduzir um valor para Trabalho, o Trabalho restante será automaticamente derivado. No modo baseado no estado, cada estado tem um valor de % de conclusão associado. A alteração do estado altera a % de conclusão. setting_work_package_properties: "Propriedades das tarefas" @@ -3139,6 +3163,13 @@ pt-PT: setting_password_min_length: "Tamanho mínimo" setting_password_min_adhered_rules: "Número mínimo de classes obrigatórias" setting_per_page_options: "Opções de objetos por página" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Mensagens de texto simples (sem HTML)" setting_protocol: "Protocolo" setting_project_gantt_query: "Visualização de portfólio Gantt do projeto" @@ -3504,7 +3535,6 @@ pt-PT: label_note: "Nota:" modal: work_based_help_text: "Cada campo é calculado automaticamente a partir dos outros dois, sempre que possível." - work_based_help_text_pre_14_4_without_percent_complete_edition: "A % de conclusão é derivada automaticamente do Trabalho e do Trabalho restante." status_based_help_text: "A % de conclusão é definida pelo estado do pacote de trabalho." migration_warning_text: "No modo de cálculo do progresso com base no trabalho, a % de conclusão não pode ser definida manualmente e está ligada ao Trabalho. O valor existente foi mantido, mas não pode ser editado. Introduza primeiro o Trabalho." derivation_hints: @@ -3519,9 +3549,9 @@ pt-PT: remaining_hours: cleared_because_work_is_empty: "Apagado porque o Trabalho está vazio." cleared_because_percent_complete_is_empty: "Apagado porque a % de conclusão está vazia." - decreased_like_work: "Diminuído na mesma quantidade que o Trabalho." + decreased_by_delta_like_work: "Diminuído em %{delta}, correspondente à redução do Trabalho." derived: "Derivado do Trabalho e da % de conclusão." - increased_like_work: "Aumentado na mesma quantidade que o Trabalho." + increased_by_delta_like_work: "Aumentou em %{delta}, correspondente ao aumento do Trabalho." same_as_work: "Defina o mesmo valor que Trabalho." permissions: comment: "Comentário" @@ -3713,12 +3743,16 @@ pt-PT: close_warning: "Ignore este aviso." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Aplicação OAuth" plural: "Aplicações OAuth" named: "Aplicação OAuth '%{name}'" new: "Nova aplicação OAuth" + non_confidential: Non confidential default_scopes: "(Âmbitos predefinidos)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "O nome da sua aplicação. Isto será exibido aos outros utilizadores após a autorização." redirect_uri_html: > Os utilizadores autorizados com URLs podem ser redirecionados para. Uma entrada por linha.
    Se estiver a registar uma aplicação de desktop, use a seguinte URL. @@ -3727,6 +3761,10 @@ pt-PT: client_credential_user_id: "ID opcional de utilizador para simular quando os clientes utilizam esta aplicação. Deixe em branco para permitir apenas o acesso público" register_intro: "Se está a desenvolver uma aplicação de cliente OAuth API para OpenProject, pode registá-la através deste formulário para que todos os utilizadores a possam usar." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID de cliente" client_secret_notice: > Esta é a única vez que podemos imprimir o segredo do cliente, por favor anote-o e mantenha-o seguro. Deve ser tratado como uma palavra-passe e não pode ser recuperado mais tarde pelo OpenProject. diff --git a/config/locales/crowdin/ro.yml b/config/locales/crowdin/ro.yml index 78baed63974e..e0a2095d7a5a 100644 --- a/config/locales/crowdin/ro.yml +++ b/config/locales/crowdin/ro.yml @@ -31,6 +31,9 @@ ro: custom_styles: color_theme: "Culoarea temei" color_theme_custom: "(Personalizat)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ ro: contact: "Contactați-ne pentru o demonstrație" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Vă rugăm să treceți la un plan plătit pentru a-l activa și a începe să îl utilizați în echipa dumneavoastră." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Acțiunile individuale ale unui utilizator (de exemplu, actualizarea de două ori a unui pachet de lucru) sunt agregate într-o singură acțiune dacă diferența de vârstă dintre ele este mai mică decât intervalul de timp specificat. Acestea vor fi afișate ca o singură acțiune în cadrul aplicației. De asemenea, acest lucru va întârzia notificările cu aceeași perioadă de timp, reducând numărul de e-mailuri trimise și va afecta, de asemenea, întârzierea %{webhook_link}." @@ -202,6 +206,11 @@ ro: title: "Acțiuni personalizate" description: "Acțiunile personalizate sunt comenzi rapide cu un singur clic către un set de acțiuni predefinite pe care le puteți face disponibile pentru anumite pachete de lucru în funcție de statut, rol, tip sau proiect." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Dacă doriți să adăugați noi câmpuri personalizate în cadrul unui proiect va trebui, mai întâi, să le creați. is_enabled_globally: "Este activat/ă la nivel global" @@ -638,6 +647,8 @@ ro: uid: "ID Client" secret: "Client Secret" owner: "Proprietar" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirecționați URI" client_credentials_user_id: "Credențiale client ID utilizator" scopes: "Scopuri" @@ -809,6 +820,7 @@ ro: blank: "nu poate fi gol." blank_nested: "trebuie să aibă setul '%{property}' al proprietății." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Un pachet de lucru nu poate fi legat de una din sub-activitățile sale." circular_dependency: "Această relație ar crea o dependință circulară." confirmation: "nu se potrivește cu %{attribute}." @@ -882,6 +894,10 @@ ro: minimum: "trebuie să includeți cel puțin un filtru pentru principal, context sau id cu operatorul \"=\"." custom_field: at_least_one_custom_option: "Cel puțin o opțiune trebuie să fie disponibilă." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) este permisă doar o singură valoare." empty: "(%{name}) valoarea nu poate fi goală." @@ -912,6 +928,8 @@ ro: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Trebuie specificat cel puţin un canal pentru trimiterea notificărilor." attributes: @@ -1109,7 +1127,7 @@ ro: confirmation: "Confirmarea parolei nu se potrivește cu parola." format: "%{message}" password: - weak: "Trebuie să conțină caractere din următoarele clase (cel puțin %{min_count} din %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "litere mici (ex. 'a')" uppercase: "litere mari (ex. 'A')" numeric: "cifre (ex. ' 1')" @@ -1665,7 +1683,7 @@ ro: error_menu_item_not_saved: Meniul nu a putut fi salvat error_wiki_root_menu_item_conflict: > Nu se poate redenumi %{old_name} în %{new_name} datorită unui conflict între noul meniu și meniul deja existent "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "A apărut o eroare în timpul autentificării externe. Vă rugăm să încercați din nou." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atributul (atributele) nu poate (pot) fi evidențiat(e): %{attributes}" events: changeset: "Set de schimbări editat" @@ -1837,7 +1855,7 @@ ro: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1946,7 +1964,8 @@ ro: label_additional_workflow_transitions_for_assignee: "Tranziții suplimentare permise când utilizatorul este executantul" label_additional_workflow_transitions_for_author: "Tranziții suplimentare permise când utilizatorul este autorul" label_administration: "Administrare" - label_advanced_settings: "Setări avansate" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Vârstă" label_ago: "zile în urmă" label_all: "toate" @@ -1979,6 +1998,7 @@ ro: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Autentificare" label_authentication_settings: "Setări autentificare" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Roluri globale disponibile" label_available_project_attributes: "Atribute proiect disponibile" label_available_project_forums: "Forumuri disponibile" @@ -2051,6 +2071,7 @@ ro: label_copy_project: "Copiere proiect" label_core_version: "Versiune de bază" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Stare actuală" label_current_version: "Versiune actuală" label_custom_field_add_no_type: "Adaugați acest câmp la un pachet de lucru" @@ -2058,6 +2079,7 @@ ro: label_custom_field_plural: "Câmpuri personalizate" label_custom_field_default_type: "Golire tip" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Panou de control" label_database_version: "Versiunea PostgreSQL" label_date: "Data" @@ -2093,7 +2115,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_enable_multi_select: "Comutare selecție multiplă" label_enabled_project_custom_fields: "Câmpuri personalizate activate" @@ -2145,7 +2167,7 @@ ro: label_generate_key: "Generare cheie" 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}" @@ -2178,9 +2200,9 @@ ro: label_share: "Distribuie" label_share_project_list: "Distribuie lista de proiecte" label_share_work_package: "Share work package" - label_show_hide: "Afișare/ascundere" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Afișați toți utilizatorii înregistrați" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Jurnal" label_journal_diff: "Comparare descriere" label_language: "Limbă" @@ -2330,6 +2352,7 @@ ro: label_product_version: "Versiune produs" label_profile: "Profil" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Proiect" label_project_activity: "Activitate proiect" label_project_attribute_plural: "Atributele proiectului" @@ -2515,7 +2538,6 @@ ro: label_work_package_new: "Pachet de lucru nou" label_work_package_edit: "Editare pachet de lucru %{name}" label_work_package_plural: "Pachete de lucru" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Stare pachet de lucru" label_work_package_status_new: "Stare nouă" label_work_package_status_plural: "Setări pachete de lucru" @@ -3155,11 +3177,13 @@ ro: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "E-mailul de activare expiră după" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Proprietăți pachet de lucru" @@ -3180,6 +3204,13 @@ ro: setting_password_min_length: "Lungime minimă" setting_password_min_adhered_rules: "Numărul minim de clase necesare" setting_per_page_options: "Opțiuni pentru obiecte pe pagină" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Text e-mail simplu (fără HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Portofoliu de proiecte vedere Gantt" @@ -3546,7 +3577,6 @@ ro: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3561,9 +3591,9 @@ ro: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comentariu" @@ -3755,12 +3785,16 @@ ro: close_warning: "Ignoră acest avertisment." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Aplicație OAuth" plural: "Aplicație OAuth" named: "OAuth aplicație '%{name}'" new: "Aplicație OAuth" + non_confidential: Non confidential default_scopes: "Scopuri" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Numele aplicației dumneavoastră. Acesta va fi afișat celorlalți utilizatori în momentul autorizării." redirect_uri_html: > URL-urile permise către care pot fi redirecționați utilizatorii autorizați. O intrare pe linie.
    Dacă înregistrați o aplicație desktop, utilizați următoarea adresă URL. @@ -3769,6 +3803,10 @@ ro: client_credential_user_id: "ID-ul de utilizator opțional pe care trebuie să se substituie atunci când clienții utilizează această aplicație. Lăsați gol pentru a permite doar accesul public" register_intro: "Dacă dezvoltați o aplicație client OAuth API pentru OpenProject, o puteți înregistra folosind acest formular pentru toți utilizatorii." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID Client" client_secret_notice: > Acesta este singurul moment în care putem imprima secretul clientului, vă rugăm să îl notați și să îl păstrați în siguranță. Acesta trebuie tratat ca o parolă și nu poate fi recuperat ulterior de OpenProject. diff --git a/config/locales/crowdin/ru.yml b/config/locales/crowdin/ru.yml index dca1e7a47eac..9104ddd713c9 100644 --- a/config/locales/crowdin/ru.yml +++ b/config/locales/crowdin/ru.yml @@ -31,6 +31,9 @@ ru: custom_styles: color_theme: "Цветовая тема" color_theme_custom: "(Пользовательская)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Основная кнопка" accent-color: "Оттенок" @@ -79,6 +82,7 @@ ru: contact: "Свяжитесь с нами для демо" enterprise_info_html: "является дополнением Корпоративной версии ." upgrade_info: "Пожалуйста, перейдите на платный тарифный план, чтобы активировать его и начать использовать в вашей команде." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Личные действия пользователя (например, обновление пакета работ дважды) агрегируются в одно действие, если их разница во времени не больше указанной. Они будут отображаться как одно действие внутри приложения. Это также задерживает уведомление на такое же количество времени, уменьшая количество отправляемых писем и также повлияет на %{webhook_link} задержки." @@ -201,6 +205,11 @@ ru: title: "Настраиваемые действия" description: "Пользовательские действия сводятся к одному клику по кнопке для совершения заранее определенных действий, которые вы можете сделать доступными для пакетов работ на основании статуса, роли, типа или проекта." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: Для всех проектов + description: Это пользовательское поле включено во всех проектах, так как отмечена опция «Для всех проектов». Его нельзя отключить для отдельных проектов. text_add_new_custom_field: > Прежде чем добавлять настраиваемые поля в проект, нужно создать их. is_enabled_globally: "Разрешено в глобальном масштабе" @@ -644,6 +653,8 @@ ru: uid: "ID клиента" secret: "Секрет клиента" owner: "Владелец" + builtin: "Встроенный" + enabled: "Активный" redirect_uri: "Перенаправить URI" client_credentials_user_id: "ID пользователя клиента" scopes: "Области" @@ -815,6 +826,7 @@ ru: blank: "не может быть пустым." blank_nested: "должно быть установлено свойство '%{property}'." cannot_delete_mapping: "требуется. Невозможно удалить." + is_for_all_cannot_modify: "предназначен для всех. Не может быть изменен." cant_link_a_work_package_with_a_descendant: "Пакет работ не может быть связан с одной из своих подзадач." circular_dependency: "Это отношение создаст циклическую зависимость." confirmation: "не совпадает со значением поля %{attribute}." @@ -888,6 +900,10 @@ ru: minimum: "необходимо включить хотя бы один фильтр для основного, контекста или id с оператором '='." custom_field: at_least_one_custom_option: "По крайней мере один параметр должен быть доступен." + custom_fields_project: + attributes: + project_ids: + blank: "Пожалуйста, выберите проект." custom_actions: only_one_allowed: "(%{name}) разрешено только одно значение." empty: "(%{name}) не может быть пустым." @@ -918,6 +934,8 @@ ru: name: blank: "является обязательным. Пожалуйста, выберите имя." not_unique: "уже используется. Пожалуйста, выберите другое имя." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Нужно указать хотя бы один канал для отправки уведомлений." attributes: @@ -1115,7 +1133,7 @@ ru: confirmation: "Подтверждение пароля не совпадает с паролем." format: "%{message}" password: - weak: "Должны содержаться символы следующих классов (как минимум %{min_count} из %{all_count}): %{rules}." + weak: "Должен содержать символы следующих классов (как минимум %{min_count}\nиз %{all_count}): %{rules}" lowercase: "нижний регистр (например «а»)" uppercase: "прописные буквы (например, \"A\")" numeric: "цифры (например \"1\")" @@ -1699,7 +1717,7 @@ ru: error_menu_item_not_saved: Пункт меню не может быть сохранен error_wiki_root_menu_item_conflict: > Невозможно переименовать "%{old_name}" в "%{new_name}" из-за конфликта между получающимся и существующим пунктами меню "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Произошла ошибка во время внешней аутентификации. Пожалуйста, попробуйте еще раз." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Атрибуты не выделяются: %{attributes}" events: changeset: "Набор изменений отредактирован" @@ -1871,7 +1889,7 @@ ru: progress_mode_changed_to_status_based: Расчет прогресса установлен в режим "На основе статуса" status_excluded_from_totals_set_to_false_message: теперь включено в иерархию итогов status_excluded_from_totals_set_to_true_message: теперь исключено из иерархии итогов - status_percent_complete_changed: "% завершения изменен с %{old_value}% на %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Теперь на вкладке Активность появится активность, связанная со ссылками файлов (файлы, хранящиеся во внешних хранилищах). Ниже описывается деятельность по уже существующим ссылкам: @@ -1980,7 +1998,8 @@ ru: label_additional_workflow_transitions_for_assignee: "Дополнительные переходы допускается, если пользователь является правопреемником" label_additional_workflow_transitions_for_author: "Дополнительные переходы допускаются, если пользователь является автором" label_administration: "Администрирование" - label_advanced_settings: "Расширенные настройки" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Возраст" label_ago: "дней назад" label_all: "все" @@ -2013,6 +2032,7 @@ ru: label_attribute_expand_text: "Полный текст для '%{attribute}'" label_authentication: "Аутентификация" label_authentication_settings: "Параметры аутентификации" + label_available_custom_fields_projects: "Доступные пользовательские поля проектов" label_available_global_roles: "Доступные глобальные роли" label_available_project_attributes: "Доступные атрибуты проекта" label_available_project_forums: "Доступные форумы" @@ -2085,6 +2105,7 @@ ru: label_copy_project: "Копировать проект" label_core_version: "Текущая версия" label_core_build: "Сборка ядра" + label_created_by: "Создано %{user}" label_current_status: "Текущий статус" label_current_version: "Текущий этап" label_custom_field_add_no_type: "Добавьте это поле в тип комплекса работ" @@ -2092,6 +2113,7 @@ ru: label_custom_field_plural: "Пользовательские поля" label_custom_field_default_type: "Пустой тип" label_custom_style: "Дизайн" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Панель" label_database_version: "Версия PostgreSQL" label_date: "Дата" @@ -2212,9 +2234,9 @@ ru: label_share: "Поделиться" label_share_project_list: "Поделитесь списком проектов" label_share_work_package: "Поделиться пакетом работ" - label_show_hide: "Показать/скрыть" - label_show_hide_n_items: "Показать/скрыть %{count} элементов" label_show_all_registered_users: "Показать всех зарегистрированных пользователей" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Журнал" label_journal_diff: "Описание сравнения" label_language: "Язык" @@ -2364,6 +2386,7 @@ ru: label_product_version: "Версия продукта" label_profile: "Профиль" label_percent_complete: "% Готово" + label_progress_tracking: "Прогресс отслеживания" label_project: "Проект" label_project_activity: "Деятельность" label_project_attribute_plural: "Атрибуты проекта" @@ -2549,7 +2572,6 @@ ru: label_work_package_new: "Новый пакет работ" label_work_package_edit: "Редактирование пакета работ %{name}" label_work_package_plural: "Комплекс работ" - label_work_packages_settings: "Настройки пакетов работ" label_work_package_status: "Статус пакета работ" label_work_package_status_new: "Новый статус" label_work_package_status_plural: "Статусы пакета работ" @@ -3191,9 +3213,11 @@ ru: setting_invitation_expiration_days: "Действие письма активации истекает после" setting_work_package_done_ratio: "Режим расчета прогресса" setting_work_package_done_ratio_field: "На основе трудозатрат" + setting_work_package_done_ratio_field_caption_html: >- + % Завершения может быть свободно установлен на любое значение. Если Вы опционально введете значение для параметра Работа, то автоматически будет выведено значение Оставшаяся работа. setting_work_package_done_ratio_status: "На основе статуса" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - В режиме На основе трудозатрат, % Завершения рассчитывается на основе того, сколько работы выполнено по отношению к общему объему работ. В режиме На основе статуса, каждый статус имеет связанное с ним значение % Завершения. Изменение статуса изменит % Завершения. + setting_work_package_done_ratio_status_caption_html: >- + С каждым статусом связано значение % Завершения. Изменение статуса приведет к изменению % Завершения. setting_work_package_done_ratio_explanation_html: > В режиме На основе трудозатрат для параметра % Завершения можно свободно установить любое значение. Если вы дополнительно введете значение «Работа», «Оставшаяся работа» будет получена автоматически. В режиме На основе статуса с каждым статусом связано значение % Завершения. Изменение статуса приведет к изменению % Завершения. setting_work_package_properties: "Свойства пакета работ" @@ -3214,6 +3238,13 @@ ru: setting_password_min_length: "Минимальная длина" setting_password_min_adhered_rules: "Минимальное количество необходимых классов" setting_per_page_options: "Количество объектов на страницу" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Обычный текст электронной почты (не HTML)" setting_protocol: "Протокол" setting_project_gantt_query: "Портфолио проекта в виде диаграммы Ганта" @@ -3580,7 +3611,6 @@ ru: label_note: "Примечание:" modal: work_based_help_text: "Каждое поле автоматически рассчитывается от двух других, когда это возможно." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Завершения автоматически выводится из Работы и Оставшейся работы." status_based_help_text: "% Выполнения определяется статусом пакета работ." migration_warning_text: "В режиме расчета прогресса \"На основе трудозатрат\" процент завершения невозможно установить вручную, он привязан к трудозатратам. Существующее значение сохранено, но его нельзя изменить. Пожалуйста, сначала введите трудозатраты." derivation_hints: @@ -3595,9 +3625,9 @@ ru: remaining_hours: cleared_because_work_is_empty: "Очищено, потому что Работа пуста." cleared_because_percent_complete_is_empty: "Очищено, потому что % Завершения пуст." - decreased_like_work: "Уменьшается на ту же величину, что и Работа." + decreased_by_delta_like_work: "Уменьшилось на %{delta}, в соответствии с уменьшением объема работ." derived: "Получено из Работы и % Завершения." - increased_like_work: "Увеличивается на ту же величину, что и Работа." + increased_by_delta_like_work: "Увеличилось на %{delta}, в соответствии с увеличением объема работ." same_as_work: "Установите то же значение, что и для Работы." permissions: comment: "Комментировать" @@ -3789,12 +3819,16 @@ ru: close_warning: "Игнорировать это предупреждение." oauth: application: + builtin: Встроенное приложение + confidential: Конфиденциально singular: "Приложение OAuth" plural: "OAuth приложения" named: "OAuth приложение '%{name}'" new: "Новое приложение OAuth" + non_confidential: Не конфиденциально default_scopes: "(Области по умолчанию)" instructions: + enabled: "Включите это приложение, чтобы пользователи могли выполнять с его помощью авторизацию." name: "Название вашего приложения. Будет отображаться другим пользователям после авторизации." redirect_uri_html: > Разрешенные URL-адреса могут быть перенаправлены на. Одна запись на строку.
    Если вы регистрируете приложение на рабочем столе, используйте следующий URL. @@ -3803,6 +3837,10 @@ ru: client_credential_user_id: "Необязательный ID пользователя для замещения в момент использования этого приложения клиентами. Оставьте пустым, чтобы разрешить только публичный доступ" register_intro: "Если вы разрабатываете клиентское приложение OAuth API для OpenProject, вы можете зарегистрировать его, используя эту форму для всех пользователей." default_scopes: "" + header: + builtin_applications: Встроенные приложения OAuth + other_applications: Другие приложения OAuth + empty_application_lists: Нет зарегистрированных приложений OAuth. client_id: "ID клиента" client_secret_notice: > Это единственный раз, когда мы позволяем распечатать секрет клиента, пожалуйста, пожалуйста, запишите его и сохраните в безопасности. Он должен рассматриваться как пароль и не может быть получен в OpenProject позже. diff --git a/config/locales/crowdin/rw.yml b/config/locales/crowdin/rw.yml index ecb5fb659974..a7ab10fbc0e4 100644 --- a/config/locales/crowdin/rw.yml +++ b/config/locales/crowdin/rw.yml @@ -31,6 +31,9 @@ rw: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ rw: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ rw: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ rw: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ rw: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ rw: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ rw: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ rw: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1630,7 +1648,7 @@ rw: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ rw: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ rw: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1944,6 +1963,7 @@ rw: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ rw: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ rw: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2143,9 +2165,9 @@ rw: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2295,6 +2317,7 @@ rw: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ rw: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ rw: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ rw: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ rw: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ rw: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3718,12 +3748,16 @@ rw: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ rw: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/si.yml b/config/locales/crowdin/si.yml index 12c0e46a404d..8b54ed9f16cc 100644 --- a/config/locales/crowdin/si.yml +++ b/config/locales/crowdin/si.yml @@ -31,6 +31,9 @@ si: custom_styles: color_theme: "වර්ණ තේමාව" color_theme_custom: "(අභිරුචි)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ si: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ si: title: "අභිරුචි ක්‍රියාමාර්ග" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > ව්යාපෘතියකට නව අභිරුචි ක්ෂේත්ර එකතු කිරීම සඳහා ඔබ මුලින්ම මෙම ව්යාපෘතියට එකතු කිරීමට පෙර ඒවා නිර්මාණය කළ යුතුය. is_enabled_globally: "ගෝලීයව සබල කර ඇත" @@ -631,6 +640,8 @@ si: uid: "සේවාලාභියා හැඳුනුම්පත" secret: "සේවාලාභියා රහස්" owner: "හිමිකරු" + builtin: "Builtin" + enabled: "Active" redirect_uri: "නැවත හරවා යැවීමේ URI" client_credentials_user_id: "සේවාලාභියා අක්තපත්ර පරිශීලක හැඳුනුම්පත" scopes: "විෂය පථ" @@ -802,6 +813,7 @@ si: blank: "හිස් විය නොහැක." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "වැඩ පැකේජයක් එහි එක් උප කර්තව්යයකට සම්බන්ධ කළ නොහැක." circular_dependency: "මෙම සම්බන්ධතාවය චක්රලේඛය යැපීමක් නිර්මාණය කරනු ඇත." confirmation: "%{attribute}නොගැලපේ." @@ -875,6 +887,10 @@ si: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "අවම වශයෙන් එක් විකල්පයක් ලබා ගත යුතුය." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) අවසර ඇත්තේ එක් අගයකට පමණි." empty: "(%{name}) අගය හිස් විය නොහැක." @@ -905,6 +921,8 @@ si: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ si: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "පහත සඳහන් පංතිවල අක්ෂර අඩංගු විය යුතුය (අවම වශයෙන් %{min_count} හි %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "සිම්පල් නඩුව (උදා: 'a')" uppercase: "ඉහළ (උදා: 'ඒ')" numeric: "සංඛ්යාත්මක (උදා: '1')" @@ -1630,7 +1648,7 @@ si: error_menu_item_not_saved: මෙනු අයිතමය සුරැකිය නොහැකි විය error_wiki_root_menu_item_conflict: > දැනට පවතින මෙනු අයිතමය "%{existing_caption}" (%{existing_identifier}) සමඟ එහි ප්රතිඵලයක් ලෙස මෙනු අයිතමයේ ගැටුමක් හේතුවෙන් "%{old_name}" "" "%{new_name}" ලෙස නම් කල නොහැක. - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "විශේෂණය (ය) අවධාරණය කළ නොහැකි: %{attributes}" events: changeset: "සංස්කරණය කරන ලද වෙනස්" @@ -1802,7 +1820,7 @@ si: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ si: label_additional_workflow_transitions_for_assignee: "පරිශීලකයා වන විට අතිරේක සංක්රමණයන් අවසර දෙනු ලැබේ" label_additional_workflow_transitions_for_author: "පරිශීලකයා කතුවරයා වන විට අතිරේක සංක්රමණයන් අවසර දෙනු ලැබේ" label_administration: "පරිපාලන" - label_advanced_settings: "උසස් සැකසුම්" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "වයස" label_ago: "දින කිහිපයකට පෙර" label_all: "සියලු" @@ -1944,6 +1963,7 @@ si: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "සත්යාපන" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "පවතින සංසද" @@ -2016,6 +2036,7 @@ si: label_copy_project: "ව්යාපෘතිය පිටපත් කරන්න" label_core_version: "ප්රධාන අනුවාදය" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "වත්මන් තත්ත්වය" label_current_version: "වත්මන් අනුවාදය" label_custom_field_add_no_type: "වැඩ පැකේජ වර්ගයකට මෙම ක්ෂේත්රය එක් කරන්න" @@ -2023,6 +2044,7 @@ si: label_custom_field_plural: "අභිරුචි ක්ෂේත්ර" label_custom_field_default_type: "හිස් වර්ගය" label_custom_style: "නිර්මාණ" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "දිනය" @@ -2143,9 +2165,9 @@ si: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "පෙන්වන්න/සඟවන්න" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "සියලුම ලියාපදිංචි පරිශීලකයන් පෙන්වන්න" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "ජර්නල්" label_journal_diff: "විස්තරය සංසන්දනය" label_language: " " @@ -2295,6 +2317,7 @@ si: label_product_version: "නිෂ්පාදන අනුවාදය" label_profile: "පැතිකඩ" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "ව්යාපෘති" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ si: label_work_package_new: "නව වැඩ පැකේජය" label_work_package_edit: "වැඩ පැකේජය සංස්කරණය කරන්න %{name}" label_work_package_plural: "වැඩ පැකේජ" - label_work_packages_settings: "Work packages settings" label_work_package_status: "වැඩ පැකේජ තත්ත්වය" label_work_package_status_new: "නව තත්ත්වය" label_work_package_status_plural: "වැඩ පැකේජ තත්වයන්" @@ -3119,11 +3141,13 @@ si: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "සක්රිය කිරීමේ විද්යුත් තැපෑල කල් ඉකුත් වේ" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "වැඩ පැකේජය ගුණ" @@ -3144,6 +3168,13 @@ si: setting_password_min_length: "අවම දිග" setting_password_min_adhered_rules: "අවශ්ය පන්ති අවම සංඛ්යාව" setting_per_page_options: "එක් පිටුවකට වස්තු විකල්ප" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "සරල පෙළ තැපෑල (HTML නැත)" setting_protocol: "කෙටුම්පත" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ si: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ si: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "අදහස් දක්වන්න" @@ -3718,12 +3748,16 @@ si: close_warning: "මෙම අනතුරු ඇඟවීම නොසලකා." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAUTH අයදුම්" plural: "OAUTH අයදුම්පත්" named: "OAUTH යෙදුම '%{name}'" new: "නව OAUTH අයදුම්" + non_confidential: Non confidential default_scopes: "(පෙරනිමි විෂය පථ)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "ඔබගේ අයදුම්පතේ නම. අවසරය මත මෙය වෙනත් පරිශීලකයින්ට පෙන්වනු ඇත." redirect_uri_html: > අවසර ලත් URL බලයලත් පරිශීලකයින්ට නැවත යොමු කළ හැකිය. එක් පේළියකට එක් ප්රවේශයක්.
    ඔබ ඩෙස්ක්ටොප් යෙදුමක් ලියාපදිංචි කරන්නේ නම්, පහත සඳහන් URL එක භාවිතා කරන්න. @@ -3732,6 +3766,10 @@ si: client_credential_user_id: "සේවාදායකයින් මෙම යෙදුම භාවිතා කරන විට පෙනී සිටීම සඳහා විකල්ප පරිශීලක ID. පොදු ප්රවේශයට පමණක් ඉඩ දීම සඳහා හිස්ව තබන්න" register_intro: "ඔබ OpenProject සඳහා OAUTH API සේවාදායක යෙදුමක් සංවර්ධනය කරන්නේ නම්, සියලුම පරිශීලකයින්ට භාවිතා කිරීමට මෙම පෝරමය භාවිතා කර එය ලියාපදිංචි කළ හැකිය." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "සේවාලාභියා හැඳුනුම්පත" client_secret_notice: > සේවාදායකයා රහසිගතව මුද්රණය කළ හැකි එකම අවස්ථාව මෙයයි, කරුණාකර එය සටහන් කර එය ආරක්ෂිතව තබා ගන්න. එය මුරපදයක් ලෙස සැලකිය යුතු අතර පසු කාලයකදී OpenProject මගින් නැවත ලබා ගත නොහැක. diff --git a/config/locales/crowdin/sk.yml b/config/locales/crowdin/sk.yml index 85778cd7882f..5853f816101a 100644 --- a/config/locales/crowdin/sk.yml +++ b/config/locales/crowdin/sk.yml @@ -31,6 +31,9 @@ sk: custom_styles: color_theme: "Farebný motív" color_theme_custom: "(Vlastné)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ sk: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ sk: title: "Vlastné akcie" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Ak chcete priradiť nové vlastné pole do projektu, je potrebné ich vytvoriť ako prvé. Následne je ich možné pridať v tomto projekte. is_enabled_globally: "Je povolené globálne" @@ -645,6 +654,8 @@ sk: uid: "ID klienta" secret: "Klient neverejné" owner: "Vlastník" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Presmerovať URI" client_credentials_user_id: "ID poverenia klienta" scopes: "Rozsahy" @@ -816,6 +827,7 @@ sk: blank: "nemôže byť prázdne." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Pracovný balíček nemôže byť previazaný na žiadny zo svojich podriadenými balíčkov." circular_dependency: "Tento vzťah by vytvoril cyklickú závislosť." confirmation: "%{attribute} sa nezhoduje." @@ -889,6 +901,10 @@ sk: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "Musí byť k dispozícii aspoň jedna možnosť." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) je povolená len jedna hodnota." empty: "(%{name}) hodnota nemôže byť prázdná." @@ -919,6 +935,8 @@ sk: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1116,7 +1134,7 @@ sk: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Musí obsahovať znaky z nasledujúcich tried (najmenej%{min_count} z %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "malé písmená (napríklad \"a\")" uppercase: "veľké písmená (napríklad \"A\")" numeric: "Čísla (napríklad 1)" @@ -1700,7 +1718,7 @@ sk: error_menu_item_not_saved: Položku sa nepodarilo uložiť error_wiki_root_menu_item_conflict: > Nie je možné premenovať "%{old_name}" na "%{new_name}" kvôli konfliktu vo výslednej položke menu s existujúcou položkou menu "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atribút(y), ktoré nie je možné zvýrazniť: %{attributes}" events: changeset: "Sada zmien upravená" @@ -1872,7 +1890,7 @@ sk: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1981,7 +1999,8 @@ sk: label_additional_workflow_transitions_for_assignee: "Povolené dodatočné prechody, pokiaľ je užívateľ priradený" label_additional_workflow_transitions_for_author: "Povolené dodatočné prechody, pokiaľ je užívateľ autorom" label_administration: "Administrácia" - label_advanced_settings: "Rozšírené nastavenia" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Vek" label_ago: "dní späť" label_all: "Všetky" @@ -2014,6 +2033,7 @@ sk: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Autentifikácia" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2086,6 +2106,7 @@ sk: label_copy_project: "Kópíruj projekt" label_core_version: "Základná verzia" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Aktuálny stav" label_current_version: "Aktuálna verzia" label_custom_field_add_no_type: "Pridať toto pole do typu pracovného balíčka" @@ -2093,6 +2114,7 @@ sk: label_custom_field_plural: "Vlastné polia" label_custom_field_default_type: "Prázdny typ" label_custom_style: "Návrh" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Dátum" @@ -2213,9 +2235,9 @@ sk: label_share: "Zdieľať" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Zobraziť/skryť" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Zobraziť všetkých registrovaných užívateľov" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Denník" label_journal_diff: "Porovnanie popisu" label_language: "Jazyk" @@ -2365,6 +2387,7 @@ sk: label_product_version: "Verzia produktu" label_profile: "Profil" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Projekt" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2550,7 +2573,6 @@ sk: label_work_package_new: "Nový pracovný balíček" label_work_package_edit: "Úprava pracovného balíčka %{name}" label_work_package_plural: "Pracovné balíčky" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Stav pracovného balíčka" label_work_package_status_new: "Nový stav" label_work_package_status_plural: "Stavy pracovného balíčka" @@ -3192,11 +3214,13 @@ sk: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Vlastnosti pracovného balíčka" @@ -3217,6 +3241,13 @@ sk: setting_password_min_length: "Minimálna dĺžka" setting_password_min_adhered_rules: "Minimálny počet požadovaných tried" setting_per_page_options: "Povolené množstvo položiek na stránku" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Len jednoduchý text (bez HTML)" setting_protocol: "Protokol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3584,7 +3615,6 @@ sk: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3599,9 +3629,9 @@ sk: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komentár" @@ -3793,12 +3823,16 @@ sk: close_warning: "Ignorovať toto upozornenie." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth aplikácia" plural: "OAuth aplikácie" named: "OAuth aplikácia '%{name}'" new: "Nová aplikácia OAuth" + non_confidential: Non confidential default_scopes: "(Predvolený rozsah)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Názov vašej aplikácie. Toto sa po autorizácii zobrazí ostatným používateľom." redirect_uri_html: > Povolené adresy URL môžu byť presmerované na oprávnených používateľov. Jeden záznam na riadok.
    Ak registrujete aplikáciu pre stolné počítače, použite nasledujúcu adresu URL. @@ -3807,6 +3841,10 @@ sk: client_credential_user_id: "Voliteľný používateľ, ktorý je súčasťou používania tejto aplikácie. Nechajte prázdne, ak chcete povoliť iba verejný prístup" register_intro: "Ak vyvíjate klientskú aplikáciu OAuth API pre OpenProject, môžete ju zaregistrovať pomocou tohto formulára pre všetkých používateľov." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID klienta" client_secret_notice: > Toto je jediný čas, kedy môžeme vytlačiť neverejné klientské údaje, berte to prosím na vedomie a zabezpečte to. Mali by ste s danými informáciami zaobchádzať ako s heslom, v neskoršej dobe dané údaje nie je možné načítať pomocou OpenProject. diff --git a/config/locales/crowdin/sl.yml b/config/locales/crowdin/sl.yml index 49aa1b0cd52c..56fc5ea9da30 100644 --- a/config/locales/crowdin/sl.yml +++ b/config/locales/crowdin/sl.yml @@ -31,6 +31,9 @@ sl: custom_styles: color_theme: "Barvna tema" color_theme_custom: "(Po meri)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ sl: contact: "Kontaktirajte nas za poskusno različico" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -201,6 +205,11 @@ sl: title: "Dejanja po meri" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Če želite projektu dodati nova polja po meri, jih morate najprej ustvariti, preden jih lahko dodate v ta projekt. is_enabled_globally: "Omogočeno po vsem svetu" @@ -642,6 +651,8 @@ sl: uid: "ID odjemalca" secret: "Skrivnost odjemalca" owner: "Lastnik" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Preusmeritev URI" client_credentials_user_id: "ID uporabnika poverilnic stranke" scopes: "Področja" @@ -813,6 +824,7 @@ sl: blank: "ne sme biti prazno." blank_nested: "mora imeti nastavljeno lastnost '%{property}'." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Zahtevek ne more biti povezan s svojo podnalogo" circular_dependency: "Ta povezava bi ustvarila krožno odvisnost." confirmation: "se ne ujema %{attribute}" @@ -886,6 +898,10 @@ sl: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "Na voljo mora biti vsaj ena možnost." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) dovoljena je samo ena vrednost." empty: "(%{name}) vrednost ne more biti prazna. " @@ -916,6 +932,8 @@ sl: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1113,7 +1131,7 @@ sl: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Vsebovati mora znake naslednjih razredov (vsaj %{min_count} od %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "mala črka (npr. \"a\")" uppercase: "velika črka (npr. \"A\")" numeric: "številke (npr. '1')" @@ -1502,8 +1520,8 @@ sl: - "avgust" - "september" - "oktober" - - "november" - - "december" + - "November" + - "December" order: - :leto - :mesec @@ -1697,7 +1715,7 @@ sl: error_menu_item_not_saved: Datoteke ni mogoče shraniti error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Med zunanjo overitvijo je prišlo do napake. Prosim poskusite ponovno." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Atribut(i) niso označljivi: %{attributes}" events: changeset: "Sprememba je bila urejena" @@ -1869,7 +1887,7 @@ sl: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1978,7 +1996,8 @@ sl: label_additional_workflow_transitions_for_assignee: "Dovoljeni so tako dodatni prehodi, kadar je uporabnik prejemnik" label_additional_workflow_transitions_for_author: "Dovoljeni so dodatni prehodi, ko je uporabnik avtor" label_administration: "Administracija" - label_advanced_settings: "Napredne nastavitve" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Starost" label_ago: "pred dnevi" label_all: "vsi" @@ -2011,6 +2030,7 @@ sl: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Avtentikacija" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Razpoložljivi forumi" @@ -2083,6 +2103,7 @@ sl: label_copy_project: "Kopiraj projekt" label_core_version: "Osnovna različica" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Trenutno stanje" label_current_version: "Trenutna različica" label_custom_field_add_no_type: "To polje dodajte v tip delovnega paketa" @@ -2090,6 +2111,7 @@ sl: label_custom_field_plural: "Polja po meri" label_custom_field_default_type: "Prazen tip" label_custom_style: "Oblika" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Nadzorna plošča" label_database_version: "PostgreSQL verzija" label_date: "Datum" @@ -2210,9 +2232,9 @@ sl: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Pokaži / skrij" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Prikaži vse registrirane uporabnike" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Dnevnik" label_journal_diff: "Opisna Primerjava" label_language: "Jezik" @@ -2362,6 +2384,7 @@ sl: label_product_version: "Različica izdelka" label_profile: "Profil" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Projekt" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2547,7 +2570,6 @@ sl: label_work_package_new: "Nov delovni paket" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Delovni paketi" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Stanje delovnega paketa" label_work_package_status_new: "Novo stanje" label_work_package_status_plural: "Status delovnega paketa" @@ -3189,11 +3211,13 @@ sl: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "aktivacijsko e-poštno sporočilo poteče po" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Lastnosti delovnega paketa" @@ -3214,6 +3238,13 @@ sl: setting_password_min_length: "Minimalna dolžina" setting_password_min_adhered_rules: "Minimalno število potrebnih razredov" setting_per_page_options: "Možnosti predmetov na stran" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Navadna besedilna pošta (brez HTML-ja)\n" setting_protocol: "Protokol" setting_project_gantt_query: "Projektni portfelj gantogram\n" @@ -3581,7 +3612,6 @@ sl: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3596,9 +3626,9 @@ sl: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Komentar" @@ -3790,12 +3820,16 @@ sl: close_warning: "Ignorirajte to opozorilo.\n" oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Aplikacija OAuth" plural: "Aplikacija OAuth" named: "OAuth aplikacija '%{name}'" new: "Nova OAuth aplikacija" + non_confidential: Non confidential default_scopes: "(Privzeti obsegi)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Ime vaše prijave. To bo prikazano drugim uporabnikom po odobritvi." redirect_uri_html: > Dovoljene uporabnike lahko preusmerimo na dovoljene URL-je. En vnos na vrstico.
    Če registrirate aplikacijo za namizje, uporabite naslednji URL. @@ -3804,6 +3838,10 @@ sl: client_credential_user_id: "Izbirni ID uporabnika, da se predstavi, ko stranke uporabljajo to aplikacijo. Pustite prazno, če želite omogočiti samo javni dostop\n" register_intro: "Če razvijate odjemalsko aplikacijo API OAuth za OpenProject, jo lahko registrirate s tem obrazcem za vse uporabnike." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID odjemalca" client_secret_notice: > To je edini čas, ko lahko natisnemo skrivnost stranke. Prosimo, zapišite jo in ohranite varno. To bi moralo biti obravnavano kot geslo in ga OpenProject ne more pozneje pridobiti. diff --git a/config/locales/crowdin/sr.yml b/config/locales/crowdin/sr.yml index 0bfb737ae722..5c9b28b3b34c 100644 --- a/config/locales/crowdin/sr.yml +++ b/config/locales/crowdin/sr.yml @@ -31,6 +31,9 @@ sr: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ sr: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ sr: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -638,6 +647,8 @@ sr: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -809,6 +820,7 @@ sr: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -882,6 +894,10 @@ sr: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -912,6 +928,8 @@ sr: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1109,7 +1127,7 @@ sr: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1665,7 +1683,7 @@ sr: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1837,7 +1855,7 @@ sr: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1946,7 +1964,8 @@ sr: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1979,6 +1998,7 @@ sr: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2051,6 +2071,7 @@ sr: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2058,6 +2079,7 @@ sr: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2178,9 +2200,9 @@ sr: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2330,6 +2352,7 @@ sr: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2515,7 +2538,6 @@ sr: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3156,11 +3178,13 @@ sr: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3181,6 +3205,13 @@ sr: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3547,7 +3578,6 @@ sr: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3562,9 +3592,9 @@ sr: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3756,12 +3786,16 @@ sr: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3770,6 +3804,10 @@ sr: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/sv.yml b/config/locales/crowdin/sv.yml index 1f128ec4c21d..e88000f8f6e3 100644 --- a/config/locales/crowdin/sv.yml +++ b/config/locales/crowdin/sv.yml @@ -31,6 +31,9 @@ sv: custom_styles: color_theme: "Färgtema" color_theme_custom: "(Anpassad)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ sv: contact: "Kontakta oss för en demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Vänligen uppgradera till en betalplan för att aktivera och börja använda den i ditt team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ sv: title: "Anpassade åtgärder" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Innan du kan lägga till nya anpassade fält till ett projekt måste du skapa dessa. is_enabled_globally: "Är aktiverad globalt" @@ -630,6 +639,8 @@ sv: uid: "Client ID" secret: "Client secret" owner: "Ägare" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Omdirigerings-URI" client_credentials_user_id: "Användar-ID klientreferenser" scopes: "Omfattning" @@ -801,6 +812,7 @@ sv: blank: "kan inte vara tomt." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Ett arbetspaket kan inte kopplas till någon av dess underaktiviteter." circular_dependency: "Detta förhållande skulle skapa ett cirkelberoende." confirmation: "matchar inte %{attribute}." @@ -874,6 +886,10 @@ sv: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "Minst ett alternativ måste vara tillgängligt." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) endast ett värde är tillåtet." empty: "(%{name}) värdet kan inte vara tomt." @@ -904,6 +920,8 @@ sv: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1101,7 +1119,7 @@ sv: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Måste innehålla följande teckentyper (minst %{min_count} av %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "gemener (t.ex. \"a\")" uppercase: "versal (t.ex. \"A\")" numeric: "numeriska (t.ex. ' 1')" @@ -1629,7 +1647,7 @@ sv: error_menu_item_not_saved: Menyobjektet kunde inte sparas error_wiki_root_menu_item_conflict: > Kan inte ändra från "%{old_name}" till "%{new_name}" på grund av en konflikt med det befintliga menyalternativet "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribut(en) kan inte markeras: %{attributes}" events: changeset: "Uppdatering redigerades" @@ -1801,7 +1819,7 @@ sv: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1910,7 +1928,8 @@ sv: label_additional_workflow_transitions_for_assignee: "Ytterligare övergångar tillåtna när användaren är tilldelad" label_additional_workflow_transitions_for_author: "Ytterligare övergångar tillåtna när användaren är författaren" label_administration: "Administration" - label_advanced_settings: "Avancerade inställningar" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Ålder" label_ago: "dagar sedan" label_all: "alla" @@ -1943,6 +1962,7 @@ sv: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Autentisering" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Tillgängliga forum" @@ -2015,6 +2035,7 @@ sv: label_copy_project: "Kopiera projekt" label_core_version: "Kärnversion" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Nuvarande status" label_current_version: "Aktuell version" label_custom_field_add_no_type: "Lägg till det här fältet till en arbetspaketstyp" @@ -2022,6 +2043,7 @@ sv: label_custom_field_plural: "Anpassade fält" label_custom_field_default_type: "Tom typ" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Översikt" label_database_version: "PostgreSQL version" label_date: "Datum" @@ -2142,9 +2164,9 @@ sv: label_share: "Dela" label_share_project_list: "Dela projektlista" label_share_work_package: "Share work package" - label_show_hide: "Visa/Dölj" - label_show_hide_n_items: "Visa/dölj %{count} objekt" label_show_all_registered_users: "Visa alla registrerade användare" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Jämför beskrivning" label_language: "Språk" @@ -2294,6 +2316,7 @@ sv: label_product_version: "Produktversion" label_profile: "Profil" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Projekt" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2479,7 +2502,6 @@ sv: label_work_package_new: "Nytt arbetspaket" label_work_package_edit: "Redigera arbetspaket %{name}" label_work_package_plural: "Arbetspaket" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Arbetspaketstatus" label_work_package_status_new: "Ny status" label_work_package_status_plural: "Arbetspaketstatus" @@ -3116,11 +3138,13 @@ sv: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Aktiveringsmail upphör efter" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Egenskaper för arbetspaket" @@ -3141,6 +3165,13 @@ sv: setting_password_min_length: "Minsta längd" setting_password_min_adhered_rules: "Minsta antal teckenklasser som krävs" setting_per_page_options: "Objekt per sida alternativ" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Oformaterad text i e-post (ingen HTML)" setting_protocol: "Protokoll" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3505,7 +3536,6 @@ sv: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3520,9 +3550,9 @@ sv: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Kommentar" @@ -3714,12 +3744,16 @@ sv: close_warning: "Bortse från denna varning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth-autentisering" plural: "OAuth applikationer" named: "OAuth applikationen '%{name}'" new: "Ny OAuth applikation" + non_confidential: Non confidential default_scopes: "(Standardomfattning)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Namnet på din applikation. Detta kommer att visas för andra användare vid auktorisering." redirect_uri_html: > De tillåtna URL: erna kan omdirigeras till. En post per rad.
    Om du registrerar ett skrivbordsprogram, använd följande URL. @@ -3728,6 +3762,10 @@ sv: client_credential_user_id: "Valfritt användar-ID att efterlikna när klienter använder det här programmet. Lämna tomt för att endast tillåta publik åtkomst" register_intro: "Om du utvecklar en OAuth API-klientapplikation för OpenProject, kan du registrera den med hjälp av detta formulär för alla användare att använda." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > Detta är den enda gången vi kan skriva ut klienten hemligt, notera det och hålla det säkert. Det bör behandlas som ett lösenord och kan inte hämtas av OpenProject vid ett senare tillfälle. diff --git a/config/locales/crowdin/th.yml b/config/locales/crowdin/th.yml index bb6836ae7fd9..f49c73f3556e 100644 --- a/config/locales/crowdin/th.yml +++ b/config/locales/crowdin/th.yml @@ -31,6 +31,9 @@ th: custom_styles: color_theme: "สีของรูปแบบ" color_theme_custom: "ตั้งค่าเอง" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ th: contact: "ติดต่อเราสำหรับการสาธิต" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ th: title: "การกระทำ กำหนดเอง" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -624,6 +633,8 @@ th: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -795,6 +806,7 @@ th: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -868,6 +880,10 @@ th: minimum: "ต้องมีตัวกรองอย่างน้อยหนึ่งตัวสำหรับตัวการ บริบท หรือรหัสที่มีตัวดำเนินการ '=' " custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -898,6 +914,8 @@ th: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1095,7 +1113,7 @@ th: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "ตัวพิมพ์เล็ก (เช่น 'a')" uppercase: "ตัวพิมพ์ใหญ่ (เช่น ' A')" numeric: "ตัวเลข (เช่น ' 1')" @@ -1595,7 +1613,7 @@ th: error_menu_item_not_saved: ไม่สามารถบันทึกรายการเมนูได้ error_wiki_root_menu_item_conflict: > ไม่สามารถเปลี่ยนชื่อ "%{old_name}" เป็น "%{new_name}" ได้เนื่องจากขัดแย้งกับรายการเมนูที่มีอยู่แล้ว "%{existing_caption}" (%{existing_identifier}) - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "แก้ไขชุดการเปลี่ยนแปลงแล้ว" @@ -1767,7 +1785,7 @@ th: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1876,7 +1894,8 @@ th: label_additional_workflow_transitions_for_assignee: "ยินยอมให้มีการเปลี่ยนแปลงได้เพิ่มขึ้นเมื่อผู้ใช้เป็นผู้ได้รับมอบหมายความรับผิดชอบ" label_additional_workflow_transitions_for_author: "ยินยอมให้มีการเปลี่ยนแปลงได้เพิ่มขึ้นเมื่อผู้ใช้เป็นผู้สร้าง" label_administration: "การจัดการระบบ" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "ระยะเวลา" label_ago: "วันที่ผ่านมา" label_all: "ทั้งหมด" @@ -1909,6 +1928,7 @@ th: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "การระบุตัวตนผู้ใช้" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -1981,6 +2001,7 @@ th: label_copy_project: "คัดลอกโครงการ" label_core_version: "เวอร์ชั่นหลัก" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "สถานะปัจจุบัน" label_current_version: "เวอร์ชันปัจจุบัน" label_custom_field_add_no_type: "Add this field to a work package type" @@ -1988,6 +2009,7 @@ th: label_custom_field_plural: "ฟิลด์ที่กำหนดเอง" label_custom_field_default_type: "ชนิดว่าง" label_custom_style: "การออกแบบ" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "วันที่" @@ -2108,9 +2130,9 @@ th: label_share: "แชร์" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "แสดง/ซ่อน" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "บันทึก" label_journal_diff: "เปรียบเทียบคำอธิบาย" label_language: "ภาษา" @@ -2260,6 +2282,7 @@ th: label_product_version: "Product version" label_profile: "ข้อมูลส่วนตัว" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "โครงการ" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2445,7 +2468,6 @@ th: label_work_package_new: "ชุดภารกิจใหม่" label_work_package_edit: "แก้ไขชุดภารกิจ %{name}" label_work_package_plural: "ชุดภารกิจ" - label_work_packages_settings: "Work packages settings" label_work_package_status: "สถานะของชุดภารกิจ" label_work_package_status_new: "สถานะใหม่" label_work_package_status_plural: "สถานะของชุดภารกิจ" @@ -3082,11 +3104,13 @@ th: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "คุณสมบัติของชุดภารกิจ" @@ -3107,6 +3131,13 @@ th: setting_password_min_length: "จำนวนตัวอักษรขั้นต่ำ" setting_password_min_adhered_rules: "จำนวน class ขั้นต่ำที่จำเป็น" setting_per_page_options: "ตัวเลือกออบเจคต่อหน้าเพจ" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "จดหมายข้อความล้วน (ไม่ใช้ HTML)" setting_protocol: "โปรโทคอล" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3471,7 +3502,6 @@ th: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3486,9 +3516,9 @@ th: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "ความคิดเห็น" @@ -3680,12 +3710,16 @@ th: close_warning: "ไม่สนใจคำเตือนนี้" oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3694,6 +3728,10 @@ th: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/tr.yml b/config/locales/crowdin/tr.yml index c88a7ed1fa99..fb1ed3f91c8d 100644 --- a/config/locales/crowdin/tr.yml +++ b/config/locales/crowdin/tr.yml @@ -31,6 +31,9 @@ tr: custom_styles: color_theme: "Renk teması" color_theme_custom: "(Özel)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ tr: contact: "Demo için bizimle iletişime geçin" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Etkinleştirmek ve ekibinizde kullanmaya başlamak için lütfen ücretli bir plana yükseltin." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Bir kullanıcının bireysel eylemleri (örneğin, bir iş paketini iki kez güncelleme), yaş farkı belirtilen zaman aralığından azsa tek bir eylemde toplanır. Uygulama içinde tek bir eylem olarak görüntülenecektir. Bu aynı zamanda gönderilen e-posta sayısını azaltarak bildirimleri aynı süre kadar geciktirecek ve ayrıca %{webhook_link} gecikmesini etkileyecektir." @@ -202,6 +206,11 @@ tr: title: "Özel eylemler" description: "Özel eylemler, duruma, role, türe veya projeye göre belirli iş paketlerinde kullanıma sunabileceğiniz bir dizi önceden tanımlanmış eylemin tek tıkla kısayollarıdır." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Bir projeye yeni özel alanlar eklemeden önce onları oluşturmalısınız. is_enabled_globally: "Genel için etkinleştirildi" @@ -630,6 +639,8 @@ tr: uid: "Müşteri Kimliği" secret: "Müşteri gizliliği" owner: "Ürün Sahibi" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Yönlendirme URI'si" client_credentials_user_id: "Müşteri Kimlik Bilgileri ve Kullanıcı Kimliği gereklidir" scopes: "Kapsamlar" @@ -801,6 +812,7 @@ tr: blank: "boş bırakılamaz." blank_nested: "'%{property}' özelliğinin ayarlanmış olması gerekir." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "İş paketi alt görevlerinden birine bağlanamaz." circular_dependency: "Bu ilişki döngüsel bağımlılık oluşturacak." confirmation: "%{attribute} eşleşmiyor." @@ -874,6 +886,10 @@ tr: minimum: "'=' işleci ile ilke, bağlam veya kimlik için en az bir filtre içermesi gerekir." custom_field: at_least_one_custom_option: "En az bir seçeneğin uygun olması gerekir." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) yalnızca bir değer verilir." empty: "(%{name}) değeri boş olamaz." @@ -904,6 +920,8 @@ tr: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Bildirim göndermek için en az bir kanal belirtilmelidir." attributes: @@ -1101,7 +1119,7 @@ tr: confirmation: "Parola onayı parolayla eşleşmiyor." format: "%{message}" password: - weak: "Aşağıdaki sınıfların karakterlerini içermelidir (en az% {min_count} /% {all_count}):% {rules}. %{min_count} %{all_count} %{rules} " + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "küçük harf (örneğin 'a')" uppercase: "büyük harf (örneğin 'A')" numeric: "rakam (örneğin '1')" @@ -1229,7 +1247,7 @@ tr: base: "Genel Hata:" blocks_ids: "Engellenen iş paketlerinin ID'leri" category: "Kategori" - comment: "Yorumlar" + comment: "Yorum" comments: "Yorum" content: "İçerik" color: "Renk" @@ -1629,7 +1647,7 @@ tr: error_menu_item_not_saved: Menü öğesi kaydedilemez error_wiki_root_menu_item_conflict: > Var olan menü üyesi "%{existing_caption}" (%{existing_identifier}) ile çakıştığından, "%{old_name}" adı "%{new_name}" olarak değiştirilemiyor. - error_external_authentication_failed: "Harici kimlik doğrulama sırasında bir hata oluştu. Lütfen tekrar deneyin." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Nitelikler vurgulanmıyor: %{attributes}" events: changeset: "Değişiklikler düzenlendi" @@ -1801,7 +1819,7 @@ tr: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1910,7 +1928,8 @@ tr: label_additional_workflow_transitions_for_assignee: "Kullanıcı atanan olduğu zaman tanınacak ek yetkiler" label_additional_workflow_transitions_for_author: "Kullanıcı oluşturan olduğunda izin verilen ek geçişler" label_administration: "Yönetim" - label_advanced_settings: "Gelişmiş ayarlar" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Yaş" label_ago: "gün önce" label_all: "tüm" @@ -1943,6 +1962,7 @@ tr: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Kimlik Doğrulaması" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Mevcut forumlar" @@ -2015,6 +2035,7 @@ tr: label_copy_project: "Projeyi kopyala" label_core_version: "Çekirdek sürümü" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Mevcut durum" label_current_version: "Mevcut sürüm" label_custom_field_add_no_type: "Bu alanı bir iş paketi türüne ekleyin" @@ -2022,6 +2043,7 @@ tr: label_custom_field_plural: "Özel alanlar" label_custom_field_default_type: "Boş tür" label_custom_style: "Tasarım" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Gösterge paneli" label_database_version: "PostgreSQL sürümü" label_date: "Tarih" @@ -2142,9 +2164,9 @@ tr: label_share: "Paylaş" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Göster/gizle" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Tüm kayıtlı kullanıcıları göster" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Günlük" label_journal_diff: "Açıklama Karşılaştırması" label_language: "Dil" @@ -2294,6 +2316,7 @@ tr: label_product_version: "Ürün sürümü" label_profile: "Profil" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Proje" label_project_activity: "Proje etkinliği" label_project_attribute_plural: "Proje öznitelikleri" @@ -2479,7 +2502,6 @@ tr: label_work_package_new: "Yeni iş paketi" label_work_package_edit: "%{name} iş paketini düzenle" label_work_package_plural: "İş paketleri" - label_work_packages_settings: "Work packages settings" label_work_package_status: "İş paketi durumu" label_work_package_status_new: "Yeni durum" label_work_package_status_plural: "İş paketi durumları" @@ -3115,11 +3137,13 @@ tr: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Etkinleştirme e-postasının süresi doluyor" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "İş paketi özellikleri" @@ -3140,6 +3164,13 @@ tr: setting_password_min_length: "Minimum uzunluk" setting_password_min_adhered_rules: "Minimum zorunlu ders sayısı" setting_per_page_options: "Sayfa başı nesne seçenekleri" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Düz metin postası (HTML yok)" setting_protocol: "Protokol" setting_project_gantt_query: "Proje portföyü Gantt görünümü" @@ -3504,7 +3535,6 @@ tr: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3519,9 +3549,9 @@ tr: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Yorum" @@ -3713,12 +3743,16 @@ tr: close_warning: "Bu uyarıyı yoksay." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth uygulaması" plural: "OAuth uygulamaları" named: "Oauth uygulaması %{name}" new: "Yeni OAuth uygulaması" + non_confidential: Non confidential default_scopes: "(Varsayılan kapsamlar)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Uygulamanızın adı. Bu, yetkilendirildikten sonra diğer kullanıcılara gösterilecektir." redirect_uri_html: > İzin verilen URL'ler yetkili kullanıcılar adresine yönlendirilebilir. Her satıra bir giriş.
    Bir masaüstü uygulamasına kaydoluyorsanız, aşağıdaki URL'yi kullanın. @@ -3727,6 +3761,10 @@ tr: client_credential_user_id: "İstemciler bu uygulamayı kullandıklarında kimliğe bürünmek için isteğe bağlı kullanıcı kimliği. Yalnızca genel erişime izin vermek için boş bırakın" register_intro: "OpenProject için bir OAuth API istemci uygulaması geliştiriyorsanız, tüm kullanıcıların kullanması için bu formu kullanarak kayıt olabilirsiniz." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Müşteri Kimliği" client_secret_notice: > Müşterinin sırrını basabileceğimiz tek zaman bu, lütfen not edin ve güvende tutun. Parola olarak değerlendirilmeli ve daha sonra OpenProject tarafından alınamaz. diff --git a/config/locales/crowdin/uk.yml b/config/locales/crowdin/uk.yml index df4a6b28eacc..61c4427f9dcb 100644 --- a/config/locales/crowdin/uk.yml +++ b/config/locales/crowdin/uk.yml @@ -31,6 +31,9 @@ uk: custom_styles: color_theme: "Колірна тема" color_theme_custom: "(Власний)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Основна кнопка" accent-color: "Акцент" @@ -79,6 +82,7 @@ uk: contact: "Зв’яжіться з нами, щоб отримати демоверсію" enterprise_info_html: "– це доповнення версії Enterprise ." upgrade_info: "Перейдіть на платний план, щоб активувати його та почати використовувати його у своїй команді." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Окремі дії користувача (напр., оновлення робочого пакета двічі) зводяться в одну дію, якщо відмінність у часі між ними менша за вказаний проміжок часу. Їх буде виведено як окремі дії в межах додатка. Крім того, це призведе до затримки сповіщень на такий самий проміжок часу, що зменшить кількість електронних листів, які надсилатимуться, а також вплине на затримку %{webhook_link}." @@ -197,6 +201,11 @@ uk: title: "Власні дії" description: "Користувацькі дії – це ярлики набору попередньо визначених дій, які ви можете включати в певні пакети робіт залежно від статусу, ролі, типу або проєкту." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: Для всіх проєктів + description: Це користувацьке поле активовано в усіх проєктах, оскільки встановлено прапорець «Для всіх проєктів». Його не можна деактивувати для окремих проєктів. text_add_new_custom_field: > Щоб додати нові користувальницькі поля до проекту, спочатку потрібно створити їх, перш ніж ви зможете додати їх до цього проекту. is_enabled_globally: "Увімкнено у всьому світі" @@ -639,6 +648,8 @@ uk: uid: "Ідентифікатор клієнта" secret: "Секретний ключ клієнта" owner: "Власник" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Перенаправити URI (Automatic Translation)" client_credentials_user_id: "Ідентифікатор користувача для облікових даних клієнта" scopes: "Область дії" @@ -810,6 +821,7 @@ uk: blank: "не може бути порожнім." blank_nested: "– потрібно встановити властивість «%{property}»." cannot_delete_mapping: "– обов’язкове. Неможливо видалити." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Робочий пакет не може бути пов'язаний з одним з підзадач." circular_dependency: "Це співвідношення створить кругову залежність." confirmation: "не збігається %{attribute}" @@ -883,6 +895,10 @@ uk: minimum: "має містити принаймні один фільтр для адміністратора доступу, контексту або адміністратора з оператором «=»." custom_field: at_least_one_custom_option: "Необхідно мати принаймні один варіант." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) дозволено лише одне значення." empty: "(%{name}) значення не може бути порожнім." @@ -913,6 +929,8 @@ uk: name: blank: "– обов’язковий атрибут. Виберіть ім’я." not_unique: "уже використовується. Виберіть інше ім’я." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Необхідно вказати принаймні один канал для надсилання сповіщень." attributes: @@ -1110,7 +1128,7 @@ uk: confirmation: "Підтвердження пароля та пароль не збігаються." format: "%{message}" password: - weak: "Має містити символи наступних класів (принаймні %{min_count} з %{all_count}): %{rules}." + weak: "Має містити символи таких класів (принаймні %{min_count} з %{all_count}): %{rules}" lowercase: "нижній реєстр шрифту (наприклад, 'a')" uppercase: "верхній реєстр шрифту (наприклад, 'А')" numeric: "числовий (наприклад, '1')" @@ -1694,7 +1712,7 @@ uk: error_menu_item_not_saved: Не вдалося зберегти пункт меню error_wiki_root_menu_item_conflict: > Неможливо перейменувати %{old_name} для %{new_name} через конфлікт у результуючому пункті меню з існуючим пунктом меню %{existing_caption} %{existing_identifier} - error_external_authentication_failed: "Під час зовнішньої автентифікації сталася помилка. Повторіть спробу." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Атрибут(и) не виділено: %{attributes}" events: changeset: "Набір змін відредаговано" @@ -1866,7 +1884,7 @@ uk: progress_mode_changed_to_status_based: Установлено режим обчислення прогресу на основі статусу status_excluded_from_totals_set_to_false_message: тепер включено в підсумки ієрархії status_excluded_from_totals_set_to_true_message: тепер виключено з підсумків ієрархії - status_percent_complete_changed: "«% завершення» змінено з %{old_value}% на %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Тепер дії, пов’язані з посиланнями на файли (файли, що зберігаються в зовнішніх сховищах), з’являтимуться на вкладці «Активність». Наявні дії, пов’язані із посиланнями: @@ -1975,7 +1993,8 @@ uk: label_additional_workflow_transitions_for_assignee: "Додаткові переходи можна коли користувач є правонаступником" label_additional_workflow_transitions_for_author: "Додаткові переходи дозволені користувачу, який є автором" label_administration: "Адміністрування" - label_advanced_settings: "Розширені налаштування" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Вік" label_ago: "днів тому" label_all: "всі" @@ -2008,6 +2027,7 @@ uk: label_attribute_expand_text: "Повний текст для атрибута «%{attribute}»" label_authentication: "Автентифікація" label_authentication_settings: "Налаштування автентифікації" + label_available_custom_fields_projects: "Доступні проєкти з користувацькими полями" label_available_global_roles: "Доступні глобальні ролі" label_available_project_attributes: "Доступні атрибути проєкту" label_available_project_forums: "Доступні форуми" @@ -2080,6 +2100,7 @@ uk: label_copy_project: "Копіювати проект" label_core_version: "Версія ядра" label_core_build: "Збірка ядра" + label_created_by: "Created by %{user}" label_current_status: "Поточний статус" label_current_version: "Поточна версія" label_custom_field_add_no_type: "Додайте це поле до типу робочого пакета" @@ -2087,6 +2108,7 @@ uk: label_custom_field_plural: "Індивідуальні поля" label_custom_field_default_type: "Порожній тип" label_custom_style: "Дизайн" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Панель керування" label_database_version: "Версія PostgreSQL" label_date: "Дата" @@ -2199,7 +2221,7 @@ uk: label_index_by_title: "Індекс за назвою" label_information: "Інформація" label_information_plural: "Інформація" - label_installation_guides: "Інструкції із встановлення" + label_installation_guides: "Інструкції зі встановлення" label_integer: "Ціле число" label_internal: "Власне" label_introduction_video: "Введення відео" @@ -2207,9 +2229,9 @@ uk: label_share: "Поділитися" label_share_project_list: "Поділитися списком проєктів" label_share_work_package: "Поділитися пакетом робіт" - label_show_hide: "Показати сховати" - label_show_hide_n_items: "Показати / приховати елементи (%{count})" label_show_all_registered_users: "Усі зареєстровані користувачі" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Журнал" label_journal_diff: "Опис Порівняння" label_language: "Мова" @@ -2359,6 +2381,7 @@ uk: label_product_version: "Версія продукту" label_profile: "Профіль" label_percent_complete: "% завершення" + label_progress_tracking: "Progress tracking" label_project: "Проєкт" label_project_activity: "Дії в проєкті" label_project_attribute_plural: "Атрибути проєкту" @@ -2544,7 +2567,6 @@ uk: label_work_package_new: "Новий пакет робіт" label_work_package_edit: "Редагувати робочий пакет %{name}" label_work_package_plural: "Пакет робіт" - label_work_packages_settings: "Налаштування пакетів робіт" label_work_package_status: "Стан робочого пакета" label_work_package_status_new: "Новий статус" label_work_package_status_plural: "Статуси робочих пакетів" @@ -3184,11 +3206,13 @@ uk: setting_hours_per_day_explanation: >- Визначає, що вважати днем, якщо тривалість представлено в днях і годинах (наприклад, якщо день триває 8 годин, то 32 години – це 4 дні). setting_invitation_expiration_days: "Повідомлення про активацію закінчується" - setting_work_package_done_ratio: "Обчислення прогресу" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "На основі роботи" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "На основі статусу" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - У режимі на основі роботи значення атрибута «% завершення» залежить від частки виконаної роботи відносно загального обсягу робіт. У режимі на основі статусу кожен статус має пов’язане з ним значення атрибута «% завершення». У разі змінення статусу змінюється й значення атрибута «% завершення». + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > У режимі на основі роботи атрибут «% завершення» може мати будь-яке значення. Якщо визначено атрибут «Робота», з нього автоматично виводиться значення атрибута «Залишок роботи». У режимі на основі статусу кожен статус має пов’язане з ним значення атрибута «% завершення». У разі змінення статусу змінюється й значення атрибута «% завершення». setting_work_package_properties: "Властивості робочого пакета" @@ -3209,6 +3233,13 @@ uk: setting_password_min_length: "Мінімальна довжина" setting_password_min_adhered_rules: "Мінімальна кількість необхідних класів" setting_per_page_options: "Кількість записів на сторінку" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Простий текстовий лист (без HTML)" setting_protocol: "Протокол" setting_project_gantt_query: "Подання Ґанта портфеля проєкту " @@ -3575,7 +3606,6 @@ uk: label_note: "Примітка." modal: work_based_help_text: "Кожне поле автоматично обчислюється на основі двох інших, коли це можливо." - work_based_help_text_pre_14_4_without_percent_complete_edition: "Значення атрибута «% завершення» автоматично виводиться з атрибутів «Робота» й «Залишок роботи»." status_based_help_text: "Значення параметра «% завершення» визначається статусом пакета робіт." migration_warning_text: "У режимі обчислення прогресу на основі робіт значення параметра «% завершення» не можна встановити вручну й прив’язати до значення параметра «Робота». Наявне значення збережено, але його не можна змінити. Спочатку визначте параметр «Робота»." derivation_hints: @@ -3590,9 +3620,9 @@ uk: remaining_hours: cleared_because_work_is_empty: "Очищено, оскільки атрибут «Робота» пустий." cleared_because_percent_complete_is_empty: "Очищено, оскільки атрибут «% завершення» пустий." - decreased_like_work: "Зменшено на ту саму величину, що й атрибут «Робота»." + decreased_by_delta_like_work: "Зменшено на %{delta} відповідно до зміни атрибута «Робота»." derived: "Виведено з атрибутів «Робота» й «% завершення»." - increased_like_work: "Збільшено на ту саму величину, що й атрибут «Робота»." + increased_by_delta_like_work: "Збільшено на %{delta} відповідно до зміни атрибута «Робота»." same_as_work: "Збігається зі значенням атрибута «Робота»." permissions: comment: "Коментування" @@ -3784,12 +3814,16 @@ uk: close_warning: "Ігнорувати це попередження." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Програма OAuth" plural: "Програми OAuth" named: " Програми OAuth '%{name}'" new: "Нова програма OAuth" + non_confidential: Non confidential default_scopes: "(Області за умовчанням)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Назва вашої програми. Це буде показано іншим користувачам після авторизації." redirect_uri_html: > Дозволені URL-адреси, дозволені користувачам, можна перенаправити. Один запис на рядок.
    Якщо ви реєструєте настільну програму, використовуйте таку URL-адресу. @@ -3798,6 +3832,10 @@ uk: client_credential_user_id: "Необов'язковий ідентифікатор користувача, який видає себе, коли клієнти використовують цю програму. Залиште пустим, щоб дозволити лише загальний доступ" register_intro: "Якщо ви розробляєте клієнтське додаток OAuth для OpenProject, ви можете зареєструвати його, використовуючи цю форму для всіх користувачів." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Ідентифікатор клієнта" client_secret_notice: > Це єдиний раз, коли ми можемо надати клієнтську таємницю, зауважте її та збережіть її в безпеці. Він повинен розглядатися як пароль і не може бути отриманий OpenProject пізніше. diff --git a/config/locales/crowdin/uz.yml b/config/locales/crowdin/uz.yml index 82e864e4f92c..3dbdeef0e52f 100644 --- a/config/locales/crowdin/uz.yml +++ b/config/locales/crowdin/uz.yml @@ -31,6 +31,9 @@ uz: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -79,6 +82,7 @@ uz: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -202,6 +206,11 @@ uz: title: "Custom actions" description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -631,6 +640,8 @@ uz: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -802,6 +813,7 @@ uz: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -875,6 +887,10 @@ uz: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -905,6 +921,8 @@ uz: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1102,7 +1120,7 @@ uz: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1630,7 +1648,7 @@ uz: error_menu_item_not_saved: Menu item could not be saved error_wiki_root_menu_item_conflict: > Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: changeset: "Changeset edited" @@ -1802,7 +1820,7 @@ uz: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: @@ -1911,7 +1929,8 @@ uz: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -1944,6 +1963,7 @@ uz: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2016,6 +2036,7 @@ uz: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2023,6 +2044,7 @@ uz: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2143,9 +2165,9 @@ uz: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2295,6 +2317,7 @@ uz: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2480,7 +2503,6 @@ uz: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3119,11 +3141,13 @@ uz: setting_hours_per_day_explanation: >- This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_properties: "Work package properties" @@ -3144,6 +3168,13 @@ uz: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3509,7 +3540,6 @@ uz: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3524,9 +3554,9 @@ uz: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3718,12 +3748,16 @@ uz: close_warning: "Ignore this warning." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line.
    If you're registering a desktop application, use the following URL. @@ -3732,6 +3766,10 @@ uz: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. diff --git a/config/locales/crowdin/vi.yml b/config/locales/crowdin/vi.yml index d2aac83e7434..5bea90aa0b48 100644 --- a/config/locales/crowdin/vi.yml +++ b/config/locales/crowdin/vi.yml @@ -31,6 +31,9 @@ vi: custom_styles: color_theme: "Màu sắc giao diện" color_theme_custom: "(Tùy chỉnh)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Nút chính" accent-color: "Nhấn mạnh" @@ -79,6 +82,7 @@ vi: contact: "Liên hệ với chúng tôi để có buổi demo" enterprise_info_html: "là một tiện ích bổ sung Enterprise ." upgrade_info: "Vui lòng nâng cấp lên gói trả phí để kích hoạt và bắt đầu sử dụng nó trong nhóm của bạn." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Các hành động cá nhân của người dùng (ví dụ: cập nhật một công việc hai lần) được gộp thành một hành động nếu thời gian chênh lệch giữa chúng nhỏ hơn khoảng thời gian được chỉ định. Chúng sẽ được hiển thị dưới dạng một hành động duy nhất trong ứng dụng. Điều này cũng sẽ trì hoãn thông báo cùng một khoảng thời gian giảm số lượng email được gửi và cũng sẽ ảnh hưởng đến độ trễ %{webhook_link}." @@ -204,6 +208,11 @@ vi: title: "Hành động tùy chỉnh" description: "Hành động tùy chỉnh là các phím tắt một lần để thực hiện một tập hợp các hành động đã được định trước mà bạn có thể làm cho sẵn có trên các gói công việc nhất định dựa trên trạng thái, vai trò, loại hoặc dự án." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. text_add_new_custom_field: > Để thêm các trường tùy chỉnh mới vào một dự án, trước tiên bạn cần tạo chúng trước khi có thể thêm vào dự án này. is_enabled_globally: "Được bật toàn cầu" @@ -626,6 +635,8 @@ vi: uid: "ID Khách hàng" secret: "Bí mật khách hàng" owner: "Người sở hữu" + builtin: "Builtin" + enabled: "Active" redirect_uri: "URI đổi hướng" client_credentials_user_id: "ID người dùng thông tin xác thực của khách hàng" scopes: "Phạm vi" @@ -797,6 +808,7 @@ vi: blank: "không được để trống" blank_nested: "cần có thuộc tính '%{property}' được thiết lập." cannot_delete_mapping: "là bắt buộc. Không thể xóa." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "Một gói công việc không thể liên kết với một trong các nhiệm vụ con của nó." circular_dependency: "Mối quan hệ này sẽ tạo ra một sự phụ thuộc tuần hoàn." confirmation: "không khớp %{attribute}." @@ -870,6 +882,10 @@ vi: minimum: "cần bao gồm ít nhất một bộ lọc cho principal, context hoặc id với toán tử '='." custom_field: at_least_one_custom_option: "Ít nhất một lựa chọn cần phải được cung cấp." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) chỉ có một giá trị được cho phép." empty: "giá trị (%{name}) không thể để trống." @@ -900,6 +916,8 @@ vi: name: blank: "là bắt buộc. Vui lòng chọn một tên." not_unique: "đã được sử dụng. Vui lòng chọn một tên khác." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "Cần chỉ định ít nhất một kênh để gửi thông báo." attributes: @@ -1097,7 +1115,7 @@ vi: confirmation: "Xác nhận mật khẩu không khớp với mật khẩu." format: "%{message}" password: - weak: "Phải chứa các ký tự thuộc các lớp sau (ít nhất %{min_count} trong số %{all_count}): %{rules}." + weak: "Phải chứa các ký tự của các lớp sau (ít nhất %{min_count} trong số %{all_count}): %{rules}" lowercase: "chữ thường (ví dụ như 'a')" uppercase: "chữ hoa (ví dụ như ' A')" numeric: "số (ví dụ như ' 1')" @@ -1597,7 +1615,7 @@ vi: error_menu_item_not_saved: Không thể lưu mục trình đơn error_wiki_root_menu_item_conflict: > Không thể đổi tên "%{old_name}" thành "%{new_name}" do có xung đột giữa mục menu kết quả với mục menu hiện tại "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "Đã xảy ra lỗi trong quá trình xác thực bên ngoài. Vui lòng thử lại." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Thuộc tính(s) không thể tô sáng: %{attributes}" events: changeset: "Đã chỉnh sửa Changeset (bộ thay đổi)" @@ -1769,7 +1787,7 @@ vi: progress_mode_changed_to_status_based: Chế độ tính toán tiến độ đã được đặt thành chế độ dựa trên trạng thái status_excluded_from_totals_set_to_false_message: hiện được bao gồm trong tổng số phân cấp status_excluded_from_totals_set_to_true_message: hiện bị loại trừ khỏi tổng số phân cấp - status_percent_complete_changed: "Phần trăm hoàn thành đã thay đổi từ %{old_value}% thành %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > Từ giờ trở đi, hoạt động liên quan đến liên kết tệp (các tệp lưu trữ bên ngoài) sẽ xuất hiện ở đây trong tab Hoạt động. Các hoạt động sau đây liên quan đến các liên kết đã tồn tại: @@ -1878,7 +1896,8 @@ vi: label_additional_workflow_transitions_for_assignee: "Chuyển đổi bổ sung được cho phép khi người sử dụng là người được gán" label_additional_workflow_transitions_for_author: "Các chuyển đổi bổ xung được phép khi người dùng là tác giả" label_administration: "Quản trị" - label_advanced_settings: "Cài đặt nâng cao" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Tuổi" label_ago: "vài ngày trước" label_all: "tất cả" @@ -1911,6 +1930,7 @@ vi: label_attribute_expand_text: "Văn bản đầy đủ cho '%{attribute}'" label_authentication: "Xác thực" label_authentication_settings: "Cài đặt xác thực" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Các vai trò toàn cầu có sẵn" label_available_project_attributes: "Các thuộc tính dự án có sẵn" label_available_project_forums: "Các diễn đàn dự án có sẵn" @@ -1983,6 +2003,7 @@ vi: label_copy_project: "Sao chép dự án" label_core_version: "Phiên bản lõi" label_core_build: "Xây dựng lõi" + label_created_by: "Created by %{user}" label_current_status: "Tình trạng hiện tại" label_current_version: "Phiên bản hiện tại" label_custom_field_add_no_type: "Thêm trường này vào một loại work package" @@ -1990,6 +2011,7 @@ vi: label_custom_field_plural: "Các trường tùy chỉnh" label_custom_field_default_type: "Kiểu rỗng" label_custom_style: "Thiết kế" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Bảng điều khiển" label_database_version: "Phiên bản PostgreSQL" label_date: "Ngày" @@ -2064,7 +2086,7 @@ vi: label_file_plural: "Tệp" label_filter_add: "Thêm bộ lọc" label_filter: "Bộ lọc" - label_filter_plural: "Các bộ lọc" + label_filter_plural: "Bộ lọc" label_filters_toggle: "Hiển thị/ẩn bộ lọc" label_float: "Số thực" label_folder: "Thư mục" @@ -2110,9 +2132,9 @@ vi: label_share: "Chia sẻ" label_share_project_list: "Chia sẻ danh sách dự án" label_share_work_package: "Chia sẻ gói công việc" - label_show_hide: "Hiển thị/ẩn" - label_show_hide_n_items: "Hiển thị/ẩn %{count} mục" label_show_all_registered_users: "Hiển thị tất cả người dùng đã đăng ký" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Nhật ký" label_journal_diff: "So sánh mô tả" label_language: "Ngôn ngữ" @@ -2262,6 +2284,7 @@ vi: label_product_version: "Phiên bản sản phẩm" label_profile: "Hồ sơ" label_percent_complete: "% Hoàn thành" + label_progress_tracking: "Progress tracking" label_project: "Dự án" label_project_activity: "Hoạt động dự án" label_project_attribute_plural: "Các thuộc tính dự án" @@ -2447,7 +2470,6 @@ vi: label_work_package_new: "Work package mới" label_work_package_edit: "Chỉnh sửa work package %{name}" label_work_package_plural: "Work Packages" - label_work_packages_settings: "Cài đặt gói công việc" label_work_package_status: "Trạng thái gói công việc" label_work_package_status_new: "Trạng thái mới" label_work_package_status_plural: "Tình trạng work package" @@ -3084,11 +3106,13 @@ vi: setting_hours_per_day_explanation: >- Điều này xác định cái gì được coi là một "ngày" khi hiển thị thời gian theo ngày và giờ (ví dụ, nếu một ngày là 8 giờ, 32 giờ sẽ là 4 ngày). setting_invitation_expiration_days: "Email kích hoạt hết hạn sau" - setting_work_package_done_ratio: "Tính toán tiến độ" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Dựa trên công việc" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Dựa trên trạng thái" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - Ở chế độ dựa trên công việc, % Hoàn thành được tính từ lượng công việc đã hoàn thành so với tổng công việc. Ở chế độ dựa trên trạng thái, mỗi trạng thái có giá trị % Hoàn thành liên quan đến nó. Thay đổi trạng thái sẽ thay đổi % Hoàn thành. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > Ở chế độ dựa trên công việc, % Hoàn thành có thể được tự do thiết lập thành bất kỳ giá trị nào. Nếu bạn tùy ý nhập giá trị cho Công việc, Công việc còn lại sẽ tự động được suy ra. Ở chế độ dựa trên trạng thái, mỗi trạng thái có giá trị % Hoàn thành được liên kết với nó. Thay đổi trạng thái sẽ thay đổi % Hoàn thành. setting_work_package_properties: "Thuộc tính gói công việc" @@ -3109,6 +3133,13 @@ vi: setting_password_min_length: "Độ dài tối thiểu" setting_password_min_adhered_rules: "Số lượng lớp yêu cầu tối thiểu" setting_per_page_options: "Tùy chọn số đối tượng trên mỗi trang" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Email văn bản thuần túy (không có HTML)" setting_protocol: "Giao thức" setting_project_gantt_query: "Xem Gantt của danh mục dự án" @@ -3472,7 +3503,6 @@ vi: label_note: "Ghi chú:" modal: work_based_help_text: "Mỗi trường sẽ được tự động tính toán dựa trên hai trường còn lại khi có thể." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Hoàn thành được tự động lấy từ Công việc và Công việc còn lại." status_based_help_text: "% Hoàn thành được thiết lập theo trạng thái của gói công việc." migration_warning_text: "Trong chế độ tính toán tiến độ dựa trên công việc, % Hoàn thành không thể được đặt thủ công và liên kết với Công việc. Giá trị hiện tại đã được giữ nhưng không thể chỉnh sửa. Vui lòng nhập Công việc trước." derivation_hints: @@ -3487,9 +3517,9 @@ vi: remaining_hours: cleared_because_work_is_empty: "Đã xóa vì Công việc đang trống." cleared_because_percent_complete_is_empty: "Đã xóa vì % Hoàn thành đang trống." - decreased_like_work: "Giảm cùng lượng với Công việc." + decreased_by_delta_like_work: "Giảm %{delta}, phù hợp với mức giảm trong Công việc." derived: "Được lấy từ Công việc và % Hoàn thành." - increased_like_work: "Tăng cùng lượng với Công việc." + increased_by_delta_like_work: "Tăng thêm %{delta}, tương ứng với mức tăng của Công việc." same_as_work: "Đặt thành giá trị giống như Work." permissions: comment: "Nhận xét" @@ -3681,12 +3711,16 @@ vi: close_warning: "Bỏ qua cảnh báo này." oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "Ứng dụng OAuth" plural: "Các ứng dụng OAuth" named: "Ứng dụng OAuth '%{name}'" new: "Ứng dụng OAuth mới" + non_confidential: Non confidential default_scopes: "(Phạm vi mặc định)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "Tên ứng dụng của bạn. Điều này sẽ được hiển thị cho người dùng khác khi ủy quyền." redirect_uri_html: > Các URL người dùng được ủy quyền có thể được chuyển hướng đến. Mỗi mục nhập trên một dòng.
    Nếu bạn đang đăng ký một ứng dụng máy tính để bàn, hãy sử dụng URL sau. @@ -3695,6 +3729,10 @@ vi: client_credential_user_id: "ID người dùng tùy chọn để mạo danh khi khách hàng sử dụng ứng dụng này. Để trống để chỉ cho phép truy cập công cộng" register_intro: "Nếu bạn đang phát triển ứng dụng khách API OAuth cho OpenProject, bạn có thể đăng ký nó bằng cách sử dụng biểu mẫu này để tất cả người dùng sử dụng." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "ID khách hàng" client_secret_notice: > Đây là lần duy nhất chúng tôi có thể in bí mật của khách hàng, vui lòng ghi lại và giữ an toàn. Nó nên được đối xử như mật khẩu và không thể được OpenProject lấy lại sau này. diff --git a/config/locales/crowdin/zh-CN.seeders.yml b/config/locales/crowdin/zh-CN.seeders.yml index 64166d212273..037d46169ec8 100644 --- a/config/locales/crowdin/zh-CN.seeders.yml +++ b/config/locales/crowdin/zh-CN.seeders.yml @@ -81,7 +81,7 @@ zh-CN: demo-project: name: 演示项目 status_explanation: 所有任务都按计划进行。相关人员均知晓各自任务。系统已完全建立。 - description: 这是对此演示 Scrum 项目目标的简短摘要。 + description: 这是对此演示项目目标的简短摘要。 news: item_0: title: 欢迎来到您的演示项目 @@ -199,7 +199,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 9177b52bd938..07269664d855 100644 --- a/config/locales/crowdin/zh-CN.yml +++ b/config/locales/crowdin/zh-CN.yml @@ -31,6 +31,9 @@ zh-CN: custom_styles: color_theme: "主题颜色" color_theme_custom: "(自定义)" + tab_interface: "界面" + tab_branding: "品牌" + tab_pdf_export_styles: "PDF 导出样式" colors: primary-button-color: "主按钮色" accent-color: "强调色" @@ -67,7 +70,7 @@ zh-CN: text: "您确定要删除当前使用的企业版令牌吗?" title: "删除令牌" replace_token: "替换您当前的支持令牌" - order: "订购本地部署版的 Enterprise edition" + order: "订购本地部署的 Enterprise edition" paste: "粘贴您企业版的支持令牌" required_for_feature: "此功能仅限具激活的企业版支持令牌的订阅者使用。" enterprise_link: "如需了解详细信息,请单击此处。" @@ -79,6 +82,7 @@ zh-CN: contact: "联系我们获取演示" enterprise_info_html: "是企业版的 附加功能。" upgrade_info: "请升级到付费方案,以激活并开始在您的团队中使用该功能。" + jemalloc_allocator: 使用 jemalloc 内存分配器 journal_aggregation: explanation: text: "如果用户的多项操作(例如,更新工作包两次)的时间间隔小于指定的时间跨度,则这些操作将被聚合为单个操作,并在应用程序中显示为单个操作。这也会将通知延迟同等的时间,从而减少电子邮件的发送数量,并且还会影响 %{webhook_link} 延迟。" @@ -199,6 +203,11 @@ zh-CN: title: "自定义操作" description: "自定义操作是一组预定义操作的一键式快捷方式,您可以根据状态、角色、类型或项目在某些工作包上提供这些操作。" custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: 适用于所有项目 + description: 由于选中了 "适用于所有项目 "选项,因此所有项目都启用了该自定义字段。单个项目无法停用。 text_add_new_custom_field: > 要向项目添加新的自定义字段,您需要先创建字段,然后才能将其添加到此项目中。 is_enabled_globally: "已全局启用" @@ -620,6 +629,8 @@ zh-CN: uid: "客户端 ID" secret: "客户端密钥" owner: "所有者" + builtin: "内置" + enabled: "激活" redirect_uri: "重定向 URI" client_credentials_user_id: "客户端证书用户 ID" scopes: "范围" @@ -791,6 +802,7 @@ zh-CN: blank: "不能为空。" blank_nested: "需要设置属性“%{property}”。" cannot_delete_mapping: "必需项,不能删除" + is_for_all_cannot_modify: "适用于全部。不可修改。" cant_link_a_work_package_with_a_descendant: "工作包无法链接到它的子任务之一。" circular_dependency: "这种关系将创建循环依赖项。" confirmation: "不匹配 %{attribute}。" @@ -864,6 +876,10 @@ zh-CN: minimum: "需要包含至少一个采用“=”运算符的主体、上下文或 ID 筛选器。" custom_field: at_least_one_custom_option: "至少有需要一个可用选项。" + custom_fields_project: + attributes: + project_ids: + blank: "请选择一个项目。" custom_actions: only_one_allowed: "(%{name}) 只允许一个值。" empty: "(%{name}) 值不能为空。" @@ -894,6 +910,8 @@ zh-CN: name: blank: "是强制性的。请选择一个名称。" not_unique: "已被使用。请另选一个名称。" + meeting: + error_conflict: "无法保存,因为会议已被其他人同时更新。请重新加载页面。" notifications: at_least_one_channel: "至少需要指定一个发送通知的通道。" attributes: @@ -1091,7 +1109,7 @@ zh-CN: confirmation: "确认密码与密码不一致。" format: "%{message}" password: - weak: "必须包含以下类字符 (至少 %{min_count} %{all_count}): %{rules}。" + weak: "必须包含以下字符 (至少 %{all_count} 中的 %{min_count} 个):%{rules}。" lowercase: "小写字母 (如 'a')" uppercase: "大写字母 (如 'A')" numeric: "数值 (例如 ' 1')" @@ -1591,7 +1609,7 @@ zh-CN: error_menu_item_not_saved: 不能保存菜单项 error_wiki_root_menu_item_conflict: > 无法将 "%{old_name}" 重命名为 "%{new_name}",因为结果菜单项与现有菜单项 "%{existing_caption}" (%{existing_identifier}) 存在冲突。 - error_external_authentication_failed: "在外部身份验证期间出错。请重试。" + error_external_authentication_failed_message: "外部身份验证过程中发生错误: %{message}" error_attribute_not_highlightable: "未高亮显示的属性:%{attributes}" events: changeset: "编辑更改集" @@ -1763,7 +1781,7 @@ zh-CN: progress_mode_changed_to_status_based: 进度计算模式设置为基于状态 status_excluded_from_totals_set_to_false_message: 现在包含在层次结构总计中 status_excluded_from_totals_set_to_true_message: 现在不包含在层次结构总计中 - status_percent_complete_changed: "完成百分比从 %{old_value}% 变为 %{new_value}%" + status_percent_complete_changed: "完成% 从 %{old_value}% 变为 %{new_value}%" system_update: file_links_journal: > 从现在开始,与文件链接(存储在外部存储器中的文件)相关的活动将出现在“活动”选项卡中。以下是与已经存在的链接相关的活动的表示: @@ -1872,7 +1890,8 @@ zh-CN: label_additional_workflow_transitions_for_assignee: "当用户是受理人时允许额外的转移" label_additional_workflow_transitions_for_author: "当用户是作者时允许额外转移" label_administration: "管理" - label_advanced_settings: "高级设置" + label_interface_colors: "界面颜色" + label_interface_colors_description: "这些颜色控制应用程序的外观。 如果您修改了它们,主题将自动变为自定义主题, 但我们无法确保无障碍对比最小值(WCAG 2)。 。 " label_age: "年龄" label_ago: "天前" label_all: "所有" @@ -1905,6 +1924,7 @@ zh-CN: label_attribute_expand_text: "%{attribute}的完整文本" label_authentication: "身份验证" label_authentication_settings: "验证设置" + label_available_custom_fields_projects: "可用的自定义字段项目" label_available_global_roles: "可用的全局角色" label_available_project_attributes: "可用的项目属性" label_available_project_forums: "可用论坛" @@ -1977,6 +1997,7 @@ zh-CN: label_copy_project: "复制项目" label_core_version: "核心版本" label_core_build: "核心构建" + label_created_by: "由 %{user} 创建" label_current_status: "当前状态" label_current_version: "当前版本" label_custom_field_add_no_type: "将此字段添加到工作包类型中" @@ -1984,6 +2005,7 @@ zh-CN: label_custom_field_plural: "自定义字段" label_custom_field_default_type: "空类型" label_custom_style: "设计" + label_custom_style_description: "选择主题来定制OpenProject的外观,选择应用中的默认颜色以及导出的样式。" label_dashboard: "仪表板" label_database_version: "PostgreSQL 版本" label_date: "日期" @@ -2104,9 +2126,9 @@ zh-CN: label_share: "共享" label_share_project_list: "共享项目列表" label_share_work_package: "共享工作包" - label_show_hide: "显示/隐藏" - label_show_hide_n_items: "显示/隐藏 %{count} 项目" label_show_all_registered_users: "显示所有注册用户" + label_show_less: "显示更少" + label_show_more: "显示更多" label_journal: "日志" label_journal_diff: "描述的对比" label_language: "语言" @@ -2256,6 +2278,7 @@ zh-CN: label_product_version: "产品版本" label_profile: "配置文件" label_percent_complete: "% 完成" + label_progress_tracking: "进度跟踪" label_project: "项目" label_project_activity: "项目活动" label_project_attribute_plural: "项目属性" @@ -2316,7 +2339,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} 超时" @@ -2441,7 +2464,6 @@ zh-CN: label_work_package_new: "新工作包" label_work_package_edit: "编辑工作包 %{name}" label_work_package_plural: "工作包" - label_work_packages_settings: "工作包设置" label_work_package_status: "工作包状态" label_work_package_status_new: "新状态" label_work_package_status_plural: "工作包状态" @@ -2967,7 +2989,7 @@ zh-CN: managed: "在 OpenProject 中创建新的存储库" storage: not_available: "磁盘存储开销不可用于此存储库。" - update_timeout: "在 N 分钟内保留存储库最后所需的磁盘空间信息。由于计算存储库所需的磁盘空间可能增加系统开销,增加该值可以减少性能影响。" + update_timeout: "在 N 分钟内保留存储库最后所需磁盘空间的信息。由于计算存储库所需的磁盘空间可能增加系统开销,增加该值可以减少性能影响。" oauth_application_details: "关闭此窗口后,将无法再次访问客户端密钥值。请将这些值复制到 Nextcloud OpenProject 集成设置中:" oauth_application_details_link_text: "转到设置页面" setup_documentation_details: "如果您在配置新文件存储方面需要帮助,请查看文档:" @@ -3072,11 +3094,13 @@ zh-CN: setting_hours_per_day_explanation: >- 这定义了在以天和小时为单位显示持续时间时,什么是一"天"(例如,如果一天是 8 小时,32 小时就是 4 天)。 setting_invitation_expiration_days: "激活电子邮件将在此时间后过期" - setting_work_package_done_ratio: "进度计算" + setting_work_package_done_ratio: "进度计算模式" setting_work_package_done_ratio_field: "基于工时" + setting_work_package_done_ratio_field_caption_html: >- + 完成 % 可以自由设置为任何值。 如果您可选输入一个 工时, 剩余工时 将自动生成。 setting_work_package_done_ratio_status: "基于状态" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - 在基于工时模式下,“完成 %”是根据已完成的工时占总工时的比例计算出来的。在基于状态模式下,每个状态都有一个与之相关的“完成 %”。更改状态将改变“完成 %”。 + setting_work_package_done_ratio_status_caption_html: >- + 每个状态都有一个与之相关的完成%值。更改状态将改变完成%。 setting_work_package_done_ratio_explanation_html: > 在基于工作的模式下,“完成 %”可以自由设置为任何值。如果选择输入 "工时 "值,则会自动得出 "剩余工时"。在基于状态的模式下,每个状态都有一个与之相关的“完成 %”值。更改状态将改变“完成 %”。 setting_work_package_properties: "工作包属性" @@ -3097,6 +3121,13 @@ zh-CN: setting_password_min_length: "最小长度" setting_password_min_adhered_rules: "所需的最少类型数量" setting_per_page_options: "每页对象选项" + setting_percent_complete_on_status_closed: "状态关闭时\"完成%\"的值" + setting_percent_complete_on_status_closed_no_change: "无变化" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + 即使工作包关闭,完成%的值也不会改变。 + setting_percent_complete_on_status_closed_set_100p: "自动设置为 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + 关闭的工作包视为已完成。 setting_plain_text_mail: "纯文本邮件 (不含 HTML)" setting_protocol: "协议" setting_project_gantt_query: "项目组合甘特视图" @@ -3118,7 +3149,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_accessibility_mode_for_anonymous: "为匿名用户启用辅助功能模式" @@ -3430,7 +3461,7 @@ zh-CN: warning_user_limit_reached_admin: > 添加额外的用户将超出当前限制。请升级您的计划,以确保外部用户能够访问此实例。 warning_user_limit_reached_instructions: > - 您已达到用户限制(%{current}/%{max} 活跃用户)。请联系 sales@openproject.com 升级您的企业版计划以添加额外用户。 + 您达到了用户限制(%{current}/%{max}活跃用户)。 请联系sales@openproject.com以升级您的Enterprise edition计划并添加其他用户。 warning_protocol_mismatch_html: > warning_bar: @@ -3460,7 +3491,6 @@ zh-CN: label_note: "注意:" modal: work_based_help_text: "在可能的情况下,每个字段都会根据另外两个字段自动计算。" - work_based_help_text_pre_14_4_without_percent_complete_edition: "“完成 %”由 \"工时\" 和 \"剩余工时\" 自动得出。" status_based_help_text: "完成百分比由工作包状态设定。" migration_warning_text: "在基于工时的进度计算模式下,完成百分比不能手动设置,而是与工时绑定。现有值已被保留,但无法编辑。请先输入工时。" derivation_hints: @@ -3475,9 +3505,9 @@ zh-CN: remaining_hours: cleared_because_work_is_empty: "已清空,因为 \"工时 \"为空。" cleared_because_percent_complete_is_empty: "已清空,因为“完成 %”为空。" - decreased_like_work: "减少与 \"工时 \"相同的数额。" + decreased_by_delta_like_work: "减少了 %{delta},与工作量的减少相匹配。" derived: "由“工时”和“完成 %”得出" - increased_like_work: "增加与 \"工时 \"相同的数额。" + increased_by_delta_like_work: "增加了 %{delta},与工作量的增加相匹配。" same_as_work: "设置为与 \"工时 \"相同的值。" permissions: comment: "评论" @@ -3669,12 +3699,16 @@ zh-CN: close_warning: "请忽略这个警告。" oauth: application: + builtin: 内置实例应用程序 + confidential: 机密 singular: "OAuth应用程序" plural: "OAuth应用程序" named: "OAuth 应用程序“%{name}”" new: "新的 OAuth 应用程序" + non_confidential: 非机密 default_scopes: "(默认范围)" instructions: + enabled: "启用此应用程序,允许用户使用它执行授权授予。" name: "您的应用程序的名称。将在授权后显示给其他用户。" redirect_uri_html: > 授权的用户可以重定向到的允许 URL。每行一个条目。
    如果您注册的是桌面应用程序,请使用以下 URL。 @@ -3683,6 +3717,10 @@ zh-CN: client_credential_user_id: "在客户端使用此应用程序时要冒充的可选用户 ID。留空可以仅允许公开访问" register_intro: "如果您正在为 OpenProject 开发 OAuth API 客户端应用程序,则可以使用此表单注册,供所有用户使用。" default_scopes: "" + header: + builtin_applications: 内置 OAuth 应用程序 + other_applications: 其他 OAuth 应用程序 + empty_application_lists: 没有注册任何OAuth应用程序。 client_id: "客户端 ID" client_secret_notice: > 这是我们唯一可以打印客户端密钥的时间,请记下密钥并保证它的安全。密钥应被视为密码,并且之后无法通过 OpenProject 检索。 diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 2238b34798d5..80b01d80a141 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -31,6 +31,9 @@ zh-TW: custom_styles: color_theme: "色彩佈景主題" color_theme_custom: "自訂" + tab_interface: "介面" + tab_branding: "品牌化" + tab_pdf_export_styles: "PDF 匯出類型" colors: primary-button-color: "主按鈕" accent-color: "強調(Accent)" @@ -79,6 +82,7 @@ zh-TW: contact: "聯絡我們取得試用" enterprise_info_html: "是企業版功能 。" upgrade_info: "請升級到付費版以啟用此功能" + jemalloc_allocator: Jemalloc 記憶體分配器 journal_aggregation: explanation: text: "例如使用者\"更新\"工作項目兩次,如果時間間隔小於設定值,則將合併視為為單次操作。應用程序中亦會顯示為單個操作。這也會套用在電子郵件通知,以及 %{webhook_link} 。" @@ -201,6 +205,11 @@ zh-TW: title: "自訂動作" description: "自訂動作是一系列預先定義動作的單鍵捷徑,您可以根據狀態、角色、類型或專案,在特定工作套件上使用這些動作。" custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: 對所有的專案 + description: 由於已勾選「適用於所有專案」選項,因此所有專案都會啟用此自訂欄位。個別專案無法停用。 text_add_new_custom_field: > 要加入客製欄位至一個專案,您必須先建立欄位才能將它們加入至此專案。 is_enabled_globally: "已全域啟用" @@ -622,6 +631,8 @@ zh-TW: uid: "用戶端 ID" secret: "用戶端密鑰" owner: "擁有者" + builtin: "內建" + enabled: "啟用" redirect_uri: "轉址 uri" client_credentials_user_id: "用戶端憑證使用者 id" scopes: "範圍" @@ -793,6 +804,7 @@ zh-TW: blank: "不可空白" blank_nested: "需要設置屬性 '%{property}' " cannot_delete_mapping: "必需項,不能刪除" + is_for_all_cannot_modify: "全域使用。無法修改。" cant_link_a_work_package_with_a_descendant: "一個工作項目不能聯結到它的一個子項目" circular_dependency: "這個關係會建立一個循環依賴" confirmation: "不吻合 %{attribute}。" @@ -866,6 +878,10 @@ zh-TW: minimum: "需要為主體、上下文或 id 至少包含一個帶有“=”運算符的過濾器" custom_field: at_least_one_custom_option: "需要至少一個選項可用。" + custom_fields_project: + attributes: + project_ids: + blank: "請選擇一個專案" custom_actions: only_one_allowed: "(%{name}) 只允許一個值。" empty: "(%{name}) 不可以為空值。" @@ -896,6 +912,8 @@ zh-TW: name: blank: "必填。 請選擇一個名稱。" not_unique: "已被使用。請選擇其他名稱。" + meeting: + error_conflict: "無法儲存,因為會議現主時已由其他人更新。請重新載入頁面。" notifications: at_least_one_channel: "至少需要指定一個發送通知的方式" attributes: @@ -1593,7 +1611,7 @@ zh-TW: error_menu_item_not_saved: 選單項目無法保存 error_wiki_root_menu_item_conflict: > 無法將 "%{old_name}" 重命名為 "%{new_name}", 因為結果功能表項目中的衝突與現有功能表項目 "%{existing_caption}" (%{existing_identifier}) 衝突。 - error_external_authentication_failed: "在外部身份驗證期間出錯。請重試。" + error_external_authentication_failed_message: "外部驗證時發生錯誤: %{message}" error_attribute_not_highlightable: "無法凸顯的屬性: %{attributes}" events: changeset: "已編輯變更" @@ -1765,7 +1783,7 @@ zh-TW: progress_mode_changed_to_status_based: 自動計算模式設定成「Status-based」 status_excluded_from_totals_set_to_false_message: 現在包含在層次結構總計中 status_excluded_from_totals_set_to_true_message: 現在不包含在層次結構總計中 - status_percent_complete_changed: "完成百分比從 %{old_value}% 變為 %{new_value}%" + status_percent_complete_changed: "完成百分比從 %{old_value} % 變為 %{new_value}%" system_update: file_links_journal: > 從現在開始,與文件鏈接(存儲在外部存儲器中的文件) 相關的活動將出現在“活動”選項卡中。以下是與已經存在的鏈接相關的活動的表示: @@ -1874,7 +1892,8 @@ zh-TW: label_additional_workflow_transitions_for_assignee: "使用者是執行者時,可用狀態" label_additional_workflow_transitions_for_author: "使用者是作者,可用狀態" label_administration: "系統管理" - label_advanced_settings: "進階設定" + label_interface_colors: "介面顏色" + label_interface_colors_description: "這些顏色控制應用程式的外觀。如果您修改它們,主題會自動變更為自訂主題,但我們無法保證符合網頁內容可訪問性指南基本要求 (WCAG 2.1)。 " label_age: "年齡" label_ago: "天前" label_all: "所有" @@ -1907,6 +1926,7 @@ zh-TW: label_attribute_expand_text: "%{attribute} 的完整文本" label_authentication: "身份驗證" label_authentication_settings: "認證設定" + label_available_custom_fields_projects: "可用的專案自訂欄位" label_available_global_roles: "可用的角色" label_available_project_attributes: "可使用的專案屬性" label_available_project_forums: "可用的討論區" @@ -1979,6 +1999,7 @@ zh-TW: label_copy_project: "複製專案" label_core_version: "核心版本" label_core_build: "核心編譯" + label_created_by: "由 %{user} 建立" label_current_status: "目前狀態" label_current_version: "目前版本" label_custom_field_add_no_type: "新增此欄位至一個工作項目類別" @@ -1986,6 +2007,7 @@ zh-TW: label_custom_field_plural: "客製欄位" label_custom_field_default_type: "空類型" label_custom_style: "設計" + label_custom_style_description: "選擇 OpenProject 的主題外觀、選擇要在應用程式中使用的預設顏色以及匯出的外觀。" label_dashboard: "儀表板" label_database_version: "PostgreSQL 版本" label_date: "日期" @@ -2060,7 +2082,7 @@ zh-TW: label_file_plural: "檔案" label_filter_add: "新增條件" label_filter: "篩選條件" - label_filter_plural: "篩選條件" + label_filter_plural: "篩選器" label_filters_toggle: "顯示/隱藏篩選條件" label_float: "浮點數" label_folder: "資料夾" @@ -2073,7 +2095,7 @@ zh-TW: label_generate_key: "產生一個金鑰" label_git_path: ".git 目錄的路徑" label_greater_or_equal: ">=" - label_group_by: "分類" + label_group_by: "分組依據" label_group_new: "新增群組" label_group: "群組" label_group_named: "群組名稱 %{name}" @@ -2084,7 +2106,7 @@ zh-TW: label_history: "歷史" label_hierarchy_leaf: "頁面結構頁" label_home: "Home" - label_subject_or_id: "名稱或 id" + label_subject_or_id: "主旨或 id" label_calendar_subscriptions: "訂閱行事曆" label_identifier: "識別碼" label_in: "在" @@ -2106,9 +2128,9 @@ zh-TW: label_share: "共用" label_share_project_list: "共用專案清單" label_share_work_package: "共用工作項目" - label_show_hide: "顯示/隱藏" - label_show_hide_n_items: "顯示/隱藏 %{count} 項目" label_show_all_registered_users: "顯示所有註冊使用者" + label_show_less: "減少顯示" + label_show_more: "顯示更多" label_journal: "日誌" label_journal_diff: "內容對比" label_language: "語言" @@ -2127,7 +2149,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: "清單" @@ -2258,6 +2280,7 @@ zh-TW: label_product_version: "產品版本" label_profile: "個人資料" label_percent_complete: "(%)完成" + label_progress_tracking: "進度追蹤" label_project: "專案" label_project_activity: "專案活動" label_project_attribute_plural: "專案屬性" @@ -2443,7 +2466,6 @@ zh-TW: label_work_package_new: "新增工作項目" label_work_package_edit: "編輯工作項目 %{name}" label_work_package_plural: "工作項目" - label_work_packages_settings: "工作項目設置" label_work_package_status: "工作項目狀態" label_work_package_status_new: "新狀態" label_work_package_status_plural: "工作項目狀態" @@ -3077,11 +3099,13 @@ zh-TW: setting_hours_per_day_explanation: >- 這定義了在以天和小時為單位顯示持續時間時,什麼是一"天"(例如,如果一天是 8 小時,32 小時就是 4 天)。 setting_invitation_expiration_days: "啟動信件在......天後過期" - setting_work_package_done_ratio: "進度計算" + setting_work_package_done_ratio: "進度計算模式" setting_work_package_done_ratio_field: "基於工時" + setting_work_package_done_ratio_field_caption_html: >- + 完成百分比可自由設定為任何值。如果您選擇輸入工時剩餘工時時會自動衍生。 setting_work_package_done_ratio_status: "基於狀態" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - 在基於工作模式下,完成百分比是根據已完成的工作量相對於總工作量來計算的。在基於狀態模式下,每個狀態都有一個與其關聯的完成百分比值。更改狀態將更改完成百分比。 + setting_work_package_done_ratio_status_caption_html: >- + 每個狀態都有一個與之相關的完成百分比值。變更狀態會變更完成百分比。 setting_work_package_done_ratio_explanation_html: > 在基於工作模式下,完成百分比可以自由設定為任何值。如果您可以選擇輸入工時,則會自動算出剩餘工時。在基於狀態模式下,每個狀態都有一個與其關聯的完成百分比值。更改狀態將更改完成百分比。 setting_work_package_properties: "工作項目屬性" @@ -3102,6 +3126,13 @@ zh-TW: setting_password_min_length: "最小長度" setting_password_min_adhered_rules: "必要類別的最小數目" setting_per_page_options: "設置每頁顯示個數" + setting_percent_complete_on_status_closed: "狀態結束時之完成百分比" + setting_percent_complete_on_status_closed_no_change: "未變更" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + 即使工作項目關閉,完成百分比的值也不會改變。 + setting_percent_complete_on_status_closed_set_100p: "自動設定為 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + 工作項目結束即視為完成。 setting_plain_text_mail: "純文字郵件(不含 HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "專案含甘特圖檢視" @@ -3466,7 +3497,6 @@ zh-TW: label_note: "備註" modal: work_based_help_text: "在可能的情況下,每個欄位都會根據其他兩個欄位自動計算。" - work_based_help_text_pre_14_4_without_percent_complete_edition: "完成百分比由 \"工時\" 和 \"剩餘工時\" 自動得出。" status_based_help_text: "完成百分比依工作項目狀態設定。" migration_warning_text: "在「基於工時」進度計算模式下,完成百分比無法手動設置,並且與「工時」相關聯。目前手動輸入數值已保留,無法編輯。 請務必輸入「工時」才能進行。" derivation_hints: @@ -3481,9 +3511,9 @@ zh-TW: remaining_hours: cleared_because_work_is_empty: "已清除,因為無工時。" cleared_because_percent_complete_is_empty: "已清除,因為無完成度。" - decreased_like_work: "減少至工時相同時數。" + decreased_by_delta_like_work: "因 %{delta} 減少,符合工時減少。" derived: "源自工時和完成百分比。" - increased_like_work: "增加與工時相同時數。" + increased_by_delta_like_work: "因 %{delta} 減少,符合工時增加。" same_as_work: "設定與工時相同值。" permissions: comment: "留言" @@ -3675,12 +3705,16 @@ zh-TW: close_warning: "忽略此警告。" oauth: application: + builtin: 內建範例 + confidential: 機密 singular: "Oauth 應用程式" plural: "Oauth 應用程式" named: "OAuth 應用程式 '%{name}'" new: "新增 OAuth 應用程式" + non_confidential: 非機密 default_scopes: "(默認範圍)" instructions: + enabled: "啟用此應用程式,允許使用者授權執行。" name: "您的應用程式名稱。它將會在其他使用者認證時顯示。" redirect_uri_html: > 允許的 URLs 可被授權使用者轉址。一行一個URL。
    如果你視註冊一個桌面應用程式,請使用下面的URL。 @@ -3689,6 +3723,10 @@ zh-TW: client_credential_user_id: "可選擇的 user id 使用戶端在使用此應用程式時保持唯一。保留空白表示只允許公眾訪問" register_intro: "如果你在開發一個 OAuth API 客戶端應用程式給 OpenProject,你可以用這個格式註冊它以便給所有使用者使用。" default_scopes: "" + header: + builtin_applications: 內建 OAuth 應用程式 + other_applications: 其他 OAuth 應用程式 + empty_application_lists: 尚未註冊任何 OAuth 應用程式。 client_id: "用戶端 ID" client_secret_notice: > 這是唯一顯示客戶端密鑰的機會,請記下密鑰並妥善保存。客戶端密鑰應該被視為密碼妥善保管,日後你將無法再次透過 OpenProject 取得它。 diff --git a/config/locales/en.yml b/config/locales/en.yml index 6aa13ce5dd9e..0b0ee449c0ae 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -40,6 +40,9 @@ en: custom_styles: color_theme: "Color theme" color_theme_custom: "(Custom)" + tab_interface: "Interface" + tab_branding: "Branding" + tab_pdf_export_styles: "PDF export styles" colors: primary-button-color: "Primary button" accent-color: "Accent" @@ -88,6 +91,7 @@ en: contact: "Contact us for a demo" enterprise_info_html: "is an Enterprise add-on." upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." + jemalloc_allocator: Jemalloc memory allocator journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." @@ -225,6 +229,12 @@ en: description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: + admin: + custom_field_projects: + is_for_all_blank_slate: + heading: For all projects + description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. + text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. @@ -706,6 +716,8 @@ en: uid: "Client ID" secret: "Client secret" owner: "Owner" + builtin: "Builtin" + enabled: "Active" redirect_uri: "Redirect URI" client_credentials_user_id: "Client Credentials User ID" scopes: "Scopes" @@ -878,6 +890,7 @@ en: blank: "can't be blank." blank_nested: "needs to have the property '%{property}' set." cannot_delete_mapping: "is required. Cannot be deleted." + is_for_all_cannot_modify: "is for all. Cannot be modified." cant_link_a_work_package_with_a_descendant: "A work package cannot be linked to one of its subtasks." circular_dependency: "This relation would create a circular dependency." confirmation: "doesn't match %{attribute}." @@ -951,6 +964,10 @@ en: minimum: "need to include at least one filter for principal, context or id with the '=' operator." custom_field: at_least_one_custom_option: "At least one option needs to be available." + custom_fields_project: + attributes: + project_ids: + blank: "Please select a project." custom_actions: only_one_allowed: "(%{name}) only one value is allowed." empty: "(%{name}) value can't be empty." @@ -981,6 +998,8 @@ en: name: blank: "is mandatory. Please select a name." not_unique: "is already in use. Please select another name." + meeting: + error_conflict: "Unable to save because the meeting was updated by someone else in the meantime. Please reload the page." notifications: at_least_one_channel: "At least one channel for sending notifications needs to be specified." attributes: @@ -1178,7 +1197,7 @@ en: confirmation: "Password confirmation does not match password." format: "%{message}" password: - weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}." + weak: "Must contain characters of the following classes (at least %{min_count} of %{all_count}): %{rules}" lowercase: "lowercase (e.g. 'a')" uppercase: "uppercase (e.g. 'A')" numeric: "numeric (e.g. '1')" @@ -1732,7 +1751,7 @@ en: Can't rename "%{old_name}" to "%{new_name}" due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}" (%{existing_identifier}). - error_external_authentication_failed: "An error occurred during external authentication. Please try again." + error_external_authentication_failed_message: "An error occurred during external authentication: %{message}" error_attribute_not_highlightable: "Attribute(s) not highlightable: %{attributes}" events: @@ -1896,7 +1915,8 @@ en: progress_mode_changed_to_status_based: "Progress calculation updated" status_changed: "Status '%{status_name}'" system_update: "OpenProject system update:" - + total_percent_complete_mode_changed_to_work_weighted_average: "Calculation of % Complete totals now weighted by Work." + total_percent_complete_mode_changed_to_simple_average: "Calculation of % Complete totals now based on a simple average of only % Complete values." cause_descriptions: work_package_predecessor_changed_times: by changes to predecessor %{link} work_package_parent_changed_times: by changes to parent %{link} @@ -1914,7 +1934,7 @@ en: progress_mode_changed_to_status_based: Progress calculation mode set to status-based status_excluded_from_totals_set_to_false_message: now included in hierarchy totals status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% complete changed from %{old_value}% to %{new_value}%" + status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" system_update: file_links_journal: > From now on, activity related to file links (files stored in external storages) will appear here in the @@ -1926,7 +1946,10 @@ en: totals_removed_from_childless_work_packages: >- Work and progress totals automatically removed for non-parent work packages with version update. This is a maintenance task and can be safely ignored. - + total_percent_complete_mode_changed_to_work_weighted_average: >- + Child work packages without Work are ignored. + total_percent_complete_mode_changed_to_simple_average: >- + Work values of child work packages are ignored. links: configuration_guide: "Configuration guide" get_in_touch: "You have questions? Get in touch with us." @@ -2031,7 +2054,8 @@ en: label_additional_workflow_transitions_for_assignee: "Additional transitions allowed when the user is the assignee" label_additional_workflow_transitions_for_author: "Additional transitions allowed when the user is the author" label_administration: "Administration" - label_advanced_settings: "Advanced settings" + label_interface_colors: "Interface colors" + label_interface_colors_description: "These colors control how the application looks. If you modify them the theme will automatically be changed to Custom theme, but we can’t assure the compliance of the accessibility contrast minimums (WCAG 2.1). " label_age: "Age" label_ago: "days ago" label_all: "all" @@ -2064,6 +2088,7 @@ en: label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Authentication" label_authentication_settings: "Authentication settings" + label_available_custom_fields_projects: "Available custom fields projects" label_available_global_roles: "Available global roles" label_available_project_attributes: "Available project attributes" label_available_project_forums: "Available forums" @@ -2136,6 +2161,7 @@ en: label_copy_project: "Copy project" label_core_version: "Core version" label_core_build: "Core build" + label_created_by: "Created by %{user}" label_current_status: "Current status" label_current_version: "Current version" label_custom_field_add_no_type: "Add this field to a work package type" @@ -2143,6 +2169,7 @@ en: label_custom_field_plural: "Custom fields" label_custom_field_default_type: "Empty type" label_custom_style: "Design" + label_custom_style_description: "Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like." label_dashboard: "Dashboard" label_database_version: "PostgreSQL version" label_date: "Date" @@ -2263,9 +2290,9 @@ en: label_share: "Share" label_share_project_list: "Share project list" label_share_work_package: "Share work package" - label_show_hide: "Show/hide" - label_show_hide_n_items: "Show/hide %{count} items" label_show_all_registered_users: "Show all registered users" + label_show_less: "Show less" + label_show_more: "Show more" label_journal: "Journal" label_journal_diff: "Description Comparison" label_language: "Language" @@ -2415,6 +2442,7 @@ en: label_product_version: "Product version" label_profile: "Profile" label_percent_complete: "% Complete" + label_progress_tracking: "Progress tracking" label_project: "Project" label_project_activity: "Project activity" label_project_attribute_plural: "Project attributes" @@ -2600,7 +2628,6 @@ en: label_work_package_new: "New work package" label_work_package_edit: "Edit work package %{name}" label_work_package_plural: "Work packages" - label_work_packages_settings: "Work packages settings" label_work_package_status: "Work package status" label_work_package_status_new: "New status" label_work_package_status_plural: "Work package statuses" @@ -3282,12 +3309,15 @@ en: This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). setting_invitation_expiration_days: "Activation email expires after" - setting_work_package_done_ratio: "Progress calculation" + setting_work_package_done_ratio: "Progress calculation mode" setting_work_package_done_ratio_field: "Work-based" + setting_work_package_done_ratio_field_caption_html: >- + % Complete can be freely set to any value. + If you optionally enter a value for Work, Remaining work will automatically be derived. setting_work_package_done_ratio_status: "Status-based" - setting_work_package_done_ratio_explanation_pre_14_4_without_percent_complete_edition_html: > - In work-based mode, % Complete is calculated from how much work is done in relation to total work. - In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio_status_caption_html: >- + Each status has a % Complete value associated with it. + Changing status will change % Complete. setting_work_package_done_ratio_explanation_html: > In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. @@ -3310,6 +3340,13 @@ en: setting_password_min_length: "Minimum length" setting_password_min_adhered_rules: "Minimum number of required classes" setting_per_page_options: "Objects per page options" + setting_percent_complete_on_status_closed: "% Complete when status is closed" + setting_percent_complete_on_status_closed_no_change: "No change" + setting_percent_complete_on_status_closed_no_change_caption_html: >- + The value of % Complete will not change even when a work package is closed. + setting_percent_complete_on_status_closed_set_100p: "Automatically set to 100%" + setting_percent_complete_on_status_closed_set_100p_caption: >- + A closed work package is considered complete. setting_plain_text_mail: "Plain text mail (no HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "Project portfolio Gantt view" @@ -3334,6 +3371,14 @@ en: setting_sys_api_enabled: "Enable repository management web service" setting_sys_api_description: "The repository management web service provides integration and user authorization for accessing repositories." setting_time_format: "Time" + setting_total_percent_complete_mode: "Calculation of % Complete hierarchy totals" + setting_total_percent_complete_mode_work_weighted_average: "Weighted by work" + setting_total_percent_complete_mode_work_weighted_average_caption_html: >- + The total % Complete will be weighted against the Work of each work package in the hierarchy. + Work packages without Work will be ignored (current behaviour). + setting_total_percent_complete_mode_simple_average: "Simple average" + setting_total_percent_complete_mode_simple_average_caption_html: >- + Work is ignored and the total % Complete will be a simple average of % Complete values of work packages in the hierarchy. setting_accessibility_mode_for_anonymous: "Enable accessibility mode for anonymous users" setting_user_format: "Users name format" setting_user_default_timezone: "Users default time zone" @@ -3760,7 +3805,6 @@ en: label_note: "Note:" modal: work_based_help_text: "Each field is automatically calculated from the two others when possible." - work_based_help_text_pre_14_4_without_percent_complete_edition: "% Complete is automatically derived from Work and Remaining work." status_based_help_text: "% Complete is set by work package status." migration_warning_text: "In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first." derivation_hints: @@ -3775,9 +3819,9 @@ en: remaining_hours: cleared_because_work_is_empty: "Cleared because Work is empty." cleared_because_percent_complete_is_empty: "Cleared because % Complete is empty." - decreased_like_work: "Decreased by the same amount as Work." + decreased_by_delta_like_work: "Decreased by %{delta}, matching the reduction in Work." derived: "Derived from Work and % Complete." - increased_like_work: "Increased by the same amount as Work." + increased_by_delta_like_work: "Increased by %{delta}, matching the increase in Work." same_as_work: "Set to same value as Work." permissions: comment: "Comment" @@ -3983,12 +4027,16 @@ en: oauth: application: + builtin: Built-in instance application + confidential: Confidential singular: "OAuth application" plural: "OAuth applications" named: "OAuth application '%{name}'" new: "New OAuth application" + non_confidential: Non confidential default_scopes: "(Default scopes)" instructions: + enabled: "Enable this application, allowing users to perform authorization grants with it." name: "The name of your application. This will be displayed to other users upon authorization." redirect_uri_html: > The allowed URLs authorized users can be redirected to. One entry per line. @@ -3999,6 +4047,10 @@ en: client_credential_user_id: "Optional user ID to impersonate when clients use this application. Leave empty to allow public access only" register_intro: "If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use." default_scopes: "" + header: + builtin_applications: Built-in OAuth applications + other_applications: Other OAuth applications + empty_application_lists: No OAuth applications have been registered. client_id: "Client ID" client_secret_notice: > This is the only time we can print the client secret, please note it down and keep it secure. diff --git a/config/locales/js-en.yml b/config/locales/js-en.yml index 51e332ecbc7e..d1ca668b9b75 100644 --- a/config/locales/js-en.yml +++ b/config/locales/js-en.yml @@ -308,12 +308,6 @@ en: Are you sure you want to continue? work_packages_settings: - warning_progress_calculation_mode_change_from_status_to_field_pre_14_4_without_percent_complete_edition_html: >- - Changing progress calculation mode from status-based to work-based will make - % Complete a non-editable field whose value is derived from Work - and Remaining work. Existing values for % Complete are preserved. - If values for Work and Remaining work were not present, they - will be required in order to change % Complete. warning_progress_calculation_mode_change_from_status_to_field_html: >- Changing progress calculation mode from status-based to work-based will make the % Complete field freely editable. If you optionally enter values @@ -671,7 +665,9 @@ en: mentioned: "Mentioned" watched: "Watcher" assigned: "Assignee" - accountable: "Accountable" + # The enum value is named 'responsible' in the database and that is what is transported through the API + # up to the frontend. + responsible: "Accountable" created: "Created" scheduled: "Scheduled" commented: "Commented" diff --git a/config/routes.rb b/config/routes.rb index 00d1707eb2fe..9caca4554e3b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -63,9 +63,9 @@ # Add catch method for Rack OmniAuth to allow route helpers # Note: This renders a 404 in rails but is caught by omniauth in Rack before - get "/auth/failure", to: "account#omniauth_failure" - get "/auth/:provider", to: proc { [404, {}, [""]] }, as: "omniauth_start" - match "/auth/:provider/callback", to: "account#omniauth_login", as: "omniauth_login", via: %i[get post] + get "/auth/failure", to: "omni_auth_login#failure", as: "omni_auth_failure" + get "/auth/:provider", to: proc { [404, {}, [""]] }, as: "omni_auth_start" + match "/auth/:provider/callback", to: "omni_auth_login#callback", as: "omni_auth_callback", via: %i[get post] # In case assets are actually delivered by a node server (e.g. in test env) # forward requests to the proxy @@ -169,6 +169,17 @@ post :reorder_alphabetical end + + scope module: :admin do + scope module: :custom_fields do + resources :projects, + controller: "/admin/custom_fields/custom_field_projects", + only: %i[index new create] + resource :project, + controller: "/admin/custom_fields/custom_field_projects", + only: :destroy + end + end end get "(projects/:project_id)/search" => "search#index", as: "search" @@ -457,16 +468,20 @@ resources :custom_actions, except: :show namespace :oauth do - resources :applications + resources :applications do + member do + post :toggle + end + end end end namespace :admin do namespace :settings do - SettingsHelper.system_settings_tabs.each do |tab| - get tab[:name], controller: tab[:controller], action: :show, as: tab[:name].to_s - patch tab[:name], controller: tab[:controller], action: :update, as: "update_#{tab[:name]}" - end + resource :general, controller: "/admin/settings/general_settings", only: %i[show update] + resource :languages, controller: "/admin/settings/languages_settings", only: %i[show update] + resource :repositories, controller: "/admin/settings/repositories_settings", only: %i[show update] + resource :experimental, controller: "/admin/settings/experimental_settings", only: %i[show update] resource :authentication, controller: "/admin/settings/authentication_settings", only: %i[show update] resource :attachments, controller: "/admin/settings/attachments_settings", only: %i[show update] @@ -482,7 +497,8 @@ resource :api, controller: "/admin/settings/api_settings", only: %i[show update] # It is important to have this named something else than "work_packages". # Otherwise the angular ui-router will also recognize that as a WorkPackage page and apply according classes. - resource :work_package_tracking, controller: "/admin/settings/work_packages_settings", only: %i[show update] + resource :work_packages_general, controller: "/admin/settings/work_packages_general", only: %i[show update] + resource :progress_tracking, controller: "/admin/settings/progress_tracking", only: %i[show update] resource :projects, controller: "/admin/settings/projects_settings", only: %i[show update] resource :new_project, controller: "/admin/settings/new_project_settings", only: %i[show update] resources :project_custom_fields, controller: "/admin/settings/project_custom_fields" do diff --git a/db/migrate/20240513135928_extend_oauth_applications.rb b/db/migrate/20240513135928_extend_oauth_applications.rb new file mode 100644 index 000000000000..18ec11c1fe37 --- /dev/null +++ b/db/migrate/20240513135928_extend_oauth_applications.rb @@ -0,0 +1,8 @@ +class ExtendOAuthApplications < ActiveRecord::Migration[7.1] + def change + change_table :oauth_applications, bulk: true do |t| + t.column :enabled, :boolean, default: true, null: false + t.column :builtin, :boolean, default: false, null: false + end + end +end diff --git a/db/migrate/20240909151818_migrate_legacy_default_theme_to_light_theme.rb b/db/migrate/20240909151818_migrate_legacy_default_theme_to_light_theme.rb new file mode 100644 index 000000000000..5dd235432153 --- /dev/null +++ b/db/migrate/20240909151818_migrate_legacy_default_theme_to_light_theme.rb @@ -0,0 +1,59 @@ +# 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 MigrateLegacyDefaultThemeToLightTheme < ActiveRecord::Migration[7.1] + # Migrate legacy `default` theme to `light` theme + # + # Moving from: + # { + # "settings": { + # "theme": "default", + # "foo": "bar" + # } + # } + # + # To: + # { + # "settings": { + # "theme": "light", # current default theme + # "foo": "bar" + # } + # } + def up + execute <<-SQL.squish + UPDATE user_preferences + SET settings = jsonb_set(settings, '{theme}', '"light"') + WHERE settings->>'theme' = 'default'; + SQL + end + + # no-op + def down; end +end diff --git a/db/migrate/20240917105829_add_primary_key_to_custom_fields_projects.rb b/db/migrate/20240917105829_add_primary_key_to_custom_fields_projects.rb new file mode 100644 index 000000000000..0e07746b1750 --- /dev/null +++ b/db/migrate/20240917105829_add_primary_key_to_custom_fields_projects.rb @@ -0,0 +1,35 @@ +#-- 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 AddPrimaryKeyToCustomFieldsProjects < ActiveRecord::Migration[7.1] + def change + # NOTE: Manually backfilling the `id` column is not necessary as the BIGSERIAL primary key will auto-populate + # the existing records with auto-incrementing values + add_column :custom_fields_projects, :id, :primary_key # rubocop:disable Rails/DangerousColumnNames + end +end diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile index dcfd2ef10724..6c6c629bd150 100644 --- a/docker/prod/Dockerfile +++ b/docker/prod/Dockerfile @@ -5,6 +5,7 @@ LABEL maintainer="operations@openproject.com" ARG BUNDLER_VERSION="2.5.13" ARG NODE_VERSION="20.9.0" ARG BIM_SUPPORT=true +ENV USE_JEMALLOC=false ENV DEBIAN_FRONTEND=noninteractive ENV BUNDLE_JOBS=8 ENV BUNDLE_RETRY=3 @@ -37,8 +38,8 @@ ENV OPENPROJECT_RAILS__CACHE__STORE=file_store ENV OPENPROJECT_ANGULAR_UGLIFY=true RUN useradd -d /home/$APP_USER -m $APP_USER && \ - mkdir -p $APP_PATH && chown $APP_USER:$APP_USER $APP_PATH && \ - mkdir -p $APP_DATA_PATH && chown $APP_USER:$APP_USER $APP_DATA_PATH && chmod g+rwx $APP_DATA_PATH + mkdir -p $APP_PATH && chown $APP_USER:$APP_USER $APP_PATH && \ + mkdir -p $APP_DATA_PATH && chown $APP_USER:$APP_USER $APP_DATA_PATH && chmod g+rwx $APP_DATA_PATH WORKDIR $APP_PATH @@ -71,10 +72,10 @@ COPY . . # Copy lock file again as the updated version was overriden by COPY just now RUN cp Gemfile.lock.bak Gemfile.lock && rm Gemfile.lock.bak && \ - ./docker/prod/setup/precompile-assets.sh && \ - ./docker/prod/setup/postinstall-common.sh && \ - cp ./config/database.production.yml config/database.yml && \ - ln -s $APP_PATH/docker/prod/setup/.irbrc /home/$APP_USER/ + ./docker/prod/setup/precompile-assets.sh && \ + ./docker/prod/setup/postinstall-common.sh && \ + cp ./config/database.production.yml config/database.yml && \ + ln -s $APP_PATH/docker/prod/setup/.irbrc /home/$APP_USER/ # ------------------------------------- # slim (public) @@ -84,6 +85,7 @@ FROM base as slim USER $APP_USER EXPOSE 8080 CMD ["./docker/prod/web"] +ENTRYPOINT ["./docker/prod/entrypoint-slim.sh"] VOLUME ["$APP_DATA_PATH"] # ------------------------------------- @@ -97,7 +99,7 @@ ENV PGDATA=/var/openproject/pgdata ENV GOSU_VERSION="1.17" RUN ./docker/prod/setup/postinstall-onprem.sh && \ - ln -s /app/docker/prod/setup/.irbrc /root/ + ln -s /app/docker/prod/setup/.irbrc /root/ # Expose ports for apache and postgres EXPOSE 80 diff --git a/docker/prod/artifacthub-repo-update.sh b/docker/prod/artifacthub-repo-update.sh new file mode 100755 index 000000000000..6ccc71996e1c --- /dev/null +++ b/docker/prod/artifacthub-repo-update.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +oras push \ + registry-1.docker.io/openproject/openproject:artifacthub.io \ + --config /dev/null:application/vnd.cncf.artifacthub.config.v1+yaml \ + artifacthub-repo.yml:application/vnd.cncf.artifacthub.repository-metadata.layer.v1.yaml diff --git a/docker/prod/artifacthub-repo.yml b/docker/prod/artifacthub-repo.yml new file mode 100644 index 000000000000..96ec962adbd1 --- /dev/null +++ b/docker/prod/artifacthub-repo.yml @@ -0,0 +1,21 @@ +# Artifact Hub repository metadata file +# +# Some settings like the verified publisher flag or the ignored packages won't +# be applied until the next time the repository is processed. Please keep in +# mind that the repository won't be processed if it has not changed since the +# last time it was processed. Depending on the repository kind, this is checked +# in a different way. For Helm http based repositories, we consider it has +# changed if the `index.yaml` file changes. For git based repositories, it does +# when the hash of the last commit in the branch you set up changes. This does +# NOT apply to ownership claim operations, which are processed immediately. +# +repositoryID: 25516830-632d-470a-8eb8-6a5da9b48192 +owners: + - name: oliverguenther + email: o.guenther@openproject.com + - name: machisuji + email: m.kahl@openproject.com + - name: cbliard + email: m.kahl@openproject.com + - name: crohr + email: c.rohr@openproject.com diff --git a/docker/prod/entrypoint-slim.sh b/docker/prod/entrypoint-slim.sh new file mode 100755 index 000000000000..96a4cee71736 --- /dev/null +++ b/docker/prod/entrypoint-slim.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e +set -o pipefail + +# Use jemalloc at runtime +if [ "$USE_JEMALLOC" = "true" ]; then + export LD_PRELOAD=libjemalloc.so.2 +fi + +exec "$@" diff --git a/docker/prod/entrypoint.sh b/docker/prod/entrypoint.sh index cab5ac48198f..c8c34527dfb5 100755 --- a/docker/prod/entrypoint.sh +++ b/docker/prod/entrypoint.sh @@ -5,6 +5,11 @@ set -o pipefail APACHE_PIDFILE=/run/apache2/apache2.pid +# Use jemalloc at runtime +if [ "$USE_JEMALLOC" = "true" ]; then + export LD_PRELOAD=libjemalloc.so.2 +fi + # handle legacy configs if [ -f "/var/lib/postgresql/9.6/main/PG_VERSION" ]; then echo "ERROR: You are using a legacy volume path for your postgres data. You should mount your postgres volumes at $PGDATA instead of /var/lib/postgresql/9.6/main" diff --git a/docker/prod/setup/preinstall-common.sh b/docker/prod/setup/preinstall-common.sh index b41b98a112a3..976cc5d2b5b5 100755 --- a/docker/prod/setup/preinstall-common.sh +++ b/docker/prod/setup/preinstall-common.sh @@ -50,9 +50,9 @@ apt-get install -yq --no-install-recommends \ catdoc \ imagemagick \ libclang-dev \ + libjemalloc2 \ git - # Specifics for BIM edition if [ ! "$BIM_SUPPORT" = "false" ]; then apt-get install -y wget unzip @@ -95,4 +95,3 @@ id $APP_USER || useradd -d /home/$APP_USER -m $APP_USER rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* truncate -s 0 /var/log/*log - diff --git a/docs/api/apiv3/components/examples/status_collection.yml b/docs/api/apiv3/components/examples/status_collection.yml index c2756848fc2e..a5802fb8d246 100644 --- a/docs/api/apiv3/components/examples/status_collection.yml +++ b/docs/api/apiv3/components/examples/status_collection.yml @@ -1,72 +1,89 @@ -# Example: Status collection ---- +description: |- + A standard, unpaginated collection of statuses. value: + _type: Collection + count: 6 + total: 6 _embedded: elements: - - _links: - self: - href: "/api/v3/statuses/1" - _type: Status - defaultDoneRatio: 0 + - _type: Status id: 1 + name: New isClosed: false + color: '#3997AD' isDefault: true - name: New + isReadonly: false + excludedFromTotals: false + defaultDoneRatio: 0 position: 1 - - _links: + _links: self: - href: "/api/v3/statuses/3" - _type: Status - defaultDoneRatio: 75 + href: '/api/v3/statuses/1' + - _type: Status id: 3 + name: Resolved isClosed: false + color: '#93D2AE' isDefault: false isReadonly: false - name: Resolved + excludedFromTotals: false + defaultDoneRatio: 75 position: 3 - - _links: + _links: self: - href: "/api/v3/statuses/4" - _type: Status - defaultDoneRatio: 25 + href: '/api/v3/statuses/3' + - _type: Status id: 4 + name: Feedback isClosed: false + color: '#A96FFE' isDefault: false - name: Feedback + isReadonly: false + excludedFromTotals: false + defaultDoneRatio: 25 position: 4 - - _links: + _links: self: - href: "/api/v3/statuses/5" - _type: Status - defaultDoneRatio: 100 + href: '/api/v3/statuses/4' + - _type: Status id: 5 + name: Closed isClosed: true + color: '#DF6DA1' isDefault: false - name: Closed + isReadonly: false + excludedFromTotals: false + defaultDoneRatio: 100 position: 5 - - _links: + _links: self: - href: "/api/v3/statuses/6" - _type: Status - defaultDoneRatio: 100 + href: '/api/v3/statuses/5' + - _type: Status id: 6 + name: Rejected isClosed: true + color: '#D32937' isDefault: false - name: Rejected + isReadonly: true + excludedFromTotals: true + defaultDoneRatio: 100 position: 6 - - _links: + _links: self: - href: "/api/v3/statuses/2" - _type: Status - defaultDoneRatio: 50 + href: '/api/v3/statuses/6' + - _type: Status id: 2 + name: In Progress isClosed: false + color: '#3852C6' isDefault: false - name: In Progress + isReadonly: false + excludedFromTotals: false + defaultDoneRatio: 50 position: 3 + _links: + self: + href: '/api/v3/statuses/2' _links: self: - href: "/api/v3/statuses" - _type: Collection - count: 6 - total: 6 + href: '/api/v3/statuses' diff --git a/docs/api/apiv3/components/examples/status_response.yml b/docs/api/apiv3/components/examples/status_response.yml new file mode 100644 index 000000000000..7a132dd9bf1f --- /dev/null +++ b/docs/api/apiv3/components/examples/status_response.yml @@ -0,0 +1,16 @@ +description: A standard status resource response. +value: + _type: Status + id: 13 + name: Waiting for Darth-approval + isClosed: false + color: '#FE005D' + isDefault: false + isReadonly: false + excludedFromTotals: false + defaultDoneRatio: 66 + position: 4 + _links: + self: + href: '/api/v3/statuses/13' + title: Waiting for Darth-approval diff --git a/docs/api/apiv3/components/schemas/status_collection_model.yml b/docs/api/apiv3/components/schemas/status_collection_model.yml index f4031bf22c1f..ee670be3528c 100644 --- a/docs/api/apiv3/components/schemas/status_collection_model.yml +++ b/docs/api/apiv3/components/schemas/status_collection_model.yml @@ -4,21 +4,8 @@ allOf: - $ref: './collection_model.yml' - type: object required: - - _links - _embedded properties: - _links: - type: object - required: - - self - properties: - self: - allOf: - - $ref: './link.yml' - - description: |- - This file links collection - - **Resource**: StatusCollectionModel _embedded: type: object required: diff --git a/docs/api/apiv3/components/schemas/status_model.yml b/docs/api/apiv3/components/schemas/status_model.yml index da3f9113e6fd..e17ae6384235 100644 --- a/docs/api/apiv3/components/schemas/status_model.yml +++ b/docs/api/apiv3/components/schemas/status_model.yml @@ -9,52 +9,45 @@ properties: id: type: integer description: Status id - readOnly: true minimum: 1 name: type: string description: Status name - readOnly: true - position: - type: integer - description: Sort index of the status - readOnly: true - isDefault: - type: boolean - readOnly: true isClosed: type: boolean - description: are tickets of this status considered closed? - readOnly: true + description: Indicates, whether work package of this status are considered closed + color: + type: string + format: hex-code + description: The color of the status + isDefault: + type: boolean + description: True, if this status is the default status for new work packages isReadonly: type: boolean - description: are tickets of this status read only? - readOnly: true + description: Indicates, whether work package of this status are readonly + excludedFromTotals: + type: boolean + description: |- + Indicates, whether work package of this status are excluded from totals of `Work`, `Remaining work`, and + `% Complete` in a hierarchy. defaultDoneRatio: type: integer description: The percentageDone being applied when changing to this status + minimum: 0 maximum: 100 + position: + type: integer + description: Sort index of the status _links: type: object required: - - self + - self properties: self: allOf: - - "$ref": "./link.yml" - - description: |- - This status - - **Resource**: Status - readOnly: true -example: - _links: - self: - href: "/api/v3/statuses/1" - _type: Status - id: 1 - name: New - position: 1 - isDefault: true - isClosed: false - defaultDoneRatio: 0 + - $ref: './link.yml' + - description: |- + This status + + **Resource**: Status diff --git a/docs/api/apiv3/openapi-spec.yml b/docs/api/apiv3/openapi-spec.yml index c9ffc28257e3..9175c3f08b8b 100644 --- a/docs/api/apiv3/openapi-spec.yml +++ b/docs/api/apiv3/openapi-spec.yml @@ -527,6 +527,10 @@ components: $ref: "./components/examples/relation_response.yml" RelationUpdateRequest: $ref: "./components/examples/relation_update_request.yml" + StatusCollection: + $ref: "./components/examples/status_collection.yml" + StatusResponse: + $ref: "./components/examples/status_response.yml" StorageNextcloudResponse: $ref: "./components/examples/storage-nextcloud-response.yml" StorageNextcloudResponseForCreation: @@ -537,16 +541,14 @@ components: $ref: "./components/examples/storage-one-drive-incomplete-response.yml" StorageOneDriveResponse: $ref: "./components/examples/storage-one-drive-response.yml" + StoragesSimpleCollectionModel: + $ref: "./components/examples/storages-simple-collection-response.yml" QueriesModel: $ref: "./components/examples/queries.yml" QueryModel: $ref: "./components/examples/query.yml" QuerySchemaModel: $ref: "./components/examples/query_schema.yml" - StatusCollection: - $ref: "./components/examples/status_collection.yml" - StoragesSimpleCollectionModel: - $ref: "./components/examples/storages-simple-collection-response.yml" UserResponse: $ref: "./components/examples/user-response.yml" ValuesPropertyStartDateSchema: diff --git a/docs/api/apiv3/paths/status.yml b/docs/api/apiv3/paths/status.yml index b20d4d852b34..5edf3a96530f 100644 --- a/docs/api/apiv3/paths/status.yml +++ b/docs/api/apiv3/paths/status.yml @@ -1,53 +1,54 @@ # /api/v3/statuses/{id} --- get: + summary: Get a work package status + operationId: get_status + tags: + - Statuses + description: |- + Returns a work package status by its unique identifier. parameters: - - description: Status id - example: '1' - in: path - name: id - required: true - schema: - type: integer + - name: id + description: Status id + in: path + required: true + schema: + type: integer + example: '1' responses: '200': + description: OK content: application/hal+json: examples: response: - value: - _links: - self: - href: "/api/v3/statuses/1" - _type: Status - defaultDoneRatio: 0 - id: 1 - isClosed: false - isDefault: true - name: New - position: 1 + $ref: '../components/examples/status_response.yml' schema: - "$ref": "../components/schemas/status_model.yml" - description: OK - headers: {} + $ref: '../components/schemas/status_model.yml' '403': + description: |- + Returned if the client does not have sufficient permissions. + + **Required permission:** view work package (on any project) content: application/hal+json: schema: - $ref: "../components/schemas/error_response.yml" + $ref: '../components/schemas/error_response.yml' examples: response: value: _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission message: You are not allowed to see this status. - description: |- - Returned if the client does not have sufficient permissions. - - **Required permission:** view work package (on any project) - headers: {} - tags: - - Statuses - description: '' - operationId: View_Status - summary: View Status + '404': + description: Returned if the status does not exist. + content: + application/hal+json: + schema: + $ref: '../components/schemas/error_response.yml' + examples: + response: + value: + _type: Error + errorIdentifier: urn:openproject-org:api:v3:errors:NotFound + message: The requested resource could not be found. diff --git a/docs/api/apiv3/paths/statuses.yml b/docs/api/apiv3/paths/statuses.yml index 557b4a7c987f..c7878c8e6d90 100644 --- a/docs/api/apiv3/paths/statuses.yml +++ b/docs/api/apiv3/paths/statuses.yml @@ -1,35 +1,33 @@ # /api/v3/statuses --- get: + summary: List the collection of all statuses + operationId: list_statuses + tags: + - Statuses + description: Returns a collection of all work package statuses. responses: '200': + description: OK content: application/hal+json: examples: 'simple status collection': - $ref: "../components/examples/status_collection.yml" + $ref: '../components/examples/status_collection.yml' schema: - "$ref": "../components/schemas/status_collection_model.yml" - description: OK - headers: {} + $ref: '../components/schemas/status_collection_model.yml' '403': + description: |- + Returned if the client does not have sufficient permissions. + + **Required permission:** view work package (on any project) content: application/hal+json: schema: - $ref: "../components/schemas/error_response.yml" + $ref: '../components/schemas/error_response.yml' examples: response: value: _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission message: You are not allowed to see the statuses. - description: |- - Returned if the client does not have sufficient permissions. - - **Required permission:** view work package (on any project) - headers: {} - tags: - - Statuses - description: '' - operationId: List_all_Statuses - summary: List all Statuses diff --git a/docs/api/apiv3/tags/statuses.yml b/docs/api/apiv3/tags/statuses.yml index c1b46ecf5ae5..a8623c757a13 100644 --- a/docs/api/apiv3/tags/statuses.yml +++ b/docs/api/apiv3/tags/statuses.yml @@ -1,20 +1,21 @@ ---- +name: Statuses description: |- ## Linked Properties - | Link | Description | Type | Constraints | Supported operations | - |:-------------:|-------------------------- | ------------- | ----------- | -------------------- | - | self | This status | Status | not null | READ | + | Link | Description | Type | Constraints | Supported operations | + |:----:|-------------|--------|-------------|----------------------| + | self | This status | Status | not null | READ | ## Local Properties - | Property | Description | Type | Constraints | Supported operations | - | :--------: | ------------- | ------- | ----------- | -------------------- | - | id | Status id | Integer | x > 0 | READ | - | name | Status name | String | | READ | - | position | Sort index of the status | Integer | | READ | - | isDefault | | Boolean | | READ | - | isClosed | are tickets of this status considered closed? | Boolean | | READ | - | isReadonly | are tickets of this status read only? | Boolean | | READ | - | defaultDoneRatio | The percentageDone being applied when changing to this status | Integer | 0 <= x <= 100 | READ | -name: Statuses + | Property | Description | Type | Constraints | Supported operations | + |:------------------:|--------------------------------------------------------------------------------------------------------------------------------------------|---------|---------------|----------------------| + | id | Status id | Integer | x > 0 | READ | + | name | Status name | String | | READ | + | isClosed | Indicates, whether work package of this status are considered closed | Boolean | | READ | + | color | A Hex-coded value of the color assigned to the status. | String | | READ | + | isDefault | True, if this status is the default status for new work packages | Boolean | | READ | + | isReadonly | Indicates, whether work package of this status are readonly | Boolean | | READ | + | excludedFromTotals | Indicates, whether work package of this status are excluded from totals of
    `Work`, `Remaining work`, and `% Complete` in a hierarchy. | Boolean | | READ | + | defaultDoneRatio | The percentageDone being applied when changing to this status | Integer | 0 <= x <= 100 | READ | + | position | Sort index of the status | Integer | | READ | diff --git a/docs/development/concepts/stimulus/README.md b/docs/development/concepts/stimulus/README.md index af7199d220ff..5bb9b78b1c50 100644 --- a/docs/development/concepts/stimulus/README.md +++ b/docs/development/concepts/stimulus/README.md @@ -44,7 +44,7 @@ You need to take care to prefix all actions, values etc. with the exact same pat ### Requiring a page controller -If you have a single controller used in a partial, we have added a helper to use in a partial in order to append a controller to the `#content`tag. This is useful if your template doesn't have a single DOM root. For example, to load the dynamic `project-storage-form` controller and provide a custom value to it: +If you have a single controller used in a partial, we have added a helper to use in a partial in order to append a controller to the `#content-wrapper` tag. This is useful if your template doesn't have a single DOM root. For example, to load the dynamic `project-storage-form` controller and provide a custom value to it: ```erb <% content_controller 'project-storage-form', diff --git a/docs/development/development-environment/macos/README.md b/docs/development/development-environment/macos/README.md index 5d1ed3b0e16c..279b6b71aa87 100644 --- a/docs/development/development-environment/macos/README.md +++ b/docs/development/development-environment/macos/README.md @@ -6,11 +6,11 @@ description: OpenProject development setup on Mac OS keywords: development setup macos --- -# OpenProject development setup on Mac OS X +# OpenProject development setup on macOS To develop OpenProject a setup similar to that for using OpenProject in production is needed. -This guide assumes that you have a Mac OS X installation with administrative rights. +This guide assumes that you have a macOS installation with administrative rights. OpenProject will be installed with a PostgreSQL database. **Please note**: This guide is NOT suitable for a production setup, but only for developing with it! @@ -75,10 +75,11 @@ steps. ```shell # Install postgres database -$ brew install postgres +$ brew install postgresql -# Create the database instance -$ postgres -D /usr/local/var/postgres +# Confirm that postgres has created a default database cluster if you see +This formula has created a default database cluster with: + initdb --locale=C -E UTF-8 /opt/homebrew/var/postgresql@14 # /usr/local for Intel Macs ``` Then, create the OpenProject database user and accompanied database. @@ -172,6 +173,10 @@ It should look like this (just with your database name, username, and password): default: &default adapter: postgresql encoding: unicode + # Socket encryption must be disabled on macOS. There is an old bug in which forked processes cause problems on a Mac. + # TL;DR: set this flag, otherwise Ruby will crash whenever a route is accessed. + # Visit https://github.com/ged/ruby-pg/issues/311 to enter the rabbit hole. + gssencmode: disable host: localhost username: openproject password: openproject-dev-password @@ -189,6 +194,27 @@ To configure the environment variables such as the number of web server threads the `.env.example` to `.env` and add the environment variables you want to configure. The variables will be automatically loaded to the application's environment. +> [!TIP] +> Instead of using the `gssencmode` flag in `config/database.yml`, you can add `export PGGSSENCMODE="disable"` to your +> Shell profile (`~/.zprofile` by default). This will prevent Ruby crashes for *all* of your projects. + +Some users report Ruby crashes despite having set this flag to disable. If this is the case for you as well, +try adding `export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=yes` to your Shell profile. + +### Install other requirements + +Some operations in OpenProject require additional software. These include PDF exports and interaction with an +LDAP server. + +In order to develop OpenProject in these areas, you need to install `imagemagick` and `java`. + +```shell +brew install imagemagick java +``` + +As of writing, you need to manually create a symlink to OpenJDK for the Java installation to take effect. Homebrew will +tell you how. + ### Finish the Installation of OpenProject Install code dependencies, link plugin modules and export translation files. diff --git a/docs/user-guide/team-planner/README.md b/docs/user-guide/team-planner/README.md index ef3e9934b2e5..64c79e0c99fb 100644 --- a/docs/user-guide/team-planner/README.md +++ b/docs/user-guide/team-planner/README.md @@ -50,7 +50,7 @@ A team planner has a number of features numbered 1 to 8 in the above screenshot: 1. Click on the name of your team planner (*Marketing Team* in the example above) to edit it. Unless it's a new team planner, this change has to be confirmed by pressing the floppy disk icon that appears next to the name after you change it. 2. Use the **+ Add existing** button to add an existing work package to the team planner. You do this by searching for work package and dragging its card to an assignee, at a certain time. This will then update the *assignee*, *start date* and *finish date* attributes of that work package. -3. Add a new team member to the assignee column by Clicking on the **Add assignee** button. +3. Add a new team member to the assignee column by Clicking on the **+ Assignee** button. 4. By default, the team planner will only show assigned work packages belonging to the current project. However, it is possible to also add assigned work packages belonging to other projects. You can make these work packages from other projects visible by using **Include projects** feature and selecting additional projects to be included in this view. 5. Use the **Filter** feature (same as in the [work packages](../work-packages/work-package-table-configuration/#filter-work-packages) module) to display only work packages that meet certain filter criteria. You could, for example, filter such that only work packages of certain types, certain status or certain custom field values are visible. 6. The **Fullscreen** button lets you view the team planner in fullscreen mode. diff --git a/docs/user-guide/wysiwyg/README.md b/docs/user-guide/wysiwyg/README.md index 971a84c7b5f7..af00d7c384ea 100644 --- a/docs/user-guide/wysiwyg/README.md +++ b/docs/user-guide/wysiwyg/README.md @@ -7,24 +7,25 @@ keywords: WYSIWYG, CKEditor, Links to OpenProject resources # Rich text (WYSIWYG) editor in OpenProject -Starting with version 8.0.0, OpenProject features a quasi-WYSIWYG editor, powered by [CKSource CKEditor5](https://ckeditor5.github.io/). The underlying format is GitHub-flavored CommonMark ([GFM](https://github.github.com/gfm/)). All previous textile-based content will be migrated when upgrading to OpenProject 8.0. +OpenProject features a quasi-WYSIWYG editor, powered by [CKSource CKEditor5](https://ckeditor5.github.io/). The underlying format is GitHub-flavored CommonMark ([GFM](https://github.github.com/gfm/)) with additional HTML for e.g. mentions and image sizing. -> **Please note:** In some resources such as work packages or comments, the editor does not exhibit all functionality such as macros or image upload. -> In the work package split screen view (details view) you may have to use the three vertical dots to access additional features of the editor. +> [!NOTE] +> In some resources, such as work packages or comments, the editor does not exhibit all functionality, such as macros or image uploads. +> In the work package split screen view (details view), you may have to use the three vertical dots to access additional features of the editor. -| Topic | Content | -| ------------------------------------------------------------ | -------------------------------------------------------- | -| [Basic formatting](#basic-formatting) | Basic formatting elements in the WYSIWYG editor | -| [Image handling](#image-handling) | How to add images in the WYSIWYG editor. | -| [Keyboard shortcuts](#keyboard-shortcuts) | Working with keyboard shortcuts in the WYSIWYG editor. | -| [Macros](#macros) | Available macros in the WYSIWYG editor | -| [Links to OpenProject resources](#links-to-openproject-resources) | How to link to resources like wikis, projects, meetings. | -| [Embedding of work package attributes and project attributes](#embedding-of-work-package-attributes-and-project-attributes) | How to embed attributes and attribute help texts. | +| Topic | Content | +|-----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------| +| [Basic formatting](#basic-formatting) | Basic formatting elements in the WYSIWYG editor | +| [Image handling](#image-handling) | How to add images in the WYSIWYG editor. | +| [Keyboard shortcuts](#keyboard-shortcuts) | Working with keyboard shortcuts in the WYSIWYG editor. | +| [Macros](#macros) | Available macros in the WYSIWYG editor | +| [Links to OpenProject resources](#links-to-openproject-resources) | How to link to resources like wikis, projects and meetings. | +| [Embedding of work package attributes and project attributes](#embedding-of-work-package-attributes-and-project-attributes) | How to embed attributes and attribute help texts. | ## Basic formatting The CKEditor5 build in OpenProject supports basic text styles, such as bold and italic formatting, headings, -strike-through, inline code, and quotes as well as inline image handling. Pasting content such as images or rich text is also supported, while unsupported styling will be stripped by the editor. +strike-through, inline code, and quotes, as well as inline image handling. Pasting content such as images or rich text is also supported, while unsupported styling will be stripped by the editor. ### Line breaks @@ -36,7 +37,7 @@ Create hyperlinks by pressing the tool-bar (optionally with some selected text), ### Widgets and Newlines -CKEditor uses widgets to display block elements such as images, tables, and other elements that are not inline. You can select most widgets by pressing on it - The only exception to that is the table widget, it has a little select knob at the top left to select the entire table. +CKEditor uses widgets to display block elements such as images, tables, and other elements that are not inline. You can select most widgets by pressing on them - The only exception to that is the table widget, it has a little select knob at the top left to select the entire table. When you have a widget selected, you can remove or cut it. You can create a newline below it by selecting the widget and pressing `ENTER` or `↓ (ARROW DOWN)`, or a newline above it by pressing `SHIFT+enter` or `↑ (ARROW UP)`. This is especially needed when the widget is the first or last element on the page to insert a line below or above it. @@ -46,7 +47,7 @@ As CKEditor5 currently does not provide support for code blocks, OpenProject can ### Tables -The GFM extension of the CommonMark specs adds a definition for table syntax which the CKEditor of OpenProject supports. This definition requires all tables to have a heading row. For tables created with CKEditor without heading rows, a HTML table is output instead. This matches the behavior of, e.g., GitHub. +The GFM extension of the CommonMark specs adds a definition for table syntax, which the CKEditor of OpenProject supports. This definition requires all tables to have a heading row. For tables created with CKEditor without heading rows, a HTML table is output instead. This matches the behavior of, e.g., GitHub. ### Autoformatting @@ -75,13 +76,13 @@ CKEditor has a wide variety of keyboard shortcuts you can use. You can find a li On top of that, OpenProject adds the following shortcut: -| Shortcut (Windows / Linux) | Shortcut (Mac) | Action | -| -------------------------- | -------------- | ------------------------------------------------------------ | +| Shortcut (Windows / Linux) | Shortcut (Mac) | Action | +|----------------------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | CTRL + ENTER | CMD + ENTER | **Save changes.**
    For inline-editable fields, save the field and close it.
    For pages with a full WYSIWYG (meetings, wiki pages), submit the form. | ## Macros -OpenProject has supported macros on textile formatted pages and continues to do so with the WYSIWYG editor. Note that macros are not expanded while editing the page, instead a placeholder is shown. +OpenProject has supported macros on textile formatted pages and continues to do so with the WYSIWYG editor. Note that macros are not expanded while editing the page, instead, a placeholder is shown. You can find the macros here in the text editor: ![Macros text editor](image-20201109183018255.png) @@ -112,87 +113,144 @@ Use it to embed views in other pages, create reporting of multiple results, or t As with the textile formatting syntax, you can link to other resources within OpenProject using the same shortcuts as before. Create links to a: -- **wiki page**: `[[Wiki page]]` -- **wiki page with separate link name**: `[[Wiki page|The text of the link]]` -- **wiki page in the Sandbox project**: `[[Sandbox:Wiki page]]` -- **work package with ID12**: `#12` -- **work package with ID 12 with subject and type**: `##12` -- **work package with ID 12 with subject, type, status, and dates**: `###12` -- **version by ID or name**: `version#3`, `version:"Release 1.0.0"` -- **project by ID/name**: `project#12` , `project:"My project name"` -- **attachment by filename**: `attachment:filename.zip` -- **meeting by ID/name**: `meeting#12` , `meeting:"My meeting name"` -- **document by ID/name**: `document#12` , `document:"My document name"` -- **user by id or login**: `user#4` , `user:"johndoe"` -- **a forum message by ID**: `message#1218` -- **repository revision 43**: `r43` -- **commit by hash:** `commit:f30e13e4` -- **To a source file in the repository**: `source:"some/file"` +| **Link target** | Usage example | +|---------------------------------------------------------------|-----------------------------------------------| +| Wiki page | `[[Wiki page]]` | +| Wiki page with separate link name | `[[Wiki page\|The text of the link]]` | +| Wiki page in the Sandbox project | `[[Sandbox:Wiki page]]` | +| Work package with ID12 | `#12` | +| Work package with ID 12 with subject and type | `##12` | +| Work package with ID 12 with subject, type, status, and dates | `###12` | +| Version by ID or name | `version#3`, `version:"Release 1.0.0"` | +| Project by ID/name | `project#12` , `project:"My project name"` | +| Attachment by filename | `attachment:filename.zip` | +| Meeting by ID/name | `meeting#12` , `meeting:"My meeting name"` | +| Document by ID/name | `document#12` , `document:"My document name"` | +| User by ID or login | `user#4` , `user:"johndoe"` | +| Forum message by ID | `message#1218` | +| Repository revision 43 | `r43` | +| Commit by hash | `commit:f30e13e4` | +| Source file in the repository | `source:"some/file"` | To avoid processing these items, preceding them with a bang `!` character such as `!#12` will prevent linking to a work package with ID 12. -> **Please note**: All these macros need to be written as a new word (i.e., with at least one space before it or at the beginning of a paragraph/sentence. Macros contained within a word such as `somethingmeeting#4` will not be parsed. +> [!NOTE] +> All these macros need to be written as a new word (i.e., with at least one space before it or at the beginning of a paragraph/sentence). Macros contained within a word such as `somethingmeeting#4` will not be parsed. ### Autocompletion for work packages and users -For work packages and users, typing `#` or `@` will open an autocompleter for visible work packages and users, respectively. +For work packages and users, typing `#` or `@` will open an autocomplete dropdown for visible work packages and users, respectively. ## Embedding of work package attributes and project attributes -You can embed specific attributes of work packages or projects using a certain syntax. -Examples: +> [!NOTE] +> These macros will only be expanded in the frontend. For each individual user, the correct permissions will be checked and +> the macro will result in an error if the user is not allowed to view the respective resource. -- **Linking to the subject of work package with id #1234**: `workPackageValue:1234:subject` (this also works for other attributes, too. See table below.) -- **Linking to the current project's status**: `projectValue:status` -- **Linking to the subject of work package with subject "Project start"**: `workPackageValue:"Project start":subject` +### Embedding of a work package value by work package ID -> **Please note**: Referencing a work package by subject results in only looking for work packages with that given subject in the current project (if any). If you need to cross-reference work packages, use their ID to pinpoint the work package you want to reference. +Use the `workPackageValue:ID:attribute` macros to embed attributes of a work package by its [work package ID](../work-packages). +See the [table below](#available-attributes-for-work-packages) for available attributes. -### Embedding attribute help texts +Example: + +**Linking to the subject of work package with ID #1234**: `workPackageValue:1234:subject` + +### Embedding of a work package value by work package subject + +Use the `workPackageValue:"Project name":attribute` macros to embed attributes of a work package by its subject. +See the [table below](#available-attributes-for-work-packages) for available attributes. + +Example: + +**Linking to the assignee of work package with subject "Project start"**: `workPackageValue:"Project start":assignee` + +> [!NOTE] +> Referencing a work package by subject results in only looking for work packages with that given subject in the current project (if any). +> If you need to cross-reference work packages, use their ID to pinpoint the work package you want to reference. +> We recommend against using subjects as references, as they are not updated when the referenced subject changes. + +### Relative embedding of a work package value + +Use the `workPackageValue:attribute` macros to embed attributes of the current work package. + +If you are editing a work package description or a rich text custom field belonging to a work package you can omit the ID if you want to reference it. +You must include the work package ID if you are editing e.g. a wiki page or a meeting description. +See the [table below](#available-attributes-for-work-packages) for available attributes. + +Example: -You can also embed attribute values and [their help texts](../../system-admin-guide/attribute-help-texts/) by using `workPackageLabel` instead of: `workPackageLabel:1234:status` which would output the translated label for "Status" and (if exists), the corresponding help text for it. +**Linking to the assigned person of the current work package**: `workPackageValue:assignee` + +### Embedding of a project value by project ID + +Use the `projectValue:ID:attribute` macros to embed attributes of a project by its project ID. +See the [table below](#available-attributes-for-projects) for available attributes. + +Example: + +**Linking to the project's status with the ID 1234**: `projectValue:1234:status` + +### Relative embedding of a project value + +Use the `projectValue:attribute` macros to embed attributes of the current project. +See the [table below](#available-attributes-for-projects) for available attributes. + +Example: + +**Linking to the current project's status**: `projectValue:status` + +### Embedding attribute help texts -> **Please note**: These macros will only be expanded in the frontend. For each individual user, the correct permissions will be checked and the macro will result in an error if the user is not allowed to view the respective resource. +You can also embed attribute values and [their help texts](../../system-admin-guide/attribute-help-texts/) by using `workPackageLabel` or `projectLabel`. +For example`workPackageLabel:1234:status` would output the translated label for "Status" and (if exists), the corresponding help text for it. ## Attributes The following lists show the supported attributes for work packages and projects. -> **Please note**: If you are using a language different than English, a translation of the commands can only be used in the text editor if the language of all the users of an instance is set to the same language (for example German). In this case, only the attribute to which the command refers is translated, e.g. (`workPackageValue:1234:"translated attribute"`). We recommend against using translated attributes, as they might break in future versions due to fixes or changes to texts. +> [!NOTE] +> If you are using a language different than English, a translation of the commands can only be used in the text editor if the language of all the users of an instance is set to the same language (for example German). +> In this case, only the attribute to which the command refers is translated, e.g. (`workPackageValue:1234:"translated attribute"`). +> We recommend against using translated attributes, as they might break in future versions due to fixes or changes to texts. ### Available attributes for work packages -The following list contains all supported attribute names for the `workPackageValue` and `workPackageLabel` macros, where `1234` stands for the [work package ID](../work-packages). +The following list contains all supported attribute names for the `workPackageValue` and `workPackageLabel` macros, +where `1234` stands for the [work package ID](../work-packages). -| **Attribute** | Usage example | -| ------------------- | ------------------------------------------------------------ | +| **Attribute** | Usage example | +|---------------------|-----------------------------------------------------------------| | *Custom Fields* | `workPackageValue:1234:"Name of the work package custom field"` | -| Assignee | `workPackageValue:1234:assignee` | -| Author | `workPackageValue:1234:author` | -| Category | `workPackageValue:1234:category` | -| Creation date | `workPackageValue:1234:createdAt` | -| Description | `workPackageValue:1234:description` | -| Estimated time | `workPackageValue:1234:estimatedTime` | -| Finish date | `workPackageValue:1234:dueDate` | -| Parent work package | `workPackageValue:1234:parent` | -| Priority | `workPackageValue:1234:priority` | -| Project | `workPackageValue:1234:project` | -| Remaining hours | `workPackageValue:1234:remainingTime` (sic!) | -| Responsible user | `workPackageValue:1234:responsible` | -| Spent time | `workPackageValue:1234:spentTime` | -| Start date | `workPackageValue:1234:startDate` | -| Status | `workPackageValue:1234:status` | -| Subject / Title | `workPackageValue:1234:subject` | -| Work package type | `workPackageValue:1234:type` | -| Date of last update | `workPackageValue:1234:updatedAt` | -| Version | `workPackageValue:1234:version` | +| Assignee | `workPackageValue:1234:assignee` | +| Author | `workPackageValue:1234:author` | +| Category | `workPackageValue:1234:category` | +| Creation date | `workPackageValue:1234:createdAt` | +| Description | `workPackageValue:1234:description` | +| Estimated time | `workPackageValue:1234:estimatedTime` | +| Finish date | `workPackageValue:1234:dueDate` | +| Parent work package | `workPackageValue:1234:parent` | +| Priority | `workPackageValue:1234:priority` | +| Project | `workPackageValue:1234:project` | +| Remaining hours | `workPackageValue:1234:remainingTime` | +| Accountable | `workPackageValue:1234:responsible` | +| Spent time | `workPackageValue:1234:spentTime` | +| Start date | `workPackageValue:1234:startDate` | +| Status | `workPackageValue:1234:status` | +| Subject / Title | `workPackageValue:1234:subject` | +| Work package type | `workPackageValue:1234:type` | +| Date of last update | `workPackageValue:1234:updatedAt` | +| Version | `workPackageValue:1234:version` | + +> [!NOTE] +> Recursive embedding of rich text is not supported. For example, you cannot embed a work package description in itself with `workPackageValue:description`. ### Available attributes for projects The following list contains all supported attribute names for the `projectValue` and `projectLabel` macros. The examples all show references to the _current_ project the document is rendered in. They can also reference another project with `projectValue:"Identifier of the project":attribute`. | **Attribute** | Usage example | -| ------------------------- | ------------------------------------------------- | +|---------------------------|---------------------------------------------------| | *Custom Fields* | `projectValue:"Name of the project custom field"` | | Project active? (boolean) | `projectValue:active` | | Description | `projectValue:description` | diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js index 8e1c4fb6f5ce..74d5ea509940 100644 --- a/frontend/.eslintrc.js +++ b/frontend/.eslintrc.js @@ -115,6 +115,9 @@ module.exports = { "indent": "off", "@typescript-eslint/indent": "off", + // Allow namespaces, they are generated into flat functions and we don't care about modules for helpers + "@typescript-eslint/no-namespace": "off", + /* // Disable use before define, as irrelevant for TS interfaces "no-use-before-define": "off", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 1ccf2ba6af66..e11ffd6769e6 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -39,15 +39,15 @@ "@fullcalendar/timegrid": "^6.1.11", "@github/webauthn-json": "^2.1.1", "@hotwired/stimulus": "^3.2.2", - "@hotwired/turbo": "^8.0.4", - "@hotwired/turbo-rails": "^8.0.4", + "@hotwired/turbo": "^8.0.10", + "@hotwired/turbo-rails": "^8.0.10", "@kolkov/ngx-gallery": "^2.0.1", "@ng-select/ng-option-highlight": "13.2.0", "@ng-select/ng-select": "^13.2.0", "@ngneat/content-loader": "^7.0.0", "@ngx-formly/core": "^6.1.4", "@openproject/octicons-angular": "^19.18.0", - "@openproject/primer-view-components": "^0.43.1", + "@openproject/primer-view-components": "^0.47.0", "@openproject/reactivestates": "^3.0.1", "@primer/css": "^21.3.3", "@types/hotwired__turbo": "^8.0.1", @@ -261,11 +261,11 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1703.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.8.tgz", - "integrity": "sha512-lKxwG4/QABXZvJpqeSIn/kAwnY6MM9HdHZUV+o5o3UiTi+vO8rZApG4CCaITH3Bxebm7Nam7Xbk8RuukC5rq6g==", + "version": "0.1703.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.9.tgz", + "integrity": "sha512-kEPfTOVnzrJxPGTvaXy8653HU9Fucxttx9gVfQR1yafs+yIEGx3fKGKe89YPmaEay32bIm7ZUpxDF1FO14nkdQ==", "dependencies": { - "@angular-devkit/core": "17.3.8", + "@angular-devkit/core": "17.3.9", "rxjs": "7.8.1" }, "engines": { @@ -275,14 +275,14 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.8.tgz", - "integrity": "sha512-ixsdXggWaFRP7Jvxd0AMukImnePuGflT9Yy7NJ9/y0cL/k//S/3RnkQv5i411KzN+7D4RIbNkRGGTYeqH24zlg==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.9.tgz", + "integrity": "sha512-EuAPSC4c2DSJLlL4ieviKLx1faTyY+ymWycq6KFwoxu1FgWly/dqBeWyXccYinLhPVZmoh6+A/5S4YWXlOGSnA==", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1703.8", - "@angular-devkit/build-webpack": "0.1703.8", - "@angular-devkit/core": "17.3.8", + "@angular-devkit/architect": "0.1703.9", + "@angular-devkit/build-webpack": "0.1703.9", + "@angular-devkit/core": "17.3.9", "@babel/core": "7.24.0", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", @@ -293,7 +293,7 @@ "@babel/preset-env": "7.24.0", "@babel/runtime": "7.24.0", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.3.8", + "@ngtools/webpack": "17.3.9", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.18", @@ -337,7 +337,7 @@ "undici": "6.11.1", "vite": "5.1.7", "watchpack": "2.4.0", - "webpack": "5.90.3", + "webpack": "5.94.0", "webpack-dev-middleware": "6.1.2", "webpack-dev-server": "4.15.1", "webpack-merge": "5.10.0", @@ -582,11 +582,11 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1703.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.8.tgz", - "integrity": "sha512-9u6fl8VVOxcLOEMzrUeaybSvi9hSLSRucHnybneYrabsgreDo32tuy/4G8p6YAHQjpWEj9jvF9Um13ertdni5Q==", + "version": "0.1703.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.9.tgz", + "integrity": "sha512-3b0LND39Nc+DwCQ0N7Tbsd7RAFWTeIc4VDwk/7RO8EMYTP5Kfgr/TK66nwTBypHsjmD69IMKHZZaZuiDfGfx2A==", "dependencies": { - "@angular-devkit/architect": "0.1703.8", + "@angular-devkit/architect": "0.1703.9", "rxjs": "7.8.1" }, "engines": { @@ -600,9 +600,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.8.tgz", - "integrity": "sha512-Q8q0voCGudbdCgJ7lXdnyaxKHbNQBARH68zPQV72WT8NWy+Gw/tys870i6L58NWbBaCJEUcIj/kb6KoakSRu+Q==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.9.tgz", + "integrity": "sha512-/iKyn5YT7NW5ylrg9yufUydS8byExeQ2HHIwFC4Ebwb/JYYCz+k4tBf2LdP+zXpemDpLznXTQGWia0/yJjG8Vg==", "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", @@ -637,11 +637,11 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.8.tgz", - "integrity": "sha512-QRVEYpIfgkprNHc916JlPuNbLzOgrm9DZalHasnLUz4P6g7pR21olb8YCyM2OTJjombNhya9ZpckcADU5Qyvlg==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.9.tgz", + "integrity": "sha512-9qg+uWywgAtaQlvbnCQv47hcL6ZuA+d9ucgZ0upZftBllZ2vp5WIthCPb2mB0uBkj84Csmtz9MsErFjOQtTj4g==", "dependencies": { - "@angular-devkit/core": "17.3.8", + "@angular-devkit/core": "17.3.9", "jsonc-parser": "3.2.1", "magic-string": "0.30.8", "ora": "5.4.1", @@ -654,33 +654,29 @@ } }, "node_modules/@angular-eslint/builder": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.5.2.tgz", - "integrity": "sha512-bvegxJuocWeHdvISPfCXeLQPSjrMCEVzxXPg16JJKksKWSeRA1JnbXnfnb7eoLdq1+riMHKqbH6Fs4rORAvUiA==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.5.3.tgz", + "integrity": "sha512-DoPCwt8qp5oMkfxY8V3wygf6/E7zzgXkPCwTRhIelklfpB3nYwLnbRSD8G5hueAU4eyASKiIuhR79E996AuUSw==", "dev": true, - "dependencies": { - "@nx/devkit": "^17.2.8 || ^18.0.0 || ^19.0.0", - "nx": "^17.2.8 || ^18.0.0 || ^19.0.0" - }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.5.2.tgz", - "integrity": "sha512-K4hVnMyI98faMJmsA4EOBkD0tapDjWV5gy0j/wJ2uSL46d3JgZPZNJSO1zStf/b3kT4gLOlQ/ulWFiUf1DxgIw==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.5.3.tgz", + "integrity": "sha512-x9jZ6mME9wxumErPGonWERXX/9TJ7mzEkQhOKt3BxBFm0sy9XQqLMAenp1PBSg3RF3rH7EEVdB2+jb75RtHp0g==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.5.2.tgz", - "integrity": "sha512-kzPALKyT5XIEbgoNmY/hEZWdMWKTX56Pap9fVLJSC/b+Nd+MXc7TNly2s0XoC0Ru1/kMiVzbmSGPheu/rw+9aA==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.5.3.tgz", + "integrity": "sha512-2gMRZ+SkiygrPDtCJwMfjmwIFOcvxxC4NRX/MqRo6udsa0gtqPrc8acRbwrmAXlullmhzmaeUfkHpGDSzW8pFw==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", - "@angular-eslint/utils": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", + "@angular-eslint/utils": "17.5.3", "@typescript-eslint/utils": "7.11.0" }, "peerDependencies": { @@ -689,13 +685,13 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.5.2.tgz", - "integrity": "sha512-6sxVwrJ7yElZxcjxHSA0Ujs29bCD/cMubd9n6TDFI9e3v+ktpoMW4Nv/TCHv0OuYatIOZ7bcJxi38cAO8Vhfhw==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.5.3.tgz", + "integrity": "sha512-RkRFagxqBPV2xdNyeQQROUm6I1Izto1Z3Wy73lCk2zq1RhVgbznniH/epmOIE8PMkHmMKmZ765FV++J/90p4Ig==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", - "@angular-eslint/utils": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", + "@angular-eslint/utils": "17.5.3", "@typescript-eslint/type-utils": "7.11.0", "@typescript-eslint/utils": "7.11.0", "aria-query": "5.3.0", @@ -830,12 +826,12 @@ } }, "node_modules/@angular-eslint/template-parser": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.5.2.tgz", - "integrity": "sha512-46emLElmnIUzW0bpEpSf0u05ofRVUwlfttDOMLedhi700peUKbB9Y6iyz3GzAtQCMklBbJC9nR87LQRH9aSlog==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.5.3.tgz", + "integrity": "sha512-NYybOsMkJUtFOW2JWALicipq0kK5+jGwA1MYyRoXjdbDlXltHUb9qkXj7p0fE6uRutBGXDl4288s8g/fZCnAIA==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", "eslint-scope": "^8.0.0" }, "peerDependencies": { @@ -844,12 +840,12 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.5.2.tgz", - "integrity": "sha512-bTMPFqtoetBJsYR/xqREEOCy/CdsKGf2gZkRdH73gG6pOpskWt8J/PbRcMZsC349paV4HFixByVm89inqA0TNg==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.5.3.tgz", + "integrity": "sha512-0nNm1FUOLhVHrdK2PP5dZCYYVmTIkEJ4CmlwpuC4JtCLbD5XAHQpY/ZW5Ff5n1b7KfJt1Zy//jlhkkIaw3LaBQ==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", "@typescript-eslint/utils": "7.11.0" }, "peerDependencies": { @@ -888,14 +884,14 @@ } }, "node_modules/@angular/cli": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.8.tgz", - "integrity": "sha512-X5ZOQ6ZTKVHjhIsfl32ZRqbs+FUoeHLbT7x4fh2Os/8ObDDwrUcCJPqxe2b2RB5E2d0vepYigknHeLE7gwzlNQ==", - "dependencies": { - "@angular-devkit/architect": "0.1703.8", - "@angular-devkit/core": "17.3.8", - "@angular-devkit/schematics": "17.3.8", - "@schematics/angular": "17.3.8", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.9.tgz", + "integrity": "sha512-b5RGu5RO4VKZlMQDatwABAn1qocgD9u4IrGN2dvHDcrz5apTKYftUdGyG42vngyDNBCg1mWkSDQEWK4f2HfuGg==", + "dependencies": { + "@angular-devkit/architect": "0.1703.9", + "@angular-devkit/core": "17.3.9", + "@angular-devkit/schematics": "17.3.9", + "@schematics/angular": "17.3.9", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.2", @@ -1149,9 +1145,9 @@ } }, "node_modules/@appsignal/javascript": { - "version": "1.3.30", - "resolved": "https://registry.npmjs.org/@appsignal/javascript/-/javascript-1.3.30.tgz", - "integrity": "sha512-x559TLt0UUze92/DqpoI67uYvjoRqEN1BQXgCSWPTVVeZ9AqL2aT6hnUPPnn/9DVDDPSbkA9g32UbgMkI2A1oQ==", + "version": "1.3.31", + "resolved": "https://registry.npmjs.org/@appsignal/javascript/-/javascript-1.3.31.tgz", + "integrity": "sha512-vpISIrrnLMdHELY1byTRXh7bDzKJOwqwb33TjfVcrQ+X3G/RnZrHw395xLEkRWOWIaFJ9677vMX/lBWTv7WqDQ==", "dependencies": { "@appsignal/core": "=1.1.22", "@appsignal/types": "=3.0.1", @@ -1159,11 +1155,11 @@ } }, "node_modules/@appsignal/plugin-breadcrumbs-console": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/@appsignal/plugin-breadcrumbs-console/-/plugin-breadcrumbs-console-1.1.31.tgz", - "integrity": "sha512-No/0IdiN5rTaRrdn9xw0ckUAzzNDMfSCoiHZxmKLEyFPpZKRdStNU+vgu2TA6GShaG0JTRWZ/7P/SNGTF6NxsQ==", + "version": "1.1.32", + "resolved": "https://registry.npmjs.org/@appsignal/plugin-breadcrumbs-console/-/plugin-breadcrumbs-console-1.1.32.tgz", + "integrity": "sha512-IIInNJYDIZxDEOqLQ+kXWSaeXpAy/rDCFn83cy8SZOBKNVxk5GnOKC30Ho39PBNxWgjFhoL3r5YRfjcdbMpOMw==", "dependencies": { - "@appsignal/javascript": "=1.3.30" + "@appsignal/javascript": "=1.3.31" } }, "node_modules/@appsignal/plugin-breadcrumbs-network": { @@ -3322,9 +3318,9 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3339,18 +3335,18 @@ } }, "node_modules/@floating-ui/dom": { - "version": "1.6.10", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", - "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", + "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", "dependencies": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.7" + "@floating-ui/utils": "^0.2.8" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", - "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==" + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" }, "node_modules/@fullcalendar/angular": { "version": "6.1.15", @@ -3571,19 +3567,19 @@ "integrity": "sha512-eGeIqNOQpXoPAIP7tC1+1Yc1yl1xnwYqg+3mzqxyrbE5pg5YFBZcA6YoTiByJB6DKAEsiWtl6tjTJS4IYtbB7A==" }, "node_modules/@hotwired/turbo": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@hotwired/turbo/-/turbo-8.0.5.tgz", - "integrity": "sha512-TdZDA7fxVQ2ZycygvpnzjGPmFq4sO/E2QVg+2em/sJ3YTSsIWVEis8HmWlumz+c9DjWcUkcCuB+muF08TInpAQ==", + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/@hotwired/turbo/-/turbo-8.0.10.tgz", + "integrity": "sha512-xen1YhNQirAHlA8vr/444XsTNITC1Il2l/Vx4w8hAWPpI5nQO78mVHNsmFuayETodzPwh25ob2TgfCEV/Loiog==", "engines": { "node": ">= 14" } }, "node_modules/@hotwired/turbo-rails": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@hotwired/turbo-rails/-/turbo-rails-8.0.5.tgz", - "integrity": "sha512-1A9G9u28IRAl0C57z8Ka3AhNPyJdwfOrbjr+ABZk2ZEUw2QO7cJ0pgs77asUj2E/tzn1PgrxrSVu24W+1Q5uBA==", + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/@hotwired/turbo-rails/-/turbo-rails-8.0.10.tgz", + "integrity": "sha512-BkERfjTbNwMb9/YQi0RL9+f9zkD+dZH2klEONtGwXrIE3O9BE1937Nn9++koZpDryD4XN3zE5U5ibyWoYJAWBg==", "dependencies": { - "@hotwired/turbo": "^8.0.5", + "@hotwired/turbo": "^8.0.6", "@rails/actioncable": "^7.0" } }, @@ -3609,12 +3605,13 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", + "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", "minimatch": "^3.0.5" }, @@ -3639,6 +3636,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true }, "node_modules/@isaacs/cliui": { @@ -4043,9 +4041,9 @@ } }, "node_modules/@ng-select/ng-select": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@ng-select/ng-select/-/ng-select-13.7.0.tgz", - "integrity": "sha512-GMNu3bLYxWAbgy9pXZ4RgnWp/cxRcrWRQdxLLyg8p9gMCLpim1p4TXR8laXJKK25MKG/LEaWgs+90yCVOoWgZA==", + "version": "13.7.1", + "resolved": "https://registry.npmjs.org/@ng-select/ng-select/-/ng-select-13.7.1.tgz", + "integrity": "sha512-v/GwSBpuHd31DyoYFQECh+rCwn7xmCBpwMQTcwWerKaDQSr1egpGPSnCq2SzvfHqiJ5e1ckx7ZNTuk+swBweag==", "dependencies": { "tslib": "^2.3.1" }, @@ -4071,9 +4069,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.8.tgz", - "integrity": "sha512-CjSVVa/9fzMpEDQP01SC4colKCbZwj7vUq0H2bivp8jVsmd21x9Fu0gDBH0Y9NdfAIm4eGZvmiZKMII3vIOaYQ==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.9.tgz", + "integrity": "sha512-2+NvEQuYKRWdZaJbRJWEnR48tpW0uYbhwfHBHLDI9Kazb3mb0oAwYBVXdq+TtDLBypXnMsFpCewjRHTvkVx4/A==", "engines": { "node": "^18.13.0 || >=20.9.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", @@ -4086,9 +4084,9 @@ } }, "node_modules/@ngx-formly/core": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/@ngx-formly/core/-/core-6.3.6.tgz", - "integrity": "sha512-0GDllrb9fFBTKG+yT+iQf96N3/CN+qRXIYsSX3uft12+c28qKVfMTsWTPYQsmKfGcrqtOZkMVTc+jGGD2JLZLg==", + "version": "6.3.7", + "resolved": "https://registry.npmjs.org/@ngx-formly/core/-/core-6.3.7.tgz", + "integrity": "sha512-To2mH09YSm3nyThABNHIameIJCPA9C+x3/JFxFtBWek+UbYeW9DYOqNHRCc7P1ToqLqNEuwrmzjB2YSA8pO9Pw==", "dependencies": { "tslib": "^2.0.0" }, @@ -4823,9 +4821,9 @@ } }, "node_modules/@openproject/primer-view-components": { - "version": "0.43.1", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.43.1.tgz", - "integrity": "sha512-bWAko3ZkPXHmNLFRA96aZC3sr84sMnZf6hwSLHa5P1H6q6eARU9WBMggyMAjaKKQEfOSSxQpa8EB0Ul7/pcJ9Q==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.47.0.tgz", + "integrity": "sha512-bJiz0tpUYIu+1a3f6KwJC5RgXB+bOVbct5v4SBP8/Grjfdk8qJiZqlY7aZqJvoHLQS5uU4v287u3hbkeUeE6Ww==", "dependencies": { "@github/auto-check-element": "^5.2.0", "@github/auto-complete-element": "^3.6.2", @@ -4867,33 +4865,51 @@ "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", "dev": true }, + "node_modules/@prettier/sync": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@prettier/sync/-/sync-0.5.2.tgz", + "integrity": "sha512-Yb569su456XNx5BsH/Vyem7xD6g/y9iLmLUzRKM1a/dhU/D7HqqvkAG72znulXlMXztbV0iiu9O5AL8K98TzZQ==", + "dependencies": { + "make-synchronized": "^0.2.8" + }, + "funding": { + "url": "https://github.com/prettier/prettier-synchronized?sponsor=1" + }, + "peerDependencies": { + "prettier": "*" + } + }, "node_modules/@primer/behaviors": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@primer/behaviors/-/behaviors-1.3.5.tgz", "integrity": "sha512-HWwz+6MrfK5NTWcg9GdKFpMBW/yrAV937oXiw2eDtsd88P3SRwoCt6ZO6QmKp9RP3nDU9cbqmuGZ0xBh0eIFeg==" }, "node_modules/@primer/css": { - "version": "21.3.6", - "resolved": "https://registry.npmjs.org/@primer/css/-/css-21.3.6.tgz", - "integrity": "sha512-h2ITbCj415T1JpWQDeQd1xYL6TrzkehfUOXxnV0FpblYyMsVBAks6LL7HGJ+ZrydG+Ds0i1rvvi8Q61jErieNA==", + "version": "21.4.0", + "resolved": "https://registry.npmjs.org/@primer/css/-/css-21.4.0.tgz", + "integrity": "sha512-mBq0F6lvAuPioW30RP1CyvSkW76UpAzZp1HM+5N/cfpwuarYVsCWYkWQlDtJqIsGYNSa1E2GgL17HzzDt4Bofg==", "dependencies": { - "@primer/primitives": "^8.2.0", - "@primer/view-components": "^0.27.0" + "@primer/primitives": "^9.0.3", + "@primer/view-components": "^0.34.0" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@primer/primitives": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-8.2.3.tgz", - "integrity": "sha512-K8A/DA6xv8P/kD/9DupFn+KYlo06OpcrwfwJf+sKp+KnX7ZRwLLDg1AaEGAoRoaykXRY/gfrXlgDfK7laOTWyA==" + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-9.1.2.tgz", + "integrity": "sha512-KecRJpUdIf14J3gVpoyMMJeQD6Sh5kcHk93N5bYch4XGB0GOZP3ypxz+NByMjr/2HHPsRfCCO5EEgNjmeWYUGQ==", + "dependencies": { + "@prettier/sync": "^0.5.2", + "prettier": "3.3" + } }, "node_modules/@primer/view-components": { "name": "@openproject/primer-view-components", - "version": "0.43.1", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.43.1.tgz", - "integrity": "sha512-bWAko3ZkPXHmNLFRA96aZC3sr84sMnZf6hwSLHa5P1H6q6eARU9WBMggyMAjaKKQEfOSSxQpa8EB0Ul7/pcJ9Q==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.47.0.tgz", + "integrity": "sha512-bJiz0tpUYIu+1a3f6KwJC5RgXB+bOVbct5v4SBP8/Grjfdk8qJiZqlY7aZqJvoHLQS5uU4v287u3hbkeUeE6Ww==", "dependencies": { "@github/auto-check-element": "^5.2.0", "@github/auto-complete-element": "^3.6.2", @@ -4940,9 +4956,9 @@ "integrity": "sha512-ybBsUrIsu5geM8BtqnpM7ZA9D8uzSz+e1B4JR57NaCmasHKWap6AX5DT7NHIbp21opVet1qqoVSdsoLDqXeB2A==" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz", - "integrity": "sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", "cpu": [ "arm" ], @@ -4952,9 +4968,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz", - "integrity": "sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", "cpu": [ "arm64" ], @@ -4964,9 +4980,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz", - "integrity": "sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", "cpu": [ "arm64" ], @@ -4976,9 +4992,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz", - "integrity": "sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", "cpu": [ "x64" ], @@ -4988,9 +5004,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz", - "integrity": "sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", "cpu": [ "arm" ], @@ -5000,9 +5016,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz", - "integrity": "sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", "cpu": [ "arm" ], @@ -5012,9 +5028,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz", - "integrity": "sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", "cpu": [ "arm64" ], @@ -5024,9 +5040,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz", - "integrity": "sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", "cpu": [ "arm64" ], @@ -5036,9 +5052,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz", - "integrity": "sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", "cpu": [ "ppc64" ], @@ -5048,9 +5064,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz", - "integrity": "sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", "cpu": [ "riscv64" ], @@ -5060,9 +5076,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz", - "integrity": "sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", "cpu": [ "s390x" ], @@ -5072,9 +5088,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz", - "integrity": "sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", "cpu": [ "x64" ], @@ -5084,9 +5100,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz", - "integrity": "sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", "cpu": [ "x64" ], @@ -5096,9 +5112,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz", - "integrity": "sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", "cpu": [ "arm64" ], @@ -5108,9 +5124,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz", - "integrity": "sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", "cpu": [ "ia32" ], @@ -5120,9 +5136,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz", - "integrity": "sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", "cpu": [ "x64" ], @@ -5131,13 +5147,19 @@ "win32" ] }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, "node_modules/@schematics/angular": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.8.tgz", - "integrity": "sha512-2g4OmSyE9YGq50Uj7fNI26P/TSAFJ7ZuirwTF2O7Xc4XRQ29/tYIIqhezpNlTb6rlYblcQuMcUZBrMfWJHcqJw==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.9.tgz", + "integrity": "sha512-q6N8mbcYC6cgPyjTrMH7ehULQoUUwEYN4g7uo4ylZ/PFklSLJvpSp4BuuxANgW449qHSBvQfdIoui9ayAUXQzA==", "dependencies": { - "@angular-devkit/core": "17.3.8", - "@angular-devkit/schematics": "17.3.8", + "@angular-devkit/core": "17.3.9", + "@angular-devkit/schematics": "17.3.9", "jsonc-parser": "3.2.1" }, "engines": { @@ -5458,11 +5480,10 @@ } }, "node_modules/@types/dom-navigation": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/dom-navigation/-/dom-navigation-1.0.3.tgz", - "integrity": "sha512-nbkhQ2o6UUBn1uLwSrA//rFkqs8XRk5d7cE6jzzTl8MAIUs/nFMtFqVESwiYY1HGZxflzbFlXsZ8NNzTaoFs1Q==", - "dev": true, - "license": "MIT" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/dom-navigation/-/dom-navigation-1.0.4.tgz", + "integrity": "sha512-s4pCS4jogEzXQsqoPZdLU+GA/5Wq+GoFsgiN2VGI8tw5I2Y/CftGJpC76iVhyoD7JTTEo+p0w+eh8SItMaxmgg==", + "dev": true }, "node_modules/@types/dragula": { "version": "3.7.5", @@ -5470,24 +5491,6 @@ "integrity": "sha512-jojr2JVJB8DawAKXApGnollMvVOMyiMKpchH8gLeoExx35Eq0BQ4WgAiAHoBoEn7h/9eDrIl0yz//cM6ALIJbg==", "dev": true }, - "node_modules/@types/eslint": { - "version": "8.56.9", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.9.tgz", - "integrity": "sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -5585,9 +5588,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", - "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "version": "4.17.9", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.9.tgz", + "integrity": "sha512-w9iWudx1XWOHW5lQRS9iKpK/XuRhnN+0T7HvdCCd802FYkT1AMTnxndJHGrNJwRoRHkslGr4S29tjm1cT7x/7w==", "dev": true }, "node_modules/@types/mime": { @@ -6646,10 +6649,10 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "peerDependencies": { "acorn": "^8" } @@ -7351,16 +7354,17 @@ } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -7548,9 +7552,9 @@ } }, "node_modules/axe-core": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", - "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", + "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", "dev": true, "engines": { "node": ">=4" @@ -7840,9 +7844,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -7852,7 +7856,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -7883,20 +7887,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/bonjour-service": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", @@ -8196,9 +8186,9 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "engines": { "node": ">=6.0" } @@ -8314,9 +8304,9 @@ } }, "node_modules/codemirror": { - "version": "5.65.17", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.17.tgz", - "integrity": "sha512-1zOsUx3lzAOu/gnMAZkQ9kpIHcPYOc9y1Fbm2UVk5UBPkdq380nhkelG0qUwm1f7wPvTbndu9ZYlug35EwAZRQ==" + "version": "5.65.18", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.18.tgz", + "integrity": "sha512-Gaz4gHnkbHMGgahNt3CA5HBk5lLQBqmD/pBgeB4kQU6OedZmqMBjlRF0LSrp2tJ4wlLNPm2FfaUd1pDy0mdlpA==" }, "node_modules/collection-visit": { "version": "1.0.0", @@ -9745,9 +9735,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -9958,9 +9948,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" }, "node_modules/es-object-atoms": { "version": "1.0.0", @@ -10192,16 +10182,16 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -10309,9 +10299,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.9.0.tgz", + "integrity": "sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -10341,26 +10331,27 @@ "dev": true }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz", + "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.9.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", "tsconfig-paths": "^3.15.0" }, @@ -10426,9 +10417,9 @@ } }, "node_modules/eslint-plugin-jasmine": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.2.1.tgz", - "integrity": "sha512-Vwecc66rjMgz2e9UtGScsUdo6D+SbfgPA4Kf0zdAl4+5IQMRL0mXd8973MaZuYYF89XpRjQEGl5TNmg2Bv+KcQ==", + "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", @@ -10436,17 +10427,17 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz", - "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz", + "integrity": "sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==", "dev": true, "dependencies": { "aria-query": "~5.1.3", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", - "axe-core": "^4.9.1", - "axobject-query": "~3.1.1", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "es-iterator-helpers": "^1.0.19", @@ -10462,7 +10453,7 @@ "node": ">=4.0" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { @@ -10475,18 +10466,18 @@ } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/axobject-query": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" + "engines": { + "node": ">= 0.4" } }, "node_modules/eslint-plugin-react": { - "version": "7.35.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", - "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "version": "7.36.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz", + "integrity": "sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==", "dev": true, "dependencies": { "array-includes": "^3.1.8", @@ -11026,36 +11017,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", + "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -11074,6 +11065,14 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -11091,6 +11090,14 @@ "node": ">= 0.8" } }, + "node_modules/express/node_modules/finalhandler/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==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -13183,11 +13190,14 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14992,6 +15002,14 @@ "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.3.0.tgz", "integrity": "sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw==" }, + "node_modules/make-synchronized": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/make-synchronized/-/make-synchronized-0.2.9.tgz", + "integrity": "sha512-4wczOs8SLuEdpEvp3vGo83wh8rjJ78UsIk7DIX5fxdfmfMJGog4bQzxfvOwq7Q3yCHLC4jp1urPHIxRS/A93gA==", + "funding": { + "url": "https://github.com/fisker/make-synchronized?sponsor=1" + } + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -15077,9 +15095,12 @@ "integrity": "sha512-f7h4svPtl+QidoBv4taKXUjJ70G2asaZ8G28nS0OkqaalX8dwwrtWtyxEDPK62AC00ur/+/E0pUwBwY5EPn15Q==" }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-source-map": { "version": "1.1.0", @@ -16365,15 +16386,17 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.pick": { @@ -16956,9 +16979,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/path-type": { "version": "4.0.0", @@ -17290,6 +17313,20 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -17420,11 +17457,11 @@ "integrity": "sha512-C0cqfbS1P5hfqN4NhsYsUXePlk9BO+a45bAQ3xLYjBL3bOIFzoVEjs79Fado9u9BPBD3buHi3+vY+C8tHh4qMQ==" }, "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -18009,9 +18046,9 @@ } }, "node_modules/rollup": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz", - "integrity": "sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", "dependencies": { "@types/estree": "1.0.5" }, @@ -18023,22 +18060,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.14.3", - "@rollup/rollup-android-arm64": "4.14.3", - "@rollup/rollup-darwin-arm64": "4.14.3", - "@rollup/rollup-darwin-x64": "4.14.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.14.3", - "@rollup/rollup-linux-arm-musleabihf": "4.14.3", - "@rollup/rollup-linux-arm64-gnu": "4.14.3", - "@rollup/rollup-linux-arm64-musl": "4.14.3", - "@rollup/rollup-linux-powerpc64le-gnu": "4.14.3", - "@rollup/rollup-linux-riscv64-gnu": "4.14.3", - "@rollup/rollup-linux-s390x-gnu": "4.14.3", - "@rollup/rollup-linux-x64-gnu": "4.14.3", - "@rollup/rollup-linux-x64-musl": "4.14.3", - "@rollup/rollup-win32-arm64-msvc": "4.14.3", - "@rollup/rollup-win32-ia32-msvc": "4.14.3", - "@rollup/rollup-win32-x64-msvc": "4.14.3", + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", "fsevents": "~2.3.2" } }, @@ -18392,9 +18429,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -18522,9 +18559,9 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", + "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -18535,6 +18572,58 @@ "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-static/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-static/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/serve-static/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/set-function-length": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", @@ -21534,25 +21623,24 @@ } }, "node_modules/webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dependencies": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -21560,7 +21648,7 @@ "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -21931,6 +22019,18 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/webpack/node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "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", @@ -22322,23 +22422,23 @@ } }, "@angular-devkit/architect": { - "version": "0.1703.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.8.tgz", - "integrity": "sha512-lKxwG4/QABXZvJpqeSIn/kAwnY6MM9HdHZUV+o5o3UiTi+vO8rZApG4CCaITH3Bxebm7Nam7Xbk8RuukC5rq6g==", + "version": "0.1703.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.9.tgz", + "integrity": "sha512-kEPfTOVnzrJxPGTvaXy8653HU9Fucxttx9gVfQR1yafs+yIEGx3fKGKe89YPmaEay32bIm7ZUpxDF1FO14nkdQ==", "requires": { - "@angular-devkit/core": "17.3.8", + "@angular-devkit/core": "17.3.9", "rxjs": "7.8.1" } }, "@angular-devkit/build-angular": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.8.tgz", - "integrity": "sha512-ixsdXggWaFRP7Jvxd0AMukImnePuGflT9Yy7NJ9/y0cL/k//S/3RnkQv5i411KzN+7D4RIbNkRGGTYeqH24zlg==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.9.tgz", + "integrity": "sha512-EuAPSC4c2DSJLlL4ieviKLx1faTyY+ymWycq6KFwoxu1FgWly/dqBeWyXccYinLhPVZmoh6+A/5S4YWXlOGSnA==", "requires": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1703.8", - "@angular-devkit/build-webpack": "0.1703.8", - "@angular-devkit/core": "17.3.8", + "@angular-devkit/architect": "0.1703.9", + "@angular-devkit/build-webpack": "0.1703.9", + "@angular-devkit/core": "17.3.9", "@babel/core": "7.24.0", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", @@ -22349,7 +22449,7 @@ "@babel/preset-env": "7.24.0", "@babel/runtime": "7.24.0", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.3.8", + "@ngtools/webpack": "17.3.9", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.18", @@ -22394,7 +22494,7 @@ "undici": "6.11.1", "vite": "5.1.7", "watchpack": "2.4.0", - "webpack": "5.90.3", + "webpack": "5.94.0", "webpack-dev-middleware": "6.1.2", "webpack-dev-server": "4.15.1", "webpack-merge": "5.10.0", @@ -22514,18 +22614,18 @@ } }, "@angular-devkit/build-webpack": { - "version": "0.1703.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.8.tgz", - "integrity": "sha512-9u6fl8VVOxcLOEMzrUeaybSvi9hSLSRucHnybneYrabsgreDo32tuy/4G8p6YAHQjpWEj9jvF9Um13ertdni5Q==", + "version": "0.1703.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.9.tgz", + "integrity": "sha512-3b0LND39Nc+DwCQ0N7Tbsd7RAFWTeIc4VDwk/7RO8EMYTP5Kfgr/TK66nwTBypHsjmD69IMKHZZaZuiDfGfx2A==", "requires": { - "@angular-devkit/architect": "0.1703.8", + "@angular-devkit/architect": "0.1703.9", "rxjs": "7.8.1" } }, "@angular-devkit/core": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.8.tgz", - "integrity": "sha512-Q8q0voCGudbdCgJ7lXdnyaxKHbNQBARH68zPQV72WT8NWy+Gw/tys870i6L58NWbBaCJEUcIj/kb6KoakSRu+Q==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.9.tgz", + "integrity": "sha512-/iKyn5YT7NW5ylrg9yufUydS8byExeQ2HHIwFC4Ebwb/JYYCz+k4tBf2LdP+zXpemDpLznXTQGWia0/yJjG8Vg==", "requires": { "ajv": "8.12.0", "ajv-formats": "2.1.1", @@ -22543,11 +22643,11 @@ } }, "@angular-devkit/schematics": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.8.tgz", - "integrity": "sha512-QRVEYpIfgkprNHc916JlPuNbLzOgrm9DZalHasnLUz4P6g7pR21olb8YCyM2OTJjombNhya9ZpckcADU5Qyvlg==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.9.tgz", + "integrity": "sha512-9qg+uWywgAtaQlvbnCQv47hcL6ZuA+d9ucgZ0upZftBllZ2vp5WIthCPb2mB0uBkj84Csmtz9MsErFjOQtTj4g==", "requires": { - "@angular-devkit/core": "17.3.8", + "@angular-devkit/core": "17.3.9", "jsonc-parser": "3.2.1", "magic-string": "0.30.8", "ora": "5.4.1", @@ -22555,40 +22655,36 @@ } }, "@angular-eslint/builder": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.5.2.tgz", - "integrity": "sha512-bvegxJuocWeHdvISPfCXeLQPSjrMCEVzxXPg16JJKksKWSeRA1JnbXnfnb7eoLdq1+riMHKqbH6Fs4rORAvUiA==", - "dev": true, - "requires": { - "@nx/devkit": "^17.2.8 || ^18.0.0 || ^19.0.0", - "nx": "^17.2.8 || ^18.0.0 || ^19.0.0" - } + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-17.5.3.tgz", + "integrity": "sha512-DoPCwt8qp5oMkfxY8V3wygf6/E7zzgXkPCwTRhIelklfpB3nYwLnbRSD8G5hueAU4eyASKiIuhR79E996AuUSw==", + "dev": true }, "@angular-eslint/bundled-angular-compiler": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.5.2.tgz", - "integrity": "sha512-K4hVnMyI98faMJmsA4EOBkD0tapDjWV5gy0j/wJ2uSL46d3JgZPZNJSO1zStf/b3kT4gLOlQ/ulWFiUf1DxgIw==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.5.3.tgz", + "integrity": "sha512-x9jZ6mME9wxumErPGonWERXX/9TJ7mzEkQhOKt3BxBFm0sy9XQqLMAenp1PBSg3RF3rH7EEVdB2+jb75RtHp0g==", "dev": true }, "@angular-eslint/eslint-plugin": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.5.2.tgz", - "integrity": "sha512-kzPALKyT5XIEbgoNmY/hEZWdMWKTX56Pap9fVLJSC/b+Nd+MXc7TNly2s0XoC0Ru1/kMiVzbmSGPheu/rw+9aA==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-17.5.3.tgz", + "integrity": "sha512-2gMRZ+SkiygrPDtCJwMfjmwIFOcvxxC4NRX/MqRo6udsa0gtqPrc8acRbwrmAXlullmhzmaeUfkHpGDSzW8pFw==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", - "@angular-eslint/utils": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", + "@angular-eslint/utils": "17.5.3", "@typescript-eslint/utils": "7.11.0" } }, "@angular-eslint/eslint-plugin-template": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.5.2.tgz", - "integrity": "sha512-6sxVwrJ7yElZxcjxHSA0Ujs29bCD/cMubd9n6TDFI9e3v+ktpoMW4Nv/TCHv0OuYatIOZ7bcJxi38cAO8Vhfhw==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.5.3.tgz", + "integrity": "sha512-RkRFagxqBPV2xdNyeQQROUm6I1Izto1Z3Wy73lCk2zq1RhVgbznniH/epmOIE8PMkHmMKmZ765FV++J/90p4Ig==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", - "@angular-eslint/utils": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", + "@angular-eslint/utils": "17.5.3", "@typescript-eslint/type-utils": "7.11.0", "@typescript-eslint/utils": "7.11.0", "aria-query": "5.3.0", @@ -22681,22 +22777,22 @@ } }, "@angular-eslint/template-parser": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.5.2.tgz", - "integrity": "sha512-46emLElmnIUzW0bpEpSf0u05ofRVUwlfttDOMLedhi700peUKbB9Y6iyz3GzAtQCMklBbJC9nR87LQRH9aSlog==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-17.5.3.tgz", + "integrity": "sha512-NYybOsMkJUtFOW2JWALicipq0kK5+jGwA1MYyRoXjdbDlXltHUb9qkXj7p0fE6uRutBGXDl4288s8g/fZCnAIA==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", "eslint-scope": "^8.0.0" } }, "@angular-eslint/utils": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.5.2.tgz", - "integrity": "sha512-bTMPFqtoetBJsYR/xqREEOCy/CdsKGf2gZkRdH73gG6pOpskWt8J/PbRcMZsC349paV4HFixByVm89inqA0TNg==", + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-17.5.3.tgz", + "integrity": "sha512-0nNm1FUOLhVHrdK2PP5dZCYYVmTIkEJ4CmlwpuC4JtCLbD5XAHQpY/ZW5Ff5n1b7KfJt1Zy//jlhkkIaw3LaBQ==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "17.5.2", + "@angular-eslint/bundled-angular-compiler": "17.5.3", "@typescript-eslint/utils": "7.11.0" } }, @@ -22718,14 +22814,14 @@ } }, "@angular/cli": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.8.tgz", - "integrity": "sha512-X5ZOQ6ZTKVHjhIsfl32ZRqbs+FUoeHLbT7x4fh2Os/8ObDDwrUcCJPqxe2b2RB5E2d0vepYigknHeLE7gwzlNQ==", - "requires": { - "@angular-devkit/architect": "0.1703.8", - "@angular-devkit/core": "17.3.8", - "@angular-devkit/schematics": "17.3.8", - "@schematics/angular": "17.3.8", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.3.9.tgz", + "integrity": "sha512-b5RGu5RO4VKZlMQDatwABAn1qocgD9u4IrGN2dvHDcrz5apTKYftUdGyG42vngyDNBCg1mWkSDQEWK4f2HfuGg==", + "requires": { + "@angular-devkit/architect": "0.1703.9", + "@angular-devkit/core": "17.3.9", + "@angular-devkit/schematics": "17.3.9", + "@schematics/angular": "17.3.9", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.2", @@ -22878,9 +22974,9 @@ } }, "@appsignal/javascript": { - "version": "1.3.30", - "resolved": "https://registry.npmjs.org/@appsignal/javascript/-/javascript-1.3.30.tgz", - "integrity": "sha512-x559TLt0UUze92/DqpoI67uYvjoRqEN1BQXgCSWPTVVeZ9AqL2aT6hnUPPnn/9DVDDPSbkA9g32UbgMkI2A1oQ==", + "version": "1.3.31", + "resolved": "https://registry.npmjs.org/@appsignal/javascript/-/javascript-1.3.31.tgz", + "integrity": "sha512-vpISIrrnLMdHELY1byTRXh7bDzKJOwqwb33TjfVcrQ+X3G/RnZrHw395xLEkRWOWIaFJ9677vMX/lBWTv7WqDQ==", "requires": { "@appsignal/core": "=1.1.22", "@appsignal/types": "=3.0.1", @@ -22888,11 +22984,11 @@ } }, "@appsignal/plugin-breadcrumbs-console": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/@appsignal/plugin-breadcrumbs-console/-/plugin-breadcrumbs-console-1.1.31.tgz", - "integrity": "sha512-No/0IdiN5rTaRrdn9xw0ckUAzzNDMfSCoiHZxmKLEyFPpZKRdStNU+vgu2TA6GShaG0JTRWZ/7P/SNGTF6NxsQ==", + "version": "1.1.32", + "resolved": "https://registry.npmjs.org/@appsignal/plugin-breadcrumbs-console/-/plugin-breadcrumbs-console-1.1.32.tgz", + "integrity": "sha512-IIInNJYDIZxDEOqLQ+kXWSaeXpAy/rDCFn83cy8SZOBKNVxk5GnOKC30Ho39PBNxWgjFhoL3r5YRfjcdbMpOMw==", "requires": { - "@appsignal/javascript": "=1.3.30" + "@appsignal/javascript": "=1.3.31" } }, "@appsignal/plugin-breadcrumbs-network": { @@ -24271,9 +24367,9 @@ } }, "@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true }, "@floating-ui/core": { @@ -24285,18 +24381,18 @@ } }, "@floating-ui/dom": { - "version": "1.6.10", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", - "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", + "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", "requires": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.7" + "@floating-ui/utils": "^0.2.8" } }, "@floating-ui/utils": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", - "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==" + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" }, "@fullcalendar/angular": { "version": "6.1.15", @@ -24483,16 +24579,16 @@ "integrity": "sha512-eGeIqNOQpXoPAIP7tC1+1Yc1yl1xnwYqg+3mzqxyrbE5pg5YFBZcA6YoTiByJB6DKAEsiWtl6tjTJS4IYtbB7A==" }, "@hotwired/turbo": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@hotwired/turbo/-/turbo-8.0.5.tgz", - "integrity": "sha512-TdZDA7fxVQ2ZycygvpnzjGPmFq4sO/E2QVg+2em/sJ3YTSsIWVEis8HmWlumz+c9DjWcUkcCuB+muF08TInpAQ==" + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/@hotwired/turbo/-/turbo-8.0.10.tgz", + "integrity": "sha512-xen1YhNQirAHlA8vr/444XsTNITC1Il2l/Vx4w8hAWPpI5nQO78mVHNsmFuayETodzPwh25ob2TgfCEV/Loiog==" }, "@hotwired/turbo-rails": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@hotwired/turbo-rails/-/turbo-rails-8.0.5.tgz", - "integrity": "sha512-1A9G9u28IRAl0C57z8Ka3AhNPyJdwfOrbjr+ABZk2ZEUw2QO7cJ0pgs77asUj2E/tzn1PgrxrSVu24W+1Q5uBA==", + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/@hotwired/turbo-rails/-/turbo-rails-8.0.10.tgz", + "integrity": "sha512-BkERfjTbNwMb9/YQi0RL9+f9zkD+dZH2klEONtGwXrIE3O9BE1937Nn9++koZpDryD4XN3zE5U5ibyWoYJAWBg==", "requires": { - "@hotwired/turbo": "^8.0.5", + "@hotwired/turbo": "^8.0.6", "@rails/actioncable": "^7.0" } }, @@ -24512,12 +24608,12 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^2.0.2", + "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", "minimatch": "^3.0.5" } @@ -24860,9 +24956,9 @@ } }, "@ng-select/ng-select": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@ng-select/ng-select/-/ng-select-13.7.0.tgz", - "integrity": "sha512-GMNu3bLYxWAbgy9pXZ4RgnWp/cxRcrWRQdxLLyg8p9gMCLpim1p4TXR8laXJKK25MKG/LEaWgs+90yCVOoWgZA==", + "version": "13.7.1", + "resolved": "https://registry.npmjs.org/@ng-select/ng-select/-/ng-select-13.7.1.tgz", + "integrity": "sha512-v/GwSBpuHd31DyoYFQECh+rCwn7xmCBpwMQTcwWerKaDQSr1egpGPSnCq2SzvfHqiJ5e1ckx7ZNTuk+swBweag==", "requires": { "tslib": "^2.3.1" } @@ -24876,14 +24972,14 @@ } }, "@ngtools/webpack": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.8.tgz", - "integrity": "sha512-CjSVVa/9fzMpEDQP01SC4colKCbZwj7vUq0H2bivp8jVsmd21x9Fu0gDBH0Y9NdfAIm4eGZvmiZKMII3vIOaYQ==" + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.9.tgz", + "integrity": "sha512-2+NvEQuYKRWdZaJbRJWEnR48tpW0uYbhwfHBHLDI9Kazb3mb0oAwYBVXdq+TtDLBypXnMsFpCewjRHTvkVx4/A==" }, "@ngx-formly/core": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/@ngx-formly/core/-/core-6.3.6.tgz", - "integrity": "sha512-0GDllrb9fFBTKG+yT+iQf96N3/CN+qRXIYsSX3uft12+c28qKVfMTsWTPYQsmKfGcrqtOZkMVTc+jGGD2JLZLg==", + "version": "6.3.7", + "resolved": "https://registry.npmjs.org/@ngx-formly/core/-/core-6.3.7.tgz", + "integrity": "sha512-To2mH09YSm3nyThABNHIameIJCPA9C+x3/JFxFtBWek+UbYeW9DYOqNHRCc7P1ToqLqNEuwrmzjB2YSA8pO9Pw==", "requires": { "tslib": "^2.0.0" } @@ -25369,9 +25465,9 @@ } }, "@openproject/primer-view-components": { - "version": "0.43.1", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.43.1.tgz", - "integrity": "sha512-bWAko3ZkPXHmNLFRA96aZC3sr84sMnZf6hwSLHa5P1H6q6eARU9WBMggyMAjaKKQEfOSSxQpa8EB0Ul7/pcJ9Q==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.47.0.tgz", + "integrity": "sha512-bJiz0tpUYIu+1a3f6KwJC5RgXB+bOVbct5v4SBP8/Grjfdk8qJiZqlY7aZqJvoHLQS5uU4v287u3hbkeUeE6Ww==", "requires": { "@github/auto-check-element": "^5.2.0", "@github/auto-complete-element": "^3.6.2", @@ -25407,29 +25503,41 @@ "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", "dev": true }, + "@prettier/sync": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@prettier/sync/-/sync-0.5.2.tgz", + "integrity": "sha512-Yb569su456XNx5BsH/Vyem7xD6g/y9iLmLUzRKM1a/dhU/D7HqqvkAG72znulXlMXztbV0iiu9O5AL8K98TzZQ==", + "requires": { + "make-synchronized": "^0.2.8" + } + }, "@primer/behaviors": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@primer/behaviors/-/behaviors-1.3.5.tgz", "integrity": "sha512-HWwz+6MrfK5NTWcg9GdKFpMBW/yrAV937oXiw2eDtsd88P3SRwoCt6ZO6QmKp9RP3nDU9cbqmuGZ0xBh0eIFeg==" }, "@primer/css": { - "version": "21.3.6", - "resolved": "https://registry.npmjs.org/@primer/css/-/css-21.3.6.tgz", - "integrity": "sha512-h2ITbCj415T1JpWQDeQd1xYL6TrzkehfUOXxnV0FpblYyMsVBAks6LL7HGJ+ZrydG+Ds0i1rvvi8Q61jErieNA==", + "version": "21.4.0", + "resolved": "https://registry.npmjs.org/@primer/css/-/css-21.4.0.tgz", + "integrity": "sha512-mBq0F6lvAuPioW30RP1CyvSkW76UpAzZp1HM+5N/cfpwuarYVsCWYkWQlDtJqIsGYNSa1E2GgL17HzzDt4Bofg==", "requires": { - "@primer/primitives": "^8.2.0", - "@primer/view-components": "npm:@openproject/primer-view-components@^0.43.1" + "@primer/primitives": "^9.0.3", + "@primer/view-components": "npm:@openproject/primer-view-components@^0.47.0" } }, "@primer/primitives": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-8.2.3.tgz", - "integrity": "sha512-K8A/DA6xv8P/kD/9DupFn+KYlo06OpcrwfwJf+sKp+KnX7ZRwLLDg1AaEGAoRoaykXRY/gfrXlgDfK7laOTWyA==" + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@primer/primitives/-/primitives-9.1.2.tgz", + "integrity": "sha512-KecRJpUdIf14J3gVpoyMMJeQD6Sh5kcHk93N5bYch4XGB0GOZP3ypxz+NByMjr/2HHPsRfCCO5EEgNjmeWYUGQ==", + "requires": { + "@prettier/sync": "^0.5.2", + "prettier": "3.3" + } }, "@primer/view-components": { - "version": "npm:@openproject/primer-view-components@0.43.1", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.43.1.tgz", - "integrity": "sha512-bWAko3ZkPXHmNLFRA96aZC3sr84sMnZf6hwSLHa5P1H6q6eARU9WBMggyMAjaKKQEfOSSxQpa8EB0Ul7/pcJ9Q==", + "version": "npm:@openproject/primer-view-components@0.47.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.47.0.tgz", + "integrity": "sha512-bJiz0tpUYIu+1a3f6KwJC5RgXB+bOVbct5v4SBP8/Grjfdk8qJiZqlY7aZqJvoHLQS5uU4v287u3hbkeUeE6Ww==", "requires": { "@github/auto-check-element": "^5.2.0", "@github/auto-complete-element": "^3.6.2", @@ -25476,108 +25584,114 @@ "integrity": "sha512-ybBsUrIsu5geM8BtqnpM7ZA9D8uzSz+e1B4JR57NaCmasHKWap6AX5DT7NHIbp21opVet1qqoVSdsoLDqXeB2A==" }, "@rollup/rollup-android-arm-eabi": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz", - "integrity": "sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz", - "integrity": "sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz", - "integrity": "sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz", - "integrity": "sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz", - "integrity": "sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz", - "integrity": "sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz", - "integrity": "sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz", - "integrity": "sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", "optional": true }, "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz", - "integrity": "sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz", - "integrity": "sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", "optional": true }, "@rollup/rollup-linux-s390x-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz", - "integrity": "sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz", - "integrity": "sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz", - "integrity": "sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz", - "integrity": "sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz", - "integrity": "sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz", - "integrity": "sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", "optional": true }, + "@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, "@schematics/angular": { - "version": "17.3.8", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.8.tgz", - "integrity": "sha512-2g4OmSyE9YGq50Uj7fNI26P/TSAFJ7ZuirwTF2O7Xc4XRQ29/tYIIqhezpNlTb6rlYblcQuMcUZBrMfWJHcqJw==", + "version": "17.3.9", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.9.tgz", + "integrity": "sha512-q6N8mbcYC6cgPyjTrMH7ehULQoUUwEYN4g7uo4ylZ/PFklSLJvpSp4BuuxANgW449qHSBvQfdIoui9ayAUXQzA==", "requires": { - "@angular-devkit/core": "17.3.8", - "@angular-devkit/schematics": "17.3.8", + "@angular-devkit/core": "17.3.9", + "@angular-devkit/schematics": "17.3.9", "jsonc-parser": "3.2.1" } }, @@ -25837,9 +25951,9 @@ } }, "@types/dom-navigation": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/dom-navigation/-/dom-navigation-1.0.3.tgz", - "integrity": "sha512-nbkhQ2o6UUBn1uLwSrA//rFkqs8XRk5d7cE6jzzTl8MAIUs/nFMtFqVESwiYY1HGZxflzbFlXsZ8NNzTaoFs1Q==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/dom-navigation/-/dom-navigation-1.0.4.tgz", + "integrity": "sha512-s4pCS4jogEzXQsqoPZdLU+GA/5Wq+GoFsgiN2VGI8tw5I2Y/CftGJpC76iVhyoD7JTTEo+p0w+eh8SItMaxmgg==", "dev": true }, "@types/dragula": { @@ -25848,24 +25962,6 @@ "integrity": "sha512-jojr2JVJB8DawAKXApGnollMvVOMyiMKpchH8gLeoExx35Eq0BQ4WgAiAHoBoEn7h/9eDrIl0yz//cM6ALIJbg==", "dev": true }, - "@types/eslint": { - "version": "8.56.9", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.9.tgz", - "integrity": "sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -25963,9 +26059,9 @@ "dev": true }, "@types/lodash": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", - "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "version": "4.17.9", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.9.tgz", + "integrity": "sha512-w9iWudx1XWOHW5lQRS9iKpK/XuRhnN+0T7HvdCCd802FYkT1AMTnxndJHGrNJwRoRHkslGr4S29tjm1cT7x/7w==", "dev": true }, "@types/mime": { @@ -26728,10 +26824,10 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==" }, - "acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==" + "acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==" }, "acorn-jsx": { "version": "5.3.2", @@ -27254,16 +27350,17 @@ } }, "array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" } }, "array.prototype.flat": { @@ -27386,9 +27483,9 @@ } }, "axe-core": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", - "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", + "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", "dev": true }, "axios": { @@ -27606,9 +27703,9 @@ } }, "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -27618,7 +27715,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -27641,14 +27738,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } } } }, @@ -27852,9 +27941,9 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==" }, "class-utils": { "version": "0.3.6", @@ -27939,9 +28028,9 @@ } }, "codemirror": { - "version": "5.65.17", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.17.tgz", - "integrity": "sha512-1zOsUx3lzAOu/gnMAZkQ9kpIHcPYOc9y1Fbm2UVk5UBPkdq380nhkelG0qUwm1f7wPvTbndu9ZYlug35EwAZRQ==" + "version": "5.65.18", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.18.tgz", + "integrity": "sha512-Gaz4gHnkbHMGgahNt3CA5HBk5lLQBqmD/pBgeB4kQU6OedZmqMBjlRF0LSrp2tJ4wlLNPm2FfaUd1pDy0mdlpA==" }, "collection-visit": { "version": "1.0.0", @@ -29004,9 +29093,9 @@ "dev": true }, "enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -29178,9 +29267,9 @@ } }, "es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" }, "es-object-atoms": { "version": "1.0.0", @@ -29383,16 +29472,16 @@ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -29583,9 +29672,9 @@ } }, "eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.9.0.tgz", + "integrity": "sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==", "dev": true, "requires": { "debug": "^3.2.7" @@ -29609,26 +29698,27 @@ "dev": true }, "eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz", + "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==", "dev": true, "requires": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.9.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", "tsconfig-paths": "^3.15.0" }, @@ -29681,23 +29771,23 @@ } }, "eslint-plugin-jasmine": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.2.1.tgz", - "integrity": "sha512-Vwecc66rjMgz2e9UtGScsUdo6D+SbfgPA4Kf0zdAl4+5IQMRL0mXd8973MaZuYYF89XpRjQEGl5TNmg2Bv+KcQ==", + "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.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz", - "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz", + "integrity": "sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==", "dev": true, "requires": { "aria-query": "~5.1.3", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", - "axe-core": "^4.9.1", - "axobject-query": "~3.1.1", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "es-iterator-helpers": "^1.0.19", @@ -29720,20 +29810,17 @@ } }, "axobject-query": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", - "dev": true, - "requires": { - "deep-equal": "^2.0.5" - } + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true } } }, "eslint-plugin-react": { - "version": "7.35.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", - "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "version": "7.36.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz", + "integrity": "sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==", "dev": true, "requires": { "array-includes": "^3.1.8", @@ -30032,36 +30119,36 @@ "integrity": "sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw==" }, "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", + "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -30077,6 +30164,11 @@ "ms": "2.0.0" } }, + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" + }, "finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -30089,6 +30181,13 @@ "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" + }, + "dependencies": { + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + } } }, "ms": { @@ -31637,11 +31736,11 @@ "dev": true }, "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "requires": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" } }, "is-data-descriptor": { @@ -32971,6 +33070,11 @@ "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.3.0.tgz", "integrity": "sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw==" }, + "make-synchronized": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/make-synchronized/-/make-synchronized-0.2.9.tgz", + "integrity": "sha512-4wczOs8SLuEdpEvp3vGo83wh8rjJ78UsIk7DIX5fxdfmfMJGog4bQzxfvOwq7Q3yCHLC4jp1urPHIxRS/A93gA==" + }, "makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -33040,9 +33144,9 @@ } }, "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" }, "merge-source-map": { "version": "1.1.0", @@ -34001,15 +34105,14 @@ } }, "object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" } }, "object.pick": { @@ -34434,9 +34537,9 @@ } }, "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "path-type": { "version": "4.0.0", @@ -34641,6 +34744,11 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==" + }, "pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -34751,11 +34859,11 @@ "integrity": "sha512-C0cqfbS1P5hfqN4NhsYsUXePlk9BO+a45bAQ3xLYjBL3bOIFzoVEjs79Fado9u9BPBD3buHi3+vY+C8tHh4qMQ==" }, "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "requires": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" } }, "queue-microtask": { @@ -35185,26 +35293,26 @@ } }, "rollup": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz", - "integrity": "sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==", - "requires": { - "@rollup/rollup-android-arm-eabi": "4.14.3", - "@rollup/rollup-android-arm64": "4.14.3", - "@rollup/rollup-darwin-arm64": "4.14.3", - "@rollup/rollup-darwin-x64": "4.14.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.14.3", - "@rollup/rollup-linux-arm-musleabihf": "4.14.3", - "@rollup/rollup-linux-arm64-gnu": "4.14.3", - "@rollup/rollup-linux-arm64-musl": "4.14.3", - "@rollup/rollup-linux-powerpc64le-gnu": "4.14.3", - "@rollup/rollup-linux-riscv64-gnu": "4.14.3", - "@rollup/rollup-linux-s390x-gnu": "4.14.3", - "@rollup/rollup-linux-x64-gnu": "4.14.3", - "@rollup/rollup-linux-x64-musl": "4.14.3", - "@rollup/rollup-win32-arm64-msvc": "4.14.3", - "@rollup/rollup-win32-ia32-msvc": "4.14.3", - "@rollup/rollup-win32-x64-msvc": "4.14.3", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "requires": { + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", "@types/estree": "1.0.5", "fsevents": "~2.3.2" } @@ -35446,9 +35554,9 @@ } }, "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "requires": { "debug": "2.6.9", "depd": "2.0.0", @@ -35561,14 +35669,61 @@ } }, "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", + "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.18.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + } + } } }, "set-function-length": { @@ -37687,25 +37842,24 @@ } }, "webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "requires": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -37713,7 +37867,7 @@ "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "dependencies": { @@ -37761,6 +37915,15 @@ "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } + }, + "watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } } } }, diff --git a/frontend/package.json b/frontend/package.json index e05262b32769..6f8167241ae2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -91,15 +91,15 @@ "@fullcalendar/timegrid": "^6.1.11", "@github/webauthn-json": "^2.1.1", "@hotwired/stimulus": "^3.2.2", - "@hotwired/turbo": "^8.0.4", - "@hotwired/turbo-rails": "^8.0.4", + "@hotwired/turbo": "^8.0.10", + "@hotwired/turbo-rails": "^8.0.10", "@kolkov/ngx-gallery": "^2.0.1", "@ng-select/ng-option-highlight": "13.2.0", "@ng-select/ng-select": "^13.2.0", "@ngneat/content-loader": "^7.0.0", "@ngx-formly/core": "^6.1.4", "@openproject/octicons-angular": "^19.18.0", - "@openproject/primer-view-components": "^0.43.1", + "@openproject/primer-view-components": "^0.47.0", "@openproject/reactivestates": "^3.0.1", "@primer/css": "^21.3.3", "@types/hotwired__turbo": "^8.0.1", @@ -176,6 +176,6 @@ "generate-typings": "tsc -d -p src/tsconfig.app.json" }, "overrides": { - "@primer/view-components": "npm:@openproject/primer-view-components@^0.43.1" + "@primer/view-components": "npm:@openproject/primer-view-components@^0.47.0" } } diff --git a/frontend/src/app/core/setup/globals/global-listeners/top-menu-scroll.ts b/frontend/src/app/core/setup/globals/global-listeners/top-menu-scroll.ts index ad9435d36a76..842c1d9ff1e3 100644 --- a/frontend/src/app/core/setup/globals/global-listeners/top-menu-scroll.ts +++ b/frontend/src/app/core/setup/globals/global-listeners/top-menu-scroll.ts @@ -31,22 +31,26 @@ export function scrollHeaderOnMobile() { const headerHeight = 55; let prevScrollPos = window.scrollY; - window.addEventListener('scroll', () => { - // Condition needed for safari browser to avoid negative positions - const currentScrollPos = window.scrollY < 0 ? 0 : window.scrollY; - // Only if sidebar is not opened or search bar is opened - if (!(jQuery('#main').hasClass('hidden-navigation')) + const scrollableElement = document.getElementById('content-body'); + + if (scrollableElement) { + scrollableElement.addEventListener('scroll', () => { + // Condition needed for safari browser to avoid negative positions + const currentScrollPos = scrollableElement.scrollTop < 0 ? 0 : scrollableElement.scrollTop; + // Only if sidebar is not opened or search bar is opened + if (!(jQuery('#main').hasClass('hidden-navigation')) || jQuery('.op-app-header').hasClass('op-app-header_search-open') || Math.abs(currentScrollPos - prevScrollPos) <= headerHeight) { // to avoid flickering at the end of the page - return; - } + return; + } - if (prevScrollPos !== undefined && currentScrollPos !== undefined && (prevScrollPos > currentScrollPos)) { - // Slide top menu in or out of viewport and change viewport height - jQuery('#wrapper').removeClass('_header-scrolled'); - } else { - jQuery('#wrapper').addClass('_header-scrolled'); - } - prevScrollPos = currentScrollPos; - }); + if (prevScrollPos !== undefined && currentScrollPos !== undefined && (prevScrollPos > currentScrollPos)) { + // Slide top menu in or out of viewport and change viewport height + jQuery('#wrapper').removeClass('_header-scrolled'); + } else { + jQuery('#wrapper').addClass('_header-scrolled'); + } + prevScrollPos = currentScrollPos; + }); + } } diff --git a/frontend/src/app/features/in-app-notifications/bell/in-app-notification-bell.component.html b/frontend/src/app/features/in-app-notifications/bell/in-app-notification-bell.component.html index 4b8315834fdc..40866562d9a6 100644 --- a/frontend/src/app/features/in-app-notifications/bell/in-app-notification-bell.component.html +++ b/frontend/src/app/features/in-app-notifications/bell/in-app-notification-bell.component.html @@ -3,7 +3,7 @@ data-test-selector="op-ian-bell" [href]="notificationsPath()" > - + + + +
  • @@ -153,8 +157,11 @@ data-test-selector="tp-assignee-add-button" data-tour-selector="tp-assignee-add-button" > - - + + + diff --git a/frontend/src/app/features/work-packages/components/wp-query/url-params-helper.ts b/frontend/src/app/features/work-packages/components/wp-query/url-params-helper.ts index 732275709123..e20bd87ca98d 100644 --- a/frontend/src/app/features/work-packages/components/wp-query/url-params-helper.ts +++ b/frontend/src/app/features/work-packages/components/wp-query/url-params-helper.ts @@ -95,6 +95,7 @@ export interface QueryRequestParams { groupBy:string|null; filters:string; sortBy:string; + query_id:string|null; timestamps:string; valid_subset?:boolean; } diff --git a/frontend/src/app/features/work-packages/components/wp-table/configuration-modal/tabs/display-settings-tab.component.html b/frontend/src/app/features/work-packages/components/wp-table/configuration-modal/tabs/display-settings-tab.component.html index 8615d86ae59d..38c909af1731 100644 --- a/frontend/src/app/features/work-packages/components/wp-table/configuration-modal/tabs/display-settings-tab.component.html +++ b/frontend/src/app/features/work-packages/components/wp-table/configuration-modal/tabs/display-settings-tab.component.html @@ -8,10 +8,8 @@ [(ngModel)]="displayMode" value="default" name="display_mode_switch"> - - &ngsp; + - &ngsp; @@ -23,10 +21,8 @@ [(ngModel)]="displayMode" value="hierarchy" name="display_mode_switch"> - - &ngsp; + - &ngsp; @@ -40,10 +36,8 @@ [(ngModel)]="displayMode" value="grouped" name="display_mode_switch"> - - &ngsp; + - &ngsp; ':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";var n=o(5778),i=o(3492),r=o(2730),s=o(2814),a=o(7444);function l(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(o){if("default"!==o){var n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:function(){return e[o]}})}})),t.default=e,Object.freeze(t)}var c=l(n),d=l(i);function u(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)}const h=Object.prototype.hasOwnProperty;function m(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(o){e[o]=t[o]}))}})),e}function p(e,t,o){return[].concat(e.slice(0,t),o,e.slice(t+1))}function g(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function f(e){if(e>65535){const t=55296+((e-=65536)>>10),o=56320+(1023&e);return String.fromCharCode(t,o)}return String.fromCharCode(e)}const b=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,k=new RegExp(b.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),w=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function _(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(k,(function(e,t,o){return t||function(e,t){if(35===t.charCodeAt(0)&&w.test(t)){const o="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return g(o)?f(o):e}const o=r.decodeHTML(e);return o!==e?o:e}(e,o)}))}const y=/[&<>"]/,A=/[&<>"]/g,C={"&":"&","<":"<",">":">",'"':"""};function v(e){return C[e]}function x(e){return y.test(e)?e.replace(A,v):e}const E=/[.?*+^$[\]\\(){}|-]/g;function D(e){switch(e){case 9:case 32:return!0}return!1}function B(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function S(e){return d.P.test(e)||d.S.test(e)}function T(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function I(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const P={mdurl:c,ucmicro:d};var F=Object.freeze({__proto__:null,arrayReplaceAt:p,assign:m,escapeHtml:x,escapeRE:function(e){return e.replace(E,"\\$&")},fromCodePoint:f,has:function(e,t){return h.call(e,t)},isMdAsciiPunct:T,isPunctChar:S,isSpace:D,isString:u,isValidEntityCode:g,isWhiteSpace:B,lib:P,normalizeReference:I,unescapeAll:_,unescapeMd:function(e){return e.indexOf("\\")<0?e:e.replace(b,"$1")}});var M=Object.freeze({__proto__:null,parseLinkDestination:function(e,t,o){let n,i=t;const r={ok:!1,pos:0,str:""};if(60===e.charCodeAt(i)){for(i++;i32))return r;if(41===n){if(0===s)break;s--}i++}return t===i||0!==s||(r.str=_(e.slice(t,i)),r.pos=i,r.ok=!0),r},parseLinkLabel:function(e,t,o){let n,i,r,s;const a=e.posMax,l=e.pos;for(e.pos=t+1,n=1;e.pos=o)return s;let n=e.charCodeAt(r);if(34!==n&&39!==n&&40!==n)return s;t++,r++,40===n&&(n=41),s.marker=n}for(;r"+x(r.content)+""},R.code_block=function(e,t,o,n,i){const r=e[t];return""+x(e[t].content)+"\n"},R.fence=function(e,t,o,n,i){const r=e[t],s=r.info?_(r.info).trim():"";let a,l="",c="";if(s){const e=s.split(/(\s+)/g);l=e[0],c=e.slice(2).join("")}if(a=o.highlight&&o.highlight(r.content,l,c)||x(r.content),0===a.indexOf("${a}\n`}return`
    ${a}
    \n`},R.image=function(e,t,o,n,i){const r=e[t];return r.attrs[r.attrIndex("alt")][1]=i.renderInlineAsText(r.children,o,n),i.renderToken(e,t,o)},R.hardbreak=function(e,t,o){return o.xhtmlOut?"
    \n":"
    \n"},R.softbreak=function(e,t,o){return o.breaks?o.xhtmlOut?"
    \n":"
    \n":"\n"},R.text=function(e,t){return x(e[t].content)},R.html_block=function(e,t){return e[t].content},R.html_inline=function(e,t){return e[t].content},z.prototype.renderAttrs=function(e){let t,o,n;if(!e.attrs)return"";for(n="",t=0,o=e.attrs.length;t\n":">",i},z.prototype.renderInline=function(e,t,o){let n="";const i=this.rules;for(let r=0,s=e.length;r=0&&(o=this.attrs[t][1]),o},O.prototype.attrJoin=function(e,t){const o=this.attrIndex(e);o<0?this.attrPush([e,t]):this.attrs[o][1]=this.attrs[o][1]+" "+t},N.prototype.Token=O;const L=/\r\n?|\n/g,H=/\0/g;function j(e){return/^<\/a\s*>/i.test(e)}const q=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,U=/\((c|tm|r)\)/i,W=/\((c|tm|r)\)/gi,$={c:"©",r:"®",tm:"™"};function G(e,t){return $[t.toLowerCase()]}function K(e){let t=0;for(let o=e.length-1;o>=0;o--){const n=e[o];"text"!==n.type||t||(n.content=n.content.replace(W,G)),"link_open"===n.type&&"auto"===n.info&&t--,"link_close"===n.type&&"auto"===n.info&&t++}}function Z(e){let t=0;for(let o=e.length-1;o>=0;o--){const n=e[o];"text"!==n.type||t||q.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===n.type&&"auto"===n.info&&t--,"link_close"===n.type&&"auto"===n.info&&t++}}const J=/['"]/,Y=/['"]/g,Q="’";function X(e,t,o){return e.slice(0,t)+o+e.slice(t+1)}function ee(e,t){let o;const n=[];for(let i=0;i=0&&!(n[o].level<=s);o--);if(n.length=o+1,"text"!==r.type)continue;let a=r.content,l=0,c=a.length;e:for(;l=0)p=a.charCodeAt(d.index-1);else for(o=i-1;o>=0&&("softbreak"!==e[o].type&&"hardbreak"!==e[o].type);o--)if(e[o].content){p=e[o].content.charCodeAt(e[o].content.length-1);break}let g=32;if(l=48&&p<=57&&(h=u=!1),u&&h&&(u=f,h=b),u||h){if(h)for(o=n.length-1;o>=0;o--){let u=n[o];if(n[o].level=0;s--){const a=i[s];if("link_close"!==a.type){if("html_inline"===a.type&&(o=a.content,/^\s]/i.test(o)&&r>0&&r--,j(a.content)&&r++),!(r>0)&&"text"===a.type&&e.md.linkify.test(a.content)){const o=a.content;let r=e.md.linkify.match(o);const l=[];let c=a.level,d=0;r.length>0&&0===r[0].index&&s>0&&"text_special"===i[s-1].type&&(r=r.slice(1));for(let t=0;td){const t=new e.Token("text","",0);t.content=o.slice(d,a),t.level=c,l.push(t)}const u=new e.Token("link_open","a",1);u.attrs=[["href",i]],u.level=c++,u.markup="linkify",u.info="auto",l.push(u);const h=new e.Token("text","",0);h.content=s,h.level=c,l.push(h);const m=new e.Token("link_close","a",-1);m.level=--c,m.markup="linkify",m.info="auto",l.push(m),d=r[t].lastIndex}if(d=0;t--)"inline"===e.tokens[t].type&&(U.test(e.tokens[t].content)&&K(e.tokens[t].children),q.test(e.tokens[t].content)&&Z(e.tokens[t].children))}],["smartquotes",function(e){if(e.md.options.typographer)for(let t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&J.test(e.tokens[t].content)&&ee(e.tokens[t].children,e)}],["text_join",function(e){let t,o;const n=e.tokens,i=n.length;for(let e=0;e0&&this.level++,this.tokens.push(n),n},ne.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},ne.prototype.skipEmptyLines=function(e){for(let t=this.lineMax;et;)if(!D(this.src.charCodeAt(--e)))return e+1;return e},ne.prototype.skipChars=function(e,t){for(let o=this.src.length;eo;)if(t!==this.src.charCodeAt(--e))return e+1;return e},ne.prototype.getLines=function(e,t,o,n){if(e>=t)return"";const i=new Array(t-e);for(let r=0,s=e;so?new Array(e-o+1).join(" ")+this.src.slice(c,l):this.src.slice(c,l)}return i.join("")},ne.prototype.Token=O;function ie(e,t){const o=e.bMarks[t]+e.tShift[t],n=e.eMarks[t];return e.src.slice(o,n)}function re(e){const t=[],o=e.length;let n=0,i=e.charCodeAt(n),r=!1,s=0,a="";for(;n=n)return-1;let r=e.src.charCodeAt(i++);if(r<48||r>57)return-1;for(;;){if(i>=n)return-1;if(r=e.src.charCodeAt(i++),!(r>=48&&r<=57)){if(41===r||46===r)break;return-1}if(i-o>=10)return-1}return i`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",ce="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",de=new RegExp("^(?:"+le+"|"+ce+"|\x3c!---?>|\x3c!--(?:[^-]|-[^-]|--[^>])*--\x3e|<[?][\\s\\S]*?[?]>|]*>|)"),ue=new RegExp("^(?:"+le+"|"+ce+")"),he=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(ue.source+"\\s*$"),/^$/,!1]];const me=[["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&&!D(a))return!1;if(45===s&&D(a))return!1;for(;r=4)return!1;c=re(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 m=e.md.block.ruler.getRules("blockquote"),p=[t,0];e.push("table_open","table",1).map=p,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=re(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 m,p=!1;for(m=t;m=r)break;if(62===e.src.charCodeAt(i++)&&!t){let t,o,n=e.sCount[m]+1;32===e.src.charCodeAt(i)?(i++,n++,o=!1,t=!0):9===e.src.charCodeAt(i)?(t=!0,(e.bsCount[m]+n)%4==3?(i++,n++,o=!1):o=!0):t=!1;let s=n;for(a.push(e.bMarks[m]),e.bMarks[m]=i;i=r,l.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+(t?1:0),c.push(e.sCount[m]),e.sCount[m]=s-n,d.push(e.tShift[m]),e.tShift[m]=i-e.bMarks[m];continue}if(p)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,m),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&&(m=!0),(h=ae(e,l))>=0){if(d=!0,s=e.bMarks[l]+e.tShift[l],u=Number(e.src.slice(s,h-1)),m&&1!==u)return!1}else{if(!((h=se(e,l))>=0))return!1;d=!1}if(m&&e.skipSpaces(h)>=e.eMarks[l])return!1;if(n)return!0;const p=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(p);let b=!1;const k=e.md.block.ruler.getRules("list"),w=e.parentType;for(e.parentType="list";l=i?1:n-t,m>4&&(m=1);const g=t+m;a=e.push("list_item_open","li",1),a.markup=String.fromCharCode(p);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(p),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&&D(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},ge.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){ke[e.charCodeAt(0)]=1}));var _e={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--)}}var Ae={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 xe=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,Ee=/^&([a-z][a-z0-9]{1,31});/i;function De(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 Be=[["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(be);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!==ke[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=p,i=e.md.helpers.parseLinkDestination(e.src,p,e.posMax),i.ok){for(s=e.md.normalizeLink(i.str),e.md.validateLink(s)?p=i.pos:s="",l=p;p=u||41!==e.src.charCodeAt(p))&&(c=!0),p++}if(c){if(void 0===e.env.references)return!1;if(p=0?n=e.src.slice(l,p++):p=m+1):p=m+1,n||(n=e.src.slice(h,m)),r=e.env.references[I(n)],!r)return e.pos=d,!1;s=r.href,a=r.title}if(!t){e.pos=h,e.posMax=m;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=p,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 m=e.pos+2,p=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(p<0)return!1;if(r=p+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=p+1):r=p+1,i||(i=e.src.slice(m,p)),s=e.env.references[I(i)],!s)return e.pos=u,!1;d=s.href,l=s.title}if(!t){n=e.src.slice(m,p);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(ve.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(Ce.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(de);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(xe);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=g(t)?f(t):f(65533),o.markup=n[0],o.info="entity"}return e.pos+=n[0].length,!0}}else{const n=e.src.slice(o).match(Ee);if(n){const o=r.decodeHTML(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}]],Se=[["balance_pairs",function(e){const t=e.tokens_meta,o=e.tokens_meta.length;De(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},Te.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()},Te.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=0))try{t.hostname=a.toASCII(t.hostname)}catch(e){}return c.encode(c.format(t))}function Ve(e){const t=c.parse(e,!0);if(t.hostname&&(!t.protocol||Re.indexOf(t.protocol)>=0))try{t.hostname=a.toUnicode(t.hostname)}catch(e){}return c.decode(c.format(t),c.decode.defaultChars+"%")}function Oe(e,t){if(!(this instanceof Oe))return new Oe(e,t);t||u(e)||(t=e||{},e="default"),this.inline=new Te,this.block=new pe,this.core=new oe,this.renderer=new z,this.linkify=new s,this.validateLink=Me,this.normalizeLink=ze,this.normalizeLinkText=Ve,this.utils=F,this.helpers=m({},M),this.options={},this.configure(e),t&&this.set(t)}Oe.prototype.set=function(e){return m(this.options,e),this},Oe.prototype.configure=function(e){const t=this;if(u(e)){const t=e;if(!(e=Ie[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},Oe.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},Oe.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},Oe.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},Oe.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},Oe.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},Oe.prototype.parseInline=function(e,t){const o=new this.core.State(e,this,t);return o.inlineMode=!0,this.core.process(o),o.tokens},Oe.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=Oe},5778:(e,t)=>{"use strict";const o={};function n(e,t){"string"!=typeof t&&(t=n.defaultChars);const i=function(e){let t=o[e];if(t)return t;t=o[e]=[];for(let e=0;e<128;e++){const o=String.fromCharCode(e);t.push(o)}for(let o=0;o=55296&&e<=57343?"���":String.fromCharCode(e),o+=6;continue}}if(240==(248&r)&&o+91114111?t+="����":(e-=65536,t+=String.fromCharCode(55296+(e>>10),56320+(1023&e))),o+=9;continue}}t+="�"}}return t}))}n.defaultChars=";/?:@&=+$,#",n.componentChars="";const i={};function r(e,t,o){"string"!=typeof t&&(o=t,t=r.defaultChars),void 0===o&&(o=!0);const n=function(e){let t=i[e];if(t)return t;t=i[e]=[];for(let e=0;e<128;e++){const o=String.fromCharCode(e);/^[0-9a-z]$/i.test(o)?t.push(o):t.push("%"+("0"+e.toString(16).toUpperCase()).slice(-2))}for(let o=0;o=55296&&r<=57343){if(r>=55296&&r<=56319&&t+1=56320&&o<=57343){s+=encodeURIComponent(e[t]+e[t+1]),t++;continue}}s+="%EF%BF%BD"}else s+=encodeURIComponent(e[t])}return s}function s(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}r.defaultChars=";/?:@&=+$,-_.!~*'()#",r.componentChars="-_.!~*'()";const a=/^([a-z0-9.+-]+:)/i,l=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(d),h=["%","/","?",";","#"].concat(u),m=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,g=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};s.prototype.parse=function(e,t){let o,n,i,r=e;if(r=r.trim(),!t&&1===e.split("#").length){const e=c.exec(r);if(e)return this.pathname=e[1],e[2]&&(this.search=e[2]),this}let s=a.exec(r);if(s&&(s=s[0],o=s.toLowerCase(),this.protocol=s,r=r.substr(s.length)),(t||s||r.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i="//"===r.substr(0,2),!i||s&&f[s]||(r=r.substr(2),this.slashes=!0)),!f[s]&&(i||s&&!b[s])){let e,t,o=-1;for(let e=0;e127?n+="x":n+=o[e];if(!n.match(p)){const n=e.slice(0,t),i=e.slice(t+1),s=o.match(g);s&&(n.push(s[1]),i.unshift(s[2])),i.length&&(r=i.join(".")+r),this.hostname=n.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),s&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const l=r.indexOf("#");-1!==l&&(this.hash=r.substr(l),r=r.slice(0,l));const d=r.indexOf("?");return-1!==d&&(this.search=r.substr(d),r=r.slice(0,d)),r&&(this.pathname=r),b[o]&&this.hostname&&!this.pathname&&(this.pathname=""),this},s.prototype.parseHost=function(e){let t=l.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.decode=n,t.encode=r,t.format=function(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t},t.parse=function(e,t){if(e&&e instanceof s)return e;const o=new s;return o.parse(e,t),o}},7444:(e,t,o)=>{"use strict";o.r(t),o.d(t,{decode:()=>b,default:()=>y,encode:()=>k,toASCII:()=>_,toUnicode:()=>w,ucs2decode:()=>m,ucs2encode:()=>p});const n=2147483647,i=36,r=/^xn--/,s=/[^\0-\x7F]/,a=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,d=String.fromCharCode;function u(e){throw new RangeError(l[e])}function h(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(a,".")).split("."),t).join(".");return n+i}function m(e){const t=[];let o=0;const n=e.length;for(;o=55296&&i<=56319&&oString.fromCodePoint(...e),g=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},f=function(e,t,o){let n=0;for(e=o?c(e/700):e>>1,e+=c(e/t);e>455;n+=i)e=c(e/35);return c(n+36*e/(e+38))},b=function(e){const t=[],o=e.length;let r=0,s=128,a=72,l=e.lastIndexOf("-");l<0&&(l=0);for(let o=0;o=128&&u("not-basic"),t.push(e.charCodeAt(o));for(let h=l>0?l+1:0;h=o&&u("invalid-input");const l=(d=e.charCodeAt(h++))>=48&&d<58?d-48+26:d>=65&&d<91?d-65:d>=97&&d<123?d-97:i;l>=i&&u("invalid-input"),l>c((n-r)/t)&&u("overflow"),r+=l*t;const m=s<=a?1:s>=a+26?26:s-a;if(lc(n/p)&&u("overflow"),t*=p}const m=t.length+1;a=f(r-l,m,0==l),c(r/m)>n-s&&u("overflow"),s+=c(r/m),r%=m,t.splice(r++,0,s)}var d;return String.fromCodePoint(...t)},k=function(e){const t=[],o=(e=m(e)).length;let r=128,s=0,a=72;for(const o of e)o<128&&t.push(d(o));const l=t.length;let h=l;for(l&&t.push("-");h=r&&tc((n-s)/m)&&u("overflow"),s+=(o-r)*m,r=o;for(const o of e)if(on&&u("overflow"),o===r){let e=s;for(let o=i;;o+=i){const n=o<=a?1:o>=a+26?26:o-a;if(e{"use strict";var t=[];function o(e){for(var o=-1,n=0;n{"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)}},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}},4868:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach((function(o){e.setAttribute(o,t[o])}))}},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)}}}},3492:(e,t)=>{"use strict";t.Any=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,t.Cc=/[\0-\x1F\x7F-\x9F]/,t.Cf=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,t.P=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,t.S=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,t.Z=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},2401:e=>{"use strict";e.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzUuNzUgMCAwIDEtLjIxNy4yMDYgNS4yNTEgNS4yNTEgMCAwIDEtOC41MDMtNS45NTUuNy43IDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NHptNS40OTQtNS4zMzVhLjc1Ljc1IDAgMCAxLS4xMi4yNzRsLTEuMTQ3IDEuNjM5YS43NS43NSAwIDEgMS0xLjIyOC0uODZsLjg2LTEuMjNhMy43NSAzLjc1IDAgMCAwLTYuMTQ0LTQuMzAxbC0uODYgMS4yMjlhLjc1Ljc1IDAgMCAxLTEuMjI5LS44NmwxLjE0OC0xLjY0YS43NS43NSAwIDAgMSAuMjE3LS4yMDYgNS4yNTEgNS4yNTEgMCAwIDEgOC41MDMgNS45NTVtLTQuNTYzLTIuNTMyYS43NS43NSAwIDAgMSAuMTg0IDEuMDQ1bC0zLjE1NSA0LjUwNWEuNzUuNzUgMCAxIDEtMS4yMjktLjg2bDMuMTU1LTQuNTA2YS43NS43NSAwIDAgMSAxLjA0NS0uMTg0Ii8+PC9zdmc+"}},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].call(r.exports,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";let e;try{e={window,document}}catch(t){e={window:{},document:{}}}const t=e;function o(){try{return navigator.userAgent.toLowerCase()}catch(e){return""}}const n=o(),r={isMac:s(n),isWindows:a(n),isGecko:l(n),isSafari:c(n),isiOS:d(n),isAndroid:u(n),isBlink:h(n),get isMediaForcedColors(){return!!t.window.matchMedia&&t.window.matchMedia("(forced-colors: active)").matches},get isMotionReduced(){return!!t.window.matchMedia&&t.window.matchMedia("(prefers-reduced-motion)").matches},features:{isRegExpUnicodePropertySupported:m()}};function s(e){return e.indexOf("macintosh")>-1}function a(e){return e.indexOf("windows")>-1}function l(e){return!!e.match(/gecko\/\d+/)}function c(e){return e.indexOf(" applewebkit/")>-1&&-1===e.indexOf("chrome")}function d(e){return!!e.match(/iphone|ipad/i)||s(e)&&navigator.maxTouchPoints>0}function u(e){return e.indexOf("android")>-1}function h(e){return e.indexOf("chrome/")>-1&&e.indexOf("edge/")<0}function m(){let e=!1;try{e=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(e){}return e}function p(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=g(e,t,o);if(-1===n)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const i=f(e,n),r=f(t,n),s=g(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 g(e,t,o){for(let n=0;n200||i>200||n+i>300)return b.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 m=Math.max(i,c),p=m-n;for(;pc;m--)u[m]=h(m);u[c]=h(c),p++}while(u[c]!==l);return d[c].slice(1)}b.fastDiff=p;const k=function(){return function e(){e.called=!0}};class w{constructor(e,t){this.source=e,this.name=t,this.path=[],this.stop=k(),this.off=k()}}const y=new Array(256).fill("").map(((e,t)=>("0"+t.toString(16)).slice(-2)));function A(){const e=4294967296*Math.random()>>>0,t=4294967296*Math.random()>>>0,o=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0;return"e"+y[e>>0&255]+y[e>>8&255]+y[e>>16&255]+y[e>>24&255]+y[t>>0&255]+y[t>>8&255]+y[t>>16&255]+y[t>>24&255]+y[o>>0&255]+y[o>>8&255]+y[o>>16&255]+y[o>>24&255]+y[n>>0&255]+y[n>>8&255]+y[n>>16&255]+y[n>>24&255]}const C={get(e="normal"){return"number"!=typeof e?this[e]||this.normal:e},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function v(e,t){const o=C.get(t.priority);for(let n=0;n{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=B(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 E(e.message,t);throw o.stack=e.stack,o}}function D(e,t){console.warn(...S(e,t))}function B(e){return`\nRead more: ${x}#error-${e}`}function S(e,t){const o=B(e);return t?[e,t,o]:[e,o]}const T="43.0.0",I=new Date(2024,7,7);if(globalThis.CKEDITOR_VERSION)throw new E("ckeditor-duplicated-modules",null);globalThis.CKEDITOR_VERSION=T;const P=Symbol("listeningTo"),F=Symbol("emitterId"),M=Symbol("delegations"),R=z(Object);function z(e){if(!e)return R;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[P]||(this[P]={});const s=this[P];O(e)||V(e);const a=O(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[P];let i=e&&O(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){q(this,e,t,o);-1!==s.indexOf(o)&&(1===s.length?delete r.callbacks[t]:q(this,e,t,o))}else if(s){for(;o=s.pop();)q(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[P]}}fire(e,...t){try{const o=e instanceof w?e:new w(this,e),n=o.name;let i=H(this,n);if(o.path.push(this),i){const e=[o,...t];i=Array.from(i);for(let t=0;t{this[M]||(this[M]=new Map),e.forEach((e=>{const n=this[M].get(e);n?n.set(t,o):this[M].set(e,new Map([[t,o]]))}))}}}stopDelegating(e,t){if(this[M])if(e)if(t){const o=this[M].get(e);o&&o.delete(t)}else this[M].delete(e);else this[M].clear()}_addEventListener(e,t,o){!function(e,t){const o=N(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=L(this,e),i={callback:t,priority:C.get(o.priority)};for(const e of n)v(e,i)}_removeEventListener(e,t){const o=L(this,e);for(const e of o)for(let o=0;o-1?H(e,t.substr(0,t.lastIndexOf(":"))):null}function j(e,t,o){for(let[n,i]of e){i?"function"==typeof i&&(i=i(t.name)):i=t.name;const e=new w(t.source,i);e.path=[...t.path],n.fire(e,...o)}}function q(e,t,o,n){t._removeEventListener?t._removeEventListener(o,n):e._removeEventListener.call(t,o,n)}["on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((e=>{z[e]=R.prototype[e]}));const U=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},W=Symbol("observableProperties"),$=Symbol("boundObservables"),G=Symbol("boundProperties"),K=Symbol("decoratedMethods"),Z=Symbol("decoratedOriginal"),J=Y(z());function Y(e){if(!e)return J;return class extends e{set(e,t){if(U(e))return void Object.keys(e).forEach((t=>{this.set(t,e[t])}),this);Q(this);const o=this[W];if(e in this&&!o.has(e))throw new E("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||!te(e))throw new E("observable-bind-wrong-properties",this);if(new Set(e).size!==e.length)throw new E("observable-bind-duplicate-properties",this);Q(this);const t=this[G];e.forEach((e=>{if(t.has(e))throw new E("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:X,toMany:ee,_observable:this,_bindProperties:e,_to:[],_bindings:o}}unbind(...e){if(!this[W])return;const t=this[G],o=this[$];if(e.length){if(!te(e))throw new E("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){Q(this);const t=this[e];if(!t)throw new E("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][Z]=t,this[K]||(this[K]=[]),this[K].push(e)}stopListening(e,t,o){if(!e&&this[K]){for(const e of this[K])this[e]=this[e][Z];delete this[K]}super.stopListening(e,t,o)}}}function Q(e){e[W]||(Object.defineProperty(e,W,{value:new Map}),Object.defineProperty(e,$,{value:new Map}),Object.defineProperty(e,G,{value:new Map}))}function X(...e){const t=function(...e){if(!e.length)throw new E("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 E("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 E("observable-bind-to-no-callback",this);if(n>1&&t.callback)throw new E("observable-bind-to-extra-callback",this);var i;t.to.forEach((e=>{if(e.properties.length&&e.properties.length!==n)throw new E("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[$];let o;t.get(e.observable)||i.listenTo(e.observable,"change",((n,r)=>{o=t.get(e.observable)[r],o&&o.forEach((e=>{oe(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[$],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=>{oe(this._observable,e)}))}function ee(e,t,o){if(this._bindings.size>1)throw new E("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 te(e){return e.every((e=>"string"==typeof e))}function oe(e,t){const o=e[G].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 ne(e){let t=0;for(const o of e)t++;return t}function ie(e,t){const o=Math.min(e.length,t.length);for(let n=0;n{Y[e]=J.prototype[e]}));const se="object"==typeof global&&global&&global.Object===Object&&global;var ae="object"==typeof self&&self&&self.Object===Object&&self;const le=se||ae||Function("return this")();const ce=le.Symbol;var de=Object.prototype,ue=de.hasOwnProperty,he=de.toString,me=ce?ce.toStringTag:void 0;const pe=function(e){var t=ue.call(e,me),o=e[me];try{e[me]=void 0;var n=!0}catch(e){}var i=he.call(e);return n&&(t?e[me]=o:delete e[me]),i};var ge=Object.prototype.toString;const fe=function(e){return ge.call(e)};var be=ce?ce.toStringTag:void 0;const ke=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":be&&be in Object(e)?pe(e):fe(e)};const we=Array.isArray;const _e=function(e){return null!=e&&"object"==typeof e};const ye=function(e){return"string"==typeof e||!we(e)&&_e(e)&&"[object String]"==ke(e)};function Ae(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]);!ye(n)&&re(n)||(n=[n]);for(let t of n)ye(t)&&(t=e.createTextNode(t)),r.appendChild(t);return r}const Ce=function(e,t){return function(o){return e(t(o))}};const ve=Ce(Object.getPrototypeOf,Object);var xe=Function.prototype,Ee=Object.prototype,De=xe.toString,Be=Ee.hasOwnProperty,Se=De.call(Object);const Te=function(e){if(!_e(e)||"[object Object]"!=ke(e))return!1;var t=ve(e);if(null===t)return!0;var o=Be.call(t,"constructor")&&t.constructor;return"function"==typeof o&&o instanceof o&&De.call(o)==Se};const Ie=function(){this.__data__=[],this.size=0};const Pe=function(e,t){return e===t||e!=e&&t!=t};const Fe=function(e,t){for(var o=e.length;o--;)if(Pe(e[o][0],t))return o;return-1};var Me=Array.prototype.splice;const Re=function(e){var t=this.__data__,o=Fe(t,e);return!(o<0)&&(o==t.length-1?t.pop():Me.call(t,o,1),--this.size,!0)};const ze=function(e){var t=this.__data__,o=Fe(t,e);return o<0?void 0:t[o][1]};const Ve=function(e){return Fe(this.__data__,e)>-1};const Oe=function(e,t){var o=this.__data__,n=Fe(o,e);return n<0?(++this.size,o.push([e,t])):o[n][1]=t,this};function Ne(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 Zt={};Zt["[object Float32Array]"]=Zt["[object Float64Array]"]=Zt["[object Int8Array]"]=Zt["[object Int16Array]"]=Zt["[object Int32Array]"]=Zt["[object Uint8Array]"]=Zt["[object Uint8ClampedArray]"]=Zt["[object Uint16Array]"]=Zt["[object Uint32Array]"]=!0,Zt["[object Arguments]"]=Zt["[object Array]"]=Zt["[object ArrayBuffer]"]=Zt["[object Boolean]"]=Zt["[object DataView]"]=Zt["[object Date]"]=Zt["[object Error]"]=Zt["[object Function]"]=Zt["[object Map]"]=Zt["[object Number]"]=Zt["[object Object]"]=Zt["[object RegExp]"]=Zt["[object Set]"]=Zt["[object String]"]=Zt["[object WeakMap]"]=!1;const Jt=function(e){return _e(e)&&Kt(e.length)&&!!Zt[ke(e)]};const Yt=function(e){return function(t){return e(t)}};var Qt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Xt=Qt&&"object"==typeof module&&module&&!module.nodeType&&module,eo=Xt&&Xt.exports===Qt&&se.process;const to=function(){try{var e=Xt&&Xt.require&&Xt.require("util").types;return e||eo&&eo.binding&&eo.binding("util")}catch(e){}}();var oo=to&&to.isTypedArray;const no=oo?Yt(oo):Jt;var io=Object.prototype.hasOwnProperty;const ro=function(e,t){var o=we(e),n=!o&&Lt(e),i=!o&&!n&&Wt(e),r=!o&&!n&&!i&&no(e),s=o||n||i||r,a=s?Rt(e.length,String):[],l=a.length;for(var c in e)!t&&!io.call(e,c)||s&&("length"==c||i&&("offset"==c||"parent"==c)||r&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Gt(c,l))||a.push(c);return a};var so=Object.prototype;const ao=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||so)};const lo=Ce(Object.keys,Object);var co=Object.prototype.hasOwnProperty;const uo=function(e){if(!ao(e))return lo(e);var t=[];for(var o in Object(e))co.call(e,o)&&"constructor"!=o&&t.push(o);return t};const ho=function(e){return null!=e&&Kt(e.length)&&!We(e)};const mo=function(e){return ho(e)?ro(e):uo(e)};const po=function(e,t){return e&&Mt(t,mo(t),e)};const go=function(e){var t=[];if(null!=e)for(var o in Object(e))t.push(o);return t};var fo=Object.prototype.hasOwnProperty;const bo=function(e){if(!U(e))return go(e);var t=ao(e),o=[];for(var n in e)("constructor"!=n||!t&&fo.call(e,n))&&o.push(n);return o};const ko=function(e){return ho(e)?ro(e,!0):bo(e)};const wo=function(e,t){return e&&Mt(t,ko(t),e)};var _o="object"==typeof exports&&exports&&!exports.nodeType&&exports,yo=_o&&"object"==typeof module&&module&&!module.nodeType&&module,Ao=yo&&yo.exports===_o?le.Buffer:void 0,Co=Ao?Ao.allocUnsafe:void 0;const vo=function(e,t){if(t)return e.slice();var o=e.length,n=Co?Co(o):new e.constructor(o);return e.copy(n),n};const xo=function(e,t){var o=-1,n=e.length;for(t||(t=Array(n));++o{this._setToTarget(e,n,t[n],o)}))}}function Tn(e){return Dn(e,In)}function In(e){return Bn(e)||"function"==typeof e?e:void 0}function Pn(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 Fn(e){const t=Object.prototype.toString.apply(e);return"[object Window]"==t||"[object global]"==t}const Mn=Rn(z());function Rn(e){if(!e)return Mn;return class extends e{listenTo(e,t,o,n={}){if(Pn(e)||Fn(e)){const i={capture:!!n.useCapture,passive:!!n.usePassive},r=this._getProxyEmitter(e,i)||new zn(e,i);this.listenTo(r,t,o,n)}else super.listenTo(e,t,o,n)}stopListening(e,t,o){if(Pn(e)||Fn(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[P];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=>{Rn[e]=Mn.prototype[e]}));class zn extends(z()){constructor(e,t){super(),V(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),z().prototype._addEventListener.call(this,e,t,o)}_removeEventListener(e,t){z().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"]=A())}(e);for(const e of Object.keys(t).sort())t[e]&&(o+="-"+e);return o}function On(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 Nn(e){return"[object Text]"==Object.prototype.toString.call(e)}function Ln(e){return"[object Range]"==Object.prototype.toString.apply(e)}function Hn(e){return e&&e.parentNode?e.offsetParent===t.document.body?null:e.offsetParent:null}const jn=["top","right","bottom","left","width","height"];class qn{constructor(e){const t=Ln(e);if(Object.defineProperty(this,"_source",{value:e._source||e,writable:!0,enumerable:!1}),$n(e)||t)if(t){const t=qn.getDomRangeRects(e);Un(this,qn.getBoundingRect(t))}else Un(this,e.getBoundingClientRect());else if(Fn(e)){const{innerWidth:t,innerHeight:o}=e;Un(this,{top:0,right:t,bottom:o,left:0,width:t,height:o})}else Un(this,e)}clone(){return new qn(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 qn(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(Wn(e))return t;let o,n=e,i=e.parentNode||e.commonAncestorContainer;for(;i&&!Wn(i);){const e="visible"===((r=i)instanceof HTMLElement?r.ownerDocument.defaultView.getComputedStyle(r).overflow:"visible");n instanceof HTMLElement&&"absolute"===Gn(n)&&(o=n);const s=Gn(i);if(e||o&&("relative"===s&&e||"relative"!==s)){n=i,i=i.parentNode;continue}const a=new qn(i),l=t.getIntersection(a);if(!l)return null;l.getArea(){for(const t of e){const e=Kn._getElementCallbacks(t.target);if(e)for(const o of e)o(t)}}))}}Kn._observerInstance=null,Kn._elementCallbacks=null;const Zn=Kn;function Jn(e,t){e instanceof HTMLTextAreaElement&&(e.value=t),e.innerHTML=t}function Yn(e){return t=>t+e}function Qn(e){let t=0;for(;e.previousSibling;)e=e.previousSibling,t++;return t}function Xn(e,t,o){e.insertBefore(o,e.childNodes[t]||null)}function ei(e){return e&&e.nodeType===Node.COMMENT_NODE}function ti(e){return!!(e&&e.getClientRects&&e.getClientRects().length)}function oi({element:e,target:o,positions:n,limiter:i,fitInViewport:r,viewportOffsetConfig:s}){We(o)&&(o=o()),We(i)&&(i=i());const a=Hn(e),l=function(e){e=Object.assign({top:0,bottom:0,left:0,right:0},e);const o=new qn(t.window);return o.top+=e.top,o.height-=e.top,o.bottom-=e.bottom,o.height-=e.bottom,o}(s),c=new qn(e),d=ni(o,l);let u;if(!d||!l.getIntersection(d))return null;const h={targetRect:d,elementRect:c,positionedElementAncestor:a,viewportRect:l};if(i||r){if(i){const e=ni(i,l);e&&(h.limiterRect=e)}u=function(e,t){const{elementRect:o}=t,n=o.getArea(),i=e.map((e=>new ii(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}(n,h)}else u=new ii(n[0],h);return u}function ni(e,t){const o=new qn(e).getVisible();return o?o.getIntersection(t):null}class ii{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 ri(e){const t=e.parentNode;t&&t.removeChild(e)}function si({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 qn(e).excludeScrollbarsAndBorders(),l=o&&n,c=[s,r].every((e=>a.contains(e)));let{scrollX:d,scrollY:u}=e;const h=d,m=u;l?u-=a.top-t.top+i.top:c||(ci(s,a)?u-=a.top-t.top+i.top:li(r,a)&&(u+=o?t.top-a.top-i.top:t.bottom-a.bottom+i.bottom)),c||(di(t,a)?d-=a.left-t.left+i.left:ui(t,a)&&(d+=t.right-a.right+i.right)),d==h&&u===m||e.scrollTo(d,u)}function ai({parent:e,getRect:t,alignToTop:o,forceScroll:n,ancestorOffset:i=0,limiterElement:r}){const s=hi(e),a=o&&n;let l,c,d;const u=r||s.document.body;for(;e!=u;)c=t(),l=new qn(e).excludeScrollbarsAndBorders(),d=l.contains(c),a?e.scrollTop-=l.top-c.top+i:d||(ci(c,l)?e.scrollTop-=l.top-c.top+i:li(c,l)&&(e.scrollTop+=o?c.top-l.top-i:c.bottom-l.bottom+i)),d||(di(c,l)?e.scrollLeft-=l.left-c.left+i:ui(c,l)&&(e.scrollLeft+=c.right-l.right+i)),e=e.parentNode}function li(e,t){return e.bottom>t.bottom}function ci(e,t){return e.topt.right}function hi(e){return Ln(e)?e.startContainer.ownerDocument.defaultView:e.ownerDocument.defaultView}function mi(e){if(Ln(e)){let t=e.commonAncestorContainer;return Nn(t)&&(t=t.parentNode),t}return e.parentNode}function pi(e,t){const o=hi(e),n=new qn(e);if(o===t)return n;{let e=o;for(;e!=t;){const t=e.frameElement,o=new qn(t).excludeScrollbarsAndBorders();n.moveBy(o.left,o.top),e=e.parent}}return n}const gi={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},fi={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},bi={37:"←",38:"↑",39:"→",40:"↓",9:"⇥",33:"Page Up",34:"Page Down"},ki=vi(),wi=Object.fromEntries(Object.entries(ki).map((([e,t])=>{let o;return o=t in bi?bi[t]:e.charAt(0).toUpperCase()+e.slice(1),[t,o]})));function _i(e){let t;if("string"==typeof e){if(t=ki[e.toLowerCase()],!t)throw new E("keyboard-unknown-key",null,{key:e})}else t=e.keyCode+(e.altKey?ki.alt:0)+(e.ctrlKey?ki.ctrl:0)+(e.shiftKey?ki.shift:0)+(e.metaKey?ki.cmd:0);return t}function yi(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 _i(e.slice(0,-1));const t=_i(e);return(r.isMac||r.isiOS)&&t==ki.ctrl?ki.cmd:t}(e):e)).reduce(((e,t)=>t+e),0)}function Ai(e){let t=yi(e);return Object.entries(r.isMac||r.isiOS?gi:fi).reduce(((e,[o,n])=>(0!=(t&ki[o])&&(t&=~ki[o],e+=n),e)),"")+(t?wi[t]:"")}function Ci(e,t){const o="ltr"===t;switch(e){case ki.arrowleft:return o?"left":"right";case ki.arrowright:return o?"right":"left";case ki.arrowup:return"up";case ki.arrowdown:return"down"}}function vi(){const e={pageup:33,pagedown:34,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 xi(e){return Array.isArray(e)?e:[e]}const Ei=function(e,t,o){(void 0!==o&&!Pe(e[t],o)||void 0===o&&!(t in e))&&It(e,t,o)};const Di=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 Bi=function(e){return _e(e)&&ho(e)};const Si=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]};const Ti=function(e){return Mt(e,ko(e))};const Ii=function(e,t,o,n,i,r,s){var a=Si(e,o),l=Si(t,o),c=s.get(l);if(c)Ei(e,o,c);else{var d=r?r(a,l,o+"",e,t,s):void 0,u=void 0===d;if(u){var h=we(l),m=!h&&Wt(l),p=!h&&!m&&no(l);d=l,h||m||p?we(a)?d=a:Bi(a)?d=xo(a):m?(u=!1,d=vo(l,!0)):p?(u=!1,d=un(l,!0)):d=[]:Te(l)||Lt(l)?(d=a,Lt(a)?d=Ti(a):U(a)&&!We(a)||(d=gn(l))):u=!1}u&&(s.set(l,d),i(d,l,n,r,s),s.delete(l)),Ei(e,o,d)}};const Pi=function e(t,o,n,i,r){t!==o&&Di(o,(function(s,a){if(r||(r=new Bt),U(s))Ii(t,o,a,n,e,i,r);else{var l=i?i(Si(t,a),s,a+"",t,o,r):void 0;void 0===l&&(l=s),Ei(t,a,l)}}),ko)};const Fi=function(e){return e};const Mi=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 Ri=Math.max;const zi=function(e,t,o){return t=Ri(void 0===t?e.length-1:t,0),function(){for(var n=arguments,i=-1,r=Ri(n.length-t,0),s=Array(r);++i0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}};const Hi=Li(Oi);const ji=function(e,t){return Hi(zi(e,t,Fi),e+"")};const qi=function(e,t,o){if(!U(o))return!1;var n=typeof t;return!!("number"==n?ho(o)&&Gt(t,o.length):"string"==n&&t in o)&&Pe(o[t],e)};const Ui=function(e){return ji((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&&qi(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(n))]}t.window.CKEDITOR_TRANSLATIONS||(t.window.CKEDITOR_TRANSLATIONS={});const Ki=["ar","ara","dv","div","fa","per","fas","he","heb","ku","kur","ug","uig"];function Zi(e){return Ki.includes(e)?"rtl":"ltr"}class Ji{constructor({uiLanguage:e="en",contentLanguage:t,translations:o}={}){this.uiLanguage=e,this.contentLanguage=t||this.uiLanguage,this.uiLanguageDirection=Zi(this.uiLanguage),this.contentLanguageDirection=Zi(this.contentLanguage),this.translations=function(e){return Array.isArray(e)?e.reduce(((e,t)=>$i(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=xi(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 E("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 E("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 E("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 E("collection-add-invalid-id",this);if(this.get(o))throw new E("collection-add-item-already-exists",this)}else e[t]=o=A();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 E("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 Qi(e){const t=e.next();return t.done?null:t.value}class Xi extends(Rn(Y())){constructor(){super(),this._elements=new Set,this._nextEventLoopTimeout=null,this.set("isFocused",!1),this.set("focusedElement",null)}add(e){if(this._elements.has(e))throw new E("focustracker-add-element-already-exist",this);this.listenTo(e,"focus",(()=>this._focus(e)),{useCapture:!0}),this.listenTo(e,"blur",(()=>this._blur()),{useCapture:!0}),this._elements.add(e)}remove(e){e===this.focusedElement&&this._blur(),this._elements.has(e)&&(this.stopListening(e),this._elements.delete(e))}destroy(){this.stopListening()}_focus(e){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=e,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0)}}class er{constructor(){this._listener=new(Rn())}listenTo(e){this._listener.listenTo(e,"keydown",((e,t)=>{this._listener.fire("_keydown:"+_i(t),t)}))}set(e,t,o={}){const n=yi(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:"+_i(e),e)}stopListening(e){this._listener.stopListening(e)}destroy(){this.stopListening()}}function tr(e){return re(e)?new Map(e):function(e){const t=new Map;for(const o in e)t.set(o,e[o]);return t}(e)}function or(e,t){let o;function n(...i){n.cancel(),o=setTimeout((()=>e(...i)),t)}return n.cancel=()=>{clearTimeout(o)},n}function nr(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 ir(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 rr=ar();function sr(e,t){const o=String(e).matchAll(rr);return Array.from(o).some((e=>e.indexe.source)).join("|")+")";return new RegExp(`${e}|${t}(?:‍${t})*`,"ug")}class lr extends(Y()){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",cr,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",cr),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}}function cr(e){e.return=!1,e.stop()}class dr extends(Y()){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",ur,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(e){this._disableStack.delete(e),0==this._disableStack.size&&(this.off("set:isEnabled",ur),this.refresh())}execute(...e){}destroy(){this.stopListening()}}function ur(e){e.return=!1,e.stop()}class hr extends(z()){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 E("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 E("plugincollection-replace-plugin-invalid-type",null,{pluginItem:o});const t=o.pluginName;if(!t)throw new E("plugincollection-replace-plugin-missing-name",null,{pluginItem:o});if(o.requires&&o.requires.length)throw new E("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:t});const i=n._availablePlugins.get(t);if(!i)throw new E("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 E("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:t})}if(i.requires&&i.requires.length)throw new E("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 E("plugincollection-soft-required",i,{missingPlugin:e,requiredBy:d(t)});throw new E("plugincollection-plugin-not-found",i,{plugin:e})}(e,o),function(e,t){if(!l(t))return;if(l(e))return;throw new E("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 E("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 E("plugincollection-plugin-name-conflict",null,{pluginName:o,plugin1:this._plugins.get(o).constructor,plugin2:e});this._plugins.set(o,t)}}}class mr{constructor(e){this._contextOwner=null;const{translations:t,...o}=e||{};this.config=new Sn(o,this.constructor.defaultConfig);const n=this.constructor.builtinPlugins;this.config.define("plugins",n),this.plugins=new hr(this,n);const i=this.config.get("language")||{};this.locale=new Ji({uiLanguage:"string"==typeof i?i:i.ui,contentLanguage:this.config.get("language.content"),translations:t}),this.t=this.locale.t,this.editors=new Yi}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 E("context-initplugins-constructor-only",null,{Plugin:o});if(!0!==o.isContextPlugin)throw new E("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 E("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 pr extends(Y()){constructor(e){super(),this.context=e}destroy(){this.stopListening()}static get isContextPlugin(){return!0}}var gr=i(5072),fr=i.n(gr),br=i(4284),kr=i.n(br),wr=i(7659),_r=i.n(wr),yr=i(4868),Ar=i.n(yr),Cr=i(540),vr=i.n(Cr),xr=i(1111),Er={attributes:{"data-cke":!0}};Er.setAttributes=Ar(),Er.insert=_r().bind(null,"head"),Er.domAPI=kr(),Er.insertStyleElement=vr();fr()(xr.A,Er);xr.A&&xr.A.locals&&xr.A.locals;const Dr=new WeakMap;let Br=!1;function Sr({view:e,element:t,text:o,isDirectHost:n=!0,keepOnFocus:i=!1}){const r=e.document;function s(o){Dr.get(r).set(t,{text:o,isDirectHost:n,keepOnFocus:i,hostElement:n?t:null}),e.change((e=>Fr(r,e)))}Dr.has(r)||(Dr.set(r,new Map),r.registerPostFixer((e=>Fr(r,e))),r.on("change:isComposing",(()=>{e.change((e=>Fr(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(){Br||D("enableplaceholder-deprecated-text-option");Br=!0}()}function Tr(e,t){return!t.hasClass("ck-placeholder")&&(e.addClass("ck-placeholder",t),!0)}function Ir(e,t){return!!t.hasClass("ck-placeholder")&&(e.removeClass("ck-placeholder",t),!0)}function Pr(e,t){if(!e.isAttached())return!1;const o=Array.from(e.getChildren()).some((e=>!e.is("uiElement")));if(o)return!1;const n=e.document,i=n.selection.anchor;return(!n.isComposing||!i||i.parent!==e)&&(!!t||(!n.isFocused||!!i&&i.parent!==e))}function Fr(e,t){const o=Dr.get(e),n=[];let i=!1;for(const[e,r]of o)r.isDirectHost&&(n.push(e),Mr(t,e,r)&&(i=!0));for(const[e,r]of o){if(r.isDirectHost)continue;const o=Rr(e);o&&(n.includes(o)||(r.hostElement=o,Mr(t,e,r)&&(i=!0)))}return i}function Mr(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)&&Pr(r,o.keepOnFocus)?Tr(e,r)&&(s=!0):Ir(e,r)&&(s=!0),s}function Rr(e){if(e.childCount){const t=e.getChild(0);if(t.is("element")&&!t.is("uiElement")&&!t.is("attributeElement"))return t}return null}class zr{is(){throw new Error("is() method is abstract")}}const Vr=function(e){return En(e,4)};class Or extends(z(zr)){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 E("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=ie(t,o);switch(n){case"prefix":return!0;case"extension":return!1;default:return t[n]e.data.length)throw new E("view-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.data.length)throw new E("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}}Lr.prototype.is=function(e){return"$textProxy"===e||"view:$textProxy"===e||"textProxy"===e||"view:textProxy"===e};class Hr{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=jr(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=jr(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}}function jr(e,t){if("function"==typeof t)return t(e);const o={};return t.name&&(o.name=function(e,t){if(e instanceof RegExp)return!!t.match(e);return e===t}(t.name,e.name),!o.name)||t.attributes&&(o.attributes=function(e,t){const o=new Set(t.getAttributeKeys());Te(e)?(void 0!==e.style&&D("matcher-pattern-deprecated-attributes-style-key",e),void 0!==e.class&&D("matcher-pattern-deprecated-attributes-class-key",e)):(o.delete("style"),o.delete("class"));return qr(e,o,(e=>t.getAttribute(e)))}(t.attributes,e),!o.attributes)||t.classes&&(o.classes=function(e,t){return qr(e,t.getClassNames(),(()=>{}))}(t.classes,e),!o.classes)||t.styles&&(o.styles=function(e,t){return qr(e,t.getStyleNames(!0),(e=>t.getStyle(e)))}(t.styles,e),!o.styles)?null:o}function qr(e,t,o){const n=function(e){if(Array.isArray(e))return e.map((e=>Te(e)?(void 0!==e.key&&void 0!==e.value||D("matcher-pattern-missing-key-or-value",e),[e.key,e.value]):[e,!0]));if(Te(e))return Object.entries(e);return[[e,!0]]}(e),i=Array.from(t),r=[];if(n.forEach((([e,t])=>{i.forEach((n=>{(function(e,t){return!0===e||e===t||e instanceof RegExp&&t.match(e)})(e,n)&&function(e,t,o){if(!0===e)return!0;const n=o(t);return e===n||e instanceof RegExp&&!!String(n).match(e)}(t,n,o)&&r.push(n)}))})),n.length&&!(r.lengthi?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(U(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=ws(e);ms(this._styles,t),delete this._styles[e],this._cleanEmptyObjectsOnPath(t)}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]&&!U(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){if(this.isEmpty)return[];if(e)return this._styleProcessor.getStyleNames(this._styles);return this.getStylesEntries().map((([e])=>e))}clear(){this._styles={}}getStylesEntries(){const e=[],t=Object.keys(this._styles);for(const o of t)e.push(...this._styleProcessor.getReducedForm(o,this._styles));return e}_cleanEmptyObjectsOnPath(e){const t=e.split(".");if(!(t.length>1))return;const o=t.splice(0,t.length-1).join("."),n=ps(this._styles,o);if(!n)return;!Object.keys(n).length&&this.remove(o)}}class ks{constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(e,t,o){if(U(t))_s(o,ws(e),t);else if(this._normalizers.has(e)){const n=this._normalizers.get(e),{path:i,value:r}=n(t);_s(o,i,r)}else _s(o,e,t)}getNormalized(e,t){if(!e)return $i({},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 ps(t,o);const n=o(e,t);if(n)return n}return ps(t,ws(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=Array.from(this._consumables.keys()).filter((t=>{const o=this.getNormalized(t,e);return o&&"object"==typeof o?Object.keys(o).length:o})),o=new Set([...t,...Object.keys(e)]);return Array.from(o)}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 ws(e){return e.replace("-",".")}function _s(e,t,o){let n=o;U(o)&&(n=$i({},ps(e,t),o)),fs(e,t,n)}class ys extends Or{constructor(e,t,o,n){if(super(e),this._unsafeAttributesToRender=[],this._customProperties=new Map,this.name=t,this._attrs=function(e){const t=tr(e);for(const[e,o]of t)null===o?t.delete(e):"string"!=typeof o&&t.set(e,String(o));return t}(o),this._children=[],n&&this._insertChild(0,n),this._classes=new Set,this._attrs.has("class")){const e=this._attrs.get("class");As(this._classes,e),this._attrs.delete("class")}this._styles=new bs(this.document.stylesProcessor),this._attrs.has("style")&&(this._styles.setTo(this._attrs.get("style")),this._attrs.delete("style"))}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.size>0&&(yield"class"),this._styles.isEmpty||(yield"style"),yield*this._attrs.keys()}*getAttributes(){yield*this._attrs.entries(),this._classes.size>0&&(yield["class",this.getAttribute("class")]),this._styles.isEmpty||(yield["style",this.getAttribute("style")])}getAttribute(e){if("class"==e)return this._classes.size>0?[...this._classes].join(" "):void 0;if("style"==e){const e=this._styles.toString();return""==e?void 0:e}return this._attrs.get(e)}hasAttribute(e){return"class"==e?this._classes.size>0:"style"==e?!this._styles.isEmpty:this._attrs.has(e)}isSimilar(e){if(!(e instanceof ys))return!1;if(this===e)return!0;if(this.name!=e.name)return!1;if(this._attrs.size!==e._attrs.size||this._classes.size!==e._classes.size||this._styles.size!==e._styles.size)return!1;for(const[t,o]of this._attrs)if(!e._attrs.has(t)||e._attrs.get(t)!==o)return!1;for(const t of this._classes)if(!e._classes.has(t))return!1;for(const t of this._styles.getStyleNames())if(!e._styles.has(t)||e._styles.getAsString(t)!==this._styles.getAsString(t))return!1;return!0}hasClass(...e){for(const t of e)if(!this._classes.has(t))return!1;return!0}getClassNames(){return this._classes.keys()}getStyle(e){return this._styles.getAsString(e)}getNormalizedStyle(e){return this._styles.getNormalized(e)}getStyleNames(e){return this._styles.getStyleNames(e)}hasStyle(...e){for(const t of e)if(!this._styles.has(t))return!1;return!0}findAncestor(...e){const t=new Hr(...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=Array.from(this._classes).sort().join(","),t=this._styles.toString(),o=Array.from(this._attrs).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._classes=new Set(this._classes),o._styles.set(this._styles.getNormalized()),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);let o=0;const n=function(e,t){if("string"==typeof t)return[new Nr(e,t)];re(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new Nr(e,t):t instanceof Lr?new Nr(e,t.data):t))}(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);for(let o=e;o0&&(this._classes.clear(),!0):"style"==e?!this._styles.isEmpty&&(this._styles.clear(),!0):this._attrs.delete(e)}_addClass(e){this._fireChange("attributes",this);for(const t of xi(e))this._classes.add(t)}_removeClass(e){this._fireChange("attributes",this);for(const t of xi(e))this._classes.delete(t)}_setStyle(e,t){this._fireChange("attributes",this),"string"!=typeof e?this._styles.set(e):this._styles.set(e,t)}_removeStyle(e){this._fireChange("attributes",this);for(const t of xi(e))this._styles.remove(t)}_setCustomProperty(e,t){this._customProperties.set(e,t)}_removeCustomProperty(e){return this._customProperties.delete(e)}}function As(e,t){const o=t.split(/\s+/);e.clear(),o.forEach((t=>e.add(t)))}ys.prototype.is=function(e,t){return t?t===this.name&&("element"===e||"view:element"===e):"element"===e||"view:element"===e||"node"===e||"view:node"===e};class Cs extends ys{constructor(e,t,o,n){super(e,t,o,n),this.getFillerOffset=vs}}function vs(){const e=[...this.getChildren()],t=e[this.childCount-1];if(t&&t.is("element","br"))return this.childCount;for(const t of e)if(!t.is("uiElement"))return null;return this.childCount}Cs.prototype.is=function(e,t){return t?t===this.name&&("containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e):"containerElement"===e||"view:containerElement"===e||"element"===e||"view:element"===e||"node"===e||"view:node"===e};class xs extends(Y(Cs)){constructor(e,t,o,n){super(e,t,o,n),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("placeholder",void 0),this.bind("isReadOnly").to(e),this.bind("isFocused").to(e,"isFocused",(t=>t&&e.selection.editableElement==this)),this.listenTo(e.selection,"change",(()=>{this.isFocused=e.isFocused&&e.selection.editableElement==this}))}destroy(){this.stopListening()}}xs.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 Es=Symbol("rootName");class Ds extends xs{constructor(e,t){super(e,t),this.rootName="main"}get rootName(){return this.getCustomProperty(Es)}set rootName(e){this._setCustomProperty(Es,e)}set _name(e){this.name=e}}Ds.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 Bs{constructor(e={}){if(!e.boundaries&&!e.startPosition)throw new E("view-tree-walker-no-start-position",null);if(e.direction&&"forward"!=e.direction&&"backward"!=e.direction)throw new E("view-tree-walker-unknown-direction",e.startPosition,{direction:e.direction});this.boundaries=e.boundaries||null,e.startPosition?this._position=Ss._createAt(e.startPosition):this._position=Ss._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)}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 instanceof Nr){if(e.isAtEnd)return this._position=Ss._createAfter(o),this._next();n=o.data[e.offset]}else n=o.getChild(e.offset);if(n instanceof ys){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(e))return{done:!0,value:void 0};e.offset++}else e=new Ss(n,0);return this._position=e,this._formatReturnValue("elementStart",n,t,e,1)}if(n instanceof Nr){if(this.singleCharacters)return e=new Ss(n,0),this._position=e,this._next();let o,i=n.data.length;return n==this._boundaryEndParent?(i=this.boundaries.end.offset,o=new Lr(n,0,i),e=Ss._createAfter(o)):(o=new Lr(n,0,n.data.length),e.offset++),this._position=e,this._formatReturnValue("text",o,t,e,i)}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 Lr(o,e.offset,n);return e.offset+=n,this._position=e,this._formatReturnValue("text",i,t,e,n)}return e=Ss._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 instanceof Nr){if(e.isAtStart)return this._position=Ss._createBefore(o),this._previous();n=o.data[e.offset-1]}else n=o.getChild(e.offset-1);if(n instanceof ys)return this.shallow?(e.offset--,this._position=e,this._formatReturnValue("elementStart",n,t,e,1)):(e=new Ss(n,n.childCount),this._position=e,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",n,t,e));if(n instanceof Nr){if(this.singleCharacters)return e=new Ss(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 Lr(n,t,n.data.length-t),i=o.data.length,e=Ss._createBefore(o)}else o=new Lr(n,0,n.data.length),e.offset--;return this._position=e,this._formatReturnValue("text",o,t,e,i)}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 Lr(o,e.offset,n);return this._position=e,this._formatReturnValue("text",i,t,e,n)}return e=Ss._createBefore(o),this._position=e,this._formatReturnValue("elementStart",o,t,e,1)}_formatReturnValue(e,t,o,n,i){return t instanceof Lr&&(t.offsetInText+t.data.length==t.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?o=Ss._createAfter(t.textNode):(n=Ss._createAfter(t.textNode),this._position=n)),0===t.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?o=Ss._createBefore(t.textNode):(n=Ss._createBefore(t.textNode),this._position=n))),{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:n,length:i}}}}class Ss extends zr{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 xs);){if(!e.parent)return null;e=e.parent}return e}getShiftedBy(e){const t=Ss._createAt(this),o=t.offset+e;return t.offset=o<0?0:o,t}getLastMatchingPosition(e,t={}){t.startPosition=this;const o=new Bs(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=ie(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(Ss._createBefore(e),t)}}function Is(e){return!(!e.item.is("attributeElement")&&!e.item.is("uiElement"))}Ts.prototype.is=function(e){return"range"===e||"view:range"===e};class Ps extends(z(zr)){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=ne(this.getRanges());if(t!=ne(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 Ps||t instanceof Fs)this._setRanges(t.getRanges(),t.isBackward),this._setFakeOptions({fake:t.isFake,label:t.fakeSelectionLabel});else if(t instanceof Ts)this._setRanges([t],n&&n.backward),this._setFakeOptions(n);else if(t instanceof Ss)this._setRanges([new Ts(t)]),this._setFakeOptions(n);else if(t instanceof Or){const e=!!n&&!!n.backward;let i;if(void 0===o)throw new E("view-selection-setto-required-second-parameter",this);i="in"==o?Ts._createIn(t):"on"==o?Ts._createOn(t):new Ts(Ss._createAt(t,o)),this._setRanges([i],e),this._setFakeOptions(n)}else{if(!re(t))throw new E("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 E("view-selection-setfocus-no-ranges",this);const o=Ss._createAt(e,t);if("same"==o.compareWith(this.focus))return;const n=this.anchor;this._ranges.pop(),"before"==o.compareWith(n)?this._addRange(new Ts(o,n),!0):this._addRange(new Ts(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 Ts))throw new E("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 E("view-selection-range-intersects",this,{addedRange:e,intersectingRange:t});this._ranges.push(new Ts(e.start,e.end))}}Ps.prototype.is=function(e){return"selection"===e||"view:selection"===e};class Fs extends(z(zr)){constructor(...e){super(),this._selection=new Ps,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)}}Fs.prototype.is=function(e){return"selection"===e||"documentSelection"==e||"view:selection"==e||"view:documentSelection"==e};class Ms extends w{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 Rs=Symbol("bubbling contexts");function zs(e){return class extends e{fire(e,...t){try{const o=e instanceof w?e:new w(this,e),n=Ls(this);if(!n.size)return;if(Vs(o,"capturing",this),Os(n,"$capture",o,...t))return o.return;const i=o.startRange||this.selection.getFirstRange(),r=i?i.getContainedElement():null,s=!!r&&Boolean(Ns(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(Vs(o,"atTarget",a),!s){if(Os(n,"$text",o,...t))return o.return;Vs(o,"bubbling",a)}for(;a;){if(a.is("rootElement")){if(Os(n,"$root",o,...t))return o.return}else if(a.is("element")&&Os(n,a.name,o,...t))return o.return;if(Os(n,a,o,...t))return o.return;a=a.parent,Vs(o,"bubbling",a)}return Vs(o,"bubbling",this),Os(n,"$document",o,...t),o.return}catch(e){E.rethrowUnexpectedError(e,this)}}_addEventListener(e,t,o){const n=xi(o.context||"$document"),i=Ls(this);for(const r of n){let n=i.get(r);n||(n=new(z()),i.set(r,n)),this.listenTo(n,e,t,o)}}_removeEventListener(e,t){const o=Ls(this);for(const n of o.values())this.stopListening(n,e,t)}}}{const e=zs(Object);["fire","_addEventListener","_removeEventListener"].forEach((t=>{zs[t]=e.prototype[t]}))}function Vs(e,t,o){e instanceof Ms&&(e._eventPhase=t,e._currentTarget=o)}function Os(e,t,o,...n){const i="string"==typeof t?e.get(t):Ns(e,t);return!!i&&(i.fire(o,...n),o.stop.called)}function Ns(e,t){for(const[o,n]of e)if("function"==typeof o&&o(t))return n;return null}function Ls(e){return e[Rs]||(e[Rs]=new Map),e[Rs]}class Hs extends(zs(Y())){constructor(e){super(),this._postFixers=new Set,this.selection=new Fs,this.roots=new Yi({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 js extends ys{constructor(e,t,o,n){super(e,t,o,n),this._priority=10,this._id=null,this._clonesGroup=null,this.getFillerOffset=Us}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new E("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}}js.DEFAULT_PRIORITY=10;const qs=js;function Us(){if(Ws(this))return null;let e=this.parent;for(;e&&e.is("attributeElement");){if(Ws(e)>1)return null;e=e.parent}return!e||Ws(e)>1?null:this.childCount}function Ws(e){return Array.from(e.getChildren()).filter((e=>!e.is("uiElement"))).length}js.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 $s extends ys{constructor(e,t,o,n){super(e,t,o,n),this.getFillerOffset=Gs}_insertChild(e,t){if(t&&(t instanceof Or||Array.from(t).length>0))throw new E("view-emptyelement-cannot-add",[this,t]);return 0}}function Gs(){return null}$s.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 Ks extends ys{constructor(e,t,o,n){super(e,t,o,n),this.getFillerOffset=Js}_insertChild(e,t){if(t&&(t instanceof Or||Array.from(t).length>0))throw new E("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 Zs(e){e.document.on("arrowKey",((t,o)=>function(e,t,o){if(t.keyCode==ki.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 Js(){return null}Ks.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 Ys extends ys{constructor(e,t,o,n){super(e,t,o,n),this.getFillerOffset=Qs}_insertChild(e,t){if(t&&(t instanceof Or||Array.from(t).length>0))throw new E("view-rawelement-cannot-add",[this,t]);return 0}render(e,t){}}function Qs(){return null}Ys.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 Xs extends(z(zr)){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);let o=0;const n=function(e,t){if("string"==typeof t)return[new Nr(e,t)];re(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new Nr(e,t):t instanceof Lr?new Nr(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);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 Ts(n,i):new Ts(e)}remove(e){const t=e instanceof Ts?e:Ts._createOn(e);if(ca(t,this.document),t.isCollapsed)return new Xs(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 Xs(this.document,s)}clear(e,t){ca(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=Ts._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=Ts._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 qs))throw new E("view-writer-wrap-invalid-attribute",this.document);if(ca(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 Ts(n)}return this._wrapRange(e,t);var o}unwrap(e,t){if(!(t instanceof qs))throw new E("view-writer-unwrap-invalid-attribute",this.document);if(ca(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 Ts(s,a)}rename(e,t){const o=new Cs(this.document,e,t.getAttributes());return this.insert(Ss._createAfter(t),o),this.move(Ts._createIn(t),Ss._createAt(o,0)),this.remove(Ts._createOn(t)),o}clearClonedElementsGroup(e){this._cloneGroups.delete(e)}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 Ts(e,t)}createRangeOn(e){return Ts._createOn(e)}createRangeIn(e){return Ts._createIn(e)}createSelection(...e){return new Ps(...e)}createSlot(e="children"){if(!this._slotFactory)throw new E("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?ta(e):e.parent.is("$text")?e.parent.parent:e.parent,!n)throw new E("view-writer-invalid-position-container",this.document);i=o?this._breakAttributes(e,!0):e.parent.is("$text")?ia(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 Ts(a,l)}_wrapChildren(e,t,o,n){let i=t;const r=[];for(;i!1,e.parent._insertChild(e.offset,o);const n=new Ts(e,e.getShiftedBy(1));this.wrap(n,t);const i=new Ss(o.parent,o.index);o._remove();const r=i.nodeBefore,s=i.nodeAfter;return r instanceof Nr&&s instanceof Nr?ra(r,s):na(i)}_wrapAttributeElement(e,t){if(!da(e,t))return!1;if(e.name!==t.name||e.priority!==t.priority)return!1;for(const o of e.getAttributeKeys())if("class"!==o&&"style"!==o&&t.hasAttribute(o)&&t.getAttribute(o)!==e.getAttribute(o))return!1;for(const o of e.getStyleNames())if(t.hasStyle(o)&&t.getStyle(o)!==e.getStyle(o))return!1;for(const o of e.getAttributeKeys())"class"!==o&&"style"!==o&&(t.hasAttribute(o)||this.setAttribute(o,e.getAttribute(o),t));for(const o of e.getStyleNames())t.hasStyle(o)||this.setStyle(o,e.getStyle(o),t);for(const o of e.getClassNames())t.hasClass(o)||this.addClass(o,t);return!0}_unwrapAttributeElement(e,t){if(!da(e,t))return!1;if(e.name!==t.name||e.priority!==t.priority)return!1;for(const o of e.getAttributeKeys())if("class"!==o&&"style"!==o&&(!t.hasAttribute(o)||t.getAttribute(o)!==e.getAttribute(o)))return!1;if(!t.hasClass(...e.getClassNames()))return!1;for(const o of e.getStyleNames())if(!t.hasStyle(o)||t.getStyle(o)!==e.getStyle(o))return!1;for(const o of e.getAttributeKeys())"class"!==o&&"style"!==o&&this.removeAttribute(o,t);return this.removeClass(Array.from(e.getClassNames()),t),this.removeStyle(Array.from(e.getStyleNames()),t),!0}_breakAttributesRange(e,t=!1){const o=e.start,n=e.end;if(ca(e,this.document),e.isCollapsed){const o=this._breakAttributes(e.start,t);return new Ts(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 Ts(s,i)}_breakAttributes(e,t=!1){const o=e.offset,n=e.parent;if(e.parent.is("emptyElement"))throw new E("view-writer-cannot-break-empty-element",this.document);if(e.parent.is("uiElement"))throw new E("view-writer-cannot-break-ui-element",this.document);if(e.parent.is("rawElement"))throw new E("view-writer-cannot-break-raw-element",this.document);if(!t&&n.is("$text")&&la(n.parent))return e.clone();if(la(n))return e.clone();if(n.is("$text"))return this._breakAttributes(ia(e),t);if(o==n.childCount){const e=new Ss(n.parent,n.index+1);return this._breakAttributes(e,t)}if(0===o){const e=new Ss(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 Ss(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 ta(e){let t=e.parent;for(;!la(t);){if(!t)return;t=t.parent}return t}function oa(e,t){return e.priorityt.priority)&&e.getIdentity()o instanceof e)))throw new E("view-writer-insert-invalid-node-type",t);o.is("$text")||aa(o.getChildren(),t)}}function la(e){return e&&(e.is("containerElement")||e.is("documentFragment"))}function ca(e,t){const o=ta(e.start),n=ta(e.end);if(!o||!n||o!==n)throw new E("view-writer-invalid-range-container",t)}function da(e,t){return null===e.id&&null===t.id}const ua=e=>e.createTextNode(" "),ha=e=>{const t=e.createElement("span");return t.dataset.ckeFiller="true",t.innerText=" ",t},ma=e=>{const t=e.createElement("br");return t.dataset.ckeFiller="true",t},pa=7,ga="⁠".repeat(pa);function fa(e){return"string"==typeof e?e.substr(0,pa)===ga:Nn(e)&&e.data.substr(0,pa)===ga}function ba(e){return e.data.length==pa&&fa(e)}function ka(e){const t="string"==typeof e?e:e.data;return fa(e)?t.slice(pa):t}function wa(e,t){if(t.keyCode==ki.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;fa(t)&&o<=pa&&e.collapse(t,0)}}}var _a=i(6531),ya={attributes:{"data-cke":!0}};ya.setAttributes=Ar(),ya.insert=_r().bind(null,"head"),ya.domAPI=kr(),ya.insertStyleElement=vr();fr()(_a.A,ya);_a.A&&_a.A.locals&&_a.A.locals;class Aa extends(Y()){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),r.isBlink&&!r.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 E("view-renderer-unknown-type",this)}this.markedChildren.add(t)}}}render(){if(this.isComposing&&!r.isAndroid)return;let e=null;const t=!(r.isBlink&&!r.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=Ss._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;fa(t.parent)?this._inlineFiller=t.parent:this._inlineFiller=Ca(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,va);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]),ri(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")?Ss._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&&Nn(t.parent)&&fa(t.parent))}_removeInlineFiller(){const e=this._inlineFiller;if(!fa(e))throw new E("view-renderer-filler-was-lost",this);ba(e)?e.remove():e.data=e.data.substr(pa),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 Nr||i instanceof Nr)&&(!!(o!==t.getFillerOffset()||n&&n.is("element","br"))&&(!r.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=ga+n),this._updateTextNode(o,n)}_updateAttrs(e){const t=this.domConverter.mapViewToDom(e);if(!t)return;const o=Array.from(t.attributes).map((e=>e.name)),n=e.getAttributeKeys();for(const o of n)this.domConverter.setDomElementAttribute(t,o,e.getAttribute(o),e);for(const n of o)e.hasAttribute(n)||this.domConverter.removeDomElementAttribute(t,n)}_updateChildren(e,t){const o=this.domConverter.mapViewToDom(e);if(!o)return;if(r.isAndroid){let e=null;for(const t of Array.from(o.childNodes)){if(e&&Nn(e)&&Nn(t)){o.normalize();break}e=t}}const n=t.inlineFillerPosition,i=o.childNodes,s=Array.from(this.domConverter.viewChildrenToDom(e,{bind:!0}));n&&n.parent===e&&Ca(o.ownerDocument,s,n.offset);const a=this._diffNodeLists(i,s),l=this._findUpdateActions(a,i,s,xa);let c=0;const d=new Set;for(const e of l)"delete"===e?(d.add(i[c]),ri(i[c])):"equal"!==e&&"update"!==e||c++;c=0;for(const e of l)"insert"===e?(Xn(o,c,s[c]),c++):"update"===e?(this._updateTextNode(i[c],s[c].data),c++):"equal"===e&&(this._markDescendantTextToSync(this.domConverter.domToView(s[c])),c++);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),b(e,t,Ea.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(b(r,s,n).map((e=>"equal"===e?"update":e))),i.push("equal"),r=[],s=[]),a[l]++;return i.concat(b(r,s,n).map((e=>"equal"===e?"update":e)))}_updateTextNode(e,t){const o=e.data;o!=t&&(r.isAndroid&&this.isComposing&&o.replace(/\u00A0/g," ")==t.replace(/\u00A0/g," ")||this._updateTextNodeInternal(e,t))}_updateTextNodeInternal(e,t){const o=p(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(r.isBlink&&!r.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&&r.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),r.isGecko&&function(e,t){let o=e.parent,n=e.offset;Nn(o)&&ba(o)&&(n=Qn(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 Ca(e,t,o){const n=t instanceof Array?t:t.childNodes,i=n[o];if(Nn(i))return i.data=ga+i.data,i;{const i=e.createTextNode(ga);return Array.isArray(t)?n.splice(o,0,i):Xn(t,o,i),i}}function va(e,t){return Pn(e)&&Pn(t)&&!Nn(e)&&!Nn(t)&&!ei(e)&&!ei(t)&&e.tagName.toLowerCase()===t.tagName.toLowerCase()}function xa(e,t){return Pn(e)&&Pn(t)&&Nn(e)&&Nn(t)}function Ea(e,t,o){return t===o||(Nn(t)&&Nn(o)?t.data===o.data:!(!e.isBlockFiller(t)||!e.isBlockFiller(o)))}const Da=ma(t.document),Ba=ua(t.document),Sa=ha(t.document),Ta="data-ck-unsafe-attribute-",Ia="data-ck-unsafe-element";class Pa{constructor(e,{blockFillerMode:o,renderingMode:n="editing"}={}){this._domToViewMapping=new WeakMap,this._viewToDomMapping=new WeakMap,this._fakeSelectionMapping=new WeakMap,this._rawContentElementMatcher=new Hr,this._inlineObjectElementMatcher=new Hr,this._elementsWithTemporaryCustomProperties=new Set,this.document=e,this.renderingMode=n,this.blockFillerMode=o||("editing"===n?"br":"nbsp"),this.preElements=["pre"],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?t.document:t.document.implementation.createHTMLDocument("")}bindFakeSelection(e,t){this._fakeSelectionMapping.set(e,new Ps(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 Array.from(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)&&(Ra(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)?(Ra(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,o,n,i){const r=this.shouldRenderAttribute(o,n,e.tagName.toLowerCase())||i&&i.shouldRenderUnsafeAttribute(o);r||D("domconverter-unsafe-attribute-detected",{domElement:e,key:o,value:n}),function(e){try{t.document.createAttribute(e)}catch(e){return!1}return!0}(o)?(e.hasAttribute(o)&&!r?e.removeAttribute(o):e.hasAttribute(Ta+o)&&r&&e.removeAttribute(Ta+o),e.setAttribute(r?o:Ta+o,n)):D("domconverter-invalid-attribute-detected",{domElement:e,key:o,value:n})}removeDomElementAttribute(e,t){t!=Ia&&(e.removeAttribute(t),e.removeAttribute(Ta+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")&&!Qi(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&&D("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 fa(o)&&(n+=pa),{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(Nn(i)&&fa(i))return{parent:i,offset:pa};return{parent:o,offset:n?Qn(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),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;i.push([t,o])})),o.focus(),Fa(o,(e=>{const[t,o]=i.shift();e.scrollLeft=t,e.scrollTop=o})),t.window.scrollTo(e,n)}}_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(Da):!("BR"!==e.tagName||!Ma(e,this.blockElements)||1!==e.parentNode.childNodes.length)||(e.isEqualNode(Sa)||function(e,t){const o=e.isEqualNode(Ba);return o&&Ma(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=function(e){const t=[];let o=e;for(;o&&o.nodeType!=Node.DOCUMENT_NODE;)t.unshift(o),o=o.parentNode;return t}(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 ua(this._domDocument);case"markedNbsp":return ha(this._domDocument);case"br":return ma(this._domDocument)}}_isDomSelectionPositionCorrect(e,t){if(Nn(e)&&fa(e)&&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 Bs({startPosition:t?Ss._createAfter(e):Ss._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(ei(e))return new Ks(this.document,"$comment");const o=t.keepOriginalCase?e.tagName:e.tagName.toLowerCase();return new ys(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(Ia,e),t){for(;t.firstChild;)o.appendChild(t.firstChild);for(const e of t.getAttributeNames())o.setAttribute(e,t.getAttribute(e))}return o}}function Fa(e,t){let o=e;for(;o;)t(o),o=o.parentElement}function Ma(e,t){const o=e.parentNode;return!!o&&!!o.tagName&&t.includes(o.tagName.toLowerCase())}function Ra(e){"script"===e&&D("domconverter-unsafe-script-element-detected"),"style"===e&&D("domconverter-unsafe-style-element-detected")}class za extends(Rn()){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 Va=Ui((function(e,t){Mt(t,ko(t),e)}));const Oa=Va;class Na{constructor(e,t,o){this.view=e,this.document=e.document,this.domEvent=t,this.domTarget=t.target,Oa(this,o)}get target(){return this.view.domConverter.mapDomToView(this.domTarget)}preventDefault(){this.domEvent.preventDefault()}stopPropagation(){this.domEvent.stopPropagation()}}class La extends za{constructor(){super(...arguments),this.useCapture=!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})}))}stopObserving(e){this.stopListening(e)}fire(e,t,o){this.isEnabled&&this.document.fire(e,new Na(this.view,t,o))}}class Ha extends La{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 _i(this)}};this.fire(e.type,e,t)}}const ja=function(){return le.Date.now()};var qa=/\s/;const Ua=function(e){for(var t=e.length;t--&&qa.test(e.charAt(t)););return t};var Wa=/^\s+/;const $a=function(e){return e?e.slice(0,Ua(e)+1).replace(Wa,""):e};var Ga=/^[-+]0x[0-9a-f]+$/i,Ka=/^0b[01]+$/i,Za=/^0o[0-7]+$/i,Ja=parseInt;const Ya=function(e){if("number"==typeof e)return e;if(Ur(e))return NaN;if(U(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=U(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=$a(e);var o=Ka.test(e);return o||Za.test(e)?Ja(e.slice(2),o?2:8):Ga.test(e)?NaN:+e};var Qa=Math.max,Xa=Math.min;const el=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 m(t){var o=n,r=i;return n=i=void 0,c=t,s=e.apply(r,o)}function p(e){var o=e-l;return void 0===l||o>=t||o<0||u&&e-c>=r}function g(){var e=ja();if(p(e))return f(e);a=setTimeout(g,function(e){var o=t-(e-l);return u?Xa(o,r-(e-c)):o}(e))}function f(e){return a=void 0,h&&n?m(e):(n=i=void 0,s)}function b(){var e=ja(),o=p(e);if(n=arguments,i=this,l=e,o){if(void 0===a)return function(e){return c=e,a=setTimeout(g,t),d?m(e):s}(l);if(u)return clearTimeout(a),a=setTimeout(g,t),m(l)}return void 0===a&&(a=setTimeout(g,t)),s}return t=Ya(t)||0,U(o)&&(d=!!o.leading,r=(u="maxWait"in o)?Qa(Ya(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(ja())},b};class tl extends za{constructor(e){super(e),this._fireSelectionChangeDoneDebounced=el((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 Ps(t.getRanges(),{backward:t.isBackward,fake:!1});e!=ki.arrowleft&&e!=ki.arrowup||o.setTo(o.getFirstPosition()),e!=ki.arrowright&&e!=ki.arrowdown||o.setTo(o.getLastPosition());const n={oldSelection:t,newSelection:o,domSelection:null};this.document.fire("selectionChange",n),this._fireSelectionChangeDoneDebounced(n)}}const ol=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this};const nl=function(e){return this.__data__.has(e)};function il(e){var t=-1,o=null==e?0:e.length;for(this.__data__=new xt;++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,m=2&o?new rl: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 El extends za{constructor(e){super(e),this.mutationObserver=e.getObserver(Cl),this.focusObserver=e.getObserver(xl),this.selection=this.document.selection,this.domConverter=e.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=el((e=>{this.document.fire("selectionChangeDone",e)}),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=el((()=>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",((e,o)=>{this.document.isComposing&&!r.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 Dl extends La{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 Bl{constructor(e,t={}){this._files=t.cacheFiles?Sl(e):null,this._native=e}get files(){return this._files||(this._files=Sl(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 Sl(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 Tl extends La{constructor(){super(...arguments),this.domEventType="beforeinput"}onDomEvent(e){const t=e.getTargetRanges(),o=this.view,n=o.document;let i=null,s=null,a=[];if(e.dataTransfer&&(i=new Bl(e.dataTransfer)),null!==e.data?s=e.data:i&&(s=i.getData("text/plain")),n.selection.isFake)a=Array.from(n.selection.getRanges());else if(t.length)a=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(r.isAndroid){const t=e.target.ownerDocument.defaultView.getSelection();a=Array.from(o.domConverter.domSelectionToView(t).getRanges())}if(r.isAndroid&&"insertCompositionText"==e.inputType&&s&&s.endsWith("\n"))this.fire(e.type,e,{inputType:"insertParagraph",targetRanges:[o.createRange(a[0].end)]});else if("insertText"==e.inputType&&s&&s.includes("\n")){const t=s.split(/\n{1,2}/g);let o=a;for(let r=0;r{if(this.isEnabled&&((o=t.keyCode)==ki.arrowright||o==ki.arrowleft||o==ki.arrowup||o==ki.arrowdown)){const o=new Ms(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(o,t),o.stop.called&&e.stop()}var o}))}observe(){}stopObserving(){}}class Pl extends za{constructor(e){super(e);const t=this.document;t.on("keydown",((e,o)=>{if(!this.isEnabled||o.keyCode!=ki.tab||o.ctrlKey)return;const n=new Ms(t,"tab",t.selection.getFirstRange());t.fire(n,o),n.stop.called&&e.stop()}))}observe(){}stopObserving(){}}const Fl=function(e){return En(e,5)};class Ml extends(Y()){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 Hs(e),this.domConverter=new Pa(this.document),this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new Aa(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting","isComposing").to(this.document,"isFocused","isSelecting","isComposing"),this._writer=new ea(this.document),this.addObserver(Cl),this.addObserver(xl),this.addObserver(El),this.addObserver(Ha),this.addObserver(tl),this.addObserver(Dl),this.addObserver(Il),this.addObserver(Tl),this.addObserver(Pl),this.document.on("arrowKey",wa,{priority:"low"}),Zs(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})),r.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):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=Fl({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=hi(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=mi(s==r?e:a),ai({parent:l,getRect:()=>pi(e,s),alignToTop:n,ancestorOffset:o,forceScroll:i});const c=pi(e,s);if(si({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 E("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){E.rethrowUnexpectedError(e,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.getObserver(xl).flush(),this.change((()=>{}))}destroy(){for(const e of this._observers.values())e.destroy();this.document.destroy(),this.stopListening()}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 Ts(e,t)}createRangeOn(e){return Ts._createOn(e)}createRangeIn(e){return Ts._createIn(e)}createSelection(...e){return new Ps(...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 Rl{is(){throw new Error("is() method is abstract")}}class zl extends Rl{constructor(e){super(),this.parent=null,this._attrs=tr(e)}get document(){return null}get index(){let e;if(!this.parent)return null;if(null===(e=this.parent.getChildIndex(this)))throw new E("model-node-not-found-in-parent",this);return e}get startOffset(){let e;if(!this.parent)return null;if(null===(e=this.parent.getChildStartOffset(this)))throw new E("model-node-not-found-in-parent",this);return e}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}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=ie(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=tr(e)}_removeAttribute(e){return this._attrs.delete(e)}_clearAttributes(){this._attrs.clear()}}zl.prototype.is=function(e){return"node"===e||"model:node"===e};class Vl{constructor(e){this._nodes=[],e&&this._insertNodes(0,e)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._nodes.reduce(((e,t)=>e+t.offsetSize),0)}getNode(e){return this._nodes[e]||null}getNodeIndex(e){const t=this._nodes.indexOf(e);return-1==t?null:t}getNodeStartOffset(e){const t=this.getNodeIndex(e);return null===t?null:this._nodes.slice(0,t).reduce(((e,t)=>e+t.offsetSize),0)}indexToOffset(e){if(e==this._nodes.length)return this.maxOffset;const t=this._nodes[e];if(!t)throw new E("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(t)}offsetToIndex(e){let t=0;for(const o of this._nodes){if(e>=t&&e1e4)return e.slice(0,o).concat(t).concat(e.slice(o+n,e.length));{const i=Array.from(e);return i.splice(o,n,...t),i}}(this._nodes,Array.from(t),e,0)}_removeNodes(e,t=1){return this._nodes.splice(e,t)}toJSON(){return this._nodes.map((e=>e.toJSON()))}}class Ol extends zl{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 Ol(this.data,this.getAttributes())}static fromJSON(e){return new Ol(e.data,e.attributes)}}Ol.prototype.is=function(e){return"$text"===e||"model:$text"===e||"text"===e||"model:text"===e||"node"===e||"model:node"===e};class Nl extends Rl{constructor(e,t,o){if(super(),this.textNode=e,t<0||t>e.offsetSize)throw new E("model-textproxy-wrong-offsetintext",this);if(o<0||t+o>e.offsetSize)throw new E("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()}}Nl.prototype.is=function(e){return"$textProxy"===e||"model:$textProxy"===e||"textProxy"===e||"model:textProxy"===e};class Ll extends zl{constructor(e,t,o){super(t),this._children=new Vl,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)}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.getChild(t.offsetToIndex(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?Array.from(this._children).map((e=>e._clone(!0))):void 0;return new Ll(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 Ol(e)];re(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Ol(e):e instanceof Nl?new Ol(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}static fromJSON(e){let t;if(e.children){t=[];for(const o of e.children)o.name?t.push(Ll.fromJSON(o)):t.push(Ol.fromJSON(o))}return new Ll(e.name,e.attributes,t)}}Ll.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 Hl{constructor(e){if(!e||!e.boundaries&&!e.startPosition)throw new E("model-tree-walker-no-start-position",null);const t=e.direction||"forward";if("forward"!=t&&"backward"!=t)throw new E("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=ql._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)}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=Ul(t,o),i=n||Wl(t,o,n);if(i instanceof Ll){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,jl("elementStart",i,e,t,1)}if(i instanceof Ol){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 Nl(r,i-n,n);return t.offset-=n,this._position=t,jl("text",s,e,t,n)}return t.path.pop(),this._position=t,this._visitedParent=o.parent,jl("elementStart",o,e,t,1)}}function jl(e,t,o,n,i){return{done:!1,value:{type:e,item:t,previousPosition:o,nextPosition:n,length:i}}}class ql extends Rl{constructor(e,t,o="toNone"){if(super(),!e.is("element")&&!e.is("documentFragment"))throw new E("model-position-root-invalid",e);if(!(t instanceof Array)||0===t.length)throw new E("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 Gl(e,this,o);if(-1===t)return Gl(this,e,o)}return this.path.length===e.path.length||(this.path.length>e.path.length?Kl(this.path,t):Kl(e.path,t))}hasSameParentAs(e){if(this.root!==e.root)return!1;return"same"==ie(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=ql._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)?ql._createAt(e.deletionPosition):this._getTransformedByMove(e.deletionPosition,e.graveyardPosition,1),o}_getTransformedByDeletion(e,t){const o=ql._createAt(this);if(this.root!=e.root)return o;if("same"==ie(e.getParentPath(),this.getParentPath())){if(e.offsetthis.offset)return null;o.offset-=t}}else if("prefix"==ie(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=ql._createAt(this);if(this.root!=e.root)return o;if("same"==ie(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 Kl(e,t){for(;tt+1;){const t=n.maxOffset-o.offset;0!==t&&e.push(new Zl(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 Zl(o,o.getShiftedBy(n))),o.offset=t,o.path.push(0)}return e}getWalker(e={}){return e.boundaries=this,new Hl(e)}*getItems(e={}){e.boundaries=this,e.ignoreElementEnd=!0;const t=new Hl(e);for(const e of t)yield e.item}*getPositions(e={}){e.boundaries=this;const t=new Hl(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 Zl(this.start,this.end)]}getTransformedByOperations(e){const t=[new Zl(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(ql._createAt(e,0),ql._createAt(e,e.maxOffset))}static _createOn(e){return this._createFromPositionAndShift(ql._createBefore(e),e.offsetSize)}static _createFromRanges(e){if(0===e.length)throw new E("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);if(o>0)for(let t=o-1;e[t].end.isEqual(n.start);t++)n.start=ql._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 E("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=ql._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);t.defer?this._deferredBindingRemovals.set(e,e.root):(this._viewToModelMapping.delete(e),this._modelToViewMapping.get(o)==e&&this._modelToViewMapping.delete(o))}unbindModelElement(e){const t=this.toViewElement(e);this._modelToViewMapping.delete(e),this._viewToModelMapping.get(t)==e&&this._viewToModelMapping.delete(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 Zl(this.toModelPosition(e.start),this.toModelPosition(e.end))}toViewRange(e){return new Ts(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;o1?t[0]+":"+t[1]:t[0]}class Xl extends(z()){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(Zl._createFromPositionAndShift(e.position,e.length),n):"reinsert"===e.type?this._convertReinsert(Zl._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(!ec(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 Array.from(e.getWalker({shallow:!0})).map(tc))this._testAndFire("insert",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:Zl._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(tc))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:Zl._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:Zl._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 Yl,writer:e,options:o,convertItem:e=>this._convertInsert(Zl._createOn(e),n),convertChildren:e=>this._convertInsert(Zl._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 ec(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 tc(e){return{item:e.item,range:Zl._createFromPositionAndShift(e.previousPosition,e.length)}}class oc extends(z(Rl)){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 Zl(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 Zl(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 Zl(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 oc)this._setRanges(t.getRanges(),t.isBackward);else if(t&&"function"==typeof t.getRanges)this._setRanges(t.getRanges(),t.isBackward);else if(t instanceof Zl)this._setRanges([t],!!n&&!!n.backward);else if(t instanceof ql)this._setRanges([new Zl(t)]);else if(t instanceof zl){const e=!!n&&!!n.backward;let i;if("in"==o)i=Zl._createIn(t);else if("on"==o)i=Zl._createOn(t);else{if(void 0===o)throw new E("model-selection-setto-required-second-parameter",[this,t]);i=new Zl(ql._createAt(t,o))}this._setRanges([i],e)}else{if(!re(t))throw new E("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 Zl))throw new E("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 E("model-selection-setfocus-no-ranges",[this,e]);const o=ql._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 Zl(o,n)),this._lastRangeBackward=!0):(this._pushRange(new Zl(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=rc(t.start,e);ac(o,t)&&(yield o);for(const o of t.getWalker()){const n=o.item;"elementEnd"==o.type&&ic(n,e,t)&&(yield n)}const n=rc(t.end,e);lc(n,t)&&(yield n)}}containsEntireContent(e=this.anchor.root){const t=ql._createAt(e,0),o=ql._createAt(e,"end");return t.isTouching(this.getFirstPosition())&&o.isTouching(this.getLastPosition())}_pushRange(e){this._checkRange(e),this._ranges.push(new Zl(e.start,e.end))}_checkRange(e){for(let t=0;t0;)this._popRange()}_popRange(){this._ranges.pop()}}function nc(e,t){return!t.has(e)&&(t.add(e),e.root.document.model.schema.isBlock(e)&&!!e.parent)}function ic(e,t,o){return nc(e,t)&&sc(e,o)}function rc(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&&nc(e,t))));return n.forEach((e=>t.add(e))),r}function sc(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(Zl._createOn(o),!0)}function ac(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.start.isTouching(ql._createAt(e,e.maxOffset))&&sc(e,t))}function lc(e,t){return!!e&&(!(!t.isCollapsed&&!e.isEmpty)||!t.end.isTouching(ql._createAt(e,0))&&sc(e,t))}oc.prototype.is=function(e){return"selection"===e||"model:selection"===e};class cc extends(z(Zl)){constructor(e,t){super(e,t),dc.call(this)}detach(){this.stopListening()}toRange(){return new Zl(this.start,this.end)}static fromRange(e){return new cc(e.start,e.end)}}function dc(){this.listenTo(this.root.document.model,"applyOperation",((e,t)=>{const o=t[0];o.isDocumentOperation&&uc.call(this,o)}),{priority:"low"})}function uc(e){const t=this.getTransformedByOperation(e),o=Zl._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})}cc.prototype.is=function(e){return"liveRange"===e||"model:liveRange"===e||"range"==e||"model:range"===e};const hc="selection:";class mc extends(z(Rl)){constructor(e){super(),this._selection=new pc(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 hc+e}static _isStoreAttributeKey(e){return e.startsWith(hc)}}mc.prototype.is=function(e){return"selection"===e||"model:selection"==e||"documentSelection"==e||"model:documentSelection"==e};class pc extends oc{constructor(e){super(),this.markers=new Yi({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(hc)));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=tr(this._getSurroundingAttributes()),o=tr(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(hc)){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=gc(n,t)),o||(o=gc(i,t)),!this.isGravityOverridden&&!o){let e=n;for(;e&&!o;)e=e.previousSibling,o=gc(e,t)}if(!o){let e=i;for(;e&&!o;)e=e.nextSibling,o=gc(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=gc(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 gc(e,t){if(!e)return null;if(e instanceof Nl||e instanceof Ol)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 fc{constructor(e){this._dispatchers=e}add(e){for(const t of this._dispatchers)e(t);return this}}class bc extends fc{elementToElement(e){return this.add(function(e){const t=Cc(e.model),o=vc(e.view,"container");t.attributes.length&&(t.children=!0);return n=>{n.on(`insert:${t.name}`,_c(o,Sc(t)),{priority:e.converterPriority||"normal"}),(t.children||t.attributes.length)&&n.on("reduceChanges",Bc(t),{priority:"low"})}}(e))}elementToStructure(e){return this.add(function(e){const t=Cc(e.model),o=vc(e.view,"container");return t.children=!0,n=>{if(n._conversionApi.schema.checkChild(t.name,"$text"))throw new E("conversion-element-to-structure-disallowed-text",n,{elementName:t.name});var i,r;n.on(`insert:${t.name}`,(i=o,r=Sc(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 E("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 E("conversion-slot-filter-overlap",o.dispatcher,{element:e});if(i.size!=e.childCount)throw new E("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)Tc(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",Bc(t),{priority:"low"})}}(e))}attributeToElement(e){return this.add(function(e){e=Fl(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]=vc(e.view[o],"attribute");else e.view=vc(e.view,"attribute");const n=xc(e);return t=>{t.on(o,wc(n),{priority:e.converterPriority||"normal"})}}(e))}attributeToAttribute(e){return this.add(function(e){e=Fl(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]=Ec(e.view[o]);else e.view=Ec(e.view);const n=xc(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 E("conversion-attribute-to-attribute-on-text",o.dispatcher,t);if(null!==t.attributeOldValue&&n)if("class"==n.key){const e="string"==typeof n.value?n.value.split(/\s+/):n.value;for(const t of e)a.removeClass(t,s)}else if("style"==n.key)if("string"==typeof n.value){const e=new bs(a.document.stylesProcessor);e.setTo(n.value);for(const[t]of e.getStylesEntries())a.removeStyle(t,s)}else{const e=Object.keys(n.value);for(const t of e)a.removeStyle(t,s)}else a.removeAttribute(n.key,s);if(null!==t.attributeNewValue&&r)if("class"==r.key){const e="string"==typeof r.value?r.value.split(/\s+/):r.value;for(const t of e)a.addClass(t,s)}else if("style"==r.key)if("string"==typeof r.value){const e=new bs(a.document.stylesProcessor);e.setTo(r.value);for(const[t,o]of e.getStylesEntries())a.setStyle(t,o,s)}else{const e=Object.keys(r.value);for(const t of e)a.setStyle(t,r.value[t],s)}else a.setAttribute(r.key,r.value,s)}),{priority:e.converterPriority||"normal"})}}(e))}markerToElement(e){return this.add(function(e){const t=vc(e.view,"ui");return o=>{o.on(`addMarker:${e.model}`,yc(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 oc||t.item instanceof mc||t.item.is("$textProxy")))return;const i=Dc(o,t,n);if(!i)return;if(!n.consumable.consume(t.item,e.name))return;const r=n.writer,s=kc(r,i),a=r.document.selection;if(t.item instanceof oc||t.item instanceof mc)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 Ll))return;const i=Dc(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 Zl._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=Dc(e,o,n);if(!i)return;const r=kc(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=Fl(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)&&(Ac(r,!1,o,t,n),Ac(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 kc(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 wc(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 oc||o.item instanceof mc)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 _c(e,t=Pc){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),Tc(r,n.item.getChildren(),i,{reconversion:n.reconversion})}}function yc(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 Ac(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 Cc(e){return"string"==typeof e&&(e={name:e}),{name:e.name,attributes:e.attributes?xi(e.attributes):[],children:!!e.children}}function vc(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||qs.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 xc(e){return e.model.values?(t,o,n)=>{const i=e.view[t];return i?i(t,o,n):null}:e.view}function Ec(e){return"string"==typeof e?t=>({key:e,value:t}):"object"==typeof e?e.value?()=>e:t=>({key:e.key,value:t}):e}function Dc(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 Bc(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=ql._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 Sc(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 Tc(e,t,o,n){for(const i of t)Ic(e.root,i,o,n)||o.convertItem(i)}function Ic(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(ql._createBefore(t))),!0))}function Pc(e,t,{preflight:o}={}){return o?t.test(e,"insert"):t.consume(e,"insert")}function Fc(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 Mc(e,t,o){const n=o.createContext(e);return!!o.checkChild(n,"paragraph")&&!!o.checkChild(n.push("paragraph"),t)}function Rc(e,t){const o=t.createElement("paragraph");return t.insert(o,e),t.createPositionAt(o,0)}class zc extends fc{elementToElement(e){return this.add(Vc(e))}elementToAttribute(e){return this.add(function(e){e=Fl(e),Lc(e);const t=Hc(e,!1),o=Oc(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=Fl(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){n={["class"==t?"classes":"styles"]:o}}else n={attributes:{[t]:o}};e.view.name&&(n.name=e.view.name);return e.view=n,t}(e));Lc(e,t);const o=Hc(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 Vc({...e,model:t})}(e))}dataToMarker(e){return this.add(function(e){e=Fl(e),e.model||(e.model=t=>t?e.view+":"+t:e.view);const t={view:e.view,model:e.model},o=Nc(jc(t,"start")),n=Nc(jc(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=C.low,s=C.highest,a=C.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 Vc(e){const t=Nc(e=Fl(e)),o=Oc(e.view),n=o?`element:${o}`:"element";return o=>{o.on(n,t,{priority:e.converterPriority||"normal"})}}function Oc(e){return"string"==typeof e?e:"object"==typeof e&&"string"==typeof e.name?e.name:null}function Nc(e){const t=new Hr(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 Lc(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 Hc(e,t){const o=new Hr(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&&!Oc(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 jc(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 qc(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=Uc(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 Uc(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?Zl._createOn(e):null}if(!n.isCollapsed)return n;const i=n.start;if(o.isEqual(i))return null;return new Zl(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 Zl(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||!$c(o.nodeAfter,t)),r=c&&(!e||!$c(n.nodeBefore,t));let d=o,u=n;return i&&(d=ql._createBefore(Wc(s,t))),r&&(u=ql._createAfter(Wc(a,t))),new Zl(d,u)}return null}(e,t)}function Wc(e,t){let o=e,n=o;for(;t.isLimit(n)&&n.parent;)o=n,n=n.parent;return o}function $c(e,t){return e&&t.isSelectable(e)}class Gc extends(Y()){constructor(e,t){super(),this.model=e,this.view=new Ml(t),this.mapper=new Jl,this.downcastDispatcher=new Xl({mapper:this.mapper,schema:e.schema});const o=this.model.document,n=o.selection,i=this.model.markers;var s,a,l;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",(s=this.mapper,a=this.model.schema,l=this.view,(e,t)=>{if(!l.document.isComposing||r.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 Ds(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 E("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 Kc{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 Jc(e),this._consumables.set(e,o)),o.add(t))}test(e,t){const o=this._consumables.get(e);return void 0===o?null:e.is("$text")||e.is("documentFragment")?o:o.test(t)}consume(e,t){return!!this.test(e,t)&&(e.is("$text")||e.is("documentFragment")?this._consumables.set(e,!1):this._consumables.get(e).consume(t),!0)}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(t))}static consumablesFromElement(e){const t={element:e,name:!0,attributes:[],classes:[],styles:[]},o=e.getAttributeKeys();for(const e of o)"style"!=e&&"class"!=e&&t.attributes.push(e);const n=e.getClassNames();for(const e of n)t.classes.push(e);const i=e.getStyleNames();for(const e of i)t.styles.push(e);return t}static createFrom(e,t){if(t||(t=new Kc),e.is("$text"))return t.add(e),t;e.is("element")&&t.add(e,Kc.consumablesFromElement(e)),e.is("documentFragment")&&t.add(e);for(const o of e.getChildren())t=Kc.createFrom(o,t);return t}}const Zc=["attributes","classes","styles"];class Jc{constructor(e){this.element=e,this._canConsumeName=null,this._consumables={attributes:new Map,styles:new Map,classes:new Map}}add(e){e.name&&(this._canConsumeName=!0);for(const t of Zc)t in e&&this._add(t,e[t])}test(e){if(e.name&&!this._canConsumeName)return this._canConsumeName;for(const t of Zc)if(t in e){const o=this._test(t,e[t]);if(!0!==o)return o}return!0}consume(e){e.name&&(this._canConsumeName=!1);for(const t of Zc)t in e&&this._consume(t,e[t])}revert(e){e.name&&(this._canConsumeName=!0);for(const t of Zc)t in e&&this._revert(t,e[t])}_add(e,t){const o=xi(t),n=this._consumables[e];for(const t of o){if("attributes"===e&&("class"===t||"style"===t))throw new E("viewconsumable-invalid-attribute",this);if(n.set(t,!0),"styles"===e)for(const e of this.element.document.stylesProcessor.getRelatedStyles(t))n.set(e,!0)}}_test(e,t){const o=xi(t),n=this._consumables[e];for(const t of o)if("attributes"!==e||"class"!==t&&"style"!==t){const e=n.get(t);if(void 0===e)return null;if(!e)return!1}else{const e="class"==t?"classes":"styles",o=this._test(e,[...this._consumables[e].keys()]);if(!0!==o)return o}return!0}_consume(e,t){const o=xi(t),n=this._consumables[e];for(const t of o)if("attributes"!==e||"class"!==t&&"style"!==t){if(n.set(t,!1),"styles"==e)for(const e of this.element.document.stylesProcessor.getRelatedStyles(t))n.set(e,!1)}else{const e="class"==t?"classes":"styles";this._consume(e,[...this._consumables[e].keys()])}}_revert(e,t){const o=xi(t),n=this._consumables[e];for(const t of o)if("attributes"!==e||"class"!==t&&"style"!==t){!1===n.get(t)&&n.set(t,!0)}else{const e="class"==t?"classes":"styles";this._revert(e,[...this._consumables[e].keys()])}}}class Yc extends(Y()){constructor(){super(),this._sourceDefinitions={},this._attributeProperties={},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 Qc(t[0])}),{priority:"highest"}),this.on("checkChild",((e,t)=>{t[0]=new Qc(t[0]),t[1]=this.getDefinition(t[1])}),{priority:"highest"})}register(e,t){if(this._sourceDefinitions[e])throw new E("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 E("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 ql){const t=e.nodeBefore,o=e.nodeAfter;if(!(t instanceof Ll))throw new E("schema-check-merge-no-element-before",this);if(!(o instanceof Ll))throw new E("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]||{}}getLimitElement(e){let t;if(e instanceof ql)t=e.parent;else{t=(e instanceof Zl?[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 Ol("",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 Zl(e);let o,n;const i=e.getAncestors().reverse().find((e=>this.isLimit(e)))||e.root;"both"!=t&&"backward"!=t||(o=new Hl({boundaries:Zl._createIn(i),startPosition:e,direction:"backward"})),"both"!=t&&"forward"!=t||(n=new Hl({boundaries:Zl._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 Zl._createOn(n.item);if(this.checkChild(n.nextPosition,"$text"))return new Zl(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"))ud(this,o,t);else{const e=Zl._createIn(o).getPositions();for(const o of e){ud(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 Qc(e)}_clearCache(){this._compiledDefinitions=null}_compile(){const e={},t=this._sourceDefinitions,o=Object.keys(t);for(const n of o)e[n]=Xc(t[n],n);const n=Object.values(e);for(const t of n)ed(e,t),td(e,t),od(e,t),nd(e,t);for(const t of n)id(e,t);for(const t of n)rd(e,t);for(const t of n)sd(e,t);for(const t of n)ad(e,t);for(const t of n)ld(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(Zl._createIn(i),t)),this.checkAttribute(i,t)||(o.isEqual(n)||(yield new Zl(o,n)),o=ql._createAfter(i)),n=ql._createAfter(i);o.isEqual(n)||(yield new Zl(o,n))}findOptimalInsertionRange(e,t){const o=e.getSelectedElement();if(o&&this.isObject(o)&&!this.isInline(o))return"before"==t||"after"==t?new Zl(ql._createAt(o,t)):Zl._createOn(o);const n=Qi(e.getSelectedBlocks());if(!n)return new Zl(e.focus);if(n.isEmpty)return new Zl(ql._createAt(n,0));const i=ql._createAfter(n);return e.focus.isTouching(i)?new Zl(i):new Zl(ql._createBefore(n))}}class Qc{constructor(e){if(e instanceof Qc)return e;let t;t="string"==typeof e?[e]:Array.isArray(e)?e:e.getAncestors({includeSelf:!0}),this._items=t.map(dd)}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 Qc([e]);return t._items=[...this._items,...t._items],t}trimLast(){const e=new Qc([]);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 Xc(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),cd(e,o,"allowIn"),cd(e,o,"allowChildren"),cd(e,o,"disallowIn"),cd(e,o,"disallowChildren"),cd(e,o,"allowContentOf"),cd(e,o,"allowWhere"),cd(e,o,"allowAttributes"),cd(e,o,"disallowAttributes"),cd(e,o,"allowAttributesOf"),cd(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 ed(e,t){for(const o of t.allowIn){const n=e[o];n?n.allowChildren.add(t.name):t.allowIn.delete(o)}}function td(e,t){for(const o of t.allowChildren){const n=e[o];n?n.allowIn.add(t.name):t.allowChildren.delete(o)}}function od(e,t){for(const o of t.disallowIn){const n=e[o];n?n.disallowChildren.add(t.name):t.disallowIn.delete(o)}}function nd(e,t){for(const o of t.disallowChildren){const n=e[o];n?n.disallowIn.add(t.name):t.disallowChildren.delete(o)}}function id(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 rd(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 sd(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 ld(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 cd(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 dd(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 ud(e,t,o){for(const n of t.getAttributeKeys())e.checkAttribute(t,n)||o.removeAttribute(n,t)}class hd extends(z()){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 Qc(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=ql._createAt(i,0)}return o}(o,t),this.conversionApi.writer=t,this.conversionApi.consumable=Kc.createFrom(e),this.conversionApi.store={};const{modelRange:n}=this._convertItem(e,this._modelCursor),i=t.createDocumentFragment();if(n){this._removeEmptyElements();for(const e of Array.from(this._modelCursor.parent.getChildren()))t.append(e,i);i.markers=function(e,t){const o=new Set,n=new Map,i=Zl._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 Zl(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 Zl))throw new E("view-conversion-dispatcher-incorrect-result",this);return{modelRange:o.modelRange,modelCursor:o.modelCursor}}_convertChildren(e,t){let o=t.is("position")?t:ql._createAt(t,0);const n=new Zl(o);for(const t of Array.from(e.getChildren())){const e=this._convertItem(t,o);e.modelRange instanceof Zl&&(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 Mc(t,e,o)?{position:Rc(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(){let e=!1;for(const t of this._splitParts.keys())t.isEmpty&&!this._emptyElementsToKeep.has(t)&&(this.conversionApi.writer.remove(t),this._splitParts.delete(t),e=!0);e&&this._removeEmptyElements()}}class md{getHtml(e){const o=t.document.implementation.createHTMLDocument("").createElement("div");return o.appendChild(e),o.innerHTML}}class pd{constructor(e){this.skipComments=!0,this.domParser=new DOMParser,this.domConverter=new Pa(e,{renderingMode:"data"}),this.htmlWriter=new md}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){e.match(/<(?:html|body|head|meta)(?:\s[^>]*)?>/i)||(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 gd extends(z()){constructor(e,t){super(),this.model=e,this.mapper=new Jl,this.downcastDispatcher=new Xl({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 hd({schema:e.schema}),this.viewDocument=new Hs(t),this.stylesProcessor=t,this.htmlProcessor=new pd(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new ea(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(!Mc(r,"$text",o))return;if(0==t.viewItem.data.trim().length)return;r=Rc(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"}),Y().prototype.decorate.call(this,"init"),Y().prototype.decorate.call(this,"set"),Y().prototype.decorate.call(this,"get"),Y().prototype.decorate.call(this,"toView"),Y().prototype.decorate.call(this,"toModel"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},Fc)}),{priority:"lowest"})}get(e={}){const{rootName:t="main",trim:o="empty"}=e;if(!this._checkIfRootsExists([t]))throw new E("datacontroller-get-non-existent-root",this);const n=this.model.document.getRoot(t);return n.isAttached()||D("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=Zl._createIn(e),r=new Xs(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=Zl._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 E("datacontroller-init-document-not-empty",this);let t={};if("string"==typeof e?t.main=e:t=e,!this._checkIfRootsExists(Object.keys(t)))throw new E("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 E("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 fd{constructor(e,t){this._helpers=new Map,this._downcast=xi(e),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=xi(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 E("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:e,dispatchers:[t],isDowncast:o})}for(e){if(!this._helpers.has(e))throw new E("conversion-for-unknown-group",this);return this._helpers.get(e)}elementToElement(e){this.for("downcast").elementToElement(e);for(const{model:t,view:o}of bd(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 bd(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 bd(e))this.for("upcast").attributeToAttribute({view:o,model:t})}_createConversionHelpers({name:e,dispatchers:t,isDowncast:o}){if(this._helpers.has(e))throw new E("conversion-group-exists",this);const n=o?new bc(t):new zc(t);this._helpers.set(e,n)}}function*bd(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*kd(o,n,i)}else yield*kd(e.model,e.view,e.upcastAlso)}function*kd(e,t,o){if(yield{model:e,view:t},o)for(const t of xi(o))yield{model:e,view:t}}class wd{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 _d(e,t){const o=Cd(t),n=o.reduce(((e,t)=>e+t.offsetSize),0),i=e.parent;xd(e);const r=e.index;return i._insertChild(r,o),vd(i,r+o.length),vd(i,r),new Zl(e,e.getShiftedBy(n))}function yd(e){if(!e.isFlat)throw new E("operation-utils-remove-range-not-flat",this);const t=e.start.parent;xd(e.start),xd(e.end);const o=t._removeChildren(e.start.index,e.end.index-e.start.index);return vd(t,e.start.index),o}function Ad(e,t){if(!e.isFlat)throw new E("operation-utils-move-range-not-flat",this);const o=yd(e);return _d(t=t._getTransformedByDeletion(e.start,e.end.offset-e.start.offset),o)}function Cd(e){const t=[];!function e(o){if("string"==typeof o)t.push(new Ol(o));else if(o instanceof Nl)t.push(new Ol(o.data,o.getAttributes()));else if(o instanceof zl)t.push(o);else if(re(o))for(const t of o)e(t);else{}}(e);for(let e=1;ee.maxOffset)throw new E("move-operation-nodes-do-not-exist",this);if(e===t&&o=o&&this.targetPosition.path[e]e._clone(!0)))),t=new Bd(this.position,e,this.baseVersion);return t.shouldReceiveAttributes=this.shouldReceiveAttributes,t}getReversed(){const e=this.position.root.document.graveyard,t=new ql(e,[0]);return new Dd(this.position,this.nodes.maxOffset,t,this.baseVersion+1)}_validate(){const e=this.position.parent;if(!e||e.maxOffsete._clone(!0)))),_d(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(Ll.fromJSON(t)):o.push(Ol.fromJSON(t));const n=new Bd(ql.fromJSON(e.position,t),o,e.baseVersion);return n.shouldReceiveAttributes=e.shouldReceiveAttributes,n}}class Sd extends wd{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 ql(this.insertionPosition.root,e)}get movedRange(){const e=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new Zl(this.splitPosition,e)}get affectedSelectable(){const e=[Zl._createFromPositionAndShift(this.splitPosition,0),Zl._createFromPositionAndShift(this.insertionPosition,0)];return this.graveyardPosition&&e.push(Zl._createFromPositionAndShift(this.graveyardPosition,0)),e}clone(){return new Sd(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const e=this.splitPosition.root.document.graveyard,t=new ql(e,[0]);return new Td(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 Id){const o=e.newRange;if(!o)return;if(t instanceof Dd){const n=Zl._createFromPositionAndShift(t.sourcePosition,t.howMany),i=n.containsPosition(o.start)||n.start.isEqual(o.start),r=n.containsPosition(o.end)||n.end.isEqual(o.end);!i&&!r||n.containsRange(o)||this._setRelation(e,t,{side:i?"left":"right",path:i?o.start.path.slice():o.end.path.slice()})}else if(t instanceof Td){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 $d(e,t){for(const o of e)o.baseVersion=t++}function Gd(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 Fd(t,e.key,e.oldValue,e.newValue,0))),i=e.range.getIntersection(t.range);return i&&o.aIsStrong&&n.push(new Fd(i,t.key,t.newValue,e.newValue,0)),0==n.length?[new Md(0)]:n}return[e]})),Hd(Fd,Bd,((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 Fd(t,e.key,e.oldValue,e.newValue,e.baseVersion)));if(t.shouldReceiveAttributes){const n=Kd(t,e.key,e.oldValue);n&&o.unshift(n)}return o}return e.range=e.range._getTransformedByInsertion(t.position,t.howMany,!1)[0],[e]})),Hd(Fd,Td,((e,t)=>{const o=[];e.range.start.hasSameParentAs(t.deletionPosition)&&(e.range.containsPosition(t.deletionPosition)||e.range.start.isEqual(t.deletionPosition))&&o.push(Zl._createFromPositionAndShift(t.graveyardPosition,1));const n=e.range._getTransformedByMergeOperation(t);return n.isCollapsed||o.push(n),o.map((t=>new Fd(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),Hd(Fd,Dd,((e,t)=>{const o=function(e,t){const o=Zl._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 Fd(t,e.key,e.oldValue,e.newValue,e.baseVersion)))})),Hd(Fd,Sd,((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 Zl(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]})),Hd(Bd,Fd,((e,t)=>{const o=[e];if(e.shouldReceiveAttributes&&e.position.hasSameParentAs(t.range.start)&&t.range.containsPosition(e.position)){const n=Kd(e,t.key,t.newValue);n&&o.push(n)}return o})),Hd(Bd,Bd,((e,t,o)=>(e.position.isEqual(t.position)&&o.aIsStrong||(e.position=e.position._getTransformedByInsertOperation(t)),[e]))),Hd(Bd,Dd,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),Hd(Bd,Sd,((e,t)=>(e.position=e.position._getTransformedBySplitOperation(t),[e]))),Hd(Bd,Td,((e,t)=>(e.position=e.position._getTransformedByMergeOperation(t),[e]))),Hd(Id,Bd,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByInsertOperation(t)[0]),e.newRange&&(e.newRange=e.newRange._getTransformedByInsertOperation(t)[0]),[e]))),Hd(Id,Id,((e,t,o)=>{if(e.name==t.name){if(!o.aIsStrong)return[new Md(0)];e.oldRange=t.newRange?t.newRange.clone():null}return[e]})),Hd(Id,Td,((e,t)=>(e.oldRange&&(e.oldRange=e.oldRange._getTransformedByMergeOperation(t)),e.newRange&&(e.newRange=e.newRange._getTransformedByMergeOperation(t)),[e]))),Hd(Id,Dd,((e,t,o)=>{if(e.oldRange&&(e.oldRange=Zl._createFromRanges(e.oldRange._getTransformedByMoveOperation(t))),e.newRange){if(o.abRelation){const n=Zl._createFromRanges(e.newRange._getTransformedByMoveOperation(t));if("left"==o.abRelation.side&&t.targetPosition.isEqual(e.newRange.start))return e.newRange.end=n.end,e.newRange.start.path=o.abRelation.path,[e];if("right"==o.abRelation.side&&t.targetPosition.isEqual(e.newRange.end))return e.newRange.start=n.start,e.newRange.end.path=o.abRelation.path,[e]}e.newRange=Zl._createFromRanges(e.newRange._getTransformedByMoveOperation(t))}return[e]})),Hd(Id,Sd,((e,t,o)=>{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=ql._createAt(t.insertionPosition):e.newRange.start.isEqual(t.splitPosition)&&!o.abRelation.wasInLeftElement&&(e.newRange.start=ql._createAt(t.moveTargetPosition)),e.newRange.end.isEqual(t.splitPosition)&&o.abRelation.wasInRightElement?e.newRange.end=ql._createAt(t.moveTargetPosition):e.newRange.end.isEqual(t.splitPosition)&&o.abRelation.wasEndBeforeMergedElement?e.newRange.end=ql._createAt(t.insertionPosition):e.newRange.end=n.end,[e]}e.newRange=e.newRange._getTransformedBySplitOperation(t)}return[e]})),Hd(Td,Bd,((e,t)=>(e.sourcePosition.hasSameParentAs(t.position)&&(e.howMany+=t.howMany),e.sourcePosition=e.sourcePosition._getTransformedByInsertOperation(t),e.targetPosition=e.targetPosition._getTransformedByInsertOperation(t),[e]))),Hd(Td,Td,((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 ql(t.graveyardPosition.root,o),e.howMany=0,[e]}return[new Md(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 Dd(o,e.howMany,n,0)]}return[new Md(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]})),Hd(Td,Dd,((e,t,o)=>{const n=Zl._createFromPositionAndShift(t.sourcePosition,t.howMany);return"remove"==t.type&&!o.bWasUndone&&!o.forceWeakRemove&&e.deletionPosition.hasSameParentAs(t.sourcePosition)&&n.containsPosition(e.sourcePosition)?[new Md(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])})),Hd(Td,Sd,((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)){const n=0!=t.howMany,i=t.graveyardPosition&&e.deletionPosition.isEqual(t.graveyardPosition);if(n||i||"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]})),Hd(Dd,Bd,((e,t)=>{const o=Zl._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]})),Hd(Dd,Dd,((e,t,o)=>{const n=Zl._createFromPositionAndShift(e.sourcePosition,e.howMany),i=Zl._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),Zd(e,t)&&Zd(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),Jd([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()),Jd([n],r);const l=ie(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),Jd([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"==ie(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 Md(e.baseVersion)]:Jd(c,r)})),Hd(Dd,Sd,((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=Zl._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 Zl(t.splitPosition,i.end);e=e._getTransformedBySplitOperation(t);return Jd([new Zl(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(Zl._createFromPositionAndShift(t.insertionPosition,1))}return Jd(r,n)})),Hd(Dd,Td,((e,t,o)=>{const n=Zl._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 Md(0)]}else if(!o.aWasUndone){const o=[];let n=t.graveyardPosition.clone(),i=t.targetPosition._getTransformedByMergeOperation(t);e.howMany>1&&(o.push(new Dd(e.sourcePosition,e.howMany-1,e.targetPosition,0)),n=n._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany-1),i=i._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany-1));const r=t.deletionPosition._getCombined(e.sourcePosition,e.targetPosition),s=new Dd(n,1,r,0),a=s.getMovedRangeStart().path.slice();a.push(0);const l=new ql(s.targetPosition.root,a);i=i._getTransformedByMove(n,r,1);const c=new Dd(i,t.howMany,l,0);return o.push(s),o.push(c),o}const i=Zl._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]})),Hd(Rd,Bd,((e,t)=>(e.position=e.position._getTransformedByInsertOperation(t),[e]))),Hd(Rd,Td,((e,t)=>e.position.isEqual(t.deletionPosition)?(e.position=t.graveyardPosition.clone(),e.position.stickiness="toNext",[e]):(e.position=e.position._getTransformedByMergeOperation(t),[e]))),Hd(Rd,Dd,((e,t)=>(e.position=e.position._getTransformedByMoveOperation(t),[e]))),Hd(Rd,Rd,((e,t,o)=>{if(e.position.isEqual(t.position)){if(!o.aIsStrong)return[new Md(0)];e.oldName=t.newName}return[e]})),Hd(Rd,Sd,((e,t)=>{if("same"==ie(e.position.path,t.splitPosition.getParentPath())&&!t.graveyardPosition){const t=new Rd(e.position.getShiftedBy(1),e.oldName,e.newName,0);return[e,t]}return e.position=e.position._getTransformedBySplitOperation(t),[e]})),Hd(zd,zd,((e,t,o)=>{if(e.root===t.root&&e.key===t.key){if(!o.aIsStrong||e.newValue===t.newValue)return[new Md(0)];e.oldValue=t.newValue}return[e]})),Hd(Vd,Vd,((e,t)=>e.rootName===t.rootName&&e.isAdd===t.isAdd?[new Md(0)]:[e])),Hd(Sd,Bd,((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 ql(t.graveyardPosition.root,o),i=Sd.getInsertionPosition(new ql(t.graveyardPosition.root,o)),r=new Sd(n,0,i,null,0);return e.splitPosition=e.splitPosition._getTransformedByMergeOperation(t),e.insertionPosition=Sd.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=Sd.getInsertionPosition(e.splitPosition),e.graveyardPosition&&(e.graveyardPosition=e.graveyardPosition._getTransformedByMergeOperation(t)),[e]})),Hd(Sd,Dd,((e,t,o)=>{const n=Zl._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 ql(n.root,i);return[new Dd(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=Sd.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 Md(0)];if(e.graveyardPosition&&t.graveyardPosition&&e.graveyardPosition.isEqual(t.graveyardPosition))return[new Md(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 Dd(t.moveTargetPosition,t.howMany,t.splitPosition,0)),e.howMany&&o.push(new Dd(e.splitPosition,e.howMany,e.moveTargetPosition,0)),o}return[new Md(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 ql(t.insertionPosition.root,o);return[e,new Dd(e.insertionPosition,1,n,0)]}return e.splitPosition.hasSameParentAs(t.splitPosition)&&e.splitPosition.offset{const o=t[0];o.isDocumentOperation&&Xd.call(this,o)}),{priority:"low"})}function Xd(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)}}Yd.prototype.is=function(e){return"livePosition"===e||"model:livePosition"===e||"position"==e||"model:position"===e};class eu{constructor(e={}){"string"==typeof e&&(e="transparent"===e?{isUndoable:!1}:{},D("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 D("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.batch=this,this.operations.push(e),e}}class tu{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=Zl._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=Zl._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=Zl._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=Zl._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(su),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=Zl._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=iu(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:ql._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:ql._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;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 E("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 lu extends Ll{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}}lu.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 cu="$graveyard";class du extends(z()){constructor(e){super(),this.model=e,this.history=new au,this.selection=new mc(this),this.roots=new Yi({idProperty:"rootName"}),this.differ=new ou(e.markers),this.isReadOnly=!1,this._postFixers=new Set,this._hasSelectionChangedFromTheLastChangeBlock=!1,this.createRoot("$root",cu),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(cu)}createRoot(e="$root",t="main"){if(this.roots.get(t))throw new E("model-document-createroot-name-exists",this,{name:t});const o=new lu(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=Vr(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 uu(e.start)&&uu(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 uu(e){const t=e.textNode;if(t){const o=t.data,n=e.offset-t.startOffset;return!nr(o,n)&&!ir(o,n)}return!0}class hu extends(z()){constructor(){super(...arguments),this._markers=new Map}[Symbol.iterator](){return this._markers.values()}has(e){const t=e instanceof mu?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 mu?e.name:e;if(i.includes(","))throw new E("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(cc.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=cc.fromRange(t),a=new mu(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 mu?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 mu?e.name:e,o=this._markers.get(t);if(!o)throw new E("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 mu extends(z(Rl)){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 E("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new E("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new E("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new E("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new E("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}}mu.prototype.is=function(e){return"marker"===e||"model:marker"===e};class pu extends wd{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 E("detach-operation-on-document-node",this)}_execute(){yd(Zl._createFromPositionAndShift(this.sourcePosition,this.howMany))}static get className(){return"DetachOperation"}}class gu extends Rl{constructor(e){super(),this.markers=new Map,this._children=new Vl,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)}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.getChild(t.offsetToIndex(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(Ll.fromJSON(o)):t.push(Ol.fromJSON(o));return new gu(t)}_appendChild(e){this._insertChild(this.childCount,e)}_insertChild(e,t){const o=function(e){if("string"==typeof e)return[new Ol(e)];re(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new Ol(e):e instanceof Nl?new Ol(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}}gu.prototype.is=function(e){return"documentFragment"===e||"model:documentFragment"===e};class fu{constructor(e,t){this.model=e,this.batch=t}createText(e,t){return new Ol(e,t)}createElement(e,t){return new Ll(e,t)}createDocumentFragment(){return new gu}cloneElement(e,t=!0){return e._clone(t)}insert(e,t,o=0){if(this._assertWriterUsedCorrectly(),e instanceof Ol&&""==e.data)return;const n=ql._createAt(t,o);if(e.parent){if(yu(e.root,n.root))return void this.move(Zl._createOn(e),n);if(e.root.document)throw new E("model-writer-insert-forbidden-move",this);this.remove(e)}const i=n.root.document?n.root.document.version:null,r=new Bd(n,e,i);if(e instanceof Ol&&(r.shouldReceiveAttributes=!0),this.batch.addOperation(r),this.model.applyOperation(r),e instanceof gu)for(const[t,o]of e.markers){const e=ql._createAt(o.root,0),i={range:new Zl(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 gu||t instanceof Ll||t instanceof ql?this.insert(this.createText(e),t,o):this.insert(this.createText(e,t),o,n)}insertElement(e,t,o,n){t instanceof gu||t instanceof Ll||t instanceof ql?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 gu||t instanceof Ll?this.insert(this.createText(e),t,"end"):this.insert(this.createText(e,t),o,"end")}appendElement(e,t,o){t instanceof gu||t instanceof Ll?this.insert(this.createElement(e),t,"end"):this.insert(this.createElement(e,t),o,"end")}setAttribute(e,t,o){if(this._assertWriterUsedCorrectly(),o instanceof Zl){const n=o.getMinimalFlatRanges();for(const o of n)bu(this,e,t,o)}else ku(this,e,t,o)}setAttributes(e,t){for(const[o,n]of tr(e))this.setAttribute(o,n,t)}removeAttribute(e,t){if(this._assertWriterUsedCorrectly(),t instanceof Zl){const o=t.getMinimalFlatRanges();for(const t of o)bu(this,e,null,t)}else ku(this,e,null,t)}clearAttributes(e){this._assertWriterUsedCorrectly();const t=e=>{for(const t of e.getAttributeKeys())this.removeAttribute(t,e)};if(e instanceof Zl)for(const o of e.getItems())t(o);else t(e)}move(e,t,o){if(this._assertWriterUsedCorrectly(),!(e instanceof Zl))throw new E("writer-move-invalid-range",this);if(!e.isFlat)throw new E("writer-move-range-not-flat",this);const n=ql._createAt(t,o);if(n.isEqual(e.start))return;if(this._addOperationForAffectedMarkers("move",e),!yu(e.root,n.root))throw new E("writer-move-different-document",this);const i=e.root.document?e.root.document.version:null,r=new Dd(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 Zl?e:Zl._createOn(e)).getMinimalFlatRanges().reverse();for(const e of t)this._addOperationForAffectedMarkers("move",e),_u(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 Ll))throw new E("writer-merge-no-element-before",this);if(!(o instanceof Ll))throw new E("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(Zl._createIn(o),ql._createAt(t,"end")),this.remove(o)}_merge(e){const t=ql._createAt(e.nodeBefore,"end"),o=ql._createAt(e.nodeAfter,0),n=e.root.document.graveyard,i=new ql(n,[0]),r=e.root.document.version,s=new Td(o,e.nodeAfter.maxOffset,t,i,r);this.batch.addOperation(s),this.model.applyOperation(s)}rename(e,t){if(this._assertWriterUsedCorrectly(),!(e instanceof Ll))throw new E("writer-rename-not-element-instance",this);const o=e.root.document?e.root.document.version:null,n=new Rd(ql._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 E("writer-split-element-no-parent",this);if(t||(t=i.parent),!e.parent.getAncestors({includeSelf:!0}).includes(t))throw new E("writer-split-invalid-limit-element",this);do{const t=i.root.document?i.root.document.version:null,r=i.maxOffset-e.offset,s=Sd.getInsertionPosition(e),a=new Sd(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 Zl(ql._createAt(o,"end"),ql._createAt(n,0))}}wrap(e,t){if(this._assertWriterUsedCorrectly(),!e.isFlat)throw new E("writer-wrap-range-not-flat",this);const o=t instanceof Ll?t:new Ll(t);if(o.childCount>0)throw new E("writer-wrap-element-not-empty",this);if(null!==o.parent)throw new E("writer-wrap-element-attached",this);this.insert(o,e.start);const n=new Zl(e.start.getShiftedBy(1),e.end.getShiftedBy(1));this.move(n,ql._createAt(o,0))}unwrap(e){if(this._assertWriterUsedCorrectly(),null===e.parent)throw new E("writer-unwrap-element-no-parent",this);this.move(Zl._createIn(e),this.createPositionAfter(e)),this.remove(e)}addMarker(e,t){if(this._assertWriterUsedCorrectly(),!t||"boolean"!=typeof t.usingOperation)throw new E("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 E("writer-addmarker-marker-exists",this);if(!n)throw new E("writer-addmarker-no-range",this);return o?(wu(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 E("writer-updatemarker-marker-not-exists",this);if(!t)return D("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 E("writer-updatemarker-wrong-options",this);const a=n.getRange(),l=t.range?t.range:a;i&&t.usingOperation!==n.managedUsingOperations?t.usingOperation?wu(this,o,null,l,s):(wu(this,o,a,null,s),this.model.markers._set(o,l,void 0,s)):n.managedUsingOperations?wu(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 E("writer-removemarker-no-marker",this);const o=this.model.markers.get(t);if(!o.managedUsingOperations)return void this.model.markers._remove(t);wu(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 E("writer-addroot-root-exists",this);const n=this.model.document,i=new Vd(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 E("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 Vd(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 tr(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=mc._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=mc._getStoreAttributeKey(e);this.removeAttribute(o,t.anchor.parent)}t._removeAttribute(e)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new E("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 bu(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 Zl(c,s),l=n.root.document?r.version:null,d=new Fd(n,t,a,o,l);e.batch.addOperation(d),i.applyOperation(d)}s instanceof ql&&s!=c&&a!=o&&d()}function ku(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 zd(n,t,s,o,e)}else{a=new Zl(ql._createBefore(n),e.createPositionAfter(n));const i=a.root.document?r.version:null;l=new Fd(a,t,s,o,i)}e.batch.addOperation(l),i.applyOperation(l)}}function wu(e,t,o,n,i){const r=e.model,s=r.document,a=new Id(t,o,n,r.markers,!!i,s.version);e.batch.addOperation(a),r.applyOperation(a)}function _u(e,t,o,n){let i;if(e.root.document){const o=n.document,r=new ql(o.graveyard,[0]);i=new Dd(e,t,r,o.version)}else i=new pu(e,t);o.addOperation(i),n.applyOperation(i)}function yu(e,t){return e===t||e instanceof lu&&t instanceof lu}function Au(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)),Eu(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[Yd.fromPosition(o,"toPrevious"),Yd.fromPosition(n,"toNext")]}(n);s.isTouching(a)||e.remove(e.createRange(s,a)),o.leaveUnmerged||(!function(e,t,o){const n=e.model;if(!xu(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})?vu(e,t,o,i.parent):Cu(e,t,o,i.parent)}(e,s,a),i.removeDisallowedAttributes(s.parent.getChildren(),e)),Du(e,t,s),!o.doNotAutoparagraph&&function(e,t){const o=e.checkChild(t,"$text"),n=e.checkChild(t,"paragraph");return!o&&n}(i,s)&&Eu(e,s,t,r),s.detach(),a.detach()}))}function Cu(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)}xu(e.model.schema,t,o)&&Cu(e,t,o,n)}}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(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),xu(e.model.schema,t,o)&&vu(e,t,o,n)}}function xu(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 Zl(e,t);for(const e of n.getWalker())if(o.isLimit(e.item))return!1;return!0}(t,o,e))}function Eu(e,t,o,n={}){const i=e.createElement("paragraph");e.model.schema.setAllowedAttributes(i,n,e),e.insert(i,t),Du(e,o,e.createPositionAt(i,0))}function Du(e,t,o){t instanceof mc?e.setSelection(o):t.setTo(o)}function Bu(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 Su{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 E("insertcontent-invalid-insertion-position",this);this.position=o,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this._nodeToSelect?Zl._createOn(this._nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new Zl(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=Yd.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 E("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=Yd.fromPosition(e,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(e)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=Yd.fromPosition(e,"toNext"))}_mergeOnLeft(){const e=this._firstNode;if(!(e instanceof Ll))return;if(!this._canMergeLeft(e))return;const t=Yd._createBefore(e);t.stickiness="toNext";const o=Yd.fromPosition(this.position,"toNext");this._affectedStart.isEqual(t)&&(this._affectedStart.detach(),this._affectedStart=Yd._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=Yd._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 Ll))return;if(!this._canMergeRight(e))return;const t=Yd._createAfter(e);if(t.stickiness="toNext",!this.position.isEqual(t))throw new E("insertcontent-invalid-insertion-position",this);this.position=ql._createAt(t.nodeBefore,"end");const o=Yd.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(t)&&(this._affectedEnd.detach(),this._affectedEnd=Yd._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=Yd._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 Ll&&this.canMergeWith.has(t)&&this.model.schema.checkMerge(t,e)}_canMergeRight(e){const t=e.nextSibling;return t instanceof Ll&&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 Tu(e,t,o,n={}){if(!e.schema.isObject(t))throw new E("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=Qi(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 E("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}))}const Iu=' ,.?!:;"-()';function Pu(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(Ru(o,n,t))o=t?e.position.nodeAfter:e.position.nodeBefore;else{if(Mu(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(;nr(i,r)||"character"==t&&ir(i,r)||o&&sr(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 ql._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 Fu(e,t){const o=e.root,n=ql._createAt(o,t?"end":0);return t?new Zl(e,n):new Zl(n,e)}function Mu(e,t,o){const n=t+(o?0:-1);return Iu.includes(e.charAt(n))}function Ru(e,t,o){return t===(o?e.offsetSize:0)}class zu extends(Y()){constructor(){super(),this.markers=new hu,this.document=new du(this),this.schema=new Yc,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"),qc(this),this.document.registerPostFixer(Fc),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 Su(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?cc.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 Zl(o,i)});e&&(l=e.toRange(),e.detach())}l&&(i instanceof mc?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=Tu(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 eu,callback:e}),this._runPendingChanges()[0]):e(this._currentWriter)}catch(e){E.rethrowUnexpectedError(e,this)}}enqueueChange(e,t){try{e?"function"==typeof e?(t=e,e=new eu):e instanceof eu||(e=new eu(e)):e=new eu,this._pendingChanges.push({batch:e,callback:t}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(e){E.rethrowUnexpectedError(e,this)}}applyOperation(e){e._execute()}insertContent(e,t,o,...n){const i=Vu(t,o);return this.fire("insertContent",[e,i,o,...n])}insertObject(e,t,o,n,...i){const r=Vu(t,o);return this.fire("insertObject",[e,r,n,n,...i])}deleteContent(e,t){Au(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 Hl({boundaries:Fu(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=Pu(c,d.value);if(o)return void(t instanceof mc?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);Bu(e.createRange(t.end,e.createPositionAt(o,"end")),e),Bu(i,e)}return o}))}(this,e)}hasContent(e,t={}){const o=e instanceof Zl?e:Zl._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=Vu(e);return this.fire("canEditAt",[t])}createPositionFromPath(e,t,o){return new ql(e,t,o)}createPositionAt(e,t){return ql._createAt(e,t)}createPositionAfter(e){return ql._createAfter(e)}createPositionBefore(e){return ql._createBefore(e)}createRange(e,t){return new Zl(e,t)}createRangeIn(e){return Zl._createIn(e)}createRangeOn(e){return Zl._createOn(e)}createSelection(...e){return new oc(...e)}createBatch(e){return new eu(e)}createOperationFromJSON(e){return Nd.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 fu(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 Vu(e,t){if(e)return e instanceof oc||e instanceof mc?e:e instanceof zl?t||0===t?new oc(e,t):e.is("rootElement")?new oc(e,"in"):new oc(e,"on"):new oc(e)}class Ou extends La{constructor(){super(...arguments),this.domEventType="click"}onDomEvent(e){this.fire(e.type,e)}}class Nu extends La{constructor(){super(...arguments),this.domEventType=["mousedown","mouseup","mouseover","mouseout"]}onDomEvent(e){this.fire(e.type,e)}}class Lu{constructor(e){this.document=e}createDocumentFragment(e){return new Xs(this.document,e)}createElement(e,t,o){return new ys(this.document,e,t,o)}createText(e){return new Nr(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 ys(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){Te(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 Ss._createAt(e,t)}createPositionAfter(e){return Ss._createAfter(e)}createPositionBefore(e){return Ss._createBefore(e)}createRange(e,t){return new Ts(e,t)}createRangeOn(e){return Ts._createOn(e)}createRangeIn(e){return Ts._createIn(e)}createSelection(...e){return new Ps(...e)}}const Hu=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ju=/^rgb\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}[0-9]{1,3}[ %]?\)$/i,qu=/^rgba\([ ]?([0-9]{1,3}[ %]?,[ ]?){3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,Uu=/^hsl\([ ]?([0-9]{1,3}[ %]?[,]?[ ]*){3}(1|[0-9]+%|[0]?\.?[0-9]+)?\)$/i,Wu=/^hsla\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,$u=/\w+\((?:[^()]|\([^()]*\))*\)|\S+/gi,Gu=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 Ku(e){return e.startsWith("#")?Hu.test(e):e.startsWith("rgb")?ju.test(e)||qu.test(e):e.startsWith("hsl")?Uu.test(e)||Wu.test(e):Gu.has(e.toLowerCase())}const Zu=["none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset"];function Ju(e){return Zu.includes(e)}const Yu=/^([+-]?[0-9]*([.][0-9]+)?(px|cm|mm|in|pc|pt|ch|em|ex|rem|vh|vw|vmin|vmax)|0)$/;function Qu(e){return Yu.test(e)}const Xu=/^[+-]?[0-9]*([.][0-9]+)?%$/;const eh=["repeat-x","repeat-y","repeat","space","round","no-repeat"];function th(e){return eh.includes(e)}const oh=["center","top","bottom","left","right"];function nh(e){return oh.includes(e)}const ih=["fixed","scroll","local"];function rh(e){return ih.includes(e)}const sh=/^url\(/;function ah(e){return sh.test(e)}function lh(e=""){if(""===e)return{top:void 0,right:void 0,bottom:void 0,left:void 0};const t=uh(e),o=t[0],n=t[2]||o,i=t[1]||o;return{top:o,bottom:n,right:i,left:t[3]||i}}function ch(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,dh(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 dh({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 uh(e){const t=e.matchAll($u);return Array.from(t).map((e=>e[0]))}function hh(e){e.setNormalizer("background",(e=>{const t={},o=uh(e);for(const e of o)th(e)?(t.repeat=t.repeat||[],t.repeat.push(e)):nh(e)?(t.position=t.position||[],t.position.push(e)):rh(e)?t.attachment=e:Ku(e)?t.color=e:ah(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 mh(e){e.setNormalizer("border",(e=>{const{color:t,style:o,width:n}=_h(e);return{path:"border",value:{color:lh(t),style:lh(o),width:lh(n)}}})),e.setNormalizer("border-top",ph("top")),e.setNormalizer("border-right",ph("right")),e.setNormalizer("border-bottom",ph("bottom")),e.setNormalizer("border-left",ph("left")),e.setNormalizer("border-color",gh("color")),e.setNormalizer("border-width",gh("width")),e.setNormalizer("border-style",gh("style")),e.setNormalizer("border-top-color",bh("color","top")),e.setNormalizer("border-top-style",bh("style","top")),e.setNormalizer("border-top-width",bh("width","top")),e.setNormalizer("border-right-color",bh("color","right")),e.setNormalizer("border-right-style",bh("style","right")),e.setNormalizer("border-right-width",bh("width","right")),e.setNormalizer("border-bottom-color",bh("color","bottom")),e.setNormalizer("border-bottom-style",bh("style","bottom")),e.setNormalizer("border-bottom-width",bh("width","bottom")),e.setNormalizer("border-left-color",bh("color","left")),e.setNormalizer("border-left-style",bh("style","left")),e.setNormalizer("border-left-width",bh("width","left")),e.setExtractor("border-top",kh("top")),e.setExtractor("border-right",kh("right")),e.setExtractor("border-bottom",kh("bottom")),e.setExtractor("border-left",kh("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",ch("border-color")),e.setReducer("border-style",ch("border-style")),e.setReducer("border-width",ch("border-width")),e.setReducer("border-top",yh("top")),e.setReducer("border-right",yh("right")),e.setReducer("border-bottom",yh("bottom")),e.setReducer("border-left",yh("left")),e.setReducer("border",function(){return t=>{const o=wh(t,"top"),n=wh(t,"right"),i=wh(t,"bottom"),r=wh(t,"left"),s=[o,n,i,r],a={width:e(s,"width"),style:e(s,"style"),color:e(s,"color")},l=Ah(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,...Ah(o,"top"),...Ah(n,"right"),...Ah(i,"bottom"),...Ah(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 ph(e){return t=>{const{color:o,style:n,width:i}=_h(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 gh(e){return t=>({path:"border",value:fh(t,e)})}function fh(e,t){return{[t]:lh(e)}}function bh(e,t){return o=>({path:"border",value:{[e]:{[t]:o}}})}function kh(e){return(t,o)=>{if(o.border)return wh(o.border,e)}}function wh(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 _h(e){const t={},o=uh(e);for(const e of o)Qu(e)||/thin|medium|thick/.test(e)?t.width=e:Ju(e)?t.style=e:t.color=e;return t}function yh(e){return t=>Ah(t,e)}function Ah(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 Ch(e){var t;e.setNormalizer("padding",(t="padding",e=>({path:t,value:lh(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",ch("padding")),e.setStyleRelation("padding",["padding-top","padding-right","padding-bottom","padding-left"])}class vh{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}}function xh(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)&&Eh(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 Eh(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 Dh(e,t,o=new Set){if(e===t&&("object"==typeof(n=e)&&null!==n))return!0;var n;const i=xh(e,o),r=xh(t,o);for(const e of i)if(r.has(e))return!0;return!1}const Bh=function(e,t,o){var n=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return U(o)&&(n="leading"in o?!!o.leading:n,i="trailing"in o?!!o.trailing:i),el(e,t,{leading:n,maxWait:t,trailing:i})};class Sh extends vh{constructor(e,t={}){super(t),this._editor=null,this._lifecyclePromise=null,this._initUsingData=!0,this._editables={},this._throttledSave=Bh(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(Th),this._initUsingData?this.create(e,i,i.context):Bn(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 Dh(this._editor,e.context,this._excludedProps)}_cloneEditorConfiguration(e){return Dn(e,((e,t)=>Bn(e)||"context"===t?e:void 0))}}class Th{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 Ih=Symbol("MainQueueId");class Ph{constructor(){this._onEmptyCallbacks=[],this._queues=new Map,this._activeActions=0}onEmpty(e){this._onEmptyCallbacks.push(e)}enqueue(e,t){const o=e===Ih;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(Ih),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 Fh(e){return Array.isArray(e)?e:[e]}class Mh{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 E("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 Rh extends er{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 zh="contentEditing",Vh="common";class Oh{constructor(e){this.keystrokeInfos=new Map,this._editor=e;const t=e.config.get("menuBar.isVisible"),o=e.locale.t;this.addKeystrokeInfoCategory({id:zh,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:Vh}),n&&n.forEach((t=>{this.addKeystrokeInfoGroup({categoryId:e,...t})}))}addKeystrokeInfoGroup({categoryId:e=zh,id:t,label:o,keystrokes:n}){const i=this.keystrokeInfos.get(e);if(!i)throw new E("accessibility-unknown-keystroke-info-category",this._editor,{groupId:t,categoryId:e});i.groups.set(t,{id:t,label:o,keystrokes:n||[]})}addKeystrokeInfos({categoryId:e=zh,groupId:t=Vh,keystrokes:o}){if(!this.keystrokeInfos.has(e))throw new E("accessibility-unknown-keystroke-info-category",this._editor,{categoryId:e,keystrokes:o});const n=this.keystrokeInfos.get(e);if(!n.groups.has(t))throw new E("accessibility-unknown-keystroke-info-group",this._editor,{groupId:t,categoryId:e,keystrokes:o});n.groups.get(t).keystrokes.push(...o)}}class Nh extends(Y()){constructor(e={}){super();const t=this.constructor,{translations:o,...n}=t.defaultConfig||{},{translations:i=o,...r}=e,s=e.language||n.language;this._context=e.context||new mr({language:s,translations:i}),this._context._addEditor(this,!e.context);const a=Array.from(t.builtinPlugins||[]);this.config=new Sn(r,n),this.config.define("plugins",a),this.config.define(this._context._getEditorConfig()),this.plugins=new hr(this,a,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new Mh,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new zu,this.on("change:isReadOnly",(()=>{this.model.document.isReadOnly=this.isReadOnly}));const l=new ks;this.data=new gd(this.model,l),this.editing=new Gc(this.model,l),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new fd([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 Rh(this),this.keystrokes.listenTo(this.editing.view.document),this.accessibility=new Oh(this)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(e){throw new E("editor-isreadonly-has-no-setter")}enableReadOnlyMode(e){if("string"!=typeof e&&"symbol"!=typeof e)throw new E("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 E("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){E.rethrowUnexpectedError(e,this)}}focus(){this.editing.view.focus()}static create(...e){throw new Error("This is an abstract method.")}}Nh.Context=mr,Nh.EditorWatchdog=Sh,Nh.ContextWatchdog=class extends vh{constructor(e,t={}){super(t),this._watchdogs=new Map,this._context=null,this._contextProps=new Set,this._actionQueues=new Ph,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(Ih,(()=>(this._contextConfig=e,this._create())))}getItem(e){return this._getWatchdog(e)._item}getItemState(e){return this._getWatchdog(e).state}add(e){const t=Fh(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 Sh(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=Fh(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(Ih,(()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy())))}_restart(){return this._actionQueues.enqueue(Ih,(()=>(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=xh(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 Dh(this._context,e.context)}};const Lh=Nh;function Hh(e){return class extends e{updateSourceElement(e){if(!this.sourceElement)throw new E("editor-missing-sourceelement",this);const t=this.config.get("updateSourceElementOnDestroy"),o=this.sourceElement instanceof HTMLTextAreaElement;if(!t&&!o)return void Jn(this.sourceElement,"");const n="string"==typeof e?e:this.data.get();Jn(this.sourceElement,n)}}}Hh.updateSourceElement=Hh(Object).prototype.updateSourceElement;class jh extends pr{static get pluginName(){return"PendingActions"}init(){this.set("hasAny",!1),this._actions=new Yi({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(e){if("string"!=typeof e)throw new E("pendingactions-add-invalid-message",this);const t=new(Y());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 qh={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:''};class Uh extends Yi{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 E("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 Wh extends(z()){constructor(e){super(),Object.assign(this,tm(em(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 E("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)am(o)?yield o:lm(o)&&(yield*e(o))}(this)}static bind(e,t){return{to:(o,n)=>new Gh({eventNameOrFunction:o,attribute:o,observable:e,emitter:t,callback:n}),if:(o,n,i)=>new Kh({observable:e,emitter:t,attribute:o,valueIfTrue:n,callback:i})}}static extend(e,t){if(e._isRendered)throw new E("template-extend-render",[this,e]);rm(e,tm(em(t)))}_renderNode(e){let t;if(t=e.node?this.tag&&this.text:this.tag?this.text:!this.text,t)throw new E("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(""),Zh(this.text)?this._bindToObservable({schema:this.text,updater:Yh(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=dm(r)?r[0].ns:null;if(Zh(r)){const a=dm(r)?r[0].value:r;o&&um(n)&&a.unshift(i),this._bindToObservable({schema:a,updater:Qh(t,n,s),data:e})}else if("style"==n&&"string"!=typeof r[0])this._renderStyleAttribute(r[0],e);else{o&&i&&um(n)&&r.unshift(i);const e=r.map((e=>e&&e.value||e)).reduce(((e,t)=>e.concat(t)),[]).reduce(nm,"");sm(e)||t.setAttributeNS(s,n,e)}}}_renderStyleAttribute(e,t){const o=t.node;for(const n in e){const i=e[n];Zh(i)?this._bindToObservable({schema:[i],updater:Xh(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(cm(r)){if(!n){r.setParent(t);for(const e of r)o.appendChild(e.element)}}else if(am(r))n||(r.isRendered||r.render(),o.appendChild(r.element));else if(Pn(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;Jh(e,t,o);const i=e.filter((e=>!sm(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;eJh(e,t,o);return this.emitter.listenTo(this.observable,`change:${this.attribute}`,n),()=>{this.emitter.stopListening(this.observable,`change:${this.attribute}`,n)}}}class Gh extends $h{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 Kh extends $h{constructor(e){super(e),this.valueIfTrue=e.valueIfTrue}getValue(e){return!sm(super.getValue(e))&&(this.valueIfTrue||!0)}}function Zh(e){return!!e&&(e.value&&(e=e.value),Array.isArray(e)?e.some(Zh):e instanceof $h)}function Jh(e,t,{node:o}){const n=function(e,t){return e.map((e=>e instanceof $h?e.getValue(t):e))}(e,o);let i;i=1==e.length&&e[0]instanceof Kh?n[0]:n.reduce(nm,""),sm(i)?t.remove():t.set(i)}function Yh(e){return{set(t){e.textContent=t},remove(){e.textContent=""}}}function Qh(e,t,o){return{set(n){e.setAttributeNS(o,t,n)},remove(){e.removeAttributeNS(o,t)}}}function Xh(e,t){return{set(o){e.style[t]=o},remove(){e.style[t]=null}}}function em(e){return Dn(e,(e=>{if(e&&(e instanceof $h||lm(e)||am(e)||cm(e)))return e}))}function tm(e){if("string"==typeof e?e=function(e){return{text:[e]}}(e):e.text&&function(e){e.text=xi(e.text)}(e),e.on&&(e.eventListeners=function(e){for(const t in e)om(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=xi(e[t].value)),om(e,t)}(e.attributes);const t=[];if(e.children)if(cm(e.children))t.push(e.children);else for(const o of e.children)lm(o)||am(o)||Pn(o)?t.push(o):t.push(new Wh(o));e.children=t}return e}function om(e,t){e[t]=xi(e[t])}function nm(e,t){return sm(t)?e:sm(e)?t:`${e} ${t}`}function im(e,t){for(const o in t)e[o]?e[o].push(...t[o]):e[o]=t[o]}function rm(e,t){if(t.attributes&&(e.attributes||(e.attributes={}),im(e.attributes,t.attributes)),t.eventListeners&&(e.eventListeners||(e.eventListeners={}),im(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 E("ui-template-extend-children-mismatch",e);let o=0;for(const n of t.children)rm(e.children[o++],n)}}function sm(e){return!e&&0!==e}function am(e){return e instanceof pm}function lm(e){return e instanceof Wh}function cm(e){return e instanceof Uh}function dm(e){return U(e[0])&&e[0].ns}function um(e){return"class"==e||"style"==e}var hm=i(601),mm={attributes:{"data-cke":!0}};mm.setAttributes=Ar(),mm.insert=_r().bind(null,"head"),mm.domAPI=kr(),mm.insertStyleElement=vr();fr()(hm.A,mm);hm.A&&hm.A.locals&&hm.A.locals;class pm extends(Rn(Y())){constructor(e){super(),this.element=null,this.isRendered=!1,this.locale=e,this.t=e&&e.t,this._viewCollections=new Yi,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=Wh.bind(this,this)}createCollection(e){const t=new Uh(e);return this._viewCollections.add(t),t}registerChild(e){re(e)||(e=[e]);for(const t of e)this._unboundChildren.add(t)}deregisterChild(e){re(e)||(e=[e]);for(const t of e)this._unboundChildren.remove(t)}setTemplate(e){this.template=new Wh(e)}extendTemplate(e){Wh.extend(this.template,e)}render(){if(this.isRendered)throw new E("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 gm({emitter:e,activator:t,callback:o,contextElements:n}){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()}))}function fm(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 bm({view:e}){e.listenTo(e.element,"submit",((t,o)=>{o.preventDefault(),e.fire("submit")}),{useCapture:!0})}function km({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 wm=i(4106),_m={attributes:{"data-cke":!0}};_m.setAttributes=Ar(),_m.insert=_r().bind(null,"head"),_m.domAPI=kr(),_m.insertStyleElement=vr();fr()(wm.A,_m);wm.A&&wm.A.locals&&wm.A.locals;class ym extends pm{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")}})}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))ym.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}))}}ym.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 Am=ym;class Cm extends pm{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 vm=i(8948),xm={attributes:{"data-cke":!0}};xm.setAttributes=Ar(),xm.insert=_r().bind(null,"head"),xm.domAPI=kr(),xm.insertStyleElement=vr();fr()(vm.A,xm);vm.A&&vm.A.locals&&vm.A.locals;class Em extends pm{constructor(e,t=new Cm){super(e),this._focusDelayed=null;const o=this.bindTemplate,n=A();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 Am,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||Dm(o))&&String(!!e))),this.bind("_ariaChecked").to(this,"isOn",this,"isToggleable",this,"role",((e,t,o)=>!(!t||!Dm(o))&&String(!!e))),r.isSafari&&(this._focusDelayed||(this._focusDelayed=or((()=>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 pm;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(e=>Ai(e)))}]}),e}_getTooltipString(e,t,o){return e?"string"==typeof e?e:(o&&(o=Ai(o)),e instanceof Function?e(t,o):`${t}${o?` (${o})`:""}`):""}}function Dm(e){switch(e){case"radio":case"checkbox":case"option":case"switch":case"menuitemcheckbox":case"menuitemradio":return!0;default:return!1}}var Bm=i(4866),Sm={attributes:{"data-cke":!0}};Sm.setAttributes=Ar(),Sm.insert=_r().bind(null,"head"),Sm.domAPI=kr(),Sm.insertStyleElement=vr();fr()(Bm.A,Sm);Bm.A&&Bm.A.locals&&Bm.A.locals;class Tm extends pm{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 Am,this.iconView.content=t.icon,this.children.add(this.iconView));const n=new pm(e);n.setTemplate({tag:"h2",attributes:{class:["ck","ck-form__header__label"],role:"presentation"},children:[{text:o.to("label")}]}),this.children.add(n)}}class Im extends(z()){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(Pm)||null}get last(){return this.focusables.filter(Pm).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(Pm(o)){n=o;break}i=(i+t+e)%t}while(i!==o);return n}}function Pm(e){return Fm(e)&&ti(e.element)}function Fm(e){return!(!("focus"in e)||"function"!=typeof e.focus)}function Mm(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(t.document,"mouseup",this._onDragEndBound),this.listenTo(t.document,"touchend",this._onDragEndBound),this.listenTo(t.document,"mousemove",this._onDragBound),this.listenTo(t.document,"touchmove",this._onDragBound)}_detachDragListeners(){this.stopListening(t.document,"mouseup",this._onDragEndBound),this.stopListening(t.document,"touchend",this._onDragEndBound),this.stopListening(t.document,"mousemove",this._onDragBound),this.stopListening(t.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 Rm=i(8091),zm={attributes:{"data-cke":!0}};zm.setAttributes=Ar(),zm.insert=_r().bind(null,"head"),zm.domAPI=kr(),zm.insertStyleElement=vr();fr()(Rm.A,zm);Rm.A&&Rm.A.locals&&Rm.A.locals;class Vm extends pm{constructor(e){super(e),this.children=this.createCollection(),this.keystrokes=new er,this._focusTracker=new Xi,this._focusables=new Uh,this.focusCycler=new Im({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 Em(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 Om extends pm{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 Nm=i(880),Lm={attributes:{"data-cke":!0}};Lm.setAttributes=Ar(),Lm.insert=_r().bind(null,"head"),Lm.domAPI=kr(),Lm.insertStyleElement=vr();fr()(Nm.A,Lm);Nm.A&&Nm.A.locals&&Nm.A.locals;const Hm="screen-center",jm="editor-center",qm="editor-top-side",Um="editor-top-center",Wm="editor-bottom-center",$m="editor-above-center",Gm="editor-below-center",Km=Yn("px");class Zm extends(Mm(pm)){constructor(e,{getCurrentDomRoot:t,getViewportOffset:o}){super(e),this.wasMoved=!1;const n=this.bindTemplate,i=e.t;this.set("className",""),this.set("ariaLabel",i("Editor dialog")),this.set("isModal",!1),this.set("position",Hm),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 er,this.focusTracker=new Xi,this._focusables=new Uh,this._focusCycler=new Im({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),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.to("className")],role:"dialog","aria-label":n.to("ariaLabel"),style:{top:n.to("_top",(e=>Km(e))),left:n.to("_left",(e=>Km(e))),visibility:n.if("_isTransparent","hidden")}},children:this.parts}]})}render(){super.render(),this.keystrokes.set("Esc",((e,t)=>{this.fire("close",{source:"escKeyPress"}),t()})),this.on("drag",((e,{deltaX:t,deltaY:o})=>{this.wasMoved=!0,this.moveBy(t,o)})),this.listenTo(t.window,"resize",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.listenTo(t.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.headerView.element:null}setupParts({icon:e,title:t,hasCloseButton:o=!0,content:n,actionButtons:i}){t&&(this.headerView=new Tm(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 pm&&(n=[n]),this.contentView=new Om(this.locale),this.contentView.children.addMany(n),this.parts.add(this.contentView)),i&&(this.actionsView=new Vm(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),Fm(t=e)&&"focusCycler"in t&&t.focusCycler instanceof Im&&this._focusCycler.chain(e.focusCycler)}))}_createCloseButton(){const e=new Em(this.locale),t=this.locale.t;return e.set({label:t("Close"),tooltip:!0,icon:qh.cancel}),e.on("execute",(()=>this.fire("close",{source:"closeButton"}))),e}}Zm.defaultOffset=15;const Jm=Zm;class Ym extends lr{static get pluginName(){return"Dialog"}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}]})}_initShowHideListeners(){this.on("show",((e,t)=>{this._show(t)})),this.on("show",((e,t)=>{t.onShow&&t.onShow(this)}),{priority:"low"}),this.on("hide",(()=>{Ym._visibleDialogPlugin&&Ym._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}){const d=this.editor;this.view=new Jm(d.locale,{getCurrentDomRoot:()=>d.editing.view.getDomRoot(d.model.document.selection.anchor.root.rootName),getViewportOffset:()=>d.ui.viewportOffset});const u=this.view;u.on("close",(()=>{this.hide()})),d.ui.view.body.add(u),d.ui.focusTracker.add(u.element),d.keystrokes.listenTo(u.element),l||(l=a?Hm:jm),u.set({position:l,_isVisible:!0,className:s,isModal:a}),u.setupParts({icon:t,title:o,hasCloseButton:n,content:i,actionButtons:r}),this.id=e,c&&(this._onHide=c),this.isOpen=!0,Ym._visibleDialogPlugin=this}hide(){Ym._visibleDialogPlugin&&Ym._visibleDialogPlugin.fire(`hide:${Ym._visibleDialogPlugin.id}`)}_hide(){if(!this.view)return;const e=this.editor,t=this.view;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,Ym._visibleDialogPlugin=null}}var Qm=i(3389),Xm={attributes:{"data-cke":!0}};Xm.setAttributes=Ar(),Xm.insert=_r().bind(null,"head"),Xm.domAPI=kr(),Xm.insertStyleElement=vr();fr()(Qm.A,Xm);Qm.A&&Qm.A.locals&&Qm.A.locals;class ep extends Em{constructor(e,t=new Cm){super(e,t),this._checkIconHolderView=new tp,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 tp extends pm{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 Am;return e.content=qh.check,e.extendTemplate({attributes:{class:"ck-list-item-button__check-icon"}}),e}}var op=i(5078),np={attributes:{"data-cke":!0}};np.setAttributes=Ar(),np.insert=_r().bind(null,"head"),np.domAPI=kr(),np.insertStyleElement=vr();fr()(op.A,np);op.A&&op.A.locals&&op.A.locals;class ip extends ep{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 rp=i(4606),sp={attributes:{"data-cke":!0}};sp.setAttributes=Ar(),sp.insert=_r().bind(null,"head"),sp.domAPI=kr(),sp.insertStyleElement=vr();fr()(rp.A,sp);rp.A&&rp.A.locals&&rp.A.locals;class ap extends pm{constructor(e){super(e),this.set("text",void 0),this.set("for",void 0),this.id=`ck-editor__label_${A()}`;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 lp extends pm{constructor(e,t){super(e);const o=e.t,n=new ap;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:[Ae(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=[Ae(document,"h3",{},e.label),...Array.from(e.groups.values()).map((e=>this._createGroup(e))).flat()];return e.description&&t.splice(1,0,Ae(document,"p",{},e.description)),Ae(document,"section",{},t)}))}_createGroup(e){const t=e.keystrokes.sort(((e,t)=>e.label.localeCompare(t.label))).map((e=>this._createGroupRow(e))).flat(),o=[Ae(document,"dl",{},t)];return e.label&&o.unshift(Ae(document,"h4",{},e.label)),o}_createGroupRow(e){const t=this.locale.t,o=Ae(document,"dt"),n=Ae(document,"dd"),i=function(e){if("string"==typeof e)return[[e]];if("string"==typeof e[0])return[e];return e}(e.keystroke),s=[];for(const e of i)s.push(e.map(cp).join(""));return o.innerHTML=e.label,n.innerHTML=s.join(", ")+(e.mayRequireFn&&r.isMac?` ${t("(may require Fn)")}`:""),[o,n]}}function cp(e){return Ai(e).split("+").map((e=>`${e}`)).join("+")}const dp='';var up=i(9550),hp={attributes:{"data-cke":!0}};hp.setAttributes=Ar(),hp.insert=_r().bind(null,"head"),hp.domAPI=kr(),hp.insertStyleElement=vr();fr()(up.A,hp);up.A&&up.A.locals&&up.A.locals;class mp extends lr{constructor(){super(...arguments),this.contentView=null}static get requires(){return[Ym]}static get pluginName(){return"AccessibilityHelp"}init(){const e=this.editor,t=e.locale.t;e.ui.componentFactory.add("accessibilityHelp",(()=>{const e=this._createButton(Em);return e.set({tooltip:!0,withText:!1,label:t("Accessibility help")}),e})),e.ui.componentFactory.add("menuBar:accessibilityHelp",(()=>{const e=this._createButton(ip);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:dp,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.",[Ai("Alt+0")])}`;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 lp(e.locale,e.accessibility.keystrokeInfos)),"accessibilityHelp"===t.id?t.hide():t.show({id:"accessibilityHelp",className:"ck-accessibility-help-dialog",title:o("Accessibility help"),icon:dp,hasCloseButton:!0,content:this.contentView})}}class pp extends Uh{constructor(e,t=[]){super(t),this.locale=e}get bodyCollectionContainer(){return this._bodyCollectionContainer}attachToDom(){this._bodyCollectionContainer=new Wh({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection,role:"application"},children:this}).render();let e=document.querySelector(".ck-body-wrapper");e||(e=Ae(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(e)),e.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove();const e=document.querySelector(".ck-body-wrapper");e&&0==e.childElementCount&&e.remove()}}var gp=i(9624),fp={attributes:{"data-cke":!0}};fp.setAttributes=Ar(),fp.insert=_r().bind(null,"head"),fp.domAPI=kr(),fp.insertStyleElement=vr();fr()(gp.A,fp);gp.A&&gp.A.locals&&gp.A.locals;class bp extends Em{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 pm;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),e}}class kp extends(_p(Em)){}class wp extends(_p(ep)){}function _p(e){return class extends e{constructor(...e){super(...e),this.buttonView=this,this._fileInputView=new yp(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 yp extends pm{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 Ap='';var Cp=i(1750),vp={attributes:{"data-cke":!0}};vp.setAttributes=Ar(),vp.insert=_r().bind(null,"head"),vp.domAPI=kr(),vp.insertStyleElement=vr();fr()(Cp.A,vp);Cp.A&&Cp.A.locals&&Cp.A.locals;class xp extends pm{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 Em(this.locale),t=e.bindTemplate;return e.set({withText:!0,icon:Ap}),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 Ep(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 Dp(e){return e.map(Bp).filter((e=>!!e))}function Bp(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 Sp extends Em{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=>r.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 Tp=i(7962),Ip={attributes:{"data-cke":!0}};Ip.setAttributes=Ar(),Ip.insert=_r().bind(null,"head"),Ip.domAPI=kr(),Ip.insertStyleElement=vr();fr()(Tp.A,Ip);Tp.A&&Tp.A.locals&&Tp.A.locals;class Pp extends pm{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 Xi,this.keystrokes=new er,this.items.on("add",((e,t)=>{t.isOn=t.color===this.selectedColor})),o.forEach((e=>{const t=new Sp;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),km({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 Fp=i(8156);const Mp=function(e){var t,o,n=[],i=1;if("string"==typeof e)if(Fp[e])n=Fp[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!==Rp[e])return Rp[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 Rp={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};var zp=i(734),Vp=i.t(zp,2);function Op(e,t){if(!e)return"";const o=Np(e);if(!o)return"";if(o.space===t)return e;if(n=o,!Object.keys(Vp).includes(n.space))return"";var n;const i=Vp[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 Np(e){if(e.startsWith("#")){const t=Mp(e);return{space:"hex",values:t.values,hexValue:e,alpha:t.alpha}}const t=Mp(e);return t.space?t:null}var Lp=i(6365),Hp={attributes:{"data-cke":!0}};Hp.setAttributes=Ar(),Hp.insert=_r().bind(null,"head"),Hp.domAPI=kr(),Hp.insertStyleElement=vr();fr()(Lp.A,Hp);Lp.A&&Lp.A.locals&&Lp.A.locals;class jp extends pm{constructor(e,t){super(e);const o=`ck-labeled-field-view-${A()}`,n=`ck-labeled-field-view-status-${A()}`;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 ap(this.locale);return t.for=e,t.bind("text").to(this,"label"),t}_createStatusView(e){const t=new pm(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 qp extends pm{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 Xi,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 Up=i(1546),Wp={attributes:{"data-cke":!0}};Wp.setAttributes=Ar(),Wp.insert=_r().bind(null,"head"),Wp.domAPI=kr(),Wp.insertStyleElement=vr();fr()(Up.A,Wp);Up.A&&Up.A.locals&&Up.A.locals;class $p extends qp{constructor(e){super(e),this.set("inputMode","text");const t=this.bindTemplate;this.extendTemplate({attributes:{inputmode:t.to("inputMode")}})}}class Gp extends $p{constructor(e){super(e),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}class Kp extends $p{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 Zp=i(8368),Jp={attributes:{"data-cke":!0}};Jp.setAttributes=Ar(),Jp.insert=_r().bind(null,"head"),Jp.domAPI=kr(),Jp.insertStyleElement=vr();fr()(Zp.A,Jp);Zp.A&&Zp.A.locals&&Zp.A.locals;class Yp extends pm{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():D("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 Qp=i(426),Xp={attributes:{"data-cke":!0}};Xp.setAttributes=Ar(),Xp.insert=_r().bind(null,"head"),Xp.domAPI=kr(),Xp.insertStyleElement=vr();fr()(Qp.A,Xp);Qp.A&&Qp.A.locals&&Qp.A.locals;class eg extends pm{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 er,this.focusTracker=new Xi,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=eg._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=e?e.name:this._panelPositions[0].name}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}=eg.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]}}eg.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"})},eg._getOptimalPosition=oi;const tg=eg;class og extends Em{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 Am;return e.content=Ap,e.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),e}}class ng extends pm{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class ig extends pm{constructor(e){super(e),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function rg(e){if(Array.isArray(e))return{items:e,removeItems:[]};const t={items:[],removeItems:[]};return e?{...t,...e}:t}var sg=i(66),ag={attributes:{"data-cke":!0}};ag.setAttributes=Ar(),ag.insert=_r().bind(null,"head"),ag.domAPI=kr(),ag.insertStyleElement=vr();fr()(sg.A,ag);sg.A&&sg.A.locals&&sg.A.locals;const lg=(()=>({alignLeft:qh.alignLeft,bold:qh.bold,importExport:qh.importExport,paragraph:qh.paragraph,plus:qh.plus,text:qh.text,threeVerticalDots:qh.threeVerticalDots,pilcrow:qh.pilcrow,dragIndicator:qh.dragIndicator}))();class cg extends pm{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.items=this.createCollection(),this.focusTracker=new Xi,this.keystrokes=new er,this.set("class",void 0),this.set("isCompact",!1),this.itemsView=new dg(e),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const i="rtl"===e.uiLanguageDirection;this._focusCycler=new Im({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:"toolbar","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 hg(this):new ug(this)}render(){super.render(),this.focusTracker.add(this.element);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),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=rg(e),i=o||n.removeItems;return this._cleanItemsConfiguration(n.items,t,i).map((e=>U(e)?this._createNestedToolbarDropdown(e,t,i):"|"===e?new ng:"-"===e?new ig: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||(D("toolbarview-line-break-ignored-when-grouping-items",i),!1):!(!U(e)&&!t.has(e))||(D("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=Eg(this.locale);return n||D("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=lg[i]||i||qh.threeVerticalDots:l.buttonView.withText=!0,Dg(l,(()=>l.toolbarView._buildItemsFromConfig(r,t,o))),l}}class dg extends pm{constructor(e){super(e),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class ug{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=>Fm(e)?e:null)),e.extendTemplate({attributes:{class:[t.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class hg{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(!ti(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,o=this.viewLocale.uiLanguageDirection,n=new qn(e.lastChild),i=new qn(e);if(!this.cachedPadding){const n=t.window.getComputedStyle(e),i="ltr"===o?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(n[i])}return"ltr"===o?n.right>i.right-this.cachedPadding:n.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 ng),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=Eg(e);return o.class="ck-toolbar__grouped-dropdown",o.panelPosition="ltr"===e.uiLanguageDirection?"sw":"se",Dg(o,this.groupedItems),o.buttonView.set({label:t("Show more items"),tooltip:!0,tooltipPosition:"rtl"===e.uiLanguageDirection?"se":"sw",icon:qh.threeVerticalDots}),o}_updateFocusCyclableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((e=>{Fm(e)&&this.viewFocusables.add(e)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}class mg extends pm{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 pg extends pm{constructor(e){super(e),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}class gg extends pm{constructor(e,t=new ap){super(e);const o=this.bindTemplate,n=new kg(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 pg)));e&&e.focus()}}}var fg=i(6048),bg={attributes:{"data-cke":!0}};bg.setAttributes=Ar(),bg.insert=_r().bind(null,"head"),bg.domAPI=kr(),bg.insertStyleElement=vr();fr()(fg.A,bg);fg.A&&fg.A.locals&&fg.A.locals;class kg extends pm{constructor(e){super(e),this._listItemGroupToChangeListeners=new WeakMap;const t=this.bindTemplate;this.focusables=new Uh,this.items=this.createCollection(),this.focusTracker=new Xi,this.keystrokes=new er,this._focusCycler=new Im({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 gg?this._registerFocusableItemsGroup(e):e instanceof mg&&this._registerFocusableListItem(e);this.items.on("change",((e,t)=>{for(const e of t.removed)e instanceof gg?this._deregisterFocusableItemsGroup(e):e instanceof mg&&this._deregisterFocusableListItem(e);for(const e of Array.from(t.added).reverse())e instanceof gg?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)}}var wg=i(7133),_g={attributes:{"data-cke":!0}};_g.setAttributes=Ar(),_g.insert=_r().bind(null,"head"),_g.domAPI=kr(),_g.insertStyleElement=vr();fr()(wg.A,_g);wg.A&&wg.A.locals&&wg.A.locals;class yg extends pm{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 er,this.focusTracker=new Xi,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 Em;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 Em,t=e.bindTemplate;return e.icon=Ap,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 Ag=i(7475),Cg={attributes:{"data-cke":!0}};Cg.setAttributes=Ar(),Cg.insert=_r().bind(null,"head"),Cg.domAPI=kr(),Cg.insertStyleElement=vr();fr()(Ag.A,Cg);Ag.A&&Ag.A.locals&&Ag.A.locals;var vg=i(2454),xg={attributes:{"data-cke":!0}};xg.setAttributes=Ar(),xg.insert=_r().bind(null,"head"),xg.domAPI=kr(),xg.insertStyleElement=vr();fr()(vg.A,xg);vg.A&&vg.A.locals&&vg.A.locals;function Eg(e,o=og){const n="function"==typeof o?new o(e):o,i=new Yp(e),r=new tg(e,n,i);return n.bind("isEnabled").to(r),n instanceof yg?n.arrowView.bind("isOn").to(r,"isOpen"):n.bind("isOn").to(r,"isOpen"),function(e){(function(e){e.on("render",(()=>{gm({emitter:e,activator:()=>e.isOpen,callback:()=>{e.isOpen=!1},contextElements:()=>[e.element,...e.focusTracker._elements]})}))})(e),function(e){e.on("execute",(t=>{t.source instanceof bp||(e.isOpen=!1)}))}(e),function(e){e.focusTracker.on("change:isFocused",((t,o,n)=>{e.isOpen&&!n&&(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",((o,n,i)=>{if(i)return;const r=e.panelView.element;r&&r.contains(t.document.activeElement)&&e.buttonView.focus()}))}(e),function(e){e.on("change:isOpen",((t,o,n)=>{n&&e.panelView.focus()}),{priority:"low"})}(e)}(r),r}function Dg(e,t,o={}){e.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.isOpen?Bg(e,t,o):e.once("change:isOpen",(()=>Bg(e,t,o)),{priority:"highest"}),o.enableActiveItemFocusOnDropdownOpen&&Ig(e,(()=>e.toolbarView.items.find((e=>e.isOn))))}function Bg(e,t,o){const n=e.locale,i=n.t,r=e.toolbarView=new cg(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 Uh?r.items.bindTo(s).using((e=>e)):r.items.addMany(s),e.panelView.children.add(r),r.items.delegate("execute").to(e)}function Sg(e,t,o={}){e.isOpen?Tg(e,t,o):e.once("change:isOpen",(()=>Tg(e,t,o)),{priority:"highest"}),Ig(e,(()=>e.listView.items.find((e=>e instanceof mg&&e.children.first.isOn))))}function Tg(e,t,o){const n=e.locale,i=e.listView=new kg(n),r="function"==typeof t?t():t;i.ariaLabel=o.ariaLabel,i.role=o.role,Pg(e,i.items,r,n),e.panelView.children.add(i),i.items.delegate("execute").to(e)}function Ig(e,t){e.on("change:isOpen",(()=>{if(!e.isOpen)return;const o=t();o&&("function"==typeof o.focus?o.focus():D("ui-dropdown-focus-child-on-open-child-missing-focus",{view:o}))}),{priority:C.low-10})}function Pg(e,t,o,n){t.on("change",(()=>{const e=[...t].reduce(((e,t)=>(t instanceof mg&&t.children.first instanceof ep&&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 pg(n);if("group"===t.type){const o=new gg(n);return o.set({label:t.label}),Pg(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 mg(n);let i;return"button"===t.type?(i=new ep(n),i.set({isToggleable:e})):i=new bp(n),i.bind(...Object.keys(t.model)).to(t.model),i.delegate("execute").to(o),o.children.add(i),o}return null}))}const Fg=(e,t,o)=>{const n=new Gp(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},Mg=(e,t,o)=>{const n=new Kp(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},Rg=(e,t,o)=>{const n=Eg(e.locale);return n.set({id:t,ariaDescribedById:o}),n.bind("isEnabled").to(e),n},zg=(e,t=0,o=1)=>e>o?o:eMath.round(o*e)/o,Og=(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?Vg(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?Vg(parseInt(e.substring(6,8),16)/255,2):1})),Ng=({h:e,s:t,v:o,a:n})=>{const i=(200-t)*o/100;return{h:Vg(e),s:Vg(i>0&&i<200?t*o/100/(i<=100?i:200-i)*100:0),l:Vg(i/2),a:Vg(n,2)}},Lg=e=>{const{h:t,s:o,l:n}=Ng(e);return`hsl(${t}, ${o}%, ${n}%)`},Hg=({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:Vg(255*[o,s,r,r,a,o][l]),g:Vg(255*[a,o,o,s,r,r][l]),b:Vg(255*[r,r,a,o,o,s][l]),a:Vg(n,2)}},jg=e=>{const t=e.toString(16);return t.length<2?"0"+t:t},qg=({r:e,g:t,b:o,a:n})=>{const i=n<1?jg(Vg(255*n)):"";return"#"+jg(e)+jg(t)+jg(o)+i},Ug=({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:Vg(60*(s<0?s+6:s)),s:Vg(i?r/i*100:0),v:Vg(i/255*100),a:n}},Wg=(e,t)=>{if(e===t)return!0;for(const o in e)if(e[o]!==t[o])return!1;return!0},$g={},Gg=e=>{let t=$g[e];return t||(t=document.createElement("template"),t.innerHTML=e,$g[e]=t),t},Kg=(e,t,o)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:o}))};let Zg=!1;const Jg=e=>"touches"in e,Yg=(e,t)=>{const o=Jg(t)?t.touches[0]:t,n=e.el.getBoundingClientRect();Kg(e.el,"move",e.getMove({x:zg((o.pageX-(n.left+window.pageXOffset))/n.width),y:zg((o.pageY-(n.top+window.pageYOffset))/n.height)}))};class Qg{constructor(e,t,o,n){const i=Gg(`
    `);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(Zg?"touchmove":"mousemove",this),t(Zg?"touchend":"mouseup",this)}handleEvent(e){switch(e.type){case"mousedown":case"touchstart":if(e.preventDefault(),!(e=>!(Zg&&!Jg(e)||(Zg||(Zg=Jg(e)),0)))(e)||!Zg&&0!=e.button)return;this.el.focus(),Yg(this,e),this.dragging=!0;break;case"mousemove":case"touchmove":e.preventDefault(),Yg(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(),Kg(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 Xg extends Qg{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:Lg({h:e,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${Vg(e)}`)}getMove(e,t){return{h:t?zg(this.h+360*e.x,0,360):360*e.x}}}class ef extends Qg{constructor(e){super(e,"saturation",'aria-label="Color"',!0)}update(e){this.hsva=e,this.style([{top:100-e.v+"%",left:`${e.s}%`,color:Lg(e)},{"background-color":Lg({h:e.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${Vg(e.s)}%, Brightness ${Vg(e.v)}%`)}getMove(e,t){return{s:t?zg(this.hsva.s+100*e.x,0,100):100*e.x,v:t?zg(this.hsva.v-100*e.y,0,100):Math.round(100-100*e.y)}}}const tf=Symbol("same"),of=Symbol("color"),nf=Symbol("hsva"),rf=Symbol("update"),sf=Symbol("parts"),af=Symbol("css"),lf=Symbol("sliders");class cf extends HTMLElement{static get observedAttributes(){return["color"]}get[af](){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[lf](){return[ef,Xg]}get color(){return this[of]}set color(e){if(!this[tf](e)){const t=this.colorModel.toHsva(e);this[rf](t),this[of]=e}}constructor(){super();const e=Gg(``),t=this.attachShadow({mode:"open"});t.appendChild(e.content.cloneNode(!0)),t.addEventListener("move",this),this[sf]=this[lf].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[tf](n)||(this.color=n)}handleEvent(e){const t=this[nf],o={...t,...e.detail};let n;this[rf](o),Wg(o,t)||this[tf](n=this.colorModel.fromHsva(o))||(this[of]=n,Kg(this,"color-changed",{value:n}))}[tf](e){return this.color&&this.colorModel.equal(e,this.color)}[rf](e){this[nf]=e,this[sf].forEach((t=>t.update(e)))}}const df={defaultColor:"#000",toHsva:e=>Ug(Og(e)),fromHsva:({h:e,s:t,v:o})=>qg(Hg({h:e,s:t,v:o,a:1})),equal:(e,t)=>e.toLowerCase()===t.toLowerCase()||Wg(Og(e),Og(t)),fromAttr:e=>e};class uf extends cf{get colorModel(){return df}}var hf=i(3086),mf={attributes:{"data-cke":!0}};mf.setAttributes=Ar(),mf.insert=_r().bind(null,"head"),mf.domAPI=kr(),mf.insertStyleElement=vr();fr()(hf.A,mf);hf.A&&hf.A.locals&&hf.A.locals;class pf extends pm{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=el((e=>{this.set("color",e),this.fire("colorSelected",{color:this.color})}),150,{leading:!0}),this.on("set:color",((e,t,o)=>{e.return=Op(o,this._config.format||"hsl")})),this.on("change:color",(()=>{this._hexColor=gf(this.color)})),this.on("change:_hexColor",(()=>{document.activeElement!==this.picker&&this.picker.setAttribute("color",this._hexColor),gf(this.color)!=gf(this._hexColor)&&(this.color=this._hexColor)}))}render(){var e,o;if(super.render(),e="hex-color-picker",o=uf,void 0===customElements.get(e)&&customElements.define(e,o),this.picker=t.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&&(r.isGecko||r.isiOS||r.isSafari)){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 ff(e)));this.slidersView=this.createCollection(),e.forEach((e=>{this.slidersView.add(e)}))}_createInputRow(){const e=this._createColorInput();return new kf(this.locale,e)}_createColorInput(){const e=new jp(this.locale,Fg),{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=wf(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 gf(e){let t=function(e){if(!e)return"";const t=Np(e);return t?"hex"===t.space?t.hexValue:Op(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 ff extends pm{constructor(e){super(),this.element=e}focus(){this.element.focus()}}class bf extends pm{constructor(e){super(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__hash-view"]},children:"#"})}}class kf extends pm{constructor(e,t){super(e),this.inputView=t,this.children=this.createCollection([new bf,this.inputView]),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__row"]},children:this.children})}getParsedColor(){return wf(this.inputView.fieldView.element.value)}}function wf(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 _f extends(Y(Yi)){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 yf extends pm{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 _f,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=Wh.bind(this.documentColors,this.documentColors),t=new pm(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 Em,this.colorPickerButtonView.set({label:this._colorPickerLabel,withText:!0,icon:qh.colorPalette,class:"ck-color-selector__color-picker"}),this.colorPickerButtonView.on("execute",(()=>{this.fire("colorPicker:show")}))}_createRemoveColorButton(){const e=new Em;return e.set({withText:!0,icon:qh.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 Pp(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=Wh.bind(this.documentColors,this.documentColors),t=new Pp(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 Sp;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 Af extends pm{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 pf(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 pm,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 Em(e),n=new Em(e);return o.set({icon:qh.check,class:"ck-button-save",type:"button",withText:!1,label:t("Accept")}),n.set({icon:qh.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 Cf=i(2922),vf={attributes:{"data-cke":!0}};vf.setAttributes=Ar(),vf.insert=_r().bind(null,"head"),vf.domAPI=kr(),vf.insertStyleElement=vr();fr()(Cf.A,vf);Cf.A&&Cf.A.locals&&Cf.A.locals;class xf extends pm{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 Xi,this.keystrokes=new er,this._focusables=new Uh,this._colorPickerViewConfig=a,this._focusCycler=new Im({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.colorGridsFragmentView=new yf(e,{colors:t,columns:o,removeButtonLabel:n,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,focusTracker:this.focusTracker,focusables:this._focusables}),this.colorPickerFragmentView=new Af(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 Ef{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(Df(e),{callback:t,originalName:e})}create(e){if(!this.has(e))throw new E("componentfactory-item-missing",this,{name:e});return this._components.get(Df(e)).callback(this.editor.locale)}has(e){return this._components.has(Df(e))}}function Df(e){return String(e).toLowerCase()}var Bf=i(5615),Sf={attributes:{"data-cke":!0}};Sf.setAttributes=Ar(),Sf.insert=_r().bind(null,"head"),Sf.domAPI=kr(),Sf.insertStyleElement=vr();fr()(Bf.A,Sf);Bf.A&&Bf.A.locals&&Bf.A.locals;const Tf=Yn("px"),If={top:-99999,left:-99999,name:"arrowless",config:{withArrow:!1}};class Pf extends pm{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",Tf),left:t.to("left",Tf)}},children:this.content})}destroy(){this.hide(),super.destroy()}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(e){const o=Mf(e.target);if(o&&!ti(o))return!1;this.show();const n=Pf.defaultPositions,i=Object.assign({},{element:this.element,positions:[n.southArrowNorth,n.southArrowNorthMiddleWest,n.southArrowNorthMiddleEast,n.southArrowNorthWest,n.southArrowNorthEast,n.northArrowSouth,n.northArrowSouthMiddleWest,n.northArrowSouthMiddleEast,n.northArrowSouthWest,n.northArrowSouthEast,n.viewportStickyNorth],limiter:t.document.body,fitInViewport:!0},e),r=Pf._getOptimalPosition(i)||If,s=parseInt(r.left),a=parseInt(r.top),l=r.name,c=r.config||{},{withArrow:d=!0}=c;return this.top=a,this.left=s,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;const o=Mf(e.target),n=e.limiter?Mf(e.limiter):t.document.body;if(this.listenTo(t.document,"scroll",((t,i)=>{const r=i.target,s=o&&r.contains(o),a=n&&r.contains(n);!s&&!a&&o&&n||this.attachTo(e)}),{useCapture:!0}),this.listenTo(t.window,"resize",(()=>{this.attachTo(e)})),o&&!this._resizeObserver){const e=()=>{ti(o)||this.unpin()};this._resizeObserver=new Zn(o,e)}return!0}_stopPinning(){this.stopListening(t.document,"scroll"),this.stopListening(t.window,"resize"),this._resizeObserver&&(this._resizeObserver.destroy(),this._resizeObserver=null)}static generatePositions(e={}){const{sideOffset:t=Pf.arrowSideOffset,heightOffset:o=Pf.arrowHeightOffset,stickyVerticalOffset:n=Pf.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}}}Pf.arrowSideOffset=25,Pf.arrowHeightOffset=10,Pf.stickyVerticalOffset=20,Pf._getOptimalPosition=oi,Pf.defaultPositions=Pf.generatePositions();const Ff=Pf;function Mf(e){return Bn(e)?e:Ln(e)?e.commonAncestorContainer:"function"==typeof e?Mf(e()):null}var Rf=i(4650),zf={attributes:{"data-cke":!0}};zf.setAttributes=Ar(),zf.insert=_r().bind(null,"head"),zf.domAPI=kr(),zf.insertStyleElement=vr();fr()(Rf.A,zf);Rf.A&&Rf.A.locals&&Rf.A.locals;const Vf="ck-tooltip";class Of extends(Rn()){constructor(e){if(super(),this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this._mutationObserver=null,Of._editors.add(e),Of._instance)return Of._instance;Of._instance=this,this.tooltipTextView=new pm(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 Ff(e.locale),this.balloonPanelView.class=Vf,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=el(this._pinTooltip,600),this._unpinTooltipDebounced=el(this._unpinTooltip,400),this.listenTo(t.document,"keydown",this._onKeyDown.bind(this),{useCapture:!0}),this.listenTo(t.document,"mouseenter",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(t.document,"mouseleave",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(t.document,"focus",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(t.document,"blur",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(t.document,"scroll",this._onScroll.bind(this),{useCapture:!0}),this._watchdogExcluded=!0}destroy(e){const t=e.ui.view&&e.ui.view.body;Of._editors.delete(e),this.stopListening(e.ui),t&&t.has(this.balloonPanelView)&&t.remove(this.balloonPanelView),Of._editors.size||(this._unpinTooltip(),this.balloonPanelView.destroy(),this.stopListening(),Of._instance=null)}static getPositioningFunctions(e){const t=Of.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=Lf(t);o?o!==this._currentElementWithTooltip&&(this._unpinTooltip(),"focus"!==e.name||o.matches(":hover")?this._pinTooltipDebounced(o,Hf(o)):this._pinTooltip(o,Hf(o))):"focus"===e.name&&this._unpinTooltip()}_onLeaveOrBlur(e,{target:t,relatedTarget:o}){if("mouseleave"===e.name){if(!Bn(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=Lf(t),s=Lf(o);(i||r&&r!==s)&&this._unpinTooltipDebounced()}else{if(this._currentElementWithTooltip&&t!==this._currentElementWithTooltip)return;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=Qi(Of._editors.values()).ui.view.body;i.has(this.balloonPanelView)||i.add(this.balloonPanelView),this.tooltipTextView.text=t,this.balloonPanelView.class=[Vf,n].filter((e=>e)).join(" "),this.balloonPanelView.pin({target:e,positions:Of.getPositioningFunctions(o)}),this._mutationObserver.attach(e);for(const e of Of._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 Of._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=Hf(this._currentElementWithTooltip);ti(this._currentElementWithTooltip)&&e.text?this.balloonPanelView.pin({target:this._currentElementWithTooltip,positions:Of.getPositioningFunctions(e.position)}):this._unpinTooltip()}}Of.defaultBalloonPositions=Ff.generatePositions({heightOffset:5,sideOffset:13}),Of._editors=new Set,Of._instance=null;const Nf=Of;function Lf(e){return Bn(e)?e.closest("[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])"):null}function Hf(e){return{text:e.dataset.ckeTooltipText,position:e.dataset.ckeTooltipPosition||"s",cssClass:e.dataset.ckeTooltipClass||""}}const jf=50,qf=350,Uf="Powered by";class Wf extends(Rn()){constructor(e){super(),this.editor=e,this._balloonView=null,this._lastFocusedEditableElement=null,this._showBalloonThrottled=Bh(this._showBalloon.bind(this),50,{leading:!0}),e.on("ready",this._handleEditorReady.bind(this))}destroy(){const e=this._balloonView;e&&(e.unpin(),this._balloonView=null),this._showBalloonThrottled.cancel(),this.stopListening()}_handleEditorReady(){const e=this.editor;(!!e.config.get("ui.poweredBy.forceVisible")||"VALID"!==function(e){function t(e){return e.length>=40&&e.length<=255?"VALID":"INVALID"}if(!e)return"INVALID";let o="";try{o=atob(e)}catch(e){return"INVALID"}const n=o.split("-"),i=n[0],r=n[1];if(!r)return t(e);try{atob(r)}catch(o){try{if(atob(i),!atob(i).length)return t(e)}catch(o){return t(e)}}if(i.length<40||i.length>255)return"INVALID";let s="";try{atob(i),s=atob(r)}catch(e){return"INVALID"}if(8!==s.length)return"INVALID";const a=Number(s.substring(0,4)),l=Number(s.substring(4,6))-1,c=Number(s.substring(6,8)),d=new Date(a,l,c);return d{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()})))}_createBalloonView(){const e=this.editor,t=this._balloonView=new Ff,o=Kf(e),n=new $f(e.locale,o.label);t.content.add(n),t.set({class:"ck-powered-by-balloon"}),e.ui.view.body.add(t),e.ui.focusTracker.add(t.element),this._balloonView=t}_showBalloon(){if(!this._lastFocusedEditableElement)return;const e=function(e,t){const o=Kf(e),n="right"===o.side?function(e,t){return Gf(e,t,((e,o)=>e.left+e.width-o.width-t.horizontalOffset))}(t,o):function(e,t){return Gf(e,t,(e=>e.left+t.horizontalOffset))}(t,o);return{target:t,positions:[n]}}(this.editor,this._lastFocusedEditableElement);e&&(this._balloonView||this._createBalloonView(),this._balloonView.pin(e))}_hideBalloon(){this._balloonView&&this._balloonView.unpin()}_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]}}class $f extends pm{constructor(e,t){super(e);const o=new Am,n=this.bindTemplate;o.set({content:'\n',isColorInherited:!1}),o.extendTemplate({attributes:{style:{width:"53px",height:"10px"}}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-powered-by"],"aria-hidden":!0},children:[{tag:"a",attributes:{href:"https://ckeditor.com/?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()))}}]})}}function Gf(e,t,o){return(n,i)=>{const r=new qn(e);if(r.width{for(const e of Object.values(Yf))this.announce("",e)}))}announce(e,t=Yf.POLITE){const o=this.editor;if(!o.ui.view)return;this.view||(this.view=new Xf(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 eb(o,n),this.view.regionViews.add(r)),r.announce({announcement:e,isUnsafeHTML:i})}}class Xf extends pm{constructor(e){super(e),this.regionViews=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-aria-live-announcer"]},children:this.regionViews})}}class eb extends pm{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 tb=i(1214),ob={attributes:{"data-cke":!0}};ob.setAttributes=Ar(),ob.insert=_r().bind(null,"head"),ob.domAPI=kr(),ob.insertStyleElement=vr();fr()(tb.A,ob);tb.A&&tb.A.locals&&tb.A.locals;class nb extends mg{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 ib={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 nb&&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){gm({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||(e.isFocusBorderEnabled=!1,t=!1)})),e.listenTo(e.element,"click",(()=>{e.isOpen&&e.element.matches(":focus-within")&&(e.isFocusBorderEnabled=!0)}),{useCapture:!0}),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})}},rb={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,e.parentMenuView&&e.panelView.focus()}))},toggleOnButtonClick(e){e.buttonView.on("execute",(()=>{e.isOpen=!e.isOpen}))},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)}))}},sb={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"})},ab=[{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:"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:comment","menuBar:insertMergeField"]},{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 lb({normalizedConfig:e,locale:t,componentFactory:o,extraItems:n}){const i=Fl(e);return cb(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))),mb(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=bb(e);return!o.includes(t)||(n.push(t),!1)}))}));for(const t of o)n.includes(t)||D("menu-bar-item-could-not-be-removed",{menuBarConfig:e,itemName:t})}(e,i),cb(e,i,i.addItems),function(e,t,o){mb(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&&D("menu-bar-item-unavailable",{menuBarConfig:e,parentMenuConfig:Fl(n),componentName:i}),!r}))}))}(e,i,o),ub(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"})};mb(e.items,(e=>{e.label in n&&(e.label=n[e.label])}))}(i,t),i}function cb(e,t,o){const n=[];if(0!=o.length){for(const e of o){const o=gb(e.position),r=fb(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{db(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(pb(e))mb(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{db(t,e.item,r,o)&&n.push(e)}}var i;for(const t of o)n.includes(t)||D("menu-bar-item-could-not-be-added",{menuBarConfig:e,addedItemConfig:t})}}function db(e,t,o,n){let i=!1;return mb(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=>bb(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 ub(e,t){const o=t.isUsingDefaultConfig;let n=!1;t.items=t.items.filter((t=>!!t.groups.length||(hb(e,t,o),!1))),t.items.length?(mb(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=>!(kb(t)&&!t.groups.length)||(hb(e,t,o),n=!0,!1)))})),n&&ub(e,t)):hb(e,e,o)}function hb(e,t,o){o||D("menu-bar-menu-empty",{menuBarConfig:e,emptyMenuConfig:t})}function mb(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)kb(e)&&o(e)}}function pb(e){return"object"==typeof e&&"group"in e}function gb(e){return e.startsWith("start")?"start":e.startsWith("end")?"end":e.startsWith("after")?"after":"before"}function fb(e){const t=e.match(/^[^:]+:(.+)/);return t?t[1]:null}function bb(e){return"string"==typeof e?e:e.menuId}function kb(e){return"object"==typeof e&&"menuId"in e}class wb extends(Y()){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 Ef(e),this.focusTracker=new Xi,this.tooltipManager=new Nf(e),this.poweredBy=new Wf(e),this.ariaLiveAnnouncer=new Qf(e),this.set("viewportOffset",this._readViewportOffsetFromConfig()),this.once("ready",(()=>{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();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.element),this.editor.keystrokes.listenTo(e.element)):e.once("render",(()=>{this.focusTracker.add(e.element),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:Fl(ab),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;e.editing.view;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;(ti(o.element)||n.beforeFocus)&&e.push(t)}return e.sort(((e,t)=>_b(e)-_b(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(),!!ti(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}}function _b(e){const{toolbarView:t,options:o}=e;let n=10;return ti(t.element)&&n--,o.isContextual&&n--,n}var yb=i(178),Ab={attributes:{"data-cke":!0}};Ab.setAttributes=Ar(),Ab.insert=_r().bind(null,"head"),Ab.domAPI=kr(),Ab.insertStyleElement=vr();fr()(yb.A,Ab);yb.A&&yb.A.locals&&yb.A.locals;class Cb extends pm{constructor(e){super(e),this.body=new pp(e)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}class vb extends pm{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 xb extends vb{constructor(e,t,o,n={}){super(e,t,o);const i=e.t;this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}}),this._generateLabel=n.label||(()=>i("Editor editing area: %0",this.name))}render(){super.render();const e=this._editingView;e.change((t=>{const o=e.document.getRoot(this.name);t.setAttribute("aria-label",this._generateLabel(this),o)}))}}class Eb extends pr{static get pluginName(){return"Notification"}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 Db extends(Y()){constructor(e,t){super(),t&&Oa(this,t),e&&this.set(e)}}var Bb=i(9938),Sb={attributes:{"data-cke":!0}};Sb.setAttributes=Ar(),Sb.insert=_r().bind(null,"head"),Sb.domAPI=kr(),Sb.insertStyleElement=vr();fr()(Bb.A,Sb);Bb.A&&Bb.A.locals&&Bb.A.locals;var Tb=i(3579),Ib={attributes:{"data-cke":!0}};Ib.setAttributes=Ar(),Ib.insert=_r().bind(null,"head"),Ib.domAPI=kr(),Ib.insertStyleElement=vr();fr()(Tb.A,Ib);Tb.A&&Tb.A.locals&&Tb.A.locals;const Pb=Yn("px");class Fb extends lr{static get pluginName(){return"ContextualBalloon"}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.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 E("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 E("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._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(e){this.visibleStack=e;const t=this._idToStack.get(e);if(!t)throw new E("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==t&&this._showView(Array.from(t.values()).pop())}_createPanelView(){this._view=new Ff(this.editor.locale),this.editor.ui.view.body.add(this._view),this.editor.ui.focusTracker.add(this._view.element),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 Mb(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 Rb(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._getBalloonPosition()),this._fakePanelsView.updatePosition(),n&&(this._singleViewMode=!0)}_getBalloonPosition(){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}}class Mb extends pm{constructor(e){super(e);const t=e.t,o=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new Xi,this.buttonPrevView=this._createButtonView(t("Previous"),qh.previousArrow),this.buttonNextView=this._createButtonView(t("Next"),qh.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 Em(this.locale);return o.set({label:e,icon:t,tooltip:!0}),o}}class Rb extends pm{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",Pb),left:o.to("left",Pb),width:o.to("width",Pb),height:o.to("height",Pb)}},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 pm;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 qn(this._balloonPanelView.element);Object.assign(this,{top:e,left:t,width:o,height:n})}}}var zb=i(7289),Vb={attributes:{"data-cke":!0}};Vb.setAttributes=Ar(),Vb.insert=_r().bind(null,"head"),Vb.domAPI=kr(),Vb.insertStyleElement=vr();fr()(zb.A,Vb);zb.A&&zb.A.locals&&zb.A.locals;class Ob extends jp{constructor(e,t){const o=e.t,n=Object.assign({},{showResetButton:!0,showIcon:!0,creator:Fg},t);super(e,n.creator),this.label=t.label,this._viewConfig=n,this._viewConfig.showIcon&&(this.iconView=new Am,this.iconView.content=qh.loupe,this.fieldWrapperChildren.add(this.iconView,0),this.extendTemplate({attributes:{class:"ck-search__query_with-icon"}})),this._viewConfig.showResetButton&&(this.resetButtonView=new Em(e),this.resetButtonView.set({label:o("Clear"),icon:qh.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 Nb extends pm{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 Lb extends pm{constructor(e){super(e),this.children=this.createCollection(),this.focusTracker=new Xi,this.setTemplate({tag:"div",attributes:{class:["ck","ck-search__results"],tabindex:-1},children:this.children}),this._focusCycler=new Im({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 Hb=/[\\^$.*+?()[\]{}|]/g,jb=RegExp(Hb.source);const qb=function(e){return(e=rs(e))&&jb.test(e)?e.replace(Hb,"\\$&"):e};var Ub=i(5540),Wb={attributes:{"data-cke":!0}};Wb.setAttributes=Ar(),Wb.insert=_r().bind(null,"head"),Wb.domAPI=kr(),Wb.insertStyleElement=vr();fr()(Ub.A,Wb);Ub.A&&Ub.A.locals&&Ub.A.locals;class $b extends pm{constructor(e,t){super(e),this._config=t,this.filteredView=t.filteredView,this.queryView=this._createSearchTextQueryView(),this.focusTracker=new Xi,this.keystrokes=new er,this.resultsView=new Lb(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 Nb,this._enableDefaultInfoViewBehavior(),this.on("render",(()=>{this.search("")}))),this.resultsView.children.addMany([this.infoView,this.filteredView]),this.focusCycler=new Im({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(qb(e),"ig"):null,o=this.filteredView.filter(t);this.fire("search",{query:e,...o})}_createSearchTextQueryView(){const e=new Ob(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 Gb=i(2688),Kb={attributes:{"data-cke":!0}};Kb.setAttributes=Ar(),Kb.insert=_r().bind(null,"head"),Kb.domAPI=kr(),Kb.insertStyleElement=vr();fr()(Gb.A,Kb);Gb.A&&Gb.A.locals&&Gb.A.locals;class Zb extends $b{constructor(e,o){super(e,o),this._config=o;const n=Yn("px");this.extendTemplate({attributes:{class:["ck-autocomplete"]}});const i=this.resultsView.bindTemplate;this.resultsView.set("isVisible",!1),this.resultsView.set("_position","s"),this.resultsView.set("_width",0),this.resultsView.extendTemplate({attributes:{class:[i.if("isVisible","ck-hidden",(e=>!e)),i.to("_position",(e=>`ck-search__results_${e}`))],style:{width:i.to("_width",n)}}}),this.focusTracker.on("change:isFocused",((e,t,n)=>{this._updateResultsVisibility(),n?this.resultsView.element.scrollTop=0:o.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(t.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 qn(this.queryView.fieldView.element).width;const e=Zb._getOptimalPosition({element:this.resultsView.element,target:this.queryView.element,fitInViewport:!0,positions:Zb.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}}Zb.defaultResultsPositions=[e=>({top:e.bottom,left:e.left,name:"s"}),(e,t)=>({top:e.top-t.height,left:e.left,name:"n"})],Zb._getOptimalPosition=oi;Jb={"&":"&","<":"<",">":">",'"':""","'":"'"};var Jb;var Yb=/[&<>"']/g;RegExp(Yb.source);var Qb=i(1998),Xb={attributes:{"data-cke":!0}};Xb.setAttributes=Ar(),Xb.insert=_r().bind(null,"head"),Xb.domAPI=kr(),Xb.insertStyleElement=vr();fr()(Qb.A,Xb);Qb.A&&Qb.A.locals&&Qb.A.locals;var ek=i(5706),tk={attributes:{"data-cke":!0}};tk.setAttributes=Ar(),tk.insert=_r().bind(null,"head"),tk.domAPI=kr(),tk.insertStyleElement=vr();fr()(ek.A,tk);ek.A&&ek.A.locals&&ek.A.locals;var ok=i(9939),nk={attributes:{"data-cke":!0}};nk.setAttributes=Ar(),nk.insert=_r().bind(null,"head"),nk.domAPI=kr(),nk.insertStyleElement=vr();fr()(ok.A,nk);ok.A&&ok.A.locals&&ok.A.locals;var ik=i(5667),rk={attributes:{"data-cke":!0}};rk.setAttributes=Ar(),rk.insert=_r().bind(null,"head"),rk.domAPI=kr(),rk.insertStyleElement=vr();fr()(ik.A,rk);ik.A&&ik.A.locals&&ik.A.locals;class sk extends ep{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 Am;return e.content=Ap,e.extendTemplate({attributes:{class:"ck-menu-bar__menu__button__arrow"}}),e}}var ak=i(4873),lk={attributes:{"data-cke":!0}};lk.setAttributes=Ar(),lk.insert=_r().bind(null,"head"),lk.domAPI=kr(),lk.insertStyleElement=vr();fr()(ak.A,lk);ak.A&&ak.A.locals&&ak.A.locals;class ck extends pm{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 dk=i(55),uk={attributes:{"data-cke":!0}};uk.setAttributes=Ar(),uk.insert=_r().bind(null,"head"),uk.domAPI=kr(),uk.insertStyleElement=vr();fr()(dk.A,uk);dk.A&&dk.A.locals&&dk.A.locals;class hk extends pm{constructor(e){super(e);const t=this.bindTemplate;this.buttonView=new sk(e),this.buttonView.delegate("mouseenter").to(this),this.buttonView.bind("isOn","isEnabled").to(this,"isOpen","isEnabled"),this.panelView=new ck(e),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new er,this.focusTracker=new Xi,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),rb.closeOnEscKey(this),this._repositionPanelOnOpen()}_attachBehaviors(){this.parentMenuView?(rb.openOnButtonClick(this),rb.openOnArrowRightKey(this),rb.closeOnArrowLeftKey(this),rb.closeOnParentClose(this)):(this._propagateArrowKeystrokeEvents(),rb.openAndFocusPanelOnArrowDownKey(this),rb.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=hk._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=n?n.name:this._panelPositions[0].name}))}focus(){this.buttonView.focus()}get _panelPositions(){const{southEast:e,southWest:t,northEast:o,northWest:n,westSouth:i,eastSouth:r,westNorth:s,eastNorth:a}=sb;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]}}hk._getOptimalPosition=oi;const mk=hk;class pk extends kg{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=gk(e);return t&&t.isToggleable}));this.items.forEach((t=>{const o=gk(t);o&&(o.hasCheckSpace=e)}))}}function gk(e){return e instanceof mg?e.children.map((e=>function(e){return"object"==typeof e&&"buttonView"in e&&e.buttonView instanceof Em}(e)?e.buttonView:e)).find((e=>e instanceof ep)):null}class fk extends wp{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 bk=i(4782),kk={attributes:{"data-cke":!0}};kk.setAttributes=Ar(),kk.insert=_r().bind(null,"head"),kk.domAPI=kr(),kk.insertStyleElement=vr();fr()(bk.A,kk);bk.A&&bk.A.locals&&bk.A.locals;const wk=["mouseenter","arrowleft","arrowright","change:isOpen"];class _k extends pm{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=lb({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(),ib.toggleMenusAndFocusItemsOnHover(this),ib.closeMenusWhenTheBarCloses(this),ib.closeMenuWhenAnotherOnTheSameLevelOpens(this),ib.focusCycleMenusOnArrows(this),ib.closeOnClickOutside(this),ib.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(...wk).to(t),e.parentMenuView=t):e.delegate(...wk).to(this,(e=>"menu:"+e)),e._attachBehaviors(),this.menus.push(e)}_createMenu({componentFactory:e,menuDefinition:t,parentMenuView:o}){const n=this.locale,i=new mk(n);return this.registerMenu(i,o),i.buttonView.set({label:t.label}),i.once("change:isOpen",(()=>{const o=new pk(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 nb(n,t);if(U(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 pg(n))}return i}_createMenuItemContentFromFactory({componentName:e,parentMenuView:t,componentFactory:o}){const n=o.create(e);return n instanceof mk||n instanceof ip||n instanceof fk?(this._registerMenuTree(n,t),n.on("execute",(()=>{this.close()})),n):(D("menu-bar-component-unsupported",{componentName:e,componentView:n}),null)}_registerMenuTree(e,t){if(!(e instanceof mk))return void e.delegate("mouseenter").to(t);this.registerMenu(e,t);const o=e.panelView.children.filter((e=>e instanceof pk))[0];if(!o)return void e.delegate("mouseenter").to(t);const n=o.items.filter((e=>e instanceof mg));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 yk extends wb{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;this.editor.editing.view.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)}Sr({view:t,element:o,isDirectHost:!1,keepOnFocus:!0})}}class Ak extends Cb{constructor(e,t,o={}){super(e);const n=e.t;this.toolbar=new cg(e,{shouldGroupWhenFull:o.shouldToolbarGroupWhenFull}),this.menuBarView=new _k(e),this.editable=new xb(e,t,o.editableElement,{label:e=>n("Rich Text Editor. Editing area: %0",e.name)}),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 Ck extends(Hh(Lh)){constructor(e,t={}){if(!vk(e)&&void 0!==t.initialData)throw new E("editor-create-initial-data",null);super(t),void 0===this.config.get("initialData")&&this.config.set("initialData",function(e){return vk(e)?(t=e,t instanceof HTMLTextAreaElement?t.value:t.innerHTML):e;var t}(e)),vk(e)&&(this.sourceElement=e,function(e,t){if(t.ckeditorInstance)throw new E("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 Ak(this.locale,this.editing.view,{editableElement:this.sourceElement,shouldToolbarGroupWhenFull:o});this.ui=new yk(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(vk(e)&&"TEXTAREA"===e.tagName)throw new E("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 vk(e){return Bn(e)}class xk extends(z()){constructor(){super(...arguments),this._stack=[]}add(e,t){const o=this._stack,n=o[0];this._insertDescriptor(e);const i=o[0];n===i||Ek(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||Ek(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(Ek(e,t[o]))return;o>-1&&t.splice(o,1);let n=0;for(;t[n]&&Dk(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 Ek(e,t){return e&&t&&e.priority==t.priority&&Bk(e.classes)==Bk(t.classes)}function Dk(e,t){return e.priority>t.priority||!(e.priorityBk(t.classes)}function Bk(e){return Array.isArray(e)?e.sort().join(","):e}const Sk="widget-type-around";function Tk(e,t,o){return!!e&&Rk(e)&&!o.isInline(t)}function Ik(e){return e.getAttribute(Sk)}const Pk='',Fk="ck-widget",Mk="ck-widget_selected";function Rk(e){return!!e.is("element")&&!!e.getCustomProperty("widget")}function zk(e,t,o={}){if(!e.is("containerElement"))throw new E("widget-to-widget-wrong-element-type",null,{element:e});return t.setAttribute("contenteditable","false",e),t.addClass(Fk,e),t.setCustomProperty("widget",!0,e),e.getFillerOffset=Hk,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 Am;return o.set("content",Pk),o.render(),t.appendChild(o.element),t}));t.insert(t.createPositionAt(e,0),o),t.addClass(["ck-widget_with-selection-handle"],e)}(e,t),Nk(e,t),e}function Vk(e,t,o){if(t.classes&&o.addClass(xi(t.classes),e),t.attributes)for(const n in t.attributes)o.setAttribute(n,t.attributes[n],e)}function Ok(e,t,o){if(t.classes&&o.removeClass(xi(t.classes),e),t.attributes)for(const n in t.attributes)o.removeAttribute(n,e)}function Nk(e,t,o=Vk,n=Ok){const i=new xk;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 Lk(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)})),Nk(e,t),e}function Hk(){return null}function jk(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 qk extends lr{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})=>zk(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(qk.buttonName,(t=>{const o=new Em(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 Uk=Symbol("isOPEmbeddedTable");function Wk(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(Uk)&&Rk(e)}(t))}function $k(e){return _.get(e.config,"_config.openProject.context.resource")}function Gk(e){return _.get(e.config,"_config.openProject.pluginContext")}function Kk(e,t){return Gk(e).services[t]}function Zk(e){return Kk(e,"pathHelperService")}function Jk(e){return Kk(e,"i18n")}class Yk extends lr{static get pluginName(){return"EmbeddedTableEditing"}static get buttonName(){return"insertEmbeddedTable"}init(){const e=this.editor,t=e.model,o=e.conversion,n=Gk(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(Uk,!0,o),zk(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(Yk.buttonName,(t=>{const o=new Em(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 Qk{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 Xk extends dr{constructor(e,t){super(e),this._buffer=new Qk(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 ew=["insertText","insertReplacementText"],tw=[...ew,"insertCompositionText"];class ow extends za{constructor(e){super(e),this.focusObserver=e.getObserver(xl);const t=r.isAndroid?tw:ew,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 w(o,"insertText");o.fire(c,new Na(e,l,{text:r,selection:e.createSelection(s)})),c.stop.called&&n.stop()})),r.isAndroid||o.on("compositionend",((t,{data:n,domEvent:i})=>{this.isEnabled&&n&&o.fire("insertText",new Na(e,i,{text:n}))}),{priority:"lowest"})}observe(){}stopObserving(){}}class nw extends lr{static get pluginName(){return"Input"}init(){const e=this.editor,t=e.model,o=e.editing.view,n=e.editing.mapper,i=t.document.selection;this._compositionQueue=new iw(e),o.addObserver(ow);const s=new Xk(e,e.config.get("typing.undoStep")||20);e.commands.add("insertText",s),e.commands.add("input",s),this.listenTo(o.document,"insertText",((s,a)=>{o.document.isComposing||a.preventDefault(),r.isAndroid&&o.document.isComposing&&this._compositionQueue.flush("next beforeinput");const{text:l,selection:c}=a;let d;d=c?Array.from(c.getRanges()).map((e=>n.toModelRange(e))):Array.from(i.getRanges());let u=l;if(r.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)};r.isAndroid&&o.document.isComposing?this._compositionQueue.push(h):(e.execute("insertText",h),o.scrollToTheSelection())})),r.isAndroid?this.listenTo(o.document,"keydown",((e,n)=>{!i.isCollapsed&&229==n.keyCode&&o.document.isComposing&&rw(t,s)})):this.listenTo(o.document,"compositionstart",(()=>{i.isCollapsed||rw(t,s)})),r.isAndroid?(this.listenTo(o.document,"mutations",((e,{mutations:t})=>{if(o.document.isComposing)for(const{node:e}of t){const t=sw(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 iw{constructor(e){this.flushDebounced=el((()=>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(cc.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 rw(e,t){if(!t.isEnabled)return;const o=t.buffer;o.lock(),e.enqueueChange(o.batch,(()=>{e.deleteContent(e.document.selection)})),o.unlock()}function sw(e,t){let o=e.is("$text")?e.parent:e;for(;!t.toModelElement(o);)o=o.parent;return o}class aw extends dr{constructor(e,t){super(e),this.direction=t,this._buffer=new Qk(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+=ne(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 lw="word",cw="selection",dw="backward",uw="forward",hw={deleteContent:{unit:cw,direction:dw},deleteContentBackward:{unit:"codePoint",direction:dw},deleteWordBackward:{unit:lw,direction:dw},deleteHardLineBackward:{unit:cw,direction:dw},deleteSoftLineBackward:{unit:cw,direction:dw},deleteContentForward:{unit:"character",direction:uw},deleteWordForward:{unit:lw,direction:uw},deleteHardLineForward:{unit:cw,direction:uw},deleteSoftLineForward:{unit:cw,direction:uw}};class mw extends za{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:s,domEvent:a,inputType:l}=i,c=hw[l];if(!c)return;const d={direction:c.direction,unit:c.unit,sequence:o};d.unit==cw&&(d.selectionToRemove=e.createSelection(s[0])),"deleteContentBackward"===l&&(r.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(nr(t,n)||ir(t,n)||sr(t,n))continue;o++}else(n.is("containerElement")||n.is("emptyElement"))&&o++;if(o>1)return!0}return!1}(s)&&(d.unit=cw,d.selectionToRemove=e.createSelection(s)));const u=new Ms(t,"delete",s[0]);t.fire(u,new Na(e,a,d)),u.stop.called&&n.stop()})),r.isBlink&&function(e){const t=e.view,o=t.document;let n=null,i=!1;function r(e){return e==ki.backspace||e==ki.delete}function s(e){return e==ki.backspace?dw:uw}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 Ms(o,"delete",e),i={unit:cw,direction:s(l),selectionToRemove:d};o.fire(n,new Na(t,c,i))}})),o.on("beforeinput",((e,{inputType:t})=>{const o=hw[t];r(n)&&o&&o.direction==s(n)&&(i=!0)}),{priority:"high"}),o.on("beforeinput",((e,{inputType:t,data:o})=>{n==ki.delete&&"insertText"==t&&""==o&&e.stop()}),{priority:"high"})}(this)}observe(){}stopObserving(){}}class pw extends lr{static get pluginName(){return"Delete"}init(){const e=this.editor,t=e.editing.view,o=t.document,n=e.model.document;t.addObserver(mw),this._undoOnBackspace=!1;const i=new aw(e,"forward");e.commands.add("deleteForward",i),e.commands.add("forwardDelete",i),e.commands.add("delete",new aw(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.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 gw extends lr{static get requires(){return[nw,pw]}static get pluginName(){return"Typing"}}function fw(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 bw extends(Y()){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}=fw(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 kw extends lr{static get pluginName(){return"TwoStepCaretMovement"}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==ki.arrowright,r=t.keyCode==ki.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&&vw(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||!ww(n,t))&&(!!vw(i,t)&&(Aw(e),ww(n,t)&&vw(i,t,!0)?yw(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?(Aw(e),this._restoreGravity(),vw(i,t,!0)?yw(o,t):_w(o,t,i),!0):i.isAtStart?!!ww(n,t)&&(Aw(e),_w(o,t,i),!0):!ww(n,t)&&vw(i,t,!0)?(Aw(e),_w(o,t,i),!0):!!Cw(i,t)&&(i.isAtEnd&&!ww(n,t)&&vw(i,t)?(Aw(e),_w(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(Nu);let i=!1;this.listenTo(n,"mousedown",(()=>{i=!0})),this.listenTo(n,"selectionChange",(()=>{const e=this.attributes;if(!i)return;if(i=!1,!o.isCollapsed)return;if(!ww(o,e))return;const n=o.getFirstPosition();vw(n,e)&&(n.isAtStart||vw(n,e,!0)?yw(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();ww(t,o)&&vw(n,o)&&yw(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=ww(o,this.attributes)&&!Cw(e,this.attributes)}),{priority:"high"}),this.listenTo(t,"deleteContent",(()=>{i&&(i=!1,r||e.model.enqueueChange((()=>{const e=o.getFirstPosition();ww(o,this.attributes)&&vw(e,this.attributes)&&(e.isAtStart||vw(e,this.attributes,!0)?yw(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 ww(e,t){for(const o of t)if(e.hasAttribute(o))return!0;return!1}function _w(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 yw(e,t){e.change((e=>{e.removeSelectionAttribute(t)}))}function Aw(e){e.preventDefault()}function Cw(e,t){return vw(e.getShiftedBy(-1),t)}function vw(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}xw('"'),xw("'"),xw("'"),xw('"'),xw('"'),xw("'");function xw(e){return new RegExp(`(^|\\s)(${e})([^${e}]*)(${e})$`)}function Ew(e,t,o,n){return n.createRange(Dw(e,t,o,!0,n),Dw(e,t,o,!1,n))}function Dw(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 Bw(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=Ew(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*Sw(e,t){for(const o of t)o&&e.getAttributeProperties(o[0]).copyOnEnter&&(yield o)}class Tw extends dr{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=Sw(e.model.schema,o.getAttributes());return Iw(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 Iw(e,o.focus),!0;e.setSelection(a,0)}}return!1}}function Iw(e,t){e.split(t),e.setSelection(t.parent.nextSibling,0)}const Pw={insertParagraph:{isSoft:!1},insertLineBreak:{isSoft:!0}};class Fw extends za{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 s=i.inputType;r.isSafari&&o&&"insertParagraph"==s&&(s="insertLineBreak");const a=i.domEvent,l=Pw[s];if(!l)return;const c=new Ms(t,"enter",i.targetRanges[0]);t.fire(c,new Na(e,a,{isSoft:l.isSoft})),c.stop.called&&n.stop()}))}observe(){}stopObserving(){}}class Mw extends lr{static get pluginName(){return"Enter"}init(){const e=this.editor,t=e.editing.view,o=t.document,n=this.editor.t;t.addObserver(Fw),e.commands.add("enter",new Tw(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 Rw extends dr{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=Sw(e.schema,o.getAttributes());zw(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?zw(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((Vw(i,e)||Vw(r,e))&&i!==r)return!1;return!0}(e.schema,t.selection)}}function zw(e,t,o){const n=t.createElement("softBreak");e.insertContent(n,o),t.setSelection(n,"after")}function Vw(e,t){return!e.is("rootElement")&&(t.isLimit(e)||Vw(e.parent,t))}class Ow extends lr{static get pluginName(){return"ShiftEnter"}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(Fw),e.commands.add("shiftEnter",new Rw(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 Nw=i(6779),Lw={attributes:{"data-cke":!0}};Lw.setAttributes=Ar(),Lw.insert=_r().bind(null,"head"),Lw.domAPI=kr(),Lw.insertStyleElement=vr();fr()(Nw.A,Lw);Nw.A&&Nw.A.locals&&Nw.A.locals;const Hw=["before","after"],jw=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,qw="ck-widget__type-around_disabled";class Uw extends lr{constructor(){super(...arguments),this._currentFakeCaretModelElement=null}static get pluginName(){return"WidgetTypeAround"}static get requires(){return[Mw,pw]}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(qw,o):e.addClass(qw,o)})),i||e.model.change((e=>{e.removeSelectionAttribute(Sk)}))})),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=Ik(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&&Tk(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 Hw){const n=new Wh({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(jw,!0)]});e.appendChild(n.render())}}(o,t),function(e){const t=new Wh({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:[Rk,"$text"],priority:"high"}),this._listenToIfEnabled(o,"change:range",((t,o)=>{o.directChange&&e.model.change((e=>{e.removeSelectionAttribute(Sk)}))})),this._listenToIfEnabled(t.document,"change:data",(()=>{const t=o.getSelectedElement();if(t){if(Tk(e.editing.mapper.toViewElement(t),t,n))return}e.model.change((e=>{e.removeSelectionAttribute(Sk)}))})),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(Hw.map(r),e),this._currentFakeCaretModelElement=null)}const s=t.selection.getSelectedElement();if(!s)return;const a=o.mapper.toViewElement(s);if(!Tk(a,s,n))return;const l=Ik(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(Sk)}))}))}_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=Ci(e,t);return"down"===o||"right"===o}(t.keyCode,o.locale.contentLanguageDirection),l=s.document.selection.getSelectedElement();let c;Tk(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=Ik(t.document.selection);return t.change((t=>{if(!o)return t.setSelectionAttribute(Sk,e?"after":"before"),!0;if(!(o===(e?"after":"before")))return t.removeSelectionAttribute(Sk),!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!!Tk(t.editing.mapper.toViewElement(r),r,n)&&(o.change((t=>{i._setSelectionOverElement(r),t.setSelectionAttribute(Sk,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!!Tk(i.toViewElement(s),s,n)&&(o.change((t=>{t.setSelection(s,"on"),t.setSelectionAttribute(Sk,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:Tk(r,i,s)&&(this._insertParagraph(i,n.isSoft?"before":"after"),a=!0),a&&(n.preventDefault(),o.stop())}),{context:Rk})}_enableInsertingParagraphsOnTypingKeystroke(){const e=this.editor.editing.view.document;this._listenToIfEnabled(e,"insertText",((t,o)=>{this._insertParagraphAccordingToFakeCaretPosition()&&(o.selection=e.selection)}),{priority:"high"}),r.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=Ik(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:Rk})}_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=Ik(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=Ik(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;Ik(t)&&e.stop()}),{priority:"high"})}}function Ww(e){const t=e.model;return(o,n)=>{const i=n.keyCode==ki.arrowup,r=n.keyCode==ki.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=$w(n,e,"forward");if(!o)return null;const i=n.createRange(e,o),r=Gw(n.schema,i,"backward");return r?n.createRange(e,r):null}{const e=t.isCollapsed?t.focus:t.getFirstPosition(),o=$w(n,e,"backward");if(!o)return null;const i=n.createRange(o,e),r=Gw(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=qn.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 $w(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 Gw(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 Kw=i(1216),Zw={attributes:{"data-cke":!0}};Zw.setAttributes=Ar(),Zw.insert=_r().bind(null,"head"),Zw.domAPI=kr(),Zw.insertStyleElement=vr();fr()(Kw.A,Zw);Kw.A&&Kw.A.locals&&Kw.A.locals;class Jw extends lr{constructor(){super(...arguments),this._previouslySelected=new Set}static get pluginName(){return"Widget"}static get requires(){return[Uw,pw]}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;Rk(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;Rk(e)&&!Yw(e,r)&&(n.addClass(Mk,e),this._previouslySelected.add(e),r=e)}}),{priority:"low"}),t.addObserver(Nu),this.listenTo(o,"mousedown",((...e)=>this._onMousedown(...e))),this.listenTo(o,"arrowKey",((...e)=>{this._handleSelectionChangeOnArrowKeyPress(...e)}),{context:[Rk,"$text"]}),this.listenTo(o,"arrowKey",((...e)=>{this._preventDefaultOnArrowKeyPress(...e)}),{context:"$root"}),this.listenTo(o,"arrowKey",Ww(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:Rk,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==ki.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 s=t.target;if(t.domEvent.detail>=3)return void(this._selectBlockContent(s)&&t.preventDefault());if(function(e){let t=e;for(;t;){if(t.is("editableElement")&&!t.is("rootElement"))return!0;if(Rk(t))return!1;t=t.parent}return!1}(s))return;if(!Rk(s)&&(s=s.findAncestor(Rk),!s))return;r.isAndroid&&t.preventDefault(),i.isFocused||n.focus();const a=o.editing.mapper.toModelElement(s);this._setSelectionOverElement(a)}_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 Hl({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=Ci(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(Mk,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(Rk);if(!n)return!1;const i=t.toModelElement(n);return!!i&&(e.model.change((e=>{e.setSelection(i,"on")})),!0)}}function Yw(e,t){return!!t&&Array.from(e.getAncestors()).includes(t)}class Qw extends lr{constructor(){super(...arguments),this._toolbarDefinitions=new Map}static get requires(){return[Fb]}static get pluginName(){return"WidgetToolbarRepository"}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||!Rk(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 D("widget-toolbar-no-items",{toolbarId:e});const r=this.editor,s=r.t,a=new cg(r.locale);if(a.ariaLabel=t||s("Widget toolbar"),this._toolbarDefinitions.has(e))throw new E("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)?Xw(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:e_(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);Xw(this.editor,t)}})))}_isToolbarVisible(e){return this._balloon.visibleView===e.view}_isToolbarInBalloon(e){return this._balloon.hasView(e.view)}}function Xw(e,t){const o=e.plugins.get("ContextualBalloon"),n=e_(e,t);o.updatePosition(n)}function e_(e,t){const o=e.editing.view,n=Ff.defaultPositions;return{target:o.domConverter.mapViewToDom(t),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class t_ extends(Y()){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 qn(t);this.activeHandlePosition=function(e){const t=["top-left","top-right","bottom-right","bottom-left"];for(const o of t)if(e.classList.contains(o_(o)))return o}(e),this._referenceCoordinates=function(e,t){const o=new qn(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 qn(e)){const o=jk(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 o_(e){return`ck-widget__resizer__handle-${e}`}class n_ extends pm{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 i_ extends(Y()){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 t_(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 qn(o),i=Math.round(n.width),r=Math.round(n.height),s=new qn(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 qn(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"!==ie(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 Wh({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(o=n,`ck-widget__resizer__handle-${o}`)}}).render());var o}_appendSizeUI(e){this._sizeView=new n_,this._sizeView.render(),e.appendChild(this._sizeView.element)}}var r_=i(2060),s_={attributes:{"data-cke":!0}};s_.setAttributes=Ar(),s_.insert=_r().bind(null,"head"),s_.domAPI=kr(),s_.insertStyleElement=vr();fr()(r_.A,s_);r_.A&&r_.A.locals&&r_.A.locals;class a_ extends lr{constructor(){super(...arguments),this._resizers=new Map}static get pluginName(){return"WidgetResize"}init(){const e=this.editor.editing,o=t.window.document;this.set("selectedResizer",null),this.set("_activeResizer",null),e.view.addObserver(Nu),this._observer=new(Rn()),this.listenTo(e.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(o,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(o,"mouseup",this._mouseUpListener.bind(this)),this._redrawSelectedResizerThrottled=Bh((()=>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(t.window,"resize",this._redrawSelectedResizerThrottled);const n=this.editor.editing.view.document.selection;n.on("change",(()=>{const e=n.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 i_(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;i_.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 l_(e,t,o){e.ui.componentFactory.add(t,(t=>{const n=new Em(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 c_="ck-toolbar-container";function d_(e,t,o,n){const i=t.config.get(o+".toolbar");if(!i||!i.length)return;const r=t.plugins.get("ContextualBalloon"),s=new cg(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=u_(e);o.updatePosition(t)}}(t,n):r.hasView(s)||r.add({view:s,position:u_(t),balloonClassName:c_}):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 u_(e){const t=e.editing.view,o=Ff.defaultPositions;return{target:t.domConverter.viewToDom(t.document.selection.getSelectedElement()),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast]}}class h_ extends lr{static get requires(){return[Fb]}static get pluginName(){return"EmbeddedTableToolbar"}init(){const e=this.editor,t=this.editor.model,o=Gk(e);l_(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(){d_(this,this.editor,"OPMacroEmbeddedTable",Wk)}}const m_=Symbol("isWpButtonMacroSymbol");function p_(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(m_)&&Rk(e)}(t))}class g_ extends lr{static get pluginName(){return"OPMacroWpButtonEditing"}static get buttonName(){return"insertWorkPackageButton"}init(){const e=this.editor,t=e.model,o=e.conversion,n=Gk(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(g_.buttonName,(t=>{const o=new Em(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){e.getAttribute("type");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(m_,!0,e),zk(e,t,{label:o})}(r,t,{label:n})}}class f_ extends lr{static get requires(){return[Fb]}static get pluginName(){return"OPMacroWpButtonToolbar"}init(){const e=this.editor,t=(this.editor.model,Gk(e));l_(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(){d_(this,this.editor,"OPMacroWpButton",p_)}}class b_ extends(Y()){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 k_ extends lr{constructor(){super(...arguments),this.loaders=new Yi,this._loadersMap=new Map,this._pendingAction=null}static get pluginName(){return"FileRepository"}static get requires(){return[jh]}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 D("filerepository-no-upload-adapter"),null;const t=new w_(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 w_?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(jh);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 w_ extends(Y()){constructor(e,t){super(),this.id=A(),this._filePromiseWrapper=this._createFilePromiseWrapper(e),this._adapter=t(this),this._reader=new b_,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 E("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 E("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 __{constructor(e,t,o){this.loader=e,this.resource=t,this.editor=o}upload(){const e=this.resource,t=Kk(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 y_ extends La{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 w(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 Bl(t,{cacheFiles:o})};"drop"!=e.type&&"dragover"!=e.type||(n.dropRange=function(e,t){const o=t.target.ownerDocument,n=t.clientX,i=t.clientY;let r;o.caretRangeFromPoint&&o.caretRangeFromPoint(n,i)?r=o.caretRangeFromPoint(n,i):t.rangeParent&&(r=o.createRange(),r.setStart(t.rangeParent,t.rangeOffset),r.collapse(!0));if(r)return e.domConverter.domRangeToView(r);return null}(this.view,e)),this.fire(e.type,e,n)}}const A_=["figcaption","li"],C_=["ol","ul"];function v_(e){if(e.is("$text")||e.is("$textProxy"))return e.data;if(e.is("element","img")&&e.hasAttribute("alt"))return e.getAttribute("alt");if(e.is("element","br"))return"\n";let t="",o=null;for(const n of e.getChildren())t+=x_(n,o)+v_(n),o=n;return t}function x_(e,t){return t?e.is("element","li")&&!e.isEmpty&&e.getChild(0).is("containerElement")||C_.includes(e.name)&&C_.includes(t.name)?"\n\n":e.is("containerElement")||t.is("containerElement")?A_.includes(e.name)||A_.includes(t.name)?"\n":e.is("element")&&e.getCustomProperty("dataPipeline:transparentRendering")||t.is("element")&&t.getCustomProperty("dataPipeline:transparentRendering")?"":"\n\n":"":""}const E_=function(e,t){return e&&Di(e,t,mo)};const D_=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 L_(o,(o=>new Zl(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=A().substring(1,6);return 3===t.length?`${t.slice(0,2).join(":")}:${o}`:`${t.join(":")}:${o}`}}class j_ extends lr{static get pluginName(){return"ClipboardPipeline"}static get requires(){return[H_]}init(){this.editor.editing.view.addObserver(y_),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 w(this,"inputTransformation");this.fire(s,{content:i,dataTransfer:n,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,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);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",v_(n.content))),"cut"==n.method&&e.model.deleteContent(t.selection)}),{priority:"low"})}}const q_=Yn("px");class U_ extends pm{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=>q_(e))),top:e.to("top",(e=>q_(e))),width:e.to("width",(e=>q_(e)))}}})}}class W_ extends lr{constructor(){super(...arguments),this.removeDropMarkerDelayed=or((()=>this.removeDropMarker()),40),this._updateDropMarkerThrottled=Bh((e=>this._updateDropMarker(e)),40),this._reconvertMarkerThrottled=Bh((()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")}),0),this._dropTargetLineView=new U_,this._domEmitter=new(Rn()),this._scrollables=new Map}static get pluginName(){return"DragDropTarget"}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=$_(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=$_(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 o=this.editor.editing,n=e.start.nodeBefore,i=e.start.nodeAfter,r=e.start.parent,s=n?o.mapper.toViewElement(n):null,a=s?o.view.domConverter.mapViewToDom(s):null,l=i?o.mapper.toViewElement(i):null,c=l?o.view.domConverter.mapViewToDom(l):null,d=o.mapper.toViewElement(r);if(!d)return;const u=o.view.domConverter.mapViewToDom(d),h=this._getScrollableRect(d),{scrollX:m,scrollY:p}=t.window,g=a?new qn(a):null,f=c?new qn(c):null,b=new qn(u).excludeScrollbarsAndBorders(),k=g?g.bottom:b.top,w=f?f.top:b.bottom,_=t.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 K_(e,J_(e,t.parent),n,i)}}}else if(a.schema.isInline(c))return K_(e,c,n,i);if(a.schema.isBlock(c))return K_(e,c,n,i);if(a.schema.checkChild(c,"$block")){const t=Array.from(c.getChildren()).filter((t=>t.is("element")&&!G_(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")})),r.isAndroid&&this.forceDisabled("noAndroidSupport"),e.plugins.has("BlockToolbar")){const o=e.plugins.get("BlockToolbar").buttonView.element;this._domEmitter.listenTo(o,"dragstart",((e,t)=>this._handleBlockDragStart(t))),this._domEmitter.listenTo(t.document,"dragover",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(t.document,"drop",((e,t)=>this._handleBlockDragging(t))),this._domEmitter.listenTo(t.document,"dragend",(()=>this._handleBlockDragEnd()),{useCapture:!0}),this.isEnabled&&o.setAttribute("draggable","true"),this.on("change:isEnabled",((e,t,n)=>{o.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(y_).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(y_).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 Q_=i(9262),X_={attributes:{"data-cke":!0}};X_.setAttributes=Ar(),X_.insert=_r().bind(null,"head"),X_.domAPI=kr(),X_.insertStyleElement=vr();fr()(Q_.A,X_);Q_.A&&Q_.A.locals&&Q_.A.locals;class ey extends lr{constructor(){super(...arguments),this._clearDraggableAttributesDelayed=or((()=>this._clearDraggableAttributes()),40),this._blockMode=!1,this._domEmitter=new(Rn())}static get pluginName(){return"DragDrop"}static get requires(){return[j_,Jw,W_,Y_]}init(){const e=this.editor,t=e.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,t.addObserver(y_),t.addObserver(Nu),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)})),r.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,o=e.model,n=e.editing.view,i=n.document,s=e.plugins.get(W_);this.listenTo(i,"dragstart",((e,t)=>{if(t.target&&t.target.is("editableElement"))return void t.preventDefault();if(this._prepareDraggedRange(t.target),!this._draggedRange)return void t.preventDefault();this._draggingUid=A(),t.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",t.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const n=o.createSelection(this._draggedRange.toRange());this.editor.plugins.get("ClipboardPipeline")._fireOutputTransformationEvent(t.dataTransfer,n,"dragstart");const{dataTransfer:i,domTarget:r,domEvent:s}=t,{clientX:a}=s;this._updatePreview({dataTransfer:i,domTarget:r,clientX:a}),t.stopPropagation(),this.isEnabled||(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(t.document,"dragend",(()=>{this._blockMode=!1}),{useCapture:!0}),this.listenTo(i,"dragenter",(()=>{this.isEnabled&&n.focus()})),this.listenTo(i,"dragleave",(()=>{s.removeDropMarkerDelayed()})),this.listenTo(i,"dragging",((e,t)=>{if(!this.isEnabled)return void(t.dataTransfer.dropEffect="none");const{clientX:o,clientY:n}=t.domEvent;s.updateDropMarker(t.target,t.targetRanges,o,n,this._blockMode,this._draggedRange),this._draggedRange||(t.dataTransfer.dropEffect="copy"),r.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(W_);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"==ty(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(j_);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"==ty(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(r.isAndroid||!i)return;this._clearDraggableAttributesDelayed.cancel();let s=oy(i.target);if(r.isBlink&&!e.isReadOnly&&!s&&!o.selection.isCollapsed){const e=o.selection.getSelectedElement();e&&Rk(e)||(s=o.selection.editableElement)}s&&(t.change((e=>{e.setAttribute("draggable","true",s)})),this._draggableElement=e.editing.mapper.toModelElement(s))})),this.listenTo(o,"mouseup",(()=>{r.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(W_).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?oy(e):null;if(i){const e=t.editing.mapper.toModelElement(i);if(this._draggedRange=cc.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=cc.fromRange(s));const a=ny(o,r);if(r.length>1)this._draggedRange=cc.fromRange(a),this._blockMode=!0;else if(1==r.length){const e=s.start.isTouching(a.start)&&s.end.isTouching(a.end);this._draggedRange=cc.fromRange(e?a:s),this._blockMode=e}o.change((e=>e.setSelection(this._draggedRange.toRange())))}_updatePreview({dataTransfer:e,domTarget:o,clientX:n}){const i=this.editor.editing.view,s=i.document.selection.editableElement,a=i.domConverter.mapViewToDom(s),l=t.window.getComputedStyle(a);this._previewContainer?this._previewContainer.firstElementChild&&this._previewContainer.removeChild(this._previewContainer.firstElementChild):(this._previewContainer=Ae(t.document,"div",{style:"position: fixed; left: -999999px;"}),t.document.body.appendChild(this._previewContainer));const c=new qn(a);if(a.contains(o))return;const d=parseFloat(l.paddingLeft),u=Ae(t.document,"div");u.className="ck ck-content",u.style.width=l.width,u.style.paddingLeft=`${c.left-n+d}px`,r.isiOS&&(u.style.backgroundColor="white"),u.innerHTML=e.getData("text/html"),e.setDragImage(u,0,0),this._previewContainer.appendChild(u)}}function ty(e){return r.isGecko?e.dropEffect:["all","copyMove"].includes(e.effectAllowed)?"move":"copy"}function oy(e){if(e.is("editableElement"))return null;if(e.hasClass("ck-widget__selection-handle"))return e.findAncestor(Rk);if(Rk(e))return e;const t=e.findAncestor((e=>Rk(e)||e.is("editableElement")));return Rk(t)?t:null}function ny(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 ny(e,[i])}return e.createRange(r,s)}class iy extends lr{static get pluginName(){return"PastePlainText"}static get requires(){return[j_]}init(){const e=this.editor,t=e.model,o=e.editing.view,n=t.document.selection;o.addObserver(y_),e.plugins.get(j_).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 ry extends lr{static get pluginName(){return"Clipboard"}static get requires(){return[H_,j_,ey,iy]}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 sy extends dr{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=>!ly(e,a)));t.length&&(ay(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=Ud([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 Md(i.baseVersion)),t.addOperation(i),o.applyOperation(i),n.history.setOperationAsUndone(e,i)}}}}function ay(e){e.sort(((e,t)=>e.start.isBefore(t.start)?-1:1));for(let t=1;tt!==e&&t.containsRange(e,!0)))}class cy extends sy{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 dy extends sy{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 uy extends lr{constructor(){super(...arguments),this._batchRegistry=new WeakSet}static get pluginName(){return"UndoEditing"}init(){const e=this.editor,t=e.t;this._undoCommand=new cy(e),this._redoCommand=new dy(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 hy extends lr{static get pluginName(){return"UndoUI"}init(){const e=this.editor,t=e.locale,o=e.t,n="ltr"==t.uiLanguageDirection?qh.undo:qh.redo,i="ltr"==t.uiLanguageDirection?qh.redo:qh.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(Em,e,t,o,n);return i.set({tooltip:!0}),i})),i.ui.componentFactory.add("menuBar:"+e,(()=>this._createButton(ip,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 my extends lr{static get requires(){return[uy,hy]}static get pluginName(){return"Undo"}}function py(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function gy(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 fy(e,t){const o=Qi(t.getSelectedBlocks());return!o||e.isObject(o)||o.isEmpty&&"listItem"!=o.name?"imageBlock":"imageInline"}function by(e){return e&&e.endsWith("px")?parseInt(e):null}function ky(e){const t=by(e.getStyle("width")),o=by(e.getStyle("height"));return!(!t||!o)}const wy=/^(image|image-inline)$/;class _y extends lr{constructor(){super(...arguments),this._domEmitter=new(Rn())}static get pluginName(){return"ImageUtils"}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=yy(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 o=e.getAttribute("src");o&&(e.getAttribute("width")||e.getAttribute("height")||this.editor.model.change((n=>{const i=new t.window.Image;this._domEmitter.listenTo(i,"load",(()=>{e.getAttribute("width")||e.getAttribute("height")||this.editor.model.enqueueChange(n.batch,(t=>{t.setAttribute("width",i.naturalWidth,e),t.setAttribute("height",i.naturalHeight,e)})),this._domEmitter.stopListening(i,"load")})),i.src=o})))}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:wy})}isImageAllowed(){const e=this.editor.model.document.selection;return function(e,t){const o=yy(e,t,null);if("imageBlock"==o){const o=function(e,t){const o=function(e,t){const o=e.getSelectedElement();if(o){const n=Ik(e);if(n)return t.createRange(t.createPositionAt(o,n))}return t.schema.findOptimalInsertionRange(e)}(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 zk(e,t,{label:()=>{const t=this.findViewImgElement(e).getAttribute("alt");return t?`${t} ${o}`:o}})}isImageWidget(e){return!!e.getCustomProperty("image")&&Rk(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 yy(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")?fy(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 Ay extends dr{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 Cy extends lr{static get requires(){return[_y]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new Ay(this.editor))}}var vy=i(8429),xy={attributes:{"data-cke":!0}};xy.setAttributes=Ar(),xy.insert=_r().bind(null,"head"),xy.domAPI=kr(),xy.insertStyleElement=vr();fr()(vy.A,xy);vy.A&&vy.A.locals&&vy.A.locals;var Ey=i(871),Dy={attributes:{"data-cke":!0}};Dy.setAttributes=Ar(),Dy.insert=_r().bind(null,"head"),Dy.domAPI=kr(),Dy.insertStyleElement=vr();fr()(Ey.A,Dy);Ey.A&&Ey.A.locals&&Ey.A.locals;class By extends pm{constructor(e){super(e);const t=this.locale.t;this.focusTracker=new Xi,this.keystrokes=new er,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(t("Save"),qh.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(t("Cancel"),qh.cancel,"ck-button-cancel","cancel"),this._focusables=new Uh,this._focusCycler=new Im({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),bm({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 Em(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 jp(this.locale,Fg);return t.label=e("Text alternative"),t}}function Sy(e){const t=e.editing.view,o=Ff.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 Ty extends lr{static get requires(){return[Fb]}static get pluginName(){return"ImageTextAlternativeUI"}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 Em(o);return i.set({label:t("Change image text alternative"),icon:qh.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(fm(By))(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=Sy(e);t.updatePosition(o)}}(e):this._hideForm(!0)})),gm({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:Sy(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 Iy extends lr{static get requires(){return[Cy,Ty]}static get pluginName(){return"ImageTextAlternative"}}function Py(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 Fy(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 My extends za{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 Ry extends dr{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||"block"===t&&D("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||"inline"===t&&D("image-inline-plugin-required")}refresh(){const e=this.editor.plugins.get("ImageUtils");this.isEnabled=e.isImageAllowed()}execute(e){const t=xi(e.source),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("string"==typeof e&&(e={src:e}),t&&r&&n.isImage(r)){const t=this.editor.model.createPositionAfter(r);n.insertImage({...e,...i},t)}else n.insertImage({...e,...i})}))}}class zy extends dr{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 Vy extends lr{static get requires(){return[_y]}static get pluginName(){return"ImageEditing"}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(My),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const o=new Ry(e),n=new zy(e);e.commands.add("insertImage",o),e.commands.add("replaceImageSource",n),e.commands.add("imageInsert",o)}}class Oy extends lr{static get requires(){return[_y]}static get pluginName(){return"ImageSizeAttributes"}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){t.on(`attribute:${n}:${e}`,((t,n,s)=>{if(!s.consumable.consume(n.item,t.name))return;const a=s.writer,l=s.mapper.toViewElement(n.item),c=o.findViewImgElement(l);if(null!==n.attributeNewValue?a.setAttribute(i,n.attributeNewValue,c):a.removeAttribute(i,c),n.item.hasAttribute("sources"))return;const d=n.item.hasAttribute("resizedWidth");if("imageInline"===e&&!d&&!r)return;const u=n.item.getAttribute("width"),h=n.item.getAttribute("height");u&&h&&a.setStyle("aspect-ratio",`${u}/${h}`,c)}))}t.conversion.for("upcast").attributeToAttribute({view:{name:n,styles:{width:/.+/}},model:{key:"width",value:e=>ky(e)?by(e.getStyle("width")):null}}).attributeToAttribute({view:{name:n,key:"width"},model:"width"}).attributeToAttribute({view:{name:n,styles:{height:/.+/}},model:{key:"height",value:e=>ky(e)?by(e.getStyle("height")):null}}).attributeToAttribute({view:{name:n,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add((e=>{i(e,"width","width",!0),i(e,"height","height",!0)})),t.conversion.for("dataDowncast").add((e=>{i(e,"width","width",!1),i(e,"height","height",!1)}))}}class Ny extends dr{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 Ly=i(1091),Hy={attributes:{"data-cke":!0}};Hy.setAttributes=Ar(),Hy.insert=_r().bind(null,"head"),Hy.domAPI=kr(),Hy.insertStyleElement=vr();fr()(Ly.A,Hy);Ly.A&&Ly.A.locals&&Ly.A.locals;class jy extends lr{static get requires(){return[_y]}static get pluginName(){return"ImagePlaceholder"}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(My),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 qy extends lr{static get requires(){return[Vy,Oy,_y,jy,j_]}static get pluginName(){return"ImageBlockEditing"}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 Ny(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})=>py(t)}),o.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:o})=>n.toImageWidget(py(o),o,t("image widget"))}),o.for("downcast").add(Fy(n,"imageBlock","src")).add(Fy(n,"imageBlock","alt")).add(Py(n,"imageBlock")),o.for("upcast").elementToElement({view:gy(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=Qi(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"===fy(t.schema,l)){const e=new Lu(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 Uy=i(1545),Wy={attributes:{"data-cke":!0}};Wy.setAttributes=Ar(),Wy.insert=_r().bind(null,"head"),Wy.domAPI=kr(),Wy.insertStyleElement=vr();fr()(Uy.A,Wy);Uy.A&&Uy.A.locals&&Uy.A.locals;class $y extends pm{constructor(e,t=[]){super(e),this.focusTracker=new Xi,this.keystrokes=new er,this._focusables=new Uh,this.children=this.createCollection(),this._focusCycler=new Im({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 xp&&this._focusables.addMany(e.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),bm({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 Gy extends lr{static get pluginName(){return"ImageInsertUI"}static get requires(){return[_y]}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}){this._integrations.has(e)&&D("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 yg(e,t),i.tooltip=!0,i.bind("label").to(this,"isImageSelected",(e=>o(e?"Replace image":"Insert image")))}const s=this.dropdownView=Eg(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.map((({formViewCreator:e})=>e(1==n.length))),o=new $y(t.locale,e);s.panelView.children.add(o)})),s}_createMenuBarComponent(e){const t=e.t,o=this._prepareIntegrations();if(!o.length)return null;let n;const i=o[0];if(1==o.length)n=i.menuBarButtonViewCreator(!0);else{n=new mk(e);const i=new pk(e);n.panelView.children.add(i),n.buttonView.set({icon:qh.image,label:t("Image")});for(const t of o){const o=new nb(e,n),r=t.menuBarButtonViewCreator(!1);o.children.add(r),i.items.add(o)}}return n}_prepareIntegrations(){const e=this.editor.config.get("image.insert.integrations"),t=[];if(!e.length)return D("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)||D("image-insert-unknown-integration",{item:o});return t.length||D("image-insert-integrations-not-registered"),t}}var Ky=i(8574),Zy={attributes:{"data-cke":!0}};Zy.setAttributes=Ar(),Zy.insert=_r().bind(null,"head"),Zy.domAPI=kr(),Zy.insertStyleElement=vr();fr()(Ky.A,Zy);Ky.A&&Ky.A.locals&&Ky.A.locals;class Jy extends lr{static get requires(){return[Vy,Oy,_y,jy,j_]}static get pluginName(){return"ImageInlineEditing"}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 Ny(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(Fy(n,"imageInline","src")).add(Fy(n,"imageInline","alt")).add(Py(n,"imageInline")),o.for("upcast").elementToElement({view:gy(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"===fy(t.schema,l)){const e=new Lu(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 Yy extends lr{static get pluginName(){return"ImageCaptionUtils"}static get requires(){return[_y]}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 Qy extends dr{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),o=e.plugins.get("ImageUtils");if(!e.plugins.has(qy))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 Xy extends lr{static get requires(){return[_y,Yy]}static get pluginName(){return"ImageCaptionEditing"}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 Qy(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"),Sr({view:t,element:r,keepOnFocus:!0});const s=e.parent.getAttribute("alt");return Lk(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?Ll.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 eA extends lr{static get requires(){return[Yy]}static get pluginName(){return"ImageCaptionUI"}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 Em(i);return s.set({icon:qh.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 tA=i(3038),oA={attributes:{"data-cke":!0}};oA.setAttributes=Ar(),oA.insert=_r().bind(null,"head"),oA.domAPI=kr(),oA.insertStyleElement=vr();fr()(tA.A,oA);tA.A&&tA.A.locals&&tA.A.locals;function nA(e){const t=e.map((e=>e.replace("+","\\+")));return new RegExp(`^image\\/(${t.join("|")})$`)}function iA(e){return new Promise(((o,n)=>{const i=e.getAttribute("src");fetch(i).then((e=>e.blob())).then((e=>{const t=rA(e,i),n=t.replace("image/",""),r=new File([e],`image.${n}`,{type:t});o(r)})).catch((e=>e&&"TypeError"===e.name?function(e){return function(e){return new Promise(((o,n)=>{const i=t.document.createElement("img");i.addEventListener("load",(()=>{const e=t.document.createElement("canvas");e.width=i.width,e.height=i.height;e.getContext("2d").drawImage(i,0,0),e.toBlob((e=>e?o(e):n()))})),i.addEventListener("error",(()=>n())),i.src=e}))}(e).then((t=>{const o=rA(t,e),n=o.replace("image/","");return new File([t],`image.${n}`,{type:o})}))}(i).then(o).catch(n):n(e)))}))}function rA(e,t){return e.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class sA extends lr{static get pluginName(){return"ImageUploadUI"}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=nA(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:qh.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(kp);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(kp);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(fk);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 aA=i(7504),lA={attributes:{"data-cke":!0}};lA.setAttributes=Ar(),lA.insert=_r().bind(null,"head"),lA.domAPI=kr(),lA.insertStyleElement=vr();fr()(aA.A,lA);aA.A&&aA.A.locals&&aA.A.locals;var cA=i(1230),dA={attributes:{"data-cke":!0}};dA.setAttributes=Ar(),dA.insert=_r().bind(null,"head"),dA.domAPI=kr(),dA.insertStyleElement=vr();fr()(cA.A,dA);cA.A&&cA.A.locals&&cA.A.locals;var uA=i(1160),hA={attributes:{"data-cke":!0}};hA.setAttributes=Ar(),hA.insert=_r().bind(null,"head"),hA.domAPI=kr(),hA.insertStyleElement=vr();fr()(uA.A,hA);uA.A&&uA.A.locals&&uA.A.locals;class mA extends lr{static get pluginName(){return"ImageUploadProgress"}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(k_),l=r?t.attributeNewValue:null,c=this.placeholder,d=n.editing.mapper.toViewElement(i),u=o.writer;if("reading"==l)return pA(d,u),void gA(s,c,d,u);if("uploading"==l){const e=a.loaders.get(r);return pA(d,u),void(e?(fA(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)):gA(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){kA(e,t,"progressBar")}(d,u),fA(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 pA(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function gA(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),bA(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 fA(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),kA(e,t,"placeholder")}function bA(e,t){for(const o of e.getChildren())if(o.getCustomProperty(t))return o}function kA(e,t,o){const n=bA(e,o);n&&t.remove(t.createRangeOn(n))}class wA extends dr{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=xi(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(k_).createLoader(e),r=n.plugins.get("ImageUtils");i&&r.insertImage({...t,uploadId:i.id},o)}}class _A extends lr{static get requires(){return[k_,Eb,j_,_y]}static get pluginName(){return"ImageUploadEditing"}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,n=e.plugins.get(k_),i=e.plugins.get("ImageUtils"),r=e.plugins.get("ClipboardPipeline"),s=nA(e.config.get("image.upload.types")),a=new wA(e);e.commands.add("uploadImage",a),e.commands.add("imageUpload",a),o.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),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:iA(e),imageElement:e})));if(!r.length)return;const s=new Lu(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 yA(e,o)){const e=t.getAttribute("uploadId");if(!e)continue;const o=n.loaders.get(e);o&&(r?i.has(e)||o.abort():(i.add(e),this._uploadImageElements.set(e,t),"idle"==o.status&&this._readAndUpload(o)))}}})),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.editor.plugins.has("ImageInlineEditing")&&e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(e){const t=this.editor,o=t.model,n=t.locale.t,i=t.plugins.get(k_),s=t.plugins.get(Eb),a=t.plugins.get("ImageUtils"),l=this._uploadImageElements;return o.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("uploadStatus","reading",l.get(e.id))})),e.read().then((()=>{const i=e.upload(),s=l.get(e.id);if(r.isSafari){const e=t.editing.mapper.toViewElement(s),o=a.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}))}return t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Uploading image")),o.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","uploading",s)})),i})).then((i=>{o.enqueueChange({isUndoable:!1},(o=>{const r=l.get(e.id);o.setAttribute("uploadStatus","complete",r),t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Image upload complete")),this.fire("uploadComplete",{data:i,imageElement:r})})),c()})).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&&s.showWarning(i,{title:n("Upload failed"),namespace:"upload"}),o.enqueueChange({isUndoable:!1},(t=>{t.remove(l.get(e.id))})),c()}));function c(){o.enqueueChange({isUndoable:!1},(t=>{const o=l.get(e.id);t.removeAttribute("uploadId",o),t.removeAttribute("uploadStatus",o),l.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)}}}function yA(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 AA extends lr{static get pluginName(){return"ImageUpload"}static get requires(){return[_A,sA,mA]}}const CA=function(e,t){return function(o,n){if(null==o)return o;if(!ho(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 DA extends lr{static get requires(){return[_y]}static get pluginName(){return"ImageResizeEditing"}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 EA(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=>ky(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>ky(e)?null:e.getStyle("height")}})}}const BA=(()=>({small:qh.objectSizeSmall,medium:qh.objectSizeMedium,large:qh.objectSizeLarge,custom:qh.objectSizeCustom,original:qh.objectSizeFull}))();class SA extends lr{static get requires(){return[DA]}static get pluginName(){return"ImageResizeButtons"}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 Em(o),s=t.commands.get("resizeImage"),a=this._getOptionLabelValue(e,!0);if(!BA[i])throw new E("imageresizebuttons-missing-icon",t,e);if(r.set({label:a,icon:BA[i],tooltip:a,isToggleable:!0}),r.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&TA(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",IA(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=Eg(i,og),a=s.buttonView,l=o("Resize image");return a.set({tooltip:l,commandValue:n.value,icon:BA.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),Sg(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?TA(e)?o("Custom image size"):e.value?o("Resize image to %0",e.value+this._resizeUnit):o("Resize image to the original size"):TA(e)?o("Custom"):e.value?e.value+this._resizeUnit:o("Original")}_getResizeDropdownListItemDefinitions(e,t){const{editor:o}=this,n=new Yi,i=e.map((e=>TA(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")&&TA(e)){const n=o.plugins.get("ImageCustomResizeUI");r={type:"button",model:new Db({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{n._showForm(this._resizeUnit)}})};const s=xA(i,"valueWithUnits");r.model.bind("isOn").to(t,"value",PA(s))}else r={type:"button",model:new Db({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})},r.model.bind("isOn").to(t,"value",IA(e.valueWithUnits));r.model.bind("isEnabled").to(t,"isEnabled"),n.add(r)}return n}}function TA(e){return"custom"===e.value}function IA(e){return t=>null===e&&t===e||null!==t&&t.width===e}function PA(e){return t=>!e.some((e=>IA(e)(t)))}const FA="image_resized";class MA extends lr{static get requires(){return[a_,_y]}static get pluginName(){return"ImageResizeHandles"}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(My),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(a_).getResizerByViewElement(a);if(l)return void l.redraw();const c=e.editing.mapper,d=c.toModelElement(a);l=e.plugins.get(a_).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(FA,a)})),e.execute("resizeImage",{width:o})}}),l.on("updateSize",(()=>{a.hasClass(FA)||t.change((e=>{e.addClass(FA,a)}));const e="imageInline"===d.name?s:a;e.getStyle("height")&&t.change((t=>{t.removeStyle("height",e)}))})),l.bind("isEnabled").to(this)}))}}function RA(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 zA(e,t,o){return"px"===o?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function VA(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 OA=i(1173),NA={attributes:{"data-cke":!0}};NA.setAttributes=Ar(),NA.insert=_r().bind(null,"head"),NA.domAPI=kr(),NA.insertStyleElement=vr();fr()(OA.A,NA);OA.A&&OA.A.locals&&OA.A.locals;class LA extends pm{constructor(e,t,o){super(e);const n=this.locale.t;this.focusTracker=new Xi,this.keystrokes=new er,this.unit=t,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(n("Save"),qh.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),qh.cancel,"ck-button-cancel","cancel"),this._focusables=new Uh,this._validators=o,this._focusCycler=new Im({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),bm({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 Em(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 jp(this.locale,Mg);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 HA extends lr{static get requires(){return[Fb]}static get pluginName(){return"ImageCustomResizeUI"}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){const t=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(fm(LA))(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()})),gm({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:Sy(t)});const n=function(e,t){const o=VA(e);if(!o)return null;const n=RA(o.model.getAttribute("resizedWidth")||null);return n?n.unit===t?n:zA(jk(o.dom),{unit:"px",value:new qn(o.dom).width},t):null}(t,e),i=n?n.value.toFixed(1):"",r=function(e,t){const o=VA(e);if(!o)return null;const n=jk(o.dom),i=RA(window.getComputedStyle(o.dom).minWidth)||{value:1,unit:"px"};return{unit:t,lower:Math.max(.1,zA(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 jA=i(4214),qA={attributes:{"data-cke":!0}};qA.setAttributes=Ar(),qA.insert=_r().bind(null,"head"),qA.domAPI=kr(),qA.insertStyleElement=vr();fr()(jA.A,qA);jA.A&&jA.A.locals&&jA.A.locals;class UA extends dr{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 WA={get inline(){return{name:"inline",title:"In line",icon:qh.objectInline,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:qh.objectLeft,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:qh.objectBlockLeft,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:qh.objectCenter,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:qh.objectRight,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:qh.objectBlockRight,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:qh.objectCenter,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:qh.objectRight,modelElements:["imageBlock"],className:"image-style-side"}}},$A=(()=>({full:qh.objectFullWidth,left:qh.objectBlockLeft,right:qh.objectBlockRight,center:qh.objectCenter,inlineLeft:qh.objectLeft,inlineRight:qh.objectRight,inline:qh.objectInline}))(),GA=[{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 KA(e){D("image-style-configuration-definition-invalid",e)}const ZA={normalizeStyles:function(e){const t=(e.configuredStyles.options||[]).map((e=>function(e){e="string"==typeof e?WA[e]?{...WA[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}(WA[e.name],e);"string"==typeof e.icon&&(e.icon=$A[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 KA({style:e}),!1;{const i=[t?"imageBlock":null,o?"imageInline":null];if(!n.some((e=>i.includes(e))))return D("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")?[...GA]:[]},warnInvalidStyle:KA,DEFAULT_OPTIONS:WA,DEFAULT_ICONS:$A,DEFAULT_DROPDOWN_DEFINITIONS:GA};function JA(e,t){for(const o of t)if(o.name===e)return o}class YA extends lr{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[_y]}init(){const{normalizeStyles:e,getDefaultStylesConfiguration:t}=ZA,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 UA(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=JA(t.attributeNewValue,r),i=JA(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=Qi(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(_y),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 QA=i(7879),XA={attributes:{"data-cke":!0}};XA.setAttributes=Ar(),XA.insert=_r().bind(null,"head"),XA.domAPI=kr(),XA.insertStyleElement=vr();fr()(QA.A,XA);QA.A&&QA.A.locals&&QA.A.locals;class eC extends lr{static get requires(){return[YA]}static get pluginName(){return"ImageStyleUI"}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=tC(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const e of o)this._createButton(e);const n=tC([...t.filter(U),...ZA.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})=>oC(t)===e)))).map((e=>{const t=o.create(e);return e===r&&(i=t),t}));s.length!==l.length&&ZA.warnInvalidStyle({dropdown:e});const c=Eg(n,yg),d=c.buttonView,u=d.arrowView;return Dg(c,l,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:nC(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(Fi);return t<0?i.icon:l[t].icon})),d.bind("label").toMany(l,"isOn",((...e)=>{const t=e.findIndex(Fi);return nC(a,t<0?i.label:l[t].label)})),d.bind("isOn").toMany(l,"isOn",((...e)=>e.some(Fi))),d.bind("class").toMany(l,"isOn",((...e)=>e.some(Fi)?"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(Fi))),this.listenTo(c,"execute",(()=>{this.editor.editing.view.focus()})),c}))}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(oC(t),(o=>{const n=this.editor.commands.get("imageStyle"),i=new Em(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 tC(e,t){for(const o of e)t[o.title]&&(o.title=t[o.title]);return e}function oC(e){return`imageStyle:${e}`}function nC(e,t){return(e?e+": ":"")+t}const iC=Symbol("isWpButtonMacroSymbol");function rC(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(iC)&&Rk(e)}(t))}class sC extends lr{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(sC.buttonName,(t=>{const o=new Em(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(iC,!0,e),zk(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 aC extends lr{static get requires(){return[Fb]}static get pluginName(){return"OPChildPagesToolbar"}init(){const e=this.editor,t=this.editor.model,o=Gk(e);l_(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(){d_(this,this.editor,"OPChildPages",rC)}}class lC extends dr{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)||!cC(e.schema,o))do{if(o=o.parent,!o)return}while(!cC(e.schema,o));e.change((e=>{e.setSelection(o,"in")}))}}function cC(e,t){return e.isLimit(t)&&(e.checkChild(t,"$text")||e.checkChild(t,"paragraph"))}const dC=yi("Ctrl+A");class uC extends lr{static get pluginName(){return"SelectAllEditing"}init(){const e=this.editor,t=e.t,o=e.editing.view.document;e.commands.add("selectAll",new lC(e)),this.listenTo(o,"keydown",((t,o)=>{_i(o)===dC&&(e.execute("selectAll"),o.preventDefault())})),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Select all"),keystroke:"CTRL+A"}]})}}class hC extends lr{static get pluginName(){return"SelectAllUI"}init(){const e=this.editor;e.ui.componentFactory.add("selectAll",(()=>{const e=this._createButton(Em);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:selectAll",(()=>this._createButton(ip)))}_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 mC extends lr{static get requires(){return[uC,hC]}static get pluginName(){return"SelectAll"}}const pC="ckCsrfToken",gC="abcdefghijklmnopqrstuvwxyz0123456789";function fC(){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}(pC);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=pC,o=e,document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(o)+";path=/"),e}class bC{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",fC()),this.xhr.send(t)}}function kC(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=Qi(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),m=e.model.createRangeOn(h);if(!m.containsRange(l)&&!l.end.isEqual(m.end))return;const p=o.exec(h.data.substr(0,l.end.offset));p&&e.model.enqueueChange((t=>{const o=t.createPositionAt(u,0),n=t.createPositionAt(u,p[0].length),r=new cc(o,n);if(!1!==i({match:p})){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 wC(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:m}=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),p=r(h),g=_C(m.start,p.format,s),f=_C(m.start,p.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 _C(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 yC(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 AC extends dr{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 CC="bold";class vC extends lr{static get pluginName(){return"BoldEditing"}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:CC}),e.model.schema.setAttributeProperties(CC,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:CC,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(CC,new AC(e,CC)),e.keystrokes.set("CTRL+B",CC),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Bold text"),keystroke:"CTRL+B"}]})}}function xC({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 ip?l.set({role:"menuitemcheckbox"}):l.set({tooltip:!0}),o.listenTo(l,"execute",(()=>{e.execute(t),e.editing.view.focus()})),l}}const EC="bold";class DC extends lr{static get pluginName(){return"BoldUI"}init(){const e=this.editor,t=e.locale.t,o=xC({editor:e,commandName:EC,plugin:this,icon:qh.bold,label:t("Bold"),keystroke:"CTRL+B"});e.ui.componentFactory.add(EC,(()=>o(Em))),e.ui.componentFactory.add("menuBar:"+EC,(()=>o(ip)))}}const BC="code";class SC extends lr{static get pluginName(){return"CodeEditing"}static get requires(){return[kw]}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:BC}),e.model.schema.setAttributeProperties(BC,{isFormatting:!0,copyOnEnter:!1}),e.conversion.attributeToElement({model:BC,view:"code",upcastAlso:{styles:{"word-wrap":"break-word"}}}),e.commands.add(BC,new AC(e,BC)),e.plugins.get(kw).registerAttribute(BC),Bw(e,BC,"code","ck-code_selected"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Move out of an inline code style"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}}var TC=i(9248),IC={attributes:{"data-cke":!0}};IC.setAttributes=Ar(),IC.insert=_r().bind(null,"head"),IC.domAPI=kr(),IC.insertStyleElement=vr();fr()(TC.A,IC);TC.A&&TC.A.locals&&TC.A.locals;const PC="code";class FC extends lr{static get pluginName(){return"CodeUI"}init(){const e=this.editor,t=e.locale.t,o=xC({editor:e,commandName:PC,plugin:this,icon:'',label:t("Code")});e.ui.componentFactory.add(PC,(()=>o(Em))),e.ui.componentFactory.add("menuBar:"+PC,(()=>o(ip)))}}const MC="italic";class RC extends lr{static get pluginName(){return"ItalicEditing"}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:MC}),e.model.schema.setAttributeProperties(MC,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:MC,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),e.commands.add(MC,new AC(e,MC)),e.keystrokes.set("CTRL+I",MC),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Italic text"),keystroke:"CTRL+I"}]})}}const zC="italic";class VC extends lr{static get pluginName(){return"ItalicUI"}init(){const e=this.editor,t=e.locale.t,o=xC({editor:e,commandName:zC,plugin:this,icon:'',keystroke:"CTRL+I",label:t("Italic")});e.ui.componentFactory.add(zC,(()=>o(Em))),e.ui.componentFactory.add("menuBar:"+zC,(()=>o(ip)))}}const OC="strikethrough";class NC extends lr{static get pluginName(){return"StrikethroughEditing"}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:OC}),e.model.schema.setAttributeProperties(OC,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:OC,view:"s",upcastAlso:["del","strike",{styles:{"text-decoration":"line-through"}}]}),e.commands.add(OC,new AC(e,OC)),e.keystrokes.set("CTRL+SHIFT+X","strikethrough"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Strikethrough text"),keystroke:"CTRL+SHIFT+X"}]})}}const LC="strikethrough";class HC extends lr{static get pluginName(){return"StrikethroughUI"}init(){const e=this.editor,t=e.locale.t,o=xC({editor:e,commandName:LC,plugin:this,icon:'',keystroke:"CTRL+SHIFT+X",label:t("Strikethrough")});e.ui.componentFactory.add(LC,(()=>o(Em))),e.ui.componentFactory.add("menuBar:"+LC,(()=>o(ip)))}}class jC extends dr{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=>qC(e)||WC(o,e)));this._applyQuote(e,t)}else this._removeQuote(e,i.filter(qC))}))}_getValue(){const e=Qi(this.editor.model.document.selection.getSelectedBlocks());return!(!e||!qC(e))}_checkEnabled(){if(this.value)return!0;const e=this.editor.model.document.selection,t=this.editor.model.schema,o=Qi(e.getSelectedBlocks());return!!o&&WC(t,o)}_removeQuote(e,t){UC(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=[];UC(e,t).reverse().forEach((t=>{let n=qC(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 qC(e){return"blockQuote"==e.parent.name?e.parent:null}function UC(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 GC=i(1501),KC={attributes:{"data-cke":!0}};KC.setAttributes=Ar(),KC.insert=_r().bind(null,"head"),KC.domAPI=kr(),KC.insertStyleElement=vr();fr()(GC.A,KC);GC.A&&GC.A.locals&&GC.A.locals;class ZC extends lr{static get pluginName(){return"BlockQuoteUI"}init(){const e=this.editor;e.ui.componentFactory.add("blockQuote",(()=>{const e=this._createButton(Em);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:blockQuote",(()=>{const e=this._createButton(ip);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:qh.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 JC extends dr{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=Qi(e.document.selection.getSelectedBlocks());this.value=!!t&&t.is("element","paragraph"),this.isEnabled=!!t&&YC(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")&&YC(n,t.schema)&&e.rename(n,"paragraph")}))}}function YC(e,t){return t.checkChild(e.parent,"paragraph")&&!t.isObject(e)}class QC extends dr{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}execute(e){const t=this.editor.model,o=e.attributes;let n=e.position;t.canEditAt(n)&&t.change((e=>{if(n=this._findPositionToInsertParagraph(n,e),!n)return;const i=e.createElement("paragraph");o&&t.schema.setAllowedAttributes(i,o,e),t.insertContent(i,n),e.setSelection(i,"in")}))}_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 XC extends lr{static get pluginName(){return"Paragraph"}init(){const e=this.editor,t=e.model;e.commands.add("paragraph",new JC(e)),e.commands.add("insertParagraph",new QC(e)),t.schema.register("paragraph",{inheritAllFrom:"$block"}),e.conversion.elementToElement({model:"paragraph",view:"p"}),e.conversion.for("upcast").elementToElement({model:(e,{writer:t})=>XC.paragraphLikeElements.has(e.name)?e.isEmpty?null:t.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}XC.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);const ev=XC;class tv extends dr{constructor(e,t){super(e),this.modelElements=t}refresh(){const e=Qi(this.editor.model.document.selection.getSelectedBlocks());this.value=!!e&&this.modelElements.includes(e.name)&&e.name,this.isEnabled=!!e&&this.modelElements.some((t=>ov(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=>ov(e,n,t.schema)));for(const t of i)t.is("element",n)||e.rename(t,n)}))}}function ov(e,t,o){return o.checkChild(e.parent,t)&&!o.isObject(e)}const nv="paragraph";class iv extends lr{static get pluginName(){return"HeadingEditing"}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[ev]}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 tv(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",nv)&&0===i.childCount&&n.writer.rename(i,nv)}))}_addDefaultH1Conversion(e){e.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:C.low+1})}}var rv=i(6186),sv={attributes:{"data-cke":!0}};sv.setAttributes=Ar(),sv.insert=_r().bind(null,"head"),sv.domAPI=kr(),sv.insertStyleElement=vr();fr()(rv.A,sv);rv.A&&rv.A.locals&&rv.A.locals;class av extends lr{static get pluginName(){return"HeadingUI"}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 Yi,a=e.commands.get("heading"),l=e.commands.get("paragraph"),c=[a];for(const e of o){const t={type:"button",model:new Db({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=Eg(t);return Sg(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 mk(n),r=e.commands.get("heading"),s=e.commands.get("paragraph"),a=[r],l=new pk(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 nb(n,i),c=new ip(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 lv{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")));for(const e of this._definitions){const n=tr(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 cv=function(e,t,o){var n=e.length;return o=void 0===o?n:o,!t&&o>=n?e:ds(e,t,o)};var dv=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const uv=function(e){return dv.test(e)};const hv=function(e){return e.split("")};var mv="\\ud800-\\udfff",pv="["+mv+"]",gv="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",fv="\\ud83c[\\udffb-\\udfff]",bv="[^"+mv+"]",kv="(?:\\ud83c[\\udde6-\\uddff]){2}",wv="[\\ud800-\\udbff][\\udc00-\\udfff]",_v="(?:"+gv+"|"+fv+")"+"?",yv="[\\ufe0e\\ufe0f]?",Av=yv+_v+("(?:\\u200d(?:"+[bv,kv,wv].join("|")+")"+yv+_v+")*"),Cv="(?:"+[bv+gv+"?",gv,kv,wv,pv].join("|")+")",vv=RegExp(fv+"(?="+fv+")|"+Cv+Av,"g");const xv=function(e){return e.match(vv)||[]};const Ev=function(e){return uv(e)?xv(e):hv(e)};const Dv=function(e){return function(t){t=rs(t);var o=uv(t)?Ev(t):void 0,n=o?o[0]:t.charAt(0),i=o?cv(o,1).join(""):t.slice(1);return n[e]()+i}}("toUpperCase"),Bv=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Sv=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,Tv=/^((\w+:(\/{2,})?)|(\W))/i,Iv=["https?","ftps?","mailto"],Pv="Ctrl+K";function Fv(e,{writer:t}){const o=t.createAttributeElement("a",{href:e},{priority:5});return t.setCustomProperty("link",!0,o),o}function Mv(e,t=Iv){const o=String(e),n=t.join("|");return function(e,t){const o=e.replace(Bv,"");return!!o.match(t)}(o,new RegExp(`${"^(?:(?:):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))".replace("",n)}`,"i"))?o:"#"}function Rv(e,t){return!!e&&t.checkAttribute(e.name,"linkHref")}function zv(e,t){const o=(n=e,Sv.test(n)?"mailto:":t);var n;const i=!!o&&!Vv(e);return e&&i?o+e:e}function Vv(e){return Tv.test(e)}function Ov(e){window.open(e,"_blank","noopener")}class Nv extends dr{constructor(){super(...arguments),this.manualDecorators=new Yi,this.automaticDecorators=new lv}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()||Qi(t.getSelectedBlocks());Rv(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=Lv(n);let l=Ew(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=tr(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=Lv(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 Rv(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 Lv(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 Hv extends dr{refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement();Rv(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?[Ew(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 jv extends(Y()){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 qv=i(7456),Uv={attributes:{"data-cke":!0}};Uv.setAttributes=Ar(),Uv.insert=_r().bind(null,"head"),Uv.domAPI=kr(),Uv.insertStyleElement=vr();fr()(qv.A,Uv);qv.A&&qv.A.locals&&qv.A.locals;const Wv="automatic",$v=/^(https?:)?\/\//;class Gv extends lr{static get pluginName(){return"LinkEditing"}static get requires(){return[kw,nw,j_]}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:Fv}),e.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(e,o)=>Fv(Mv(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 Nv(e)),e.commands.add("unlink",new Hv(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${Dv(o)}`});t.push(e)}return t}(e.config.get("link.decorators")));this._enableAutomaticDecorators(o.filter((e=>e.mode===Wv))),this._enableManualDecorators(o.filter((e=>"manual"===e.mode)));e.plugins.get(kw).registerAttribute("linkHref"),Bw(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:Wv,callback:e=>!!e&&$v.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 jv(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;this.listenTo(t,"click",((e,t)=>{if(!(r.isMac?t.domEvent.metaKey:t.domEvent.ctrlKey))return;let o=t.domTarget;if("a"!=o.tagName.toLowerCase()&&(o=o.closest("a")),!o)return;const n=o.getAttribute("href");n&&(e.stop(),t.preventDefault(),Ov(n))}),{context:"$capture"}),this.listenTo(t,"keydown",((t,o)=>{const n=e.commands.get("link").value;!!n&&o.keyCode===ki.enter&&o.altKey&&(t.stop(),Ov(n))}))}_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=zv(n.getAttribute("linkHref"),o);e.setAttribute("linkHref",t,n)}}))}))}}var Kv=i(2350),Zv={attributes:{"data-cke":!0}};Zv.setAttributes=Ar(),Zv.insert=_r().bind(null,"head"),Zv.domAPI=kr(),Zv.insertStyleElement=vr();fr()(Kv.A,Zv);Kv.A&&Kv.A.locals&&Kv.A.locals;class Jv extends pm{constructor(e,t,o){super(e),this.focusTracker=new Xi,this.keystrokes=new er,this._focusables=new Uh;const n=e.t;this._validators=o,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),qh.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),qh.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(t),this.children=this._createFormChildren(t.manualDecorators),this._focusCycler=new Im({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(),bm({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 jp(this.locale,Fg);return t.fieldView.inputMode="url",t.label=e("Link URL"),t}_createButton(e,t,o,n){const i=new Em(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 bp(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 pm;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 Yv=i(8040),Qv={attributes:{"data-cke":!0}};Qv.setAttributes=Ar(),Qv.insert=_r().bind(null,"head"),Qv.domAPI=kr(),Qv.insertStyleElement=vr();fr()(Yv.A,Qv);Yv.A&&Yv.A.locals&&Yv.A.locals;class Xv extends pm{constructor(e,t={}){super(e),this.focusTracker=new Xi,this.keystrokes=new er,this._focusables=new Uh;const o=e.t;this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(o("Unlink"),'',"unlink"),this.editButtonView=this._createButton(o("Edit link"),qh.pencil,"edit"),this.set("href",void 0),this._linkConfig=t,this._focusCycler=new Im({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 Em(this.locale);return n.set({label:e,icon:t,tooltip:!0}),n.delegate("execute").to(this,o),n}_createPreviewButton(){const e=new Em(this.locale),t=this.bindTemplate,o=this.t;return e.set({withText:!0,tooltip:o("Open link in new tab")}),e.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:t.to("href",(e=>e&&Mv(e,this._linkConfig.allowedProtocols))),target:"_blank",rel:"noopener noreferrer"}}),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.template.eventListeners={},e}}const ex="link-ui";class tx extends lr{constructor(){super(...arguments),this.actionsView=null,this.formView=null}static get requires(){return[Fb]}static get pluginName(){return"LinkUI"}init(){const e=this.editor,t=this.editor.t;e.editing.view.addObserver(Ou),this._balloon=e.plugins.get(Fb),this._createToolbarLinkButton(),this._enableBalloonActivators(),e.conversion.for("editingDowncast").markerToHighlight({model:ex,view:{classes:["ck-fake-link-selection"]}}),e.conversion.for("editingDowncast").markerToElement({model:ex,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:Pv},{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 Xv(e.locale,e.config.get("link")),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(Pv,((e,t)=>{this._addFormView(),t()})),t}_createFormView(){const e=this.editor,t=e.commands.get("link"),o=e.config.get("link.defaultProtocol"),n=new(fm(Jv))(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=zv(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(Em);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:link",(()=>{const e=this._createButton(ip);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:Pv,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(Pv,((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())})),gm({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(ex)){const t=Array.from(this.editor.editing.mapper.markerNameToElements(ex)),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&&Rk(o))return ox(t.getFirstPosition());{const o=t.getFirstRange().getTrimmed(),n=ox(o.start),i=ox(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(ex))t.updateMarker(ex,{range:o});else if(o.start.isAtEnd){const n=o.start.getLastMatchingPosition((({item:t})=>!e.schema.isContent(t)),{boundaries:o});t.addMarker(ex,{usingOperation:!1,affectsData:!1,range:t.createRange(n,o.end)})}else t.addMarker(ex,{usingOperation:!1,affectsData:!1,range:o})}))}_hideFakeVisualSelection(){const e=this.editor.model;e.markers.has(ex)&&e.change((e=>{e.removeMarker(ex)}))}}function ox(e){return e.getAncestors().find((e=>{return(t=e).is("attributeElement")&&!!t.getCustomProperty("link");var t}))||null}const nx=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 ix extends lr{static get requires(){return[pw,Gv]}static get pluginName(){return"AutoLink"}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")?Ew(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(nx);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 bw(e.model,(e=>{if(!function(e){return e.length>4&&" "===e[e.length-1]&&" "!==e[e.length-2]}(e))return;const t=rx(e.substr(0,e.length-1));return t?{url:t}:void 0}));t.on("matched:data",((t,o)=>{const{batch:n,range:i,url:r}=o;if(!n.isTyping)return;const s=i.end.getShiftedBy(-1),a=s.getShiftedBy(-r.length),l=e.model.createRange(a,s);this._applyAutoLink(r,l)})),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}=fw(e,t),i=rx(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=zv(e,this.editor.config.get("link.defaultProtocol"));this.isEnabled&&function(e,t){return t.schema.checkAttributeInSelection(t.createSelection(e),"linkHref")}(t,o)&&Vv(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 rx(e){const t=nx.exec(e);return t?t[2]:null}var sx=i(3669),ax={attributes:{"data-cke":!0}};ax.setAttributes=Ar(),ax.insert=_r().bind(null,"head"),ax.domAPI=kr(),ax.insertStyleElement=vr();fr()(sx.A,ax);sx.A&&sx.A.locals&&sx.A.locals;class lx{constructor(e,t){this._startElement=e,this._referenceIndent=e.getAttribute("listIndent"),this._isForward="forward"==t.direction,this._includeSelf=!!t.includeSelf,this._sameAttributes=xi(t.sameAttributes||[]),this._sameIndent=!!t.sameIndent,this._lowerIndent=!!t.lowerIndent,this._higherIndent=!!t.higherIndent}static first(e,t){return Qi(new this(e,t)[Symbol.iterator]())}*[Symbol.iterator](){const e=[];for(const{node:t}of cx(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}}function*cx(e,t="forward"){const o="forward"==t,n=[];let i=null;for(;hx(e);){let t=null;if(i){const o=e.getAttribute("listIndent"),r=i.getAttribute("listIndent");o>r?n[r]=i:oe.getAttribute("listItemId")!=t))}function xx(e){return Array.from(e).filter((e=>"$graveyard"!==e.root.rootName)).sort(((e,t)=>e.index-t.index))}function Ex(e){const t=e.document.selection.getSelectedElement();return t&&e.schema.isObject(t)&&e.schema.isBlock(t)?t:null}function Dx(e,t){return t.checkChild(e.parent,"listItem")&&t.checkChild(e,"$text")&&!t.isObject(e)}function Bx(e){return"numbered"==e||"customNumbered"==e}function Sx(e,t,o){return px(t,{direction:"forward"}).pop().index>e.index?yx(e,t,o):[]}class Tx extends dr{constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=this.editor.model,t=Ix(e.document.selection);e.change((e=>{const o=[];vx(t)&&!fx(t[0])?("forward"==this._direction&&o.push(...Ax(t,e)),o.push(..._x(t[0],e))):"forward"==this._direction?o.push(...Ax(t,e,{expand:!0})):o.push(...function(e,t){const o=kx(e=xi(e)),n=new Set,i=Math.min(...o.map((e=>e.getAttribute("listIndent")))),r=new Map;for(const e of o)r.set(e,lx.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)Cx(e,t);else{if(e.getAttribute("listIndent")==i){const o=Sx(e,r.get(e),t);for(const e of o)n.add(e);if(o.length)continue}t.setAttribute("listIndent",o,e)}}return xx(n)}(t,e));for(const t of o){if(!t.hasAttribute("listType"))continue;const o=lx.first(t,{sameIndent:!0});o&&e.setAttribute("listType",o.getAttribute("listType"),t)}this._fireAfterExecute(o)}))}_fireAfterExecute(e){this.fire("afterExecute",xx(new Set(e)))}_checkEnabled(){let e=Ix(this.editor.model.document.selection),t=e[0];if(!t)return!1;if("backward"==this._direction)return!0;if(vx(e)&&!fx(e[0]))return!0;e=kx(e),t=e[0];const o=lx.first(t,{sameIndent:!0});return!!o&&o.getAttribute("listType")==t.getAttribute("listType")}}function Ix(e){const t=Array.from(e.getSelectedBlocks()),o=t.findIndex((e=>!hx(e)));return-1!=o&&(t.length=o),t}class Px extends dr{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=Ex(t),i=Array.from(o.selection.getSelectedBlocks()).filter((e=>t.schema.checkAttribute(e,"listType")||Dx(e,t.schema))),r=void 0!==e.forceValue?!e.forceValue:this.value;t.change((s=>{if(r){const e=i[i.length-1],t=px(e,{direction:"forward"}),o=[];t.length>1&&o.push(..._x(t[1],s)),o.push(...Cx(i,s)),o.push(...function(e,t){const o=[];let n=Number.POSITIVE_INFINITY;for(const{node:i}of cx(e.nextSibling,"forward")){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 lx(d,{direction:"forward",higherIndent:!0})));n.push(...Ax([s,...e],i,{indentBy:a-l,expand:a{const t=_x(this._getStartBlock(),e);this._fireAfterExecute(t)}))}_fireAfterExecute(e){this.fire("afterExecute",xx(new Set(e)))}_checkEnabled(){const e=this.editor.model.document.selection,t=this._getStartBlock();return e.isCollapsed&&hx(t)&&!fx(t)}_getStartBlock(){const e=this.editor.model.document.selection.getFirstPosition().parent;return"before"==this._direction?e:e.nextSibling}}class Rx extends lr{static get pluginName(){return"ListUtils"}expandListBlocksToCompleteList(e){return wx(e)}isFirstBlockOfListItem(e){return fx(e)}isListItemBlock(e){return hx(e)}expandListBlocksToCompleteItems(e,t={}){return kx(e,t)}isNumberedListType(e){return Bx(e)}}function zx(e){return e.is("element","ol")||e.is("element","ul")}function Vx(e){return e.is("element","li")}function Ox(e,t,o,n=Hx(o,t)){return e.createAttributeElement(Lx(o),null,{priority:2*t/100-100,id:n})}function Nx(e,t,o){return e.createAttributeElement("li",null,{priority:(2*t+1)/100-100,id:o})}function Lx(e){return"numbered"==e||"customNumbered"==e?"ol":"ul"}function Hx(e,t){return`list-${e}-${t}`}function jx(e,t){const o=e.nodeBefore;if(hx(o)){let e=o;for(const{node:o}of cx(e,"backward"))if(e=o,t.has(e))return;t.set(o,e)}else{const o=e.nodeAfter;hx(o)&&t.set(o,o)}}function qx(){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=ux.next(),a=function(e){let t=0,o=e.parent;for(;o;){if(Vx(o))t++;else{const e=o.previousSibling;e&&Vx(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 Ux(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);$x(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 m=function(e,t,o,n,{dataPipeline:i}){let r=n.createRangeOn(t);if(!fx(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=Nx(n,e,r.getAttribute("listItemId")),s=Ox(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=lx.first(r,{lowerIndent:!0}),!r)break}}(u,m,t,l)}}function Wx(e,{dataPipeline:t}={}){return(o,{writer:n})=>{if(!Gx(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 $x(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 Gx(e,t,o=mx(e)){if(!hx(e))return!1;for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&!t.includes(o))return!1;return o.length<2}var Kx=i(7875),Zx={attributes:{"data-cke":!0}};Zx.setAttributes=Ar(),Zx.insert=_r().bind(null,"head"),Zx.domAPI=kr(),Zx.insertStyleElement=vr();fr()(Kx.A,Zx);Kx.A&&Kx.A.locals&&Kx.A.locals;var Jx=i(532),Yx={attributes:{"data-cke":!0}};Yx.setAttributes=Ar(),Yx.insert=_r().bind(null,"head"),Yx.domAPI=kr(),Yx.insertStyleElement=vr();fr()(Jx.A,Yx);Jx.A&&Jx.A.locals&&Jx.A.locals;const Qx=["listType","listIndent","listItemId"];class Xx extends lr{static get pluginName(){return"ListEditing"}static get requires(){return[Mw,pw,Rx,j_]}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 E("list-feature-conflict",this,{conflictPlugin:"LegacyListEditing"});t.schema.register("$listItem",{allowAttributes:Qx}),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 Qx)t.schema.setAttributeProperties(e,{copyOnReplace:!0});e.commands.add("numberedList",new Px(e,"numbered")),e.commands.add("bulletedList",new Px(e,"bulleted")),e.commands.add("customNumberedList",new Px(e,"customNumbered",{multiLevel:!0})),e.commands.add("customBulletedList",new Px(e,"customBulleted",{multiLevel:!0})),e.commands.add("indentList",new Tx(e,"forward")),e.commands.add("outdentList",new Tx(e,"backward")),e.commands.add("splitListItemBefore",new Mx(e,"before")),e.commands.add("splitListItemAfter",new Mx(e,"after")),o&&(e.commands.add("mergeListItemBackward",new Fx(e,"backward")),e.commands.add("mergeListItemForward",new Fx(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[...Qx,...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;Ex(e.model)||e.model.change((()=>{const s=r.getFirstPosition();if(r.isCollapsed&&"backward"==i.direction){if(!s.isAtStart)return;const o=s.parent;if(!hx(o))return;if(lx.first(o,{sameAttributes:"listType",sameIndent:!0})||0!==o.getAttribute("listIndent")){if(!t||!t.isEnabled)return;t.execute({shouldMergeOnBlocksContentLevel:eE(e.model,"backward")})}else bx(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:eE(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&&hx(r)&&r.isEmpty&&!n.isSoft){const t=fx(r),i=bx(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===mx(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",qx())})),n||e.conversion.for("downcast").elementToElement({model:"listItem",view:"p"}),e.conversion.for("editingDowncast").elementToElement({model:i,view:Wx(o),converterPriority:"high"}).add((e=>{var n;e.on("attribute",Ux(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&&$x(d,i,r)}))})),e.conversion.for("dataDowncast").elementToElement({model:i,view:Wx(o,{dataPipeline:!0}),converterPriority:"high"}).add((e=>{e.on("attribute",Ux(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(!hx(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 Map,l=new Set;for(const e of n)if("insert"==e.type&&"$text"!=e.name)jx(e.position,a),e.attributes.has("listItemId")?l.add(e.position.nodeAfter):jx(e.position.getShiftedBy(e.length),a);else if("remove"==e.type&&e.attributes.has("listItemId"))jx(e.position,a);else if("attribute"==e.type){const t=e.range.start.nodeAfter;o.includes(e.attributeKey)?(jx(e.range.start,a),null===e.attributeNewValue?(jx(e.range.start.getShiftedBy(1),a),r(t)&&s.push(t)):l.add(t)):hx(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 cx(e,"forward")){if(i.has(l))continue;const e=l.getAttribute("listIndent");c&&eo.includes(e))));const d=px(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=Gx(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=Vx(e),i=zx(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==Lx(o.listType)&&t.id==Hx(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 Map,s=n.editor.config.get("list.multiBlock");let a=!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),a=!0);jx(n.position,r),n.attributes.has("listItemId")||jx(n.position.getShiftedBy(n.length),r);for(const{item:t,previousPosition:o}of e.createRangeIn(i))hx(t)&&jx(o,r)}else"remove"==n.type?jx(n.position,r):"attribute"==n.type&&o.includes(n.attributeKey)&&(jx(n.range.start,r),null===n.attributeNewValue&&jx(n.range.start.getShiftedBy(1),r));if(!s&&"attribute"==n.type&&Qx.includes(n.attributeKey)){const e=n.range.start.nodeAfter;null===n.attributeNewValue&&e&&e.is("element","listItem")?(t.rename(e,"paragraph"),a=!0):null===n.attributeOldValue&&e&&e.is("element")&&"listItem"!=e.name&&(t.rename(e,"listItem"),a=!0)}}const l=new Set;for(const e of r.values())a=n.fire("postFixer",{listNodes:new dx(e),listHead:e,writer:t,seenIds:l})||a;return a}(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=ux.next()),t.add(s),r.is("element","listItem"))r.getAttribute("listItemId")!=s&&(o.setAttribute("listItemId",s,r),i=!0);else for(const t of px(r,{direction:"forward"}))n.add(t),t.getAttribute("listType")!=e&&(s=ux.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(hx(r.parent))s=r.parent;else{if(!hx(r.nodeBefore))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=hx(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"):ux.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(hx)&&e.remove(n)}if("copy"==o.method||"cut"==o.method){const t=Array.from(o.content.getChildren());vx(t)&&Cx(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 eE(e,t){const o=e.document.selection;if(!o.isCollapsed)return!Ex(e);if("forward"===t)return!0;const n=o.getFirstPosition().parent,i=n.previousSibling;return!e.schema.isObject(i)&&(!!i.isEmpty||vx([n,i]))}function tE(e,t,o,n){e.ui.componentFactory.add(t,(()=>{const i=oE(Em,e,t,o,n);return i.set({tooltip:!0,isToggleable:!0}),i})),e.ui.componentFactory.add(`menuBar:${t}`,(()=>{const i=oE(ip,e,t,o,n);return i.set({role:"menuitemcheckbox",isToggleable:!0}),i}))}function oE(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 nE extends lr{static get pluginName(){return"ListUI"}init(){const e=this.editor.t;this.editor.ui.componentFactory.has("numberedList")||tE(this.editor,"numberedList",e("Numbered List"),qh.numberedList),this.editor.ui.componentFactory.has("bulletedList")||tE(this.editor,"bulletedList",e("Bulleted List"),qh.bulletedList)}}class iE extends lr{static get requires(){return[Xx,nE]}static get pluginName(){return"List"}}const rE={},sE={},aE={},lE=[{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 lE)rE[e]=o,sE[e]=t,t&&(aE[t]=e);var cE=i(1911),dE={attributes:{"data-cke":!0}};dE.setAttributes=Ar(),dE.insert=_r().bind(null,"head"),dE.domAPI=kr(),dE.insertStyleElement=vr();fr()(cE.A,dE);cE.A&&cE.A.locals&&cE.A.locals;var uE=i(1330),hE={attributes:{"data-cke":!0}};hE.setAttributes=Ar(),hE.insert=_r().bind(null,"head"),hE.domAPI=kr(),hE.insertStyleElement=vr();fr()(uE.A,hE);uE.A&&uE.A.locals&&uE.A.locals;class mE extends dr{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(...mx(n));for(const e of o.getItems({shallow:!0}))t.checkAttribute(e,"todoListChecked")&&!i.includes(e)&&i.push(...mx(e));return i}}class pE extends La{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 gE=yi("Ctrl+Enter");class fE extends lr{static get pluginName(){return"TodoListEditing"}static get requires(){return[Xx]}init(){const e=this.editor,t=e.model,o=e.editing,n=e.plugins.get(Xx),i=e.config.get("list.multiBlock")?"paragraph":"listItem";e.commands.add("todoList",new Px(e,"todo")),e.commands.add("checkTodoList",new mE(e)),o.view.addObserver(pE),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:label",bE({name:"label",classes:"todo-list__label"})),e.on("element:label",bE({name:"label",classes:["todo-list__label","todo-list__label_without-description"]})),e.on("element:span",bE({name:"span",classes:"todo-list__label__description"})),e.on("element:ul",function(e){const t=new Hr(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(kE(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=>kE(e,n.getListAttributeNames()),createWrapperElement(e,t,{dataPipeline:o}){const i=["todo-list__label"];return kE(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=kE(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")&&fx(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)=>{_i(o)===gE&&(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&&hx(r)&&"todo"==r.getAttribute("listType")&&this._handleCheckmarkChange(r)})),this.listenTo(o.view.document,"arrowKey",function(e,t){return(o,n)=>{const i=Ci(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&&hx(i)&&"todo"==i.getAttribute("listType")&&(e.change((e=>e.setSelection(t))),n.preventDefault(),n.stopPropagation(),o.stop())}else if("left"==i&&a.isAtStart&&hx(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=wE(n)&&o.viewPosition.offset<=1,s=n.is("element","span")&&"false"==n.getAttribute("contenteditable")&&wE(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=_E(n),s=_E(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 bE(e){const t=new Hr(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 kE(e,t){return(e.is("element","paragraph")||e.is("element","listItem"))&&"todo"==e.getAttribute("listType")&&fx(e)&&function(e,t){for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&!t.includes(o))return!1;return!0}(e,t)}function wE(e){return!!e&&e.is("attributeElement")&&e.hasClass("todo-list__label")}function _E(e){return!!e&&(!(!e.is("element","paragraph")&&!e.is("element","listItem"))&&"todo"==e.getAttribute("listType"))}class yE extends lr{static get pluginName(){return"TodoListUI"}init(){const e=this.editor.t;tE(this.editor,"todoList",e("To-do List"),qh.todoList)}}var AE=i(5484),CE={attributes:{"data-cke":!0}};CE.setAttributes=Ar(),CE.insert=_r().bind(null,"head"),CE.domAPI=kr(),CE.insertStyleElement=vr();fr()(AE.A,CE);AE.A&&AE.A.locals&&AE.A.locals;class vE extends lr{static get requires(){return[fE,yE]}static get pluginName(){return"TodoList"}}const xE=Symbol("isOPCodeBlock");function EE(e){return!!e.getCustomProperty(xE)&&Rk(e)}function DE(e){const t=e.getSelectedElement();return!(!t||!EE(t))}function BE(e,t,o){const n=t.createContainerElement("pre",{title:window.I18n.t("js.editor.macro.toolbar_help")});return SE(t,e,n),function(e,t,o){return t.setCustomProperty(xE,!0,e),zk(e,t,{label:o})}(n,t,o)}function SE(e,t,o){const n=(t.getAttribute("opCodeblockLanguage")||"language-text").replace(/^language-/,""),i=e.createContainerElement("div",{class:"op-uc-code-block--language"});TE(e,n,i,"text"),e.insert(e.createPositionAt(o,0),i);TE(e,t.getAttribute("opCodeblockContent"),o,"(empty)")}function TE(e,t,o,n){const i=e.createText(t||n);e.insert(e.createPositionAt(o,0),i)}class IE extends La{constructor(e){super(e),this.domEventType="dblclick"}onDomEvent(e){this.fire(e.type,e)}}class PE extends lr{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=Gk(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);o.consumable.consume(e,{name:!0});const s=e.data.replace(/\n$/,"");o.writer.setAttribute("opCodeblockContent",s,i),t.modelRange=new Zl(o.writer.createPositionBefore(i),o.writer.createPositionAfter(i)),t.modelCursor=t.modelRange.end}}}()),o.for("editingDowncast").elementToElement({model:"codeblock",view:(e,{writer:t})=>BE(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))),SE(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(IE),this.listenTo(i,"dblclick",((t,o)=>{let n=o.target,i=o.domEvent;if(i.shiftKey||i.altKey||i.metaKey)return;if(!EE(n)&&(n=n.findAncestor(EE),!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 Em(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 FE extends lr{static get requires(){return[Fb]}static get pluginName(){return"CodeBlockToolbar"}init(){const e=this.editor,t=this.editor.model,o=Gk(e);l_(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(){d_(this,this.editor,"OPCodeBlock",DE)}}function ME(e){return e.__currentlyDisabled=e.__currentlyDisabled||[],e.ui.view.toolbar?e.ui.view.toolbar.items._items:[]}function RE(e,t){jQuery.each(ME(e),(function(o,n){let i=n;n instanceof kp?i=n.buttonView:n!==t&&n.hasOwnProperty("isEnabled")||(i=null),i&&(i.isEnabled?i.isEnabled=!1:e.__currentlyDisabled.push(i))}))}function zE(e){jQuery.each(ME(e),(function(t,o){let n=o;o instanceof kp&&(n=o.buttonView),e.__currentlyDisabled.indexOf(n)<0&&(n.isEnabled=!0)})),e.__currentlyDisabled=[]}function VE(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?HE(t):t;return r!==o?o:void 0}}})}function OE(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:HE(l.style),color:HE(l.color),width:HE(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 NE(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 LE(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 HE(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 jE(e,t,o,n,i=1){null!=t&&null!=i&&t>i?n.setAttribute(e,t,o):n.removeAttribute(e,o)}function qE(e,t,o={}){const n=e.createElement("tableCell",o);return e.insertElement("paragraph",n),e.insert(n,t),n}function UE(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")));for(const a of e)if(r&&s===r||"tbody"===s.name&&Array.from(a.getChildren()).length&&Array.from(a.getChildren()).every((e=>e.is("element","th"))))o++,n.push(a);else{i.push(a);const e=ZE(a);(!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")),qE(o.writer,o.writer.createPositionAt(e,"end"))}o.updateConversionResult(l,t)}}))}}function KE(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 ZE(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 YE(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 YE{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 QE(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),zk(e,t,{hasSelectionHandle:!0})}(s,n):s}}function XE(e={}){return(t,{writer:o})=>{const n=t.parent,i=n.parent,r=i.getChildIndex(n),s=new JE(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(!tD(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 tD(e){return 1==e.parent.childCount&&!!e.getAttributeKeys().next().done}class oD extends dr{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 nD extends dr{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 iD extends dr{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 rD extends dr{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 sD(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){jE("headingRows",r-o,e,i,0)}const s=parseInt(t.getAttribute("headingColumns")||"0");if(s>0){jE("headingColumns",s-n,e,i,0)}}(a,e,n,i,o),a}function aD(e,t,o=0){const n=[],i=new JE(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 JE(i,{startRow:r,endRow:d,includeAllSlots:!0})];let h,m=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&&(m=qE(o,t.getPositionBefore(),a))}return jE("rowspan",s,e,o),m}function cD(e,t){const o=[],n=new JE(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=qE(n,n.createPositionAfter(e),r);return jE("colspan",i,e,n),l}function uD(e,t,o,n,i,r){const s=parseInt(e.getAttribute("colspan")||"1"),a=parseInt(e.getAttribute("rowspan")||"1");if(o+s-1>i){jE("colspan",i-o+1,e,r,1)}if(t+a-1>n){jE("rowspan",n-t+1,e,r,1)}}function hD(e,t){const o=t.getColumns(e),n=new Array(o).fill(0);for(const{column:t}of new JE(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 mD(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 pD(e,t){hD(e,t)||mD(e,t)}function gD(e,t){const o=Array.from(new JE(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 fD(e,t){const o=Array.from(new JE(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 bD extends dr{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){kD(e)||(kD(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");pD(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=UE(o,a),m=UE(o,l);if(s&&h!=m)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 JE(i,{endRow:u})],m=h.find((t=>t.cell===e)),p=m.column,g=h.find((({row:e,cellHeight:o,column:n})=>n===p&&("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 kD(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}class wD extends dr{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 _D extends dr{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 yD extends dr{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=aD(i,a,a>l?l:0);for(const{cell:o}of t)lD(o,a,e)}jE("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=>UE(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=cD(i,a);for(const{cell:o,column:n}of t)dD(o,n,a,e)}jE("headingColumns",a,i,e,0)}))}}function CD(e){if(e.is("element","tableColumnGroup"))return e;const t=e.getChildren();return Array.from(t).find((e=>e.is("element","tableColumnGroup")))}function vD(e){const t=CD(e);return t?Array.from(t.getChildren()):[]}class xD extends lr{static get pluginName(){return"TableUtils"}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(e){const t=e.parent,o=t.parent,n=o.getChildIndex(t),i=new JE(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 ED(e,o,0,n,i),t.headingRows&&jE("headingRows",Math.min(t.headingRows,n),o,e,0),t.headingColumns&&jE("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 E("tableutils-insertrows-insert-out-of-range",this,{options:t});o.change((t=>{const o=e.getAttribute("headingRows")||0;if(o>n&&jE("headingRows",o+i,e,t,0),!r&&(0===n||n===a))return void ED(t,e,n,i,l);const c=r?Math.max(n,s):n,d=new JE(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&&qE(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 E("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 JE(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 JE(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),jE("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)jE("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 JE(e)])n<=i&&r>1&&n+r>i?jE("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)}}mD(e,this)||hD(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}=BD(r,t);jE("colspan",s,e,o);const a={};n>1&&(a.colspan=n),i>1&&(a.rowspan=i);DD(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),DD(s,o,o.createPositionAfter(e),d);const u=n.getAttribute("headingColumns")||0;u>l&&jE("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 JE(i,{startRow:r,endRow:r+s-1,includeAllSlots:!0})],{newCellsSpan:l,updatedSpan:c}=BD(s,t);jE("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||DD(1,o,e.getPositionBefore(),u),h++)}}if(sr){const e=i+n;o.setAttribute("rowspan",e,t)}const c={};a>1&&(c.colspan=a),ED(o,i,r+1,n,1,c);const d=i.getAttribute("headingRows")||0;d>r&&jE("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 JE(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 JE(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(SD)}_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=FD(e,r,n,"colspan"),i=FD(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);jE("colspan",r,i,o),jE("rowspan",s,i,o);for(const e of n)ID(e,i,o);pD(i.findAncestor("table"),t),o.setSelection(i,"in")}))}}function ID(e,t,o){PD(e)||(PD(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end"))),o.remove(e)}function PD(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}function FD(e,t,o,n){const i=parseInt(e.getAttribute(n)||"1");return Math.max(o,t+i)}class MD extends dr{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 RD extends dr{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 JE(r,{startColumn:l,endColumn:c}))d.push(t.createRangeOn(e.cell));t.change((e=>{e.setSelection(d)}))}}function zD(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")),ND(t)&&(o=t.range.start.findAncestor("table")),o&&!i.has(o)&&(n=VD(o,e)||n,n=OD(o,e)||n,i.add(o))}return n}(t,e)))}function VD(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 JE(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)jE("rowspan",e.rowspan,e.cell,t,1)}return o}function OD(e,t){let o=!1;const n=function(e){const t=new Array(e.childCount).fill(0);for(const{rowIndex:o}of new JE(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=HD(t.position.nodeAfter,e)||n),"insert"==t.type&&"tableRow"==t.name&&(n=jD(t.position.nodeAfter,e)||n),"insert"==t.type&&"tableCell"==t.name&&(n=qD(t.position.nodeAfter,e)||n),"remove"!=t.type&&"insert"!=t.type||!UD(t)||(n=qD(t.position.parent,e)||n);return n}(t,e)))}function HD(e,t){let o=!1;for(const n of e.getChildren())n.is("element","tableRow")&&(o=jD(n,t)||o);return o}function jD(e,t){let o=!1;for(const n of e.getChildren())o=qD(n,t)||o;return o}function qD(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 UD(e){return!!e.position.parent.is("element","tableCell")&&("insert"==e.type&&"$text"==e.name||"remove"==e.type)}function WD(e,t){if(!e.is("element","paragraph"))return!1;const o=t.toViewElement(e);return!!o&&tD(e)!==o.is("element","span")}var $D=i(8864),GD={attributes:{"data-cke":!0}};GD.setAttributes=Ar(),GD.insert=_r().bind(null,"head"),GD.domAPI=kr(),GD.insertStyleElement=vr();fr()($D.A,GD);$D.A&&$D.A.locals&&$D.A.locals;class KD extends lr{static get pluginName(){return"TableEditing"}static get requires(){return[xD]}constructor(e){super(e),this._additionalSlots=[]}init(){const e=this.editor,t=e.model,o=t.schema,n=e.conversion,i=e.plugins.get(xD);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=Qi(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(GE()),n.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:QE(i,{asWidget:!0,additionalSlots:this._additionalSlots})}),n.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:QE(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(KE("td")),n.for("upcast").add(KE("th")),n.for("editingDowncast").elementToElement({model:"tableCell",view:XE({asWidget:!0})}),n.for("dataDowncast").elementToElement({model:"tableCell",view:XE()}),n.for("editingDowncast").elementToElement({model:"paragraph",view:eD({asWidget:!0}),converterPriority:"high"}),n.for("dataDowncast").elementToElement({model:"paragraph",view:eD(),converterPriority:"high"}),n.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),n.for("upcast").attributeToAttribute({model:{key:"colspan",value:ZD("colspan")},view:"colspan"}),n.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),n.for("upcast").attributeToAttribute({model:{key:"rowspan",value:ZD("rowspan")},view:"rowspan"}),e.config.define("table.defaultHeadings.rows",0),e.config.define("table.defaultHeadings.columns",0),e.commands.add("insertTable",new oD(e)),e.commands.add("insertTableRowAbove",new nD(e,{order:"above"})),e.commands.add("insertTableRowBelow",new nD(e,{order:"below"})),e.commands.add("insertTableColumnLeft",new iD(e,{order:"left"})),e.commands.add("insertTableColumnRight",new iD(e,{order:"right"})),e.commands.add("removeTableRow",new wD(e)),e.commands.add("removeTableColumn",new _D(e)),e.commands.add("splitTableCellVertically",new rD(e,{direction:"vertically"})),e.commands.add("splitTableCellHorizontally",new rD(e,{direction:"horizontally"})),e.commands.add("mergeTableCells",new TD(e)),e.commands.add("mergeTableCellRight",new bD(e,{direction:"right"})),e.commands.add("mergeTableCellLeft",new bD(e,{direction:"left"})),e.commands.add("mergeTableCellDown",new bD(e,{direction:"down"})),e.commands.add("mergeTableCellUp",new bD(e,{direction:"up"})),e.commands.add("setTableColumnHeader",new AD(e)),e.commands.add("setTableRowHeader",new yD(e)),e.commands.add("selectTableRow",new MD(e)),e.commands.add("selectTableColumn",new RD(e)),zD(t),LD(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 JE(o);for(const e of s){const o=e.rowWD(e,t.mapper)));for(const e of o)t.reconvertItem(e)}}(t,e.editing)}))}registerAdditionalSlot(e){this._additionalSlots.push(e)}}function ZD(e){return t=>{const o=parseInt(t.getAttribute(e));return Number.isNaN(o)||o<=0?null:o}}var JD=i(8603),YD={attributes:{"data-cke":!0}};YD.setAttributes=Ar(),YD.insert=_r().bind(null,"head"),YD.domAPI=kr(),YD.insertStyleElement=vr();fr()(JD.A,YD);JD.A&&JD.A.locals&&JD.A.locals;class QD extends pm{constructor(e){super(e);const t=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new er,this.focusTracker=new Xi,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(),km({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=Eg(o);let r;return i.bind("isEnabled").to(n),i.buttonView.set({icon:qh.table,label:t("Insert table"),tooltip:!0}),i.on("change:isOpen",(()=>{r||(r=new QD(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 mk(o),r=new QD(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:qh.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=Eg(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 bp||i.editing.view.focus()})),r}_prepareMergeSplitButtonDropdown(e,t,o,n){const i=this.editor,r=Eg(n,yg),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 Yi;for(const e of t)eB(e,o,n,i);return Sg(e,i),n}}function eB(e,t,o,n){if("button"===e.type||"switchbutton"===e.type){const n=e.model=new Db(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 tB=i(2850),oB={attributes:{"data-cke":!0}};oB.setAttributes=Ar(),oB.insert=_r().bind(null,"head"),oB.domAPI=kr(),oB.insertStyleElement=vr();fr()(tB.A,oB);tB.A&&tB.A.locals&&tB.A.locals;class nB extends lr{static get pluginName(){return"TableSelection"}static get requires(){return[xD,xD]}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(xD),t=this.editor.model.document.selection,o=e.getSelectedTableCells(t);return 0==o.length?null:o}getSelectionAsFragment(){const e=this.editor.plugins.get(xD),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=gD(l,e),d=fD(l,e)}const u=sD(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=Qi(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(xD),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 JE(e.findAncestor("table"),d))c[t-r].push(o);const u=i.rowe.reverse())),{cells:c.flat(),backward:u||h}}}class iB extends lr{static get pluginName(){return"TableClipboard"}static get requires(){return[H_,j_,nB,xD]}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(nB),i=this.editor.plugins.get(H_);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(xD),r=this.editor.plugins.get(H_),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)}))):pD(s,i)}_replaceSelectedCells(e,t,o){const n=this.editor.plugins.get(xD),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};sB(e,r,a,o),sB(e,s+1,a,o),rB(e,n,l,o),rB(e,i+1,l,o,n)}(i,a,o):(a.lastRow=gD(i,a),a.lastColumn=fD(i,a));return a}(t,i,o,n),s=r.lastRow-r.firstRow+1,a=r.lastColumn-r.firstColumn+1;e=sD(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 JE(e))n[o][t]=i;return n}(e,r,s),l=[...new JE(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],m=h?i.cloneElement(h):null,p=this._replaceTableSlotCell(e,m,d,i);p&&(uD(p,t,o,n.lastRow,n.lastColumn,i),c.push(p),d=i.createPositionAfter(p))}const u=parseInt(o.getAttribute("headingRows")||"0"),h=parseInt(o.getAttribute("headingColumns")||"0"),m=n.firstRowaB(e,t,o))).map((({cell:e})=>lD(e,t,n)))}function sB(e,t,o,n){if(t<1)return;return cD(e,t).filter((({row:e,cellHeight:t})=>aB(e,t,o))).map((({cell:e,column:o})=>dD(e,o,t,n)))}function aB(e,t,o){const n=e+t-1,{first:i,last:r}=o;return e>=i&&e<=r||e=i}class lB extends lr{static get pluginName(){return"TableKeyboard"}static get requires(){return[nB,xD]}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(xD),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 m=u===l.childCount-1,p=d===n.getRows(c)-1;if(s&&p&&m&&(o.execute("insertTableRowBelow"),d===n.getRows(c)-1))return void o.model.change((e=>{e.setSelection(e.createRangeOn(c))}));let g;if(s&&m){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=Ci(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(xD),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 JE(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),m=this.editor.plugins.get("TableSelection");if(o&&m.isEnabled){const t=m.getAnchorCell()||e;m.setCellSelection(t,u)}else{const e=n.createPositionAt(u,h?0:"end");n.change((t=>{t.setSelection(e)}))}}}class cB extends La{constructor(){super(...arguments),this.domEventType=["mousemove","mouseleave"]}onDomEvent(e){this.fire(e.type,e)}}class dB extends lr{static get pluginName(){return"TableMouse"}static get requires(){return[nB,xD]}init(){this.editor.editing.view.addObserver(cB),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const e=this.editor,t=e.plugins.get(xD);let o=!1;const n=e.plugins.get(nB);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&&uB(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(nB);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&&uB(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 uB(e,t){return e.parent.parent==t.parent.parent}var hB=i(9969),mB={attributes:{"data-cke":!0}};mB.setAttributes=Ar(),mB.insert=_r().bind(null,"head"),mB.domAPI=kr(),mB.insertStyleElement=vr();fr()(hB.A,mB);hB.A&&hB.A.locals&&hB.A.locals;function pB(e){const t=gB(e);return t||fB(e)}function gB(e){const t=e.getSelectedElement();return t&&bB(t)?t:null}function fB(e){const t=e.getFirstPosition();if(!t)return null;let o=t.parent;for(;o;){if(o.is("element")&&bB(o))return o;o=o.parent}return null}function bB(e){return!!e.getCustomProperty("table")&&Rk(e)}var kB=i(4307),wB={attributes:{"data-cke":!0}};wB.setAttributes=Ar(),wB.insert=_r().bind(null,"head"),wB.domAPI=kr(),wB.insertStyleElement=vr();fr()(kB.A,wB);kB.A&&kB.A.locals&&kB.A.locals;class _B extends pm{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 Xi,this._focusables=new Uh,this.dropdownView=this._createDropdownView(),this.inputView=this._createInputTextView(),this.keystrokes=new er,this._stillTyping=!1,this.focusCycler=new Im({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=Eg(e),r=new pm;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 Gp(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 xf(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=yB(e),o=this.options.colorDefinitions.find((e=>t===yB(e.color)));this.inputView.value=o?o.label:e||""}}}function yB(e){return e.replace(/([(,])\s+/g,"$1").replace(/^\s+|\s+(?=[),\s]|$)/g,"").replace(/,|\s/g," ")}const AB=e=>""===e;function CB(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 vB(e){return e('The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".')}function xB(e){return e('The value is invalid. Try "10px" or "2em" or simply "2".')}function EB(e){return e=e.trim().toLowerCase(),AB(e)||Ku(e)}function DB(e){return e=e.trim(),AB(e)||FB(e)||Qu(e)||(t=e,Xu.test(t));var t}function BB(e){return e=e.trim(),AB(e)||FB(e)||Qu(e)}function SB(e,t){const o=new Yi,n=CB(e.t);for(const i in n){const r={type:"button",model:new Db({_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 TB(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 Em(t.locale);l.set({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 IB=[{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 PB(e){return(t,o,n)=>{const i=new _B(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 FB(e){const t=parseFloat(e);return!Number.isNaN(t)&&e===String(t)}var MB=i(6016),RB={attributes:{"data-cke":!0}};RB.setAttributes=Ar(),RB.insert=_r().bind(null,"head"),RB.domAPI=kr(),RB.insertStyleElement=vr();fr()(MB.A,RB);MB.A&&MB.A.locals&&MB.A.locals;class zB extends pm{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 VB=i(1806),OB={attributes:{"data-cke":!0}};OB.setAttributes=Ar(),OB.insert=_r().bind(null,"head"),OB.domAPI=kr(),OB.insertStyleElement=vr();fr()(VB.A,OB);VB.A&&VB.A.locals&&VB.A.locals;var NB=i(5704),LB={attributes:{"data-cke":!0}};LB.setAttributes=Ar(),LB.insert=_r().bind(null,"head"),LB.domAPI=kr(),LB.insertStyleElement=vr();fr()(NB.A,LB);NB.A&&NB.A.locals&&NB.A.locals;var HB=i(6701),jB={attributes:{"data-cke":!0}};jB.setAttributes=Ar(),jB.insert=_r().bind(null,"head"),jB.domAPI=kr(),jB.insertStyleElement=vr();fr()(HB.A,jB);HB.A&&HB.A.locals&&HB.A.locals;class qB extends pm{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:m,alignmentLabel:p}=this._createAlignmentFields();this.focusTracker=new Xi,this.keystrokes=new er,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=m;const{saveButtonView:g,cancelButtonView:f}=this._createActionButtons();this.saveButtonView=g,this.cancelButtonView=f,this._focusables=new Uh,this._focusCycler=new Im({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new Tm(e,{label:this.t("Cell properties")})),this.children.add(new zB(e,{labelView:r,children:[r,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new zB(e,{labelView:s,children:[s,a],class:"ck-table-form__background-row"})),this.children.add(new zB(e,{children:[new zB(e,{labelView:u,children:[u,l,c,d],class:"ck-table-form__dimensions-row"}),new zB(e,{children:[this.paddingInput],class:"ck-table-cell-properties-form__padding-row"})]})),this.children.add(new zB(e,{labelView:p,children:[p,h,m],class:"ck-table-cell-properties-form__alignment-row"})),this.children.add(new zB(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(),bm({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=PB({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),n=this.locale,i=this.t,r=i("Style"),s=new ap(n);s.text=i("Border");const a=CB(i),l=new jp(n,Rg);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)),Sg(l.fieldView,SB(this,t.style),{role:"menu",ariaLabel:r});const c=new jp(n,Fg);c.set({label:i("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",UB),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new jp(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",UB),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,n,i)=>{UB(n)||(this.borderColor="",this.borderWidth=""),UB(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 ap(e);o.text=t("Background");const n=PB({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableCellProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),i=new jp(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 ap(e);o.text=t("Dimensions");const n=new jp(e,Fg);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 pm(e);i.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const r=new jp(e,Fg);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 jp(e,Fg);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 ap(e),n={left:qh.alignLeft,center:qh.alignCenter,right:qh.alignRight,justify:qh.alignJustify,top:qh.alignTop,middle:qh.alignMiddle,bottom:qh.alignBottom};o.text=t("Table cell text alignment");const i=new cg(e),r="rtl"===e.contentLanguageDirection;i.set({isCompact:!0,ariaLabel:t("Horizontal text alignment toolbar")}),TB({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 cg(e);return s.set({isCompact:!0,ariaLabel:t("Vertical text alignment toolbar")}),TB({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 Em(e),n=new Em(e),i=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.paddingInput];return o.set({label:t("Save"),icon:qh.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:qh.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 UB(e){return"none"!==e}const WB=(()=>[Ff.defaultPositions.northArrowSouth,Ff.defaultPositions.northArrowSouthWest,Ff.defaultPositions.northArrowSouthEast,Ff.defaultPositions.southArrowNorth,Ff.defaultPositions.southArrowNorthWest,Ff.defaultPositions.southArrowNorthEast,Ff.defaultPositions.viewportStickyNorth])();function $B(e,t){const o=e.plugins.get("ContextualBalloon"),n=e.editing.view.document.selection;let i;"cell"===t?fB(n)&&(i=KB(e)):pB(n)&&(i=GB(e)),i&&o.updatePosition(i)}function GB(e){const t=$E(e.model.document.selection),o=e.editing.mapper.toViewElement(t);return{target:e.editing.view.domConverter.mapViewToDom(o),positions:WB}}function KB(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=ZB(e.start),i=o.toViewElement(t);return new qn(n.mapViewToDom(i))}));return qn.getBoundingRect(i)}(n.getRanges(),e),positions:WB};const i=ZB(n.getFirstPosition()),r=t.toViewElement(i);return{target:o.mapViewToDom(r),positions:WB}}function ZB(e){return e.nodeAfter&&e.nodeAfter.is("element","tableCell")?e.nodeAfter:e.findAncestor("tableCell")}function JB(e){if(!e||!U(e))return e;const{top:t,right:o,bottom:n,left:i}=e;return t==o&&o==n&&n==i?t:void 0}function YB(e,t){const o=parseFloat(e);return Number.isNaN(o)||String(o)!==String(e)?e:`${o}${t}`}function QB(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}const XB={borderStyle:"tableCellBorderStyle",borderColor:"tableCellBorderColor",borderWidth:"tableCellBorderWidth",height:"tableCellHeight",width:"tableCellWidth",padding:"tableCellPadding",backgroundColor:"tableCellBackgroundColor",horizontalAlignment:"tableCellHorizontalAlignment",verticalAlignment:"tableCellVerticalAlignment"};class eS extends lr{static get requires(){return[Fb]}static get pluginName(){return"TableCellPropertiesUI"}constructor(e){super(e),e.config.define("table.tableCellProperties",{borderColors:IB,backgroundColors:IB})}init(){const e=this.editor,t=e.t;this._defaultTableCellProperties=QB(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection}),this._balloon=e.plugins.get(Fb),this.view=null,this._isReady=!1,e.ui.componentFactory.add("tableCellProperties",(o=>{const n=new Em(o);n.set({label:t("Cell properties"),icon:'',tooltip:!0}),this.listenTo(n,"execute",(()=>this._showView()));const i=Object.values(XB).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=Dp(t.borderColors),n=Ep(e.locale,o),i=Dp(t.backgroundColors),r=Ep(e.locale,i),s=!1!==t.colorPicker,a=new qB(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()})),gm({emitter:a,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const c=vB(l),d=xB(l);return a.on("change:borderStyle",this._getPropertyChangeCallback("tableCellBorderStyle")),a.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:a.borderColorInput,commandName:"tableCellBorderColor",errorText:c,validator:EB})),a.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:a.borderWidthInput,commandName:"tableCellBorderWidth",errorText:d,validator:BB})),a.on("change:padding",this._getValidatedPropertyChangeCallback({viewField:a.paddingInput,commandName:"tableCellPadding",errorText:d,validator:DB})),a.on("change:width",this._getValidatedPropertyChangeCallback({viewField:a.widthInput,commandName:"tableCellWidth",errorText:d,validator:DB})),a.on("change:height",this._getValidatedPropertyChangeCallback({viewField:a.heightInput,commandName:"tableCellHeight",errorText:d,validator:DB})),a.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:a.backgroundInput,commandName:"tableCellBackgroundColor",errorText:c,validator:EB})),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(XB).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:KB(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;fB(e.editing.view.document.selection)?this._isViewVisible&&$B(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=el((()=>{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 tS extends dr{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 oS extends tS{constructor(e,t){super(e,"tableCellWidth",t)}_getValueToSet(e){if((e=YB(e,"px"))!==this._defaultValue)return e}}class nS extends lr{static get pluginName(){return"TableCellWidthEditing"}static get requires(){return[KD]}init(){const e=this.editor,t=QB(e.config.get("table.tableCellProperties.defaultProperties"));WE(e.model.schema,e.conversion,{modelAttribute:"tableCellWidth",styleName:"width",defaultValue:t.width}),e.commands.add("tableCellWidth",new oS(e,t.width))}}class iS extends tS{constructor(e,t){super(e,"tableCellPadding",t)}_getAttribute(e){if(!e)return;const t=JB(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=YB(e,"px");if(t!==this._defaultValue)return t}}class rS extends tS{constructor(e,t){super(e,"tableCellHeight",t)}_getValueToSet(e){const t=YB(e,"px");if(t!==this._defaultValue)return t}}class sS extends tS{constructor(e,t){super(e,"tableCellBackgroundColor",t)}}class aS extends tS{constructor(e,t){super(e,"tableCellVerticalAlignment",t)}}class lS extends tS{constructor(e,t){super(e,"tableCellHorizontalAlignment",t)}}class cS extends tS{constructor(e,t){super(e,"tableCellBorderStyle",t)}_getAttribute(e){if(!e)return;const t=JB(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class dS extends tS{constructor(e,t){super(e,"tableCellBorderColor",t)}_getAttribute(e){if(!e)return;const t=JB(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class uS extends tS{constructor(e,t){super(e,"tableCellBorderWidth",t)}_getAttribute(e){if(!e)return;const t=JB(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=YB(e,"px");if(t!==this._defaultValue)return t}}const hS=/^(top|middle|bottom)$/,mS=/^(left|center|right|justify)$/;class pS extends lr{static get pluginName(){return"TableCellPropertiesEditing"}static get requires(){return[KD,nS]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableCellProperties.defaultProperties",{});const n=QB(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection});e.data.addStyleProcessorRules(mh),function(e,t,o){const n={width:"tableCellBorderWidth",color:"tableCellBorderColor",style:"tableCellBorderStyle"};e.extend("tableCell",{allowAttributes:Object.values(n)}),OE(t,"td",n,o),OE(t,"th",n,o),NE(t,{modelElement:"tableCell",modelAttribute:n.style,styleName:"border-style"}),NE(t,{modelElement:"tableCell",modelAttribute:n.color,styleName:"border-color"}),NE(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 cS(e,n.borderStyle)),e.commands.add("tableCellBorderColor",new dS(e,n.borderColor)),e.commands.add("tableCellBorderWidth",new uS(e,n.borderWidth)),WE(t,o,{modelAttribute:"tableCellHeight",styleName:"height",defaultValue:n.height}),e.commands.add("tableCellHeight",new rS(e,n.height)),e.data.addStyleProcessorRules(Ch),WE(t,o,{modelAttribute:"tableCellPadding",styleName:"padding",reduceBoxSides:!0,defaultValue:n.padding}),e.commands.add("tableCellPadding",new iS(e,n.padding)),e.data.addStyleProcessorRules(hh),WE(t,o,{modelAttribute:"tableCellBackgroundColor",styleName:"background-color",defaultValue:n.backgroundColor}),e.commands.add("tableCellBackgroundColor",new sS(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":mS}},model:{key:"tableCellHorizontalAlignment",value:e=>{const t=e.getStyle("text-align");return t===o?null:t}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{align:mS}},model:{key:"tableCellHorizontalAlignment",value:e=>{const t=e.getAttribute("align");return t===o?null:t}}})}(t,o,n.horizontalAlignment),e.commands.add("tableCellHorizontalAlignment",new lS(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":hS}},model:{key:"tableCellVerticalAlignment",value:e=>{const t=e.getStyle("vertical-align");return t===o?null:t}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{valign:hS}},model:{key:"tableCellVerticalAlignment",value:e=>{const t=e.getAttribute("valign");return t===o?null:t}}})}(t,o,n.verticalAlignment),e.commands.add("tableCellVerticalAlignment",new aS(e,n.verticalAlignment))}}class gS extends dr{constructor(e,t,o){super(e),this.attributeName=t,this._defaultValue=o}refresh(){const e=$E(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=$E(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 fS extends gS{constructor(e,t){super(e,"tableBackgroundColor",t)}}class bS extends gS{constructor(e,t){super(e,"tableBorderColor",t)}_getValue(e){if(!e)return;const t=JB(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class kS extends gS{constructor(e,t){super(e,"tableBorderStyle",t)}_getValue(e){if(!e)return;const t=JB(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class wS extends gS{constructor(e,t){super(e,"tableBorderWidth",t)}_getValue(e){if(!e)return;const t=JB(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=YB(e,"px");if(t!==this._defaultValue)return t}}class _S extends gS{constructor(e,t){super(e,"tableWidth",t)}_getValueToSet(e){if((e=YB(e,"px"))!==this._defaultValue)return e}}class yS extends gS{constructor(e,t){super(e,"tableHeight",t)}_getValueToSet(e){if((e=YB(e,"px"))!==this._defaultValue)return e}}class AS extends gS{constructor(e,t){super(e,"tableAlignment",t)}}const CS=/^(left|center|right)$/,vS=/^(left|none|right)$/;class xS extends lr{static get pluginName(){return"TablePropertiesEditing"}static get requires(){return[KD]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableProperties.defaultProperties",{});const n=QB(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0});e.data.addStyleProcessorRules(mh),function(e,t,o){const n={width:"tableBorderWidth",color:"tableBorderColor",style:"tableBorderStyle"};e.extend("table",{allowAttributes:Object.values(n)}),OE(t,"table",n,o),LE(t,{modelAttribute:n.color,styleName:"border-color"}),LE(t,{modelAttribute:n.style,styleName:"border-style"}),LE(t,{modelAttribute:n.width,styleName:"border-width"})}(t,o,{color:n.borderColor,style:n.borderStyle,width:n.borderWidth}),e.commands.add("tableBorderColor",new bS(e,n.borderColor)),e.commands.add("tableBorderStyle",new kS(e,n.borderStyle)),e.commands.add("tableBorderWidth",new wS(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:vS}},model:{key:"tableAlignment",value:e=>{let t=e.getStyle("float");return"none"===t&&(t="center"),t===o?null:t}}}).attributeToAttribute({view:{attributes:{align:CS}},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 AS(e,n.alignment)),ES(t,o,{modelAttribute:"tableWidth",styleName:"width",defaultValue:n.width}),e.commands.add("tableWidth",new _S(e,n.width)),ES(t,o,{modelAttribute:"tableHeight",styleName:"height",defaultValue:n.height}),e.commands.add("tableHeight",new yS(e,n.height)),e.data.addStyleProcessorRules(hh),function(e,t,o){const{modelAttribute:n}=o;e.extend("table",{allowAttributes:[n]}),VE(t,{viewElement:"table",...o}),LE(t,o)}(t,o,{modelAttribute:"tableBackgroundColor",styleName:"background-color",defaultValue:n.backgroundColor}),e.commands.add("tableBackgroundColor",new fS(e,n.backgroundColor))}}function ES(e,t,o){const{modelAttribute:n}=o;e.extend("table",{allowAttributes:[n]}),VE(t,{viewElement:/^(table|figure)$/,shouldUpcast:e=>!("table"==e.name&&"figure"==e.parent.name),...o}),NE(t,{modelElement:"table",...o})}var DS=i(4001),BS={attributes:{"data-cke":!0}};BS.setAttributes=Ar(),BS.insert=_r().bind(null,"head"),BS.domAPI=kr(),BS.insertStyleElement=vr();fr()(DS.A,BS);DS.A&&DS.A.locals&&DS.A.locals;class SS extends pm{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:m}=this._createAlignmentFields();this.focusTracker=new Xi,this.keystrokes=new er,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:p,cancelButtonView:g}=this._createActionButtons();this.saveButtonView=p,this.cancelButtonView=g,this._focusables=new Uh,this._focusCycler=new Im({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new Tm(e,{label:this.t("Table properties")})),this.children.add(new zB(e,{labelView:r,children:[r,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new zB(e,{labelView:s,children:[s,a],class:"ck-table-form__background-row"})),this.children.add(new zB(e,{children:[new zB(e,{labelView:u,children:[u,l,c,d],class:"ck-table-form__dimensions-row"}),new zB(e,{labelView:m,children:[m,h],class:"ck-table-properties-form__alignment-row"})]})),this.children.add(new zB(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(),bm({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=PB({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),n=this.locale,i=this.t,r=i("Style"),s=new ap(n);s.text=i("Border");const a=CB(i),l=new jp(n,Rg);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)),Sg(l.fieldView,SB(this,t.style),{role:"menu",ariaLabel:r});const c=new jp(n,Fg);c.set({label:i("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",TS),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new jp(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",TS),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,n,i)=>{TS(n)||(this.borderColor="",this.borderWidth=""),TS(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 ap(e);o.text=t("Background");const n=PB({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),i=new jp(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 ap(e);o.text=t("Dimensions");const n=new jp(e,Fg);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 pm(e);i.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const r=new jp(e,Fg);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 ap(e);o.text=t("Alignment");const n=new cg(e);return n.set({isCompact:!0,ariaLabel:t("Table alignment toolbar")}),TB({view:this,icons:{left:qh.objectLeft,center:qh.objectCenter,right:qh.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 Em(e),n=new Em(e),i=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.widthInput,this.heightInput];return o.set({label:t("Save"),icon:qh.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:qh.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 TS(e){return"none"!==e}const IS={borderStyle:"tableBorderStyle",borderColor:"tableBorderColor",borderWidth:"tableBorderWidth",backgroundColor:"tableBackgroundColor",width:"tableWidth",height:"tableHeight",alignment:"tableAlignment"};class PS extends lr{static get requires(){return[Fb]}static get pluginName(){return"TablePropertiesUI"}constructor(e){super(e),this.view=null,e.config.define("table.tableProperties",{borderColors:IB,backgroundColors:IB})}init(){const e=this.editor,t=e.t;this._defaultTableProperties=QB(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),this._balloon=e.plugins.get(Fb),e.ui.componentFactory.add("tableProperties",(o=>{const n=new Em(o);n.set({label:t("Table properties"),icon:'',tooltip:!0}),this.listenTo(n,"execute",(()=>this._showView()));const i=Object.values(IS).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=Dp(t.borderColors),n=Ep(e.locale,o),i=Dp(t.backgroundColors),r=Ep(e.locale,i),s=!1!==t.colorPicker,a=new SS(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()})),gm({emitter:a,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const c=vB(l),d=xB(l);return a.on("change:borderStyle",this._getPropertyChangeCallback("tableBorderStyle")),a.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:a.borderColorInput,commandName:"tableBorderColor",errorText:c,validator:EB})),a.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:a.borderWidthInput,commandName:"tableBorderWidth",errorText:d,validator:BB})),a.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:a.backgroundInput,commandName:"tableBackgroundColor",errorText:c,validator:EB})),a.on("change:width",this._getValidatedPropertyChangeCallback({viewField:a.widthInput,commandName:"tableWidth",errorText:d,validator:DB})),a.on("change:height",this._getValidatedPropertyChangeCallback({viewField:a.heightInput,commandName:"tableHeight",errorText:d,validator:DB})),a.on("change:alignment",this._getPropertyChangeCallback("tableAlignment")),a}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableBorderStyle");Object.entries(IS).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:GB(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;pB(e.editing.view.document.selection)?this._isViewVisible&&$B(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=el((()=>{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 FS=i(7406),MS={attributes:{"data-cke":!0}};MS.setAttributes=Ar(),MS.insert=_r().bind(null,"head"),MS.domAPI=kr(),MS.insertStyleElement=vr();fr()(FS.A,MS);FS.A&&FS.A.locals&&FS.A.locals;var RS=i(4204),zS={attributes:{"data-cke":!0}};zS.setAttributes=Ar(),zS.insert=_r().bind(null,"head"),zS.domAPI=kr(),zS.insertStyleElement=vr();fr()(RS.A,zS);RS.A&&RS.A.locals&&RS.A.locals;function VS(e){return void 0!==e&&e.endsWith("px")}function OS(e){return e.toFixed(2).replace(/\.?0+$/,"")+"px"}function NS(e,t,o){if(!e.childCount)return;const n=new Lu(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=GS(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=WS(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){LS(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=US(l,n,o);if(VS(e.marginLeft)&&(0==a||VS(s[a-1].marginLeft))){let o=e.marginLeft;a>0&&(o=OS(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),$S(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 LS(e){const t=e.element.previousSibling;return HS(t||e.element.parent)}function HS(e){return e.is("element","ol")||e.is("element","ul")}function jS(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",m=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]&&(m=parseInt(e[1]))}c&&(h="ol")}return{type:h,startIndex:m,style:qS(u),isLegalStyleList:c}}function qS(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 US(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 WS(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 $S(e,t){const o=new Hr({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 GS(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")?OS(96*t/72):e.endsWith("pc")?OS(12*t*96/72):e.endsWith("in")?OS(96*t):e.endsWith("cm")?OS(96*t/2.54):e.endsWith("mm")?OS(t/10*96/2.54):e}(t)}function KS(e,t){if(!e.childCount)return;const o=new Lu(e.document),n=function(e,t){const o=t.createRangeIn(e),n=new Hr({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 Hr({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 Hr({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 Hr({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 JS=//i,YS=/xmlns:o="urn:schemas-microsoft-com/i;class QS{constructor(e,t=!1){this.document=e,this.hasMultiLevelListPlugin=t}isActive(e){return JS.test(e)||YS.test(e)}execute(e){const{body:t,stylesString:o}=e._parsedData;NS(t,o,this.hasMultiLevelListPlugin),KS(t,e.dataTransfer.getData("text/rtf")),function(e){const t=[],o=new Lu(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)}}(t),e.content=t}}function XS(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 eT(e,t){return!!e&&e.is("element")&&t.includes(e.name)}const tT=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class oT{constructor(e){this.document=e}isActive(e){return tT.test(e)}execute(e){const t=new Lu(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 Hs(t.document.stylesProcessor),n=new Pa(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=XS(e,"forward",t,{blockElements:i,inlineObjectElements:r}),n=XS(e,"backward",t,{blockElements:i,inlineObjectElements:r}),a=eT(o,i);(eT(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 nT=/(\s+)<\/span>/g,((e,t)=>1===t.length?" ":Array(t.length+1).join("  ").substr(0,t.length)))}function sT(e,t){const o=new DOMParser,n=function(e){return rT(rT(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(//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");this.fire(s,{content:i,dataTransfer:n,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,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);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",B_(n.content))),"cut"==n.method&&e.model.deleteContent(t.selection)}),{priority:"low"})}}const G_=ti("px");class K_ extends km{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=>G_(e))),top:e.to("top",(e=>G_(e))),width:e.to("width",(e=>G_(e)))}}})}}class Z_ extends hr{constructor(){super(...arguments),this.removeDropMarkerDelayed=sr((()=>this.removeDropMarker()),40),this._updateDropMarkerThrottled=Ph((e=>this._updateDropMarker(e)),40),this._reconvertMarkerThrottled=Ph((()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")}),0),this._dropTargetLineView=new K_,this._domEmitter=new(On()),this._scrollables=new Map}static get pluginName(){return"DragDropTarget"}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=J_(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=J_(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:m,scrollY:p}=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 Q_(e,ey(e,t.parent),n,i)}}}else if(a.schema.isInline(c))return Q_(e,c,n,i);if(a.schema.isBlock(c))return Q_(e,c,n,i);if(a.schema.checkChild(c,"$block")){const t=Array.from(c.getChildren()).filter((t=>t.is("element")&&!Y_(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(x_).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(x_).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 oy=i(9262),ny={attributes:{"data-cke":!0}};ny.setAttributes=Er(),ny.insert=vr().bind(null,"head"),ny.domAPI=Ar(),ny.insertStyleElement=Br();_r()(oy.A,ny);oy.A&&oy.A.locals&&oy.A.locals;class iy extends hr{constructor(){super(...arguments),this._clearDraggableAttributesDelayed=sr((()=>this._clearDraggableAttributes()),40),this._blockMode=!1,this._domEmitter=new(On())}static get pluginName(){return"DragDrop"}static get requires(){return[$_,e_,Z_,ty]}init(){const e=this.editor,t=e.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,t.addObserver(x_),t.addObserver(qu),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(Z_);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(Z_);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"==ry(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($_);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"==ry(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=sy(i.target);if(c.isBlink&&!e.isReadOnly&&!r&&!o.selection.isCollapsed){const e=o.selection.getSelectedElement();e&&Ok(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(Z_).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?sy(e):null;if(i){const e=t.editing.mapper.toModelElement(i);if(this._draggedRange=mc.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=mc.fromRange(s));const a=ay(o,r);if(r.length>1)this._draggedRange=mc.fromRange(a),this._blockMode=!0;else if(1==r.length){const e=s.start.isTouching(a.start)&&s.end.isTouching(a.end);this._draggedRange=mc.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=Ee(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=Ee(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"),u.innerHTML=e.getData("text/html"),e.setDragImage(u,0,0),this._previewContainer.appendChild(u)}}function ry(e){return c.isGecko?e.dropEffect:["all","copyMove"].includes(e.effectAllowed)?"move":"copy"}function sy(e){if(e.is("editableElement"))return null;if(e.hasClass("ck-widget__selection-handle"))return e.findAncestor(Ok);if(Ok(e))return e;const t=e.findAncestor((e=>Ok(e)||e.is("editableElement")));return Ok(t)?t:null}function ay(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 ay(e,[i])}return e.createRange(r,s)}class ly extends hr{static get pluginName(){return"PastePlainText"}static get requires(){return[$_]}init(){const e=this.editor,t=e.model,o=e.editing.view,n=t.document.selection;o.addObserver(x_),e.plugins.get($_).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 cy extends hr{static get pluginName(){return"Clipboard"}static get requires(){return[W_,$_,iy,ly]}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 dy extends pr{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=>!hy(e,a)));t.length&&(uy(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=Kd([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 Nd(i.baseVersion)),t.addOperation(i),o.applyOperation(i),n.history.setOperationAsUndone(e,i)}}}}function uy(e){e.sort(((e,t)=>e.start.isBefore(t.start)?-1:1));for(let t=1;tt!==e&&t.containsRange(e,!0)))}class my extends dy{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 py extends dy{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 gy extends hr{constructor(){super(...arguments),this._batchRegistry=new WeakSet}static get pluginName(){return"UndoEditing"}init(){const e=this.editor,t=e.t;this._undoCommand=new my(e),this._redoCommand=new py(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 fy extends hr{static get pluginName(){return"UndoUI"}init(){const e=this.editor,t=e.locale,o=e.t,n="ltr"==t.uiLanguageDirection?Gh.undo:Gh.redo,i="ltr"==t.uiLanguageDirection?Gh.redo:Gh.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(Tm,e,t,o,n);return i.set({tooltip:!0}),i})),i.ui.componentFactory.add("menuBar:"+e,(()=>this._createButton(lp,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 by extends hr{static get requires(){return[gy,fy]}static get pluginName(){return"Undo"}}function ky(e){return e.createContainerElement("figure",{class:"image"},[e.createEmptyElement("img"),e.createSlot("children")])}function wy(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 _y(e,t){const o=or(t.getSelectedBlocks());return!o||e.isObject(o)||o.isEmpty&&"listItem"!=o.name?"imageBlock":"imageInline"}function yy(e){return e&&e.endsWith("px")?parseInt(e):null}function Ay(e){const t=yy(e.getStyle("width")),o=yy(e.getStyle("height"));return!(!t||!o)}const Cy=/^(image|image-inline)$/;class vy extends hr{constructor(){super(...arguments),this._domEmitter=new(On())}static get pluginName(){return"ImageUtils"}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=xy(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:Cy})}isImageAllowed(){const e=this.editor.model.document.selection;return function(e,t){const o=xy(e,t,null);if("imageBlock"==o){const o=function(e,t){const o=function(e,t){const o=e.getSelectedElement();if(o){const n=Mk(e);if(n)return t.createRange(t.createPositionAt(o,n))}return t.schema.findOptimalInsertionRange(e)}(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 Lk(e,t,{label:()=>{const t=this.findViewImgElement(e).getAttribute("alt");return t?`${t} ${o}`:o}})}isImageWidget(e){return!!e.getCustomProperty("image")&&Ok(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 xy(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")?_y(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 Ey extends pr{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 Dy extends hr{static get requires(){return[vy]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new Ey(this.editor))}}var By=i(8429),Sy={attributes:{"data-cke":!0}};Sy.setAttributes=Er(),Sy.insert=vr().bind(null,"head"),Sy.domAPI=Ar(),Sy.insertStyleElement=Br();_r()(By.A,Sy);By.A&&By.A.locals&&By.A.locals;var Ty=i(871),Iy={attributes:{"data-cke":!0}};Iy.setAttributes=Er(),Iy.insert=vr().bind(null,"head"),Iy.domAPI=Ar(),Iy.insertStyleElement=Br();_r()(Ty.A,Iy);Ty.A&&Ty.A.locals&&Ty.A.locals;class Py extends km{constructor(e){super(e);const t=this.locale.t;this.focusTracker=new nr,this.keystrokes=new ir,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(t("Save"),Gh.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(t("Cancel"),Gh.cancel,"ck-button-cancel","cancel"),this._focusables=new Kh,this._focusCycler=new Mm({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),ym({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 Tm(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 $p(this.locale,Vg);return t.label=e("Text alternative"),t}}function Fy(e){const t=e.editing.view,o=Vf.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 Ry extends hr{static get requires(){return[Vb]}static get pluginName(){return"ImageTextAlternativeUI"}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 Tm(o);return i.set({label:t("Change image text alternative"),icon:Gh.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(_m(Py))(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=Fy(e);t.updatePosition(o)}}(e):this._hideForm(!0)})),wm({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:Fy(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 My extends hr{static get requires(){return[Dy,Ry]}static get pluginName(){return"ImageTextAlternative"}}function zy(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 Vy(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 Ny extends La{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 Oy extends pr{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||"block"===t&&I("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||"inline"===t&&I("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(((e,t)=>{const r=o.getSelectedElement();if("string"==typeof e&&(e={src:e}),t&&r&&n.isImage(r)){const t=this.editor.model.createPositionAfter(r);n.insertImage({...e,...i},t)}else n.insertImage({...e,...i})}))}}class Ly extends pr{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 Hy extends hr{static get requires(){return[vy]}static get pluginName(){return"ImageEditing"}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(Ny),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const o=new Oy(e),n=new Ly(e);e.commands.add("insertImage",o),e.commands.add("replaceImageSource",n),e.commands.add("imageInsert",o)}}class jy extends hr{static get requires(){return[vy]}static get pluginName(){return"ImageSizeAttributes"}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){t.on(`attribute:${n}:${e}`,((t,n,s)=>{if(!s.consumable.consume(n.item,t.name))return;const a=s.writer,l=s.mapper.toViewElement(n.item),c=o.findViewImgElement(l);if(null!==n.attributeNewValue?a.setAttribute(i,n.attributeNewValue,c):a.removeAttribute(i,c),n.item.hasAttribute("sources"))return;const d=n.item.hasAttribute("resizedWidth");if("imageInline"===e&&!d&&!r)return;const u=n.item.getAttribute("width"),h=n.item.getAttribute("height");u&&h&&a.setStyle("aspect-ratio",`${u}/${h}`,c)}))}t.conversion.for("upcast").attributeToAttribute({view:{name:n,styles:{width:/.+/}},model:{key:"width",value:e=>Ay(e)?yy(e.getStyle("width")):null}}).attributeToAttribute({view:{name:n,key:"width"},model:"width"}).attributeToAttribute({view:{name:n,styles:{height:/.+/}},model:{key:"height",value:e=>Ay(e)?yy(e.getStyle("height")):null}}).attributeToAttribute({view:{name:n,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add((e=>{i(e,"width","width",!0),i(e,"height","height",!0)})),t.conversion.for("dataDowncast").add((e=>{i(e,"width","width",!1),i(e,"height","height",!1)}))}}class qy extends pr{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 Uy=i(1091),Wy={attributes:{"data-cke":!0}};Wy.setAttributes=Er(),Wy.insert=vr().bind(null,"head"),Wy.domAPI=Ar(),Wy.insertStyleElement=Br();_r()(Uy.A,Wy);Uy.A&&Uy.A.locals&&Uy.A.locals;class $y extends hr{static get requires(){return[vy]}static get pluginName(){return"ImagePlaceholder"}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(Ny),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 Gy extends hr{static get requires(){return[Hy,jy,vy,$y,$_]}static get pluginName(){return"ImageBlockEditing"}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 qy(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})=>ky(t)}),o.for("editingDowncast").elementToStructure({model:"imageBlock",view:(e,{writer:o})=>n.toImageWidget(ky(o),o,t("image widget"))}),o.for("downcast").add(Vy(n,"imageBlock","src")).add(Vy(n,"imageBlock","alt")).add(zy(n,"imageBlock")),o.for("upcast").elementToElement({view:wy(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"===_y(t.schema,l)){const e=new Uu(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 Ky=i(1545),Zy={attributes:{"data-cke":!0}};Zy.setAttributes=Er(),Zy.insert=vr().bind(null,"head"),Zy.domAPI=Ar(),Zy.insertStyleElement=Br();_r()(Ky.A,Zy);Ky.A&&Ky.A.locals&&Ky.A.locals;class Jy extends km{constructor(e,t=[]){super(e),this.focusTracker=new nr,this.keystrokes=new ir,this._focusables=new Kh,this.children=this.createCollection(),this._focusCycler=new Mm({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 Sp&&this._focusables.addMany(e.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),ym({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 Yy extends hr{static get pluginName(){return"ImageInsertUI"}static get requires(){return[vy]}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}){this._integrations.has(e)&&I("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 xg(e,t),i.tooltip=!0,i.bind("label").to(this,"isImageSelected",(e=>o(e?"Replace image":"Insert image")))}const s=this.dropdownView=Tg(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.map((({formViewCreator:e})=>e(1==n.length))),o=new Jy(t.locale,e);s.panelView.children.add(o)})),s}_createMenuBarComponent(e){const t=e.t,o=this._prepareIntegrations();if(!o.length)return null;let n;const i=o[0];if(1==o.length)n=i.menuBarButtonViewCreator(!0);else{n=new bk(e);const i=new kk(e);n.panelView.children.add(i),n.buttonView.set({icon:Gh.image,label:t("Image")});for(const t of o){const o=new ab(e,n),r=t.menuBarButtonViewCreator(!1);o.children.add(r),i.items.add(o)}}return n}_prepareIntegrations(){const e=this.editor.config.get("image.insert.integrations"),t=[];if(!e.length)return I("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)||I("image-insert-unknown-integration",{item:o});return t.length||I("image-insert-integrations-not-registered"),t}}var Qy=i(8574),Xy={attributes:{"data-cke":!0}};Xy.setAttributes=Er(),Xy.insert=vr().bind(null,"head"),Xy.domAPI=Ar(),Xy.insertStyleElement=Br();_r()(Qy.A,Xy);Qy.A&&Qy.A.locals&&Qy.A.locals;class eA extends hr{static get requires(){return[Hy,jy,vy,$y,$_]}static get pluginName(){return"ImageInlineEditing"}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 qy(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(Vy(n,"imageInline","src")).add(Vy(n,"imageInline","alt")).add(zy(n,"imageInline")),o.for("upcast").elementToElement({view:wy(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"===_y(t.schema,l)){const e=new Uu(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 tA extends hr{static get pluginName(){return"ImageCaptionUtils"}static get requires(){return[vy]}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 oA extends pr{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),o=e.plugins.get("ImageUtils");if(!e.plugins.has(Gy))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 nA extends hr{static get requires(){return[vy,tA]}static get pluginName(){return"ImageCaptionEditing"}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 oA(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"),Fr({view:t,element:r,keepOnFocus:!0});const s=e.parent.getAttribute("alt");return Uk(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?Ul.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 iA extends hr{static get requires(){return[tA]}static get pluginName(){return"ImageCaptionUI"}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 Tm(i);return s.set({icon:Gh.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 rA=i(3038),sA={attributes:{"data-cke":!0}};sA.setAttributes=Er(),sA.insert=vr().bind(null,"head"),sA.domAPI=Ar(),sA.insertStyleElement=Br();_r()(rA.A,sA);rA.A&&rA.A.locals&&rA.A.locals;function aA(e){const t=e.map((e=>e.replace("+","\\+")));return new RegExp(`^image\\/(${t.join("|")})$`)}function lA(e){return new Promise(((t,o)=>{const n=e.getAttribute("src");fetch(n).then((e=>e.blob())).then((e=>{const o=cA(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=cA(t,e),n=o.replace("image/","");return new File([t],`image.${n}`,{type:o})}))}(n).then(t).catch(o):o(e)))}))}function cA(e,t){return e.type?e.type:t.match(/data:(image\/\w+);base64/)?t.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class dA extends hr{static get pluginName(){return"ImageUploadUI"}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=aA(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:Gh.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(Ap);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(Ap);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(_k);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 uA=i(7504),hA={attributes:{"data-cke":!0}};hA.setAttributes=Er(),hA.insert=vr().bind(null,"head"),hA.domAPI=Ar(),hA.insertStyleElement=Br();_r()(uA.A,hA);uA.A&&uA.A.locals&&uA.A.locals;var mA=i(1230),pA={attributes:{"data-cke":!0}};pA.setAttributes=Er(),pA.insert=vr().bind(null,"head"),pA.domAPI=Ar(),pA.insertStyleElement=Br();_r()(mA.A,pA);mA.A&&mA.A.locals&&mA.A.locals;var gA=i(1160),fA={attributes:{"data-cke":!0}};fA.setAttributes=Er(),fA.insert=vr().bind(null,"head"),fA.domAPI=Ar(),fA.insertStyleElement=Br();_r()(gA.A,fA);gA.A&&gA.A.locals&&gA.A.locals;class bA extends hr{static get pluginName(){return"ImageUploadProgress"}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(A_),l=r?t.attributeNewValue:null,c=this.placeholder,d=n.editing.mapper.toViewElement(i),u=o.writer;if("reading"==l)return kA(d,u),void wA(s,c,d,u);if("uploading"==l){const e=a.loaders.get(r);return kA(d,u),void(e?(_A(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)):wA(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){AA(e,t,"progressBar")}(d,u),_A(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 kA(e,t){e.hasClass("ck-appear")||t.addClass("ck-appear",e)}function wA(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),yA(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 _A(e,t){e.hasClass("ck-image-upload-placeholder")&&t.removeClass("ck-image-upload-placeholder",e),AA(e,t,"placeholder")}function yA(e,t){for(const o of e.getChildren())if(o.getCustomProperty(t))return o}function AA(e,t,o){const n=yA(e,o);n&&t.remove(t.createRangeOn(n))}class CA extends pr{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(A_).createLoader(e),r=n.plugins.get("ImageUtils");i&&r.insertImage({...t,uploadId:i.id},o)}}class vA extends hr{static get requires(){return[A_,Tb,$_,vy]}static get pluginName(){return"ImageUploadEditing"}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,n=e.plugins.get(A_),i=e.plugins.get("ImageUtils"),r=e.plugins.get("ClipboardPipeline"),s=aA(e.config.get("image.upload.types")),a=new CA(e);e.commands.add("uploadImage",a),e.commands.add("imageUpload",a),o.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),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:lA(e),imageElement:e})));if(!r.length)return;const s=new Uu(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 xA(e,o)){const e=t.getAttribute("uploadId");if(!e)continue;const o=n.loaders.get(e);o&&(r?i.has(e)||o.abort():(i.add(e),this._uploadImageElements.set(e,t),"idle"==o.status&&this._readAndUpload(o)))}}})),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.editor.plugins.has("ImageInlineEditing")&&e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(e){const t=this.editor,o=t.model,n=t.locale.t,i=t.plugins.get(A_),r=t.plugins.get(Tb),s=t.plugins.get("ImageUtils"),a=this._uploadImageElements;return o.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("uploadStatus","reading",a.get(e.id))})),e.read().then((()=>{const i=e.upload(),r=a.get(e.id);if(c.isSafari){const e=t.editing.mapper.toViewElement(r),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}))}return t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Uploading image")),o.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","uploading",r)})),i})).then((i=>{o.enqueueChange({isUndoable:!1},(o=>{const r=a.get(e.id);o.setAttribute("uploadStatus","complete",r),t.ui&&t.ui.ariaLiveAnnouncer.announce(n("Image upload complete")),this.fire("uploadComplete",{data:i,imageElement:r})})),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=>{t.remove(a.get(e.id))})),l()}));function l(){o.enqueueChange({isUndoable:!1},(t=>{const o=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)}}}function xA(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 EA extends hr{static get pluginName(){return"ImageUpload"}static get requires(){return[vA,dA,bA]}}const DA=function(e,t){return function(o,n){if(null==o)return o;if(!fo(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 IA extends hr{static get requires(){return[vy]}static get pluginName(){return"ImageResizeEditing"}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 TA(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=>Ay(e)?null:e.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===e?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:e=>Ay(e)?null:e.getStyle("height")}})}}const PA=(()=>({small:Gh.objectSizeSmall,medium:Gh.objectSizeMedium,large:Gh.objectSizeLarge,custom:Gh.objectSizeCustom,original:Gh.objectSizeFull}))();class FA extends hr{static get requires(){return[IA]}static get pluginName(){return"ImageResizeButtons"}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 Tm(o),s=t.commands.get("resizeImage"),a=this._getOptionLabelValue(e,!0);if(!PA[i])throw new T("imageresizebuttons-missing-icon",t,e);if(r.set({label:a,icon:PA[i],tooltip:a,isToggleable:!0}),r.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&RA(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",MA(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=Tg(i,sg),a=s.buttonView,l=o("Resize image");return a.set({tooltip:l,commandValue:n.value,icon:PA.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),Fg(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?RA(e)?o("Custom image size"):e.value?o("Resize image to %0",e.value+this._resizeUnit):o("Resize image to the original size"):RA(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=>RA(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")&&RA(e)){const n=o.plugins.get("ImageCustomResizeUI");r={type:"button",model:new Ib({label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{n._showForm(this._resizeUnit)}})};const s=SA(i,"valueWithUnits");r.model.bind("isOn").to(t,"value",zA(s))}else r={type:"button",model:new Ib({commandName:"resizeImage",commandValue:e.valueWithUnits,label:this._getOptionLabelValue(e),role:"menuitemradio",withText:!0,icon:null})},r.model.bind("isOn").to(t,"value",MA(e.valueWithUnits));r.model.bind("isEnabled").to(t,"isEnabled"),n.add(r)}return n}}function RA(e){return"custom"===e.value}function MA(e){return t=>null===e&&t===e||null!==t&&t.width===e}function zA(e){return t=>!e.some((e=>MA(e)(t)))}const VA="image_resized";class NA extends hr{static get requires(){return[u_,vy]}static get pluginName(){return"ImageResizeHandles"}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(Ny),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(u_).getResizerByViewElement(a);if(l)return void l.redraw();const c=e.editing.mapper,d=c.toModelElement(a);l=e.plugins.get(u_).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(VA,a)})),e.execute("resizeImage",{width:o})}}),l.on("updateSize",(()=>{a.hasClass(VA)||t.change((e=>{e.addClass(VA,a)}));const e="imageInline"===d.name?s:a;e.getStyle("height")&&t.change((t=>{t.removeStyle("height",e)}))})),l.bind("isEnabled").to(this)}))}}function OA(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 LA(e,t,o){return"px"===o?{value:t.value,unit:"px"}:{value:t.value/e*100,unit:"%"}}function HA(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 jA=i(1173),qA={attributes:{"data-cke":!0}};qA.setAttributes=Er(),qA.insert=vr().bind(null,"head"),qA.domAPI=Ar(),qA.insertStyleElement=Br();_r()(jA.A,qA);jA.A&&jA.A.locals&&jA.A.locals;class UA extends km{constructor(e,t,o){super(e);const n=this.locale.t;this.focusTracker=new nr,this.keystrokes=new ir,this.unit=t,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(n("Save"),Gh.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),Gh.cancel,"ck-button-cancel","cancel"),this._focusables=new Kh,this._validators=o,this._focusCycler=new Mm({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),ym({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 Tm(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 $p(this.locale,Ng);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 WA extends hr{static get requires(){return[Vb]}static get pluginName(){return"ImageCustomResizeUI"}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){const t=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(_m(UA))(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()})),wm({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:Fy(t)});const n=function(e,t){const o=HA(e);if(!o)return null;const n=OA(o.model.getAttribute("resizedWidth")||null);return n?n.unit===t?n:LA($k(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=HA(e);if(!o)return null;const n=$k(o.dom),i=OA(window.getComputedStyle(o.dom).minWidth)||{value:1,unit:"px"};return{unit:t,lower:Math.max(.1,LA(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 $A=i(4214),GA={attributes:{"data-cke":!0}};GA.setAttributes=Er(),GA.insert=vr().bind(null,"head"),GA.domAPI=Ar(),GA.insertStyleElement=Br();_r()($A.A,GA);$A.A&&$A.A.locals&&$A.A.locals;class KA extends pr{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 ZA={get inline(){return{name:"inline",title:"In line",icon:Gh.objectInline,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:Gh.objectLeft,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Gh.objectBlockLeft,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Gh.objectCenter,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Gh.objectRight,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:Gh.objectBlockRight,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Gh.objectCenter,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Gh.objectRight,modelElements:["imageBlock"],className:"image-style-side"}}},JA=(()=>({full:Gh.objectFullWidth,left:Gh.objectBlockLeft,right:Gh.objectBlockRight,center:Gh.objectCenter,inlineLeft:Gh.objectLeft,inlineRight:Gh.objectRight,inline:Gh.objectInline}))(),YA=[{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 QA(e){I("image-style-configuration-definition-invalid",e)}const XA={normalizeStyles:function(e){const t=(e.configuredStyles.options||[]).map((e=>function(e){e="string"==typeof e?ZA[e]?{...ZA[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}(ZA[e.name],e);"string"==typeof e.icon&&(e.icon=JA[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 QA({style:e}),!1;{const i=[t?"imageBlock":null,o?"imageInline":null];if(!n.some((e=>i.includes(e))))return I("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")?[...YA]:[]},warnInvalidStyle:QA,DEFAULT_OPTIONS:ZA,DEFAULT_ICONS:JA,DEFAULT_DROPDOWN_DEFINITIONS:YA};function eC(e,t){for(const o of t)if(o.name===e)return o}class tC extends hr{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[vy]}init(){const{normalizeStyles:e,getDefaultStylesConfiguration:t}=XA,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 KA(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=eC(t.attributeNewValue,r),i=eC(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(vy),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 oC=i(7879),nC={attributes:{"data-cke":!0}};nC.setAttributes=Er(),nC.insert=vr().bind(null,"head"),nC.domAPI=Ar(),nC.insertStyleElement=Br();_r()(oC.A,nC);oC.A&&oC.A.locals&&oC.A.locals;class iC extends hr{static get requires(){return[tC]}static get pluginName(){return"ImageStyleUI"}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=rC(e.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const e of o)this._createButton(e);const n=rC([...t.filter(K),...XA.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})=>sC(t)===e)))).map((e=>{const t=o.create(e);return e===r&&(i=t),t}));s.length!==l.length&&XA.warnInvalidStyle({dropdown:e});const c=Tg(n,xg),d=c.buttonView,u=d.arrowView;return Ig(c,l,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:aC(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(Vi);return t<0?i.icon:l[t].icon})),d.bind("label").toMany(l,"isOn",((...e)=>{const t=e.findIndex(Vi);return aC(a,t<0?i.label:l[t].label)})),d.bind("isOn").toMany(l,"isOn",((...e)=>e.some(Vi))),d.bind("class").toMany(l,"isOn",((...e)=>e.some(Vi)?"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(Vi))),this.listenTo(c,"execute",(()=>{this.editor.editing.view.focus()})),c}))}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(sC(t),(o=>{const n=this.editor.commands.get("imageStyle"),i=new Tm(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 rC(e,t){for(const o of e)t[o.title]&&(o.title=t[o.title]);return e}function sC(e){return`imageStyle:${e}`}function aC(e,t){return(e?e+": ":"")+t}function lC(e){return e.map((e=>K(e)?e.name:e))}const cC=Symbol("isWpButtonMacroSymbol");function dC(e){const t=e.getSelectedElement();return!(!t||!function(e){return!!e.getCustomProperty(cC)&&Ok(e)}(t))}class uC extends hr{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(uC.buttonName,(t=>{const o=new Tm(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(cC,!0,e),Lk(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 hC extends hr{static get requires(){return[Vb]}static get pluginName(){return"OPChildPagesToolbar"}init(){const e=this.editor,t=this.editor.model,o=Yk(e);h_(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(){p_(this,this.editor,"OPChildPages",dC)}}class mC extends pr{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)||!pC(e.schema,o))do{if(o=o.parent,!o)return}while(!pC(e.schema,o));e.change((e=>{e.setSelection(o,"in")}))}}function pC(e,t){return e.isLimit(t)&&(e.checkChild(t,"$text")||e.checkChild(t,"paragraph"))}const gC=xi("Ctrl+A");class fC extends hr{static get pluginName(){return"SelectAllEditing"}init(){const e=this.editor,t=e.t,o=e.editing.view.document;e.commands.add("selectAll",new mC(e)),this.listenTo(o,"keydown",((t,o)=>{vi(o)===gC&&(e.execute("selectAll"),o.preventDefault())})),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Select all"),keystroke:"CTRL+A"}]})}}class bC extends hr{static get pluginName(){return"SelectAllUI"}init(){const e=this.editor;e.ui.componentFactory.add("selectAll",(()=>{const e=this._createButton(Tm);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:selectAll",(()=>this._createButton(lp)))}_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 kC extends hr{static get requires(){return[fC,bC]}static get pluginName(){return"SelectAll"}}const wC="ckCsrfToken",_C="abcdefghijklmnopqrstuvwxyz0123456789";function yC(){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}(wC);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=wC,o=e,document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(o)+";path=/"),e}class AC{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",yC()),this.xhr.send(t)}}function CC(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),m=e.model.createRangeOn(h);if(!m.containsRange(l)&&!l.end.isEqual(m.end))return;const p=o.exec(h.data.substr(0,l.end.offset));p&&e.model.enqueueChange((t=>{const o=t.createPositionAt(u,0),n=t.createPositionAt(u,p[0].length),r=new mc(o,n);if(!1!==i({match:p})){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 vC(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:m}=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),p=r(h),g=xC(m.start,p.format,s),f=xC(m.start,p.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 xC(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 EC(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 DC extends pr{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 BC="bold";class SC extends hr{static get pluginName(){return"BoldEditing"}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:BC}),e.model.schema.setAttributeProperties(BC,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:BC,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(BC,new DC(e,BC)),e.keystrokes.set("CTRL+B",BC),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Bold text"),keystroke:"CTRL+B"}]})}}function TC({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 lp?l.set({role:"menuitemcheckbox"}):l.set({tooltip:!0}),o.listenTo(l,"execute",(()=>{e.execute(t),e.editing.view.focus()})),l}}const IC="bold";class PC extends hr{static get pluginName(){return"BoldUI"}init(){const e=this.editor,t=e.locale.t,o=TC({editor:e,commandName:IC,plugin:this,icon:Gh.bold,label:t("Bold"),keystroke:"CTRL+B"});e.ui.componentFactory.add(IC,(()=>o(Tm))),e.ui.componentFactory.add("menuBar:"+IC,(()=>o(lp)))}}const FC="code";class RC extends hr{static get pluginName(){return"CodeEditing"}static get requires(){return[Aw]}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:FC}),e.model.schema.setAttributeProperties(FC,{isFormatting:!0,copyOnEnter:!1}),e.conversion.attributeToElement({model:FC,view:"code",upcastAlso:{styles:{"word-wrap":"break-word"}}}),e.commands.add(FC,new DC(e,FC)),e.plugins.get(Aw).registerAttribute(FC),Pw(e,FC,"code","ck-code_selected"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Move out of an inline code style"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}}var MC=i(9248),zC={attributes:{"data-cke":!0}};zC.setAttributes=Er(),zC.insert=vr().bind(null,"head"),zC.domAPI=Ar(),zC.insertStyleElement=Br();_r()(MC.A,zC);MC.A&&MC.A.locals&&MC.A.locals;const VC="code";class NC extends hr{static get pluginName(){return"CodeUI"}init(){const e=this.editor,t=e.locale.t,o=TC({editor:e,commandName:VC,plugin:this,icon:'',label:t("Code")});e.ui.componentFactory.add(VC,(()=>o(Tm))),e.ui.componentFactory.add("menuBar:"+VC,(()=>o(lp)))}}const OC="italic";class LC extends hr{static get pluginName(){return"ItalicEditing"}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:OC}),e.model.schema.setAttributeProperties(OC,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:OC,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),e.commands.add(OC,new DC(e,OC)),e.keystrokes.set("CTRL+I",OC),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Italic text"),keystroke:"CTRL+I"}]})}}const HC="italic";class jC extends hr{static get pluginName(){return"ItalicUI"}init(){const e=this.editor,t=e.locale.t,o=TC({editor:e,commandName:HC,plugin:this,icon:'',keystroke:"CTRL+I",label:t("Italic")});e.ui.componentFactory.add(HC,(()=>o(Tm))),e.ui.componentFactory.add("menuBar:"+HC,(()=>o(lp)))}}const qC="strikethrough";class UC extends hr{static get pluginName(){return"StrikethroughEditing"}init(){const e=this.editor,t=this.editor.t;e.model.schema.extend("$text",{allowAttributes:qC}),e.model.schema.setAttributeProperties(qC,{isFormatting:!0,copyOnEnter:!0}),e.conversion.attributeToElement({model:qC,view:"s",upcastAlso:["del","strike",{styles:{"text-decoration":"line-through"}}]}),e.commands.add(qC,new DC(e,qC)),e.keystrokes.set("CTRL+SHIFT+X","strikethrough"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Strikethrough text"),keystroke:"CTRL+SHIFT+X"}]})}}const WC="strikethrough";class $C extends hr{static get pluginName(){return"StrikethroughUI"}init(){const e=this.editor,t=e.locale.t,o=TC({editor:e,commandName:WC,plugin:this,icon:'',keystroke:"CTRL+SHIFT+X",label:t("Strikethrough")});e.ui.componentFactory.add(WC,(()=>o(Tm))),e.ui.componentFactory.add("menuBar:"+WC,(()=>o(lp)))}}class GC extends pr{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=>KC(e)||JC(o,e)));this._applyQuote(e,t)}else this._removeQuote(e,i.filter(KC))}))}_getValue(){const e=or(this.editor.model.document.selection.getSelectedBlocks());return!(!e||!KC(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&&JC(t,o)}_removeQuote(e,t){ZC(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=[];ZC(e,t).reverse().forEach((t=>{let n=KC(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 KC(e){return"blockQuote"==e.parent.name?e.parent:null}function ZC(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 QC=i(1501),XC={attributes:{"data-cke":!0}};XC.setAttributes=Er(),XC.insert=vr().bind(null,"head"),XC.domAPI=Ar(),XC.insertStyleElement=Br();_r()(QC.A,XC);QC.A&&QC.A.locals&&QC.A.locals;class ev extends hr{static get pluginName(){return"BlockQuoteUI"}init(){const e=this.editor;e.ui.componentFactory.add("blockQuote",(()=>{const e=this._createButton(Tm);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:blockQuote",(()=>{const e=this._createButton(lp);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:Gh.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 tv extends pr{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&&ov(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")&&ov(n,t.schema)&&e.rename(n,"paragraph")}))}}function ov(e,t){return t.checkChild(e.parent,"paragraph")&&!t.isObject(e)}class nv extends pr{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}execute(e){const t=this.editor.model,o=e.attributes;let n=e.position;t.canEditAt(n)&&t.change((e=>{if(n=this._findPositionToInsertParagraph(n,e),!n)return;const i=e.createElement("paragraph");o&&t.schema.setAllowedAttributes(i,o,e),t.insertContent(i,n),e.setSelection(i,"in")}))}_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 iv extends hr{static get pluginName(){return"Paragraph"}init(){const e=this.editor,t=e.model;e.commands.add("paragraph",new tv(e)),e.commands.add("insertParagraph",new nv(e)),t.schema.register("paragraph",{inheritAllFrom:"$block"}),e.conversion.elementToElement({model:"paragraph",view:"p"}),e.conversion.for("upcast").elementToElement({model:(e,{writer:t})=>iv.paragraphLikeElements.has(e.name)?e.isEmpty?null:t.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}iv.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);const rv=iv;class sv extends pr{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=>av(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=>av(e,n,t.schema)));for(const t of i)t.is("element",n)||e.rename(t,n)}))}}function av(e,t,o){return o.checkChild(e.parent,t)&&!o.isObject(e)}const lv="paragraph";class cv extends hr{static get pluginName(){return"HeadingEditing"}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[rv]}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 sv(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",lv)&&0===i.childCount&&n.writer.rename(i,lv)}))}_addDefaultH1Conversion(e){e.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:D.low+1})}}var dv=i(6186),uv={attributes:{"data-cke":!0}};uv.setAttributes=Er(),uv.insert=vr().bind(null,"head"),uv.domAPI=Ar(),uv.insertStyleElement=Br();_r()(dv.A,uv);dv.A&&dv.A.locals&&dv.A.locals;class hv extends hr{static get pluginName(){return"HeadingUI"}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 Ib({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=Tg(t);return Fg(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 bk(n),r=e.commands.get("heading"),s=e.commands.get("paragraph"),a=[r],l=new kk(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 ab(n,i),c=new lp(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 mv{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")));for(const e of this._definitions){const n=rr(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 pv=function(e,t,o){var n=e.length;return o=void 0===o?n:o,!t&&o>=n?e:ps(e,t,o)};var gv=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const fv=function(e){return gv.test(e)};const bv=function(e){return e.split("")};var kv="\\ud800-\\udfff",wv="["+kv+"]",_v="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",yv="\\ud83c[\\udffb-\\udfff]",Av="[^"+kv+"]",Cv="(?:\\ud83c[\\udde6-\\uddff]){2}",vv="[\\ud800-\\udbff][\\udc00-\\udfff]",xv="(?:"+_v+"|"+yv+")"+"?",Ev="[\\ufe0e\\ufe0f]?",Dv=Ev+xv+("(?:\\u200d(?:"+[Av,Cv,vv].join("|")+")"+Ev+xv+")*"),Bv="(?:"+[Av+_v+"?",_v,Cv,vv,wv].join("|")+")",Sv=RegExp(yv+"(?="+yv+")|"+Bv+Dv,"g");const Tv=function(e){return e.match(Sv)||[]};const Iv=function(e){return fv(e)?Tv(e):bv(e)};const Pv=function(e){return function(t){t=cs(t);var o=fv(t)?Iv(t):void 0,n=o?o[0]:t.charAt(0),i=o?pv(o,1).join(""):t.slice(1);return n[e]()+i}}("toUpperCase"),Fv=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Rv=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,Mv=/^((\w+:(\/{2,})?)|(\W))/i,zv=["https?","ftps?","mailto"],Vv="Ctrl+K";function Nv(e,{writer:t}){const o=t.createAttributeElement("a",{href:e},{priority:5});return t.setCustomProperty("link",!0,o),o}function Ov(e,t=zv){const o=String(e),n=t.join("|");return function(e,t){const o=e.replace(Fv,"");return!!o.match(t)}(o,new RegExp(`${"^(?:(?:):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))".replace("",n)}`,"i"))?o:"#"}function Lv(e,t){return!!e&&t.checkAttribute(e.name,"linkHref")}function Hv(e,t){const o=(n=e,Rv.test(n)?"mailto:":t);var n;const i=!!o&&!jv(e);return e&&i?o+e:e}function jv(e){return Mv.test(e)}function qv(e){window.open(e,"_blank","noopener")}class Uv extends pr{constructor(){super(...arguments),this.manualDecorators=new tr,this.automaticDecorators=new mv}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());Lv(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=Wv(n);let l=Tw(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=rr(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=Wv(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 Lv(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 Wv(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 $v extends pr{refresh(){const e=this.editor.model,t=e.document.selection,o=t.getSelectedElement();Lv(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?[Tw(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 Gv extends(te()){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 Kv=i(7456),Zv={attributes:{"data-cke":!0}};Zv.setAttributes=Er(),Zv.insert=vr().bind(null,"head"),Zv.domAPI=Ar(),Zv.insertStyleElement=Br();_r()(Kv.A,Zv);Kv.A&&Kv.A.locals&&Kv.A.locals;const Jv="automatic",Yv=/^(https?:)?\/\//;class Qv extends hr{static get pluginName(){return"LinkEditing"}static get requires(){return[Aw,aw,$_]}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:Nv}),e.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(e,o)=>Nv(Ov(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 Uv(e)),e.commands.add("unlink",new $v(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${Pv(o)}`});t.push(e)}return t}(e.config.get("link.decorators")));this._enableAutomaticDecorators(o.filter((e=>e.mode===Jv))),this._enableManualDecorators(o.filter((e=>"manual"===e.mode)));e.plugins.get(Aw).registerAttribute("linkHref"),Pw(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:Jv,callback:e=>!!e&&Yv.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 Gv(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;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 n=o.getAttribute("href");n&&(e.stop(),t.preventDefault(),qv(n))}),{context:"$capture"}),this.listenTo(t,"keydown",((t,o)=>{const n=e.commands.get("link").value;!!n&&o.keyCode===Ai.enter&&o.altKey&&(t.stop(),qv(n))}))}_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=Hv(n.getAttribute("linkHref"),o);e.setAttribute("linkHref",t,n)}}))}))}}var Xv=i(2350),ex={attributes:{"data-cke":!0}};ex.setAttributes=Er(),ex.insert=vr().bind(null,"head"),ex.domAPI=Ar(),ex.insertStyleElement=Br();_r()(Xv.A,ex);Xv.A&&Xv.A.locals&&Xv.A.locals;class tx extends km{constructor(e,t,o){super(e),this.focusTracker=new nr,this.keystrokes=new ir,this._focusables=new Kh;const n=e.t;this._validators=o,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Gh.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),Gh.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(t),this.children=this._createFormChildren(t.manualDecorators),this._focusCycler=new Mm({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(),ym({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 $p(this.locale,Vg);return t.fieldView.inputMode="url",t.label=e("Link URL"),t}_createButton(e,t,o,n){const i=new Tm(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 yp(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 km;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 ox=i(8040),nx={attributes:{"data-cke":!0}};nx.setAttributes=Er(),nx.insert=vr().bind(null,"head"),nx.domAPI=Ar(),nx.insertStyleElement=Br();_r()(ox.A,nx);ox.A&&ox.A.locals&&ox.A.locals;class ix extends km{constructor(e,t={}){super(e),this.focusTracker=new nr,this.keystrokes=new ir,this._focusables=new Kh;const o=e.t;this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(o("Unlink"),'',"unlink"),this.editButtonView=this._createButton(o("Edit link"),Gh.pencil,"edit"),this.set("href",void 0),this._linkConfig=t,this._focusCycler=new Mm({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 Tm(this.locale);return n.set({label:e,icon:t,tooltip:!0}),n.delegate("execute").to(this,o),n}_createPreviewButton(){const e=new Tm(this.locale),t=this.bindTemplate,o=this.t;return e.set({withText:!0,tooltip:o("Open link in new tab")}),e.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:t.to("href",(e=>e&&Ov(e,this._linkConfig.allowedProtocols))),target:"_blank",rel:"noopener noreferrer"}}),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.template.eventListeners={},e}}const rx="link-ui";class sx extends hr{constructor(){super(...arguments),this.actionsView=null,this.formView=null}static get requires(){return[Vb]}static get pluginName(){return"LinkUI"}init(){const e=this.editor,t=this.editor.t;e.editing.view.addObserver(ju),this._balloon=e.plugins.get(Vb),this._createToolbarLinkButton(),this._enableBalloonActivators(),e.conversion.for("editingDowncast").markerToHighlight({model:rx,view:{classes:["ck-fake-link-selection"]}}),e.conversion.for("editingDowncast").markerToElement({model:rx,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:Vv},{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 ix(e.locale,e.config.get("link")),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(Vv,((e,t)=>{this._addFormView(),t()})),t}_createFormView(){const e=this.editor,t=e.commands.get("link"),o=e.config.get("link.defaultProtocol"),n=new(_m(tx))(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=Hv(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(Tm);return e.set({tooltip:!0}),e})),e.ui.componentFactory.add("menuBar:link",(()=>{const e=this._createButton(lp);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:Vv,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(Vv,((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())})),wm({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(rx)){const t=Array.from(this.editor.editing.mapper.markerNameToElements(rx)),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&&Ok(o))return ax(t.getFirstPosition());{const o=t.getFirstRange().getTrimmed(),n=ax(o.start),i=ax(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(rx))t.updateMarker(rx,{range:o});else if(o.start.isAtEnd){const n=o.start.getLastMatchingPosition((({item:t})=>!e.schema.isContent(t)),{boundaries:o});t.addMarker(rx,{usingOperation:!1,affectsData:!1,range:t.createRange(n,o.end)})}else t.addMarker(rx,{usingOperation:!1,affectsData:!1,range:o})}))}_hideFakeVisualSelection(){const e=this.editor.model;e.markers.has(rx)&&e.change((e=>{e.removeMarker(rx)}))}}function ax(e){return e.getAncestors().find((e=>{return(t=e).is("attributeElement")&&!!t.getCustomProperty("link");var t}))||null}const lx=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 cx extends hr{static get requires(){return[kw,Qv]}static get pluginName(){return"AutoLink"}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")?Tw(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(lx);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 yw(e.model,(e=>{if(!function(e){return e.length>4&&" "===e[e.length-1]&&" "!==e[e.length-2]}(e))return;const t=dx(e.substr(0,e.length-1));return t?{url:t}:void 0}));t.on("matched:data",((t,o)=>{const{batch:n,range:i,url:r}=o;if(!n.isTyping)return;const s=i.end.getShiftedBy(-1),a=s.getShiftedBy(-r.length),l=e.model.createRange(a,s);this._applyAutoLink(r,l)})),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}=_w(e,t),i=dx(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=Hv(e,this.editor.config.get("link.defaultProtocol"));this.isEnabled&&function(e,t){return t.schema.checkAttributeInSelection(t.createSelection(e),"linkHref")}(t,o)&&jv(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 dx(e){const t=lx.exec(e);return t?t[2]:null}var ux=i(3669),hx={attributes:{"data-cke":!0}};hx.setAttributes=Er(),hx.insert=vr().bind(null,"head"),hx.domAPI=Ar(),hx.insertStyleElement=Br();_r()(ux.A,hx);ux.A&&ux.A.locals&&ux.A.locals;class mx{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 px(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}}function*px(e,t="forward"){const o="forward"==t,n=[];let i=null;for(;bx(e);){let t=null;if(i){const o=e.getAttribute("listIndent"),r=i.getAttribute("listIndent");o>r?n[r]=i:oe.getAttribute("listItemId")!=t))}function Tx(e){return Array.from(e).filter((e=>"$graveyard"!==e.root.rootName)).sort(((e,t)=>e.index-t.index))}function Ix(e){const t=e.document.selection.getSelectedElement();return t&&e.schema.isObject(t)&&e.schema.isBlock(t)?t:null}function Px(e,t){return t.checkChild(e.parent,"listItem")&&t.checkChild(e,"$text")&&!t.isObject(e)}function Fx(e){return"numbered"==e||"customNumbered"==e}function Rx(e,t,o){return wx(t,{direction:"forward"}).pop().index>e.index?Ex(e,t,o):[]}class Mx extends pr{constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=this.editor.model,t=zx(e.document.selection);e.change((e=>{const o=[];Sx(t)&&!yx(t[0])?("forward"==this._direction&&o.push(...Dx(t,e)),o.push(...xx(t[0],e))):"forward"==this._direction?o.push(...Dx(t,e,{expand:!0})):o.push(...function(e,t){const o=Cx(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,mx.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)Bx(e,t);else{if(e.getAttribute("listIndent")==i){const o=Rx(e,r.get(e),t);for(const e of o)n.add(e);if(o.length)continue}t.setAttribute("listIndent",o,e)}}return Tx(n)}(t,e));for(const t of o){if(!t.hasAttribute("listType"))continue;const o=mx.first(t,{sameIndent:!0});o&&e.setAttribute("listType",o.getAttribute("listType"),t)}this._fireAfterExecute(o)}))}_fireAfterExecute(e){this.fire("afterExecute",Tx(new Set(e)))}_checkEnabled(){let e=zx(this.editor.model.document.selection),t=e[0];if(!t)return!1;if("backward"==this._direction)return!0;if(Sx(e)&&!yx(e[0]))return!0;e=Cx(e),t=e[0];const o=mx.first(t,{sameIndent:!0});return!!o&&o.getAttribute("listType")==t.getAttribute("listType")}}function zx(e){const t=Array.from(e.getSelectedBlocks()),o=t.findIndex((e=>!bx(e)));return-1!=o&&(t.length=o),t}class Vx extends pr{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=Ix(t),i=Array.from(o.selection.getSelectedBlocks()).filter((e=>t.schema.checkAttribute(e,"listType")||Px(e,t.schema))),r=void 0!==e.forceValue?!e.forceValue:this.value;t.change((s=>{if(r){const e=i[i.length-1],t=wx(e,{direction:"forward"}),o=[];t.length>1&&o.push(...xx(t[1],s)),o.push(...Bx(i,s)),o.push(...function(e,t){const o=[];let n=Number.POSITIVE_INFINITY;for(const{node:i}of px(e.nextSibling,"forward")){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 mx(d,{direction:"forward",higherIndent:!0})));n.push(...Dx([s,...e],i,{indentBy:a-l,expand:a{const t=xx(this._getStartBlock(),e);this._fireAfterExecute(t)}))}_fireAfterExecute(e){this.fire("afterExecute",Tx(new Set(e)))}_checkEnabled(){const e=this.editor.model.document.selection,t=this._getStartBlock();return e.isCollapsed&&bx(t)&&!yx(t)}_getStartBlock(){const e=this.editor.model.document.selection.getFirstPosition().parent;return"before"==this._direction?e:e.nextSibling}}class Lx extends hr{static get pluginName(){return"ListUtils"}expandListBlocksToCompleteList(e){return vx(e)}isFirstBlockOfListItem(e){return yx(e)}isListItemBlock(e){return bx(e)}expandListBlocksToCompleteItems(e,t={}){return Cx(e,t)}isNumberedListType(e){return Fx(e)}}function Hx(e){return e.is("element","ol")||e.is("element","ul")}function jx(e){return e.is("element","li")}function qx(e,t,o,n=$x(o,t)){return e.createAttributeElement(Wx(o),null,{priority:2*t/100-100,id:n})}function Ux(e,t,o){return e.createAttributeElement("li",null,{priority:(2*t+1)/100-100,id:o})}function Wx(e){return"numbered"==e||"customNumbered"==e?"ol":"ul"}function $x(e,t){return`list-${e}-${t}`}function Gx(e,t){const o=e.nodeBefore;if(bx(o)){let e=o;for(const{node:o}of px(e,"backward"))if(e=o,t.has(e))return;t.set(o,e)}else{const o=e.nodeAfter;bx(o)&&t.set(o,o)}}function Kx(){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=fx.next(),a=function(e){let t=0,o=e.parent;for(;o;){if(jx(o))t++;else{const e=o.previousSibling;e&&jx(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 Zx(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);Yx(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 m=function(e,t,o,n,{dataPipeline:i}){let r=n.createRangeOn(t);if(!yx(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=Ux(n,e,r.getAttribute("listItemId")),s=qx(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=mx.first(r,{lowerIndent:!0}),!r)break}}(u,m,t,l)}}function Jx(e,{dataPipeline:t}={}){return(o,{writer:n})=>{if(!Qx(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 Yx(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 Qx(e,t,o=kx(e)){if(!bx(e))return!1;for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&!t.includes(o))return!1;return o.length<2}var Xx=i(7875),eE={attributes:{"data-cke":!0}};eE.setAttributes=Er(),eE.insert=vr().bind(null,"head"),eE.domAPI=Ar(),eE.insertStyleElement=Br();_r()(Xx.A,eE);Xx.A&&Xx.A.locals&&Xx.A.locals;var tE=i(532),oE={attributes:{"data-cke":!0}};oE.setAttributes=Er(),oE.insert=vr().bind(null,"head"),oE.domAPI=Ar(),oE.insertStyleElement=Br();_r()(tE.A,oE);tE.A&&tE.A.locals&&tE.A.locals;const nE=["listType","listIndent","listItemId"];class iE extends hr{static get pluginName(){return"ListEditing"}static get requires(){return[Nw,kw,Lx,$_]}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 T("list-feature-conflict",this,{conflictPlugin:"LegacyListEditing"});t.schema.register("$listItem",{allowAttributes:nE}),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 nE)t.schema.setAttributeProperties(e,{copyOnReplace:!0});e.commands.add("numberedList",new Vx(e,"numbered")),e.commands.add("bulletedList",new Vx(e,"bulleted")),e.commands.add("customNumberedList",new Vx(e,"customNumbered",{multiLevel:!0})),e.commands.add("customBulletedList",new Vx(e,"customBulleted",{multiLevel:!0})),e.commands.add("indentList",new Mx(e,"forward")),e.commands.add("outdentList",new Mx(e,"backward")),e.commands.add("splitListItemBefore",new Ox(e,"before")),e.commands.add("splitListItemAfter",new Ox(e,"after")),o&&(e.commands.add("mergeListItemBackward",new Nx(e,"backward")),e.commands.add("mergeListItemForward",new Nx(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[...nE,...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;Ix(e.model)||e.model.change((()=>{const s=r.getFirstPosition();if(r.isCollapsed&&"backward"==i.direction){if(!s.isAtStart)return;const o=s.parent;if(!bx(o))return;if(mx.first(o,{sameAttributes:"listType",sameIndent:!0})||0!==o.getAttribute("listIndent")){if(!t||!t.isEnabled)return;t.execute({shouldMergeOnBlocksContentLevel:rE(e.model,"backward")})}else Ax(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:rE(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&&bx(r)&&r.isEmpty&&!n.isSoft){const t=yx(r),i=Ax(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===kx(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",Kx())})),n||e.conversion.for("downcast").elementToElement({model:"listItem",view:"p"}),e.conversion.for("editingDowncast").elementToElement({model:i,view:Jx(o),converterPriority:"high"}).add((e=>{var n;e.on("attribute",Zx(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&&Yx(d,i,r)}))})),e.conversion.for("dataDowncast").elementToElement({model:i,view:Jx(o,{dataPipeline:!0}),converterPriority:"high"}).add((e=>{e.on("attribute",Zx(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(!bx(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 Map,l=new Set;for(const e of n)if("insert"==e.type&&"$text"!=e.name)Gx(e.position,a),e.attributes.has("listItemId")?l.add(e.position.nodeAfter):Gx(e.position.getShiftedBy(e.length),a);else if("remove"==e.type&&e.attributes.has("listItemId"))Gx(e.position,a);else if("attribute"==e.type){const t=e.range.start.nodeAfter;o.includes(e.attributeKey)?(Gx(e.range.start,a),null===e.attributeNewValue?(Gx(e.range.start.getShiftedBy(1),a),r(t)&&s.push(t)):l.add(t)):bx(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 px(e,"forward")){if(i.has(l))continue;const e=l.getAttribute("listIndent");c&&eo.includes(e))));const d=wx(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=Qx(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=jx(e),i=Hx(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==Wx(o.listType)&&t.id==$x(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 Map,s=n.editor.config.get("list.multiBlock");let a=!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),a=!0);Gx(n.position,r),n.attributes.has("listItemId")||Gx(n.position.getShiftedBy(n.length),r);for(const{item:t,previousPosition:o}of e.createRangeIn(i))bx(t)&&Gx(o,r)}else"remove"==n.type?Gx(n.position,r):"attribute"==n.type&&o.includes(n.attributeKey)&&(Gx(n.range.start,r),null===n.attributeNewValue&&Gx(n.range.start.getShiftedBy(1),r));if(!s&&"attribute"==n.type&&nE.includes(n.attributeKey)){const e=n.range.start.nodeAfter;null===n.attributeNewValue&&e&&e.is("element","listItem")?(t.rename(e,"paragraph"),a=!0):null===n.attributeOldValue&&e&&e.is("element")&&"listItem"!=e.name&&(t.rename(e,"listItem"),a=!0)}}const l=new Set;for(const e of r.values())a=n.fire("postFixer",{listNodes:new gx(e),listHead:e,writer:t,seenIds:l})||a;return a}(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=fx.next()),t.add(s),r.is("element","listItem"))r.getAttribute("listItemId")!=s&&(o.setAttribute("listItemId",s,r),i=!0);else for(const t of wx(r,{direction:"forward"}))n.add(t),t.getAttribute("listType")!=e&&(s=fx.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(bx(r.parent))s=r.parent;else{if(!bx(r.nodeBefore))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=bx(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"):fx.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(bx)&&e.remove(n)}if("copy"==o.method||"cut"==o.method){const t=Array.from(o.content.getChildren());Sx(t)&&Bx(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 rE(e,t){const o=e.document.selection;if(!o.isCollapsed)return!Ix(e);if("forward"===t)return!0;const n=o.getFirstPosition().parent,i=n.previousSibling;return!e.schema.isObject(i)&&(!!i.isEmpty||Sx([n,i]))}function sE(e,t,o,n){e.ui.componentFactory.add(t,(()=>{const i=aE(Tm,e,t,o,n);return i.set({tooltip:!0,isToggleable:!0}),i})),e.ui.componentFactory.add(`menuBar:${t}`,(()=>{const i=aE(lp,e,t,o,n);return i.set({role:"menuitemcheckbox",isToggleable:!0}),i}))}function aE(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 lE extends hr{static get pluginName(){return"ListUI"}init(){const e=this.editor.t;this.editor.ui.componentFactory.has("numberedList")||sE(this.editor,"numberedList",e("Numbered List"),Gh.numberedList),this.editor.ui.componentFactory.has("bulletedList")||sE(this.editor,"bulletedList",e("Bulleted List"),Gh.bulletedList)}}class cE extends hr{static get requires(){return[iE,lE]}static get pluginName(){return"List"}}const dE={},uE={},hE={},mE=[{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 mE)dE[e]=o,uE[e]=t,t&&(hE[t]=e);var pE=i(1911),gE={attributes:{"data-cke":!0}};gE.setAttributes=Er(),gE.insert=vr().bind(null,"head"),gE.domAPI=Ar(),gE.insertStyleElement=Br();_r()(pE.A,gE);pE.A&&pE.A.locals&&pE.A.locals;var fE=i(1330),bE={attributes:{"data-cke":!0}};bE.setAttributes=Er(),bE.insert=vr().bind(null,"head"),bE.domAPI=Ar(),bE.insertStyleElement=Br();_r()(fE.A,bE);fE.A&&fE.A.locals&&fE.A.locals;class kE extends pr{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(...kx(n));for(const e of o.getItems({shallow:!0}))t.checkAttribute(e,"todoListChecked")&&!i.includes(e)&&i.push(...kx(e));return i}}class wE extends Ua{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 _E=xi("Ctrl+Enter");class yE extends hr{static get pluginName(){return"TodoListEditing"}static get requires(){return[iE]}init(){const e=this.editor,t=e.model,o=e.editing,n=e.plugins.get(iE),i=e.config.get("list.multiBlock")?"paragraph":"listItem";e.commands.add("todoList",new Vx(e,"todo")),e.commands.add("checkTodoList",new kE(e)),o.view.addObserver(wE),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:label",AE({name:"label",classes:"todo-list__label"})),e.on("element:label",AE({name:"label",classes:["todo-list__label","todo-list__label_without-description"]})),e.on("element:span",AE({name:"span",classes:"todo-list__label__description"})),e.on("element:ul",function(e){const t=new Wr(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(CE(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=>CE(e,n.getListAttributeNames()),createWrapperElement(e,t,{dataPipeline:o}){const i=["todo-list__label"];return CE(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=CE(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")&&yx(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)===_E&&(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&&bx(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&&bx(i)&&"todo"==i.getAttribute("listType")&&(e.change((e=>e.setSelection(t))),n.preventDefault(),n.stopPropagation(),o.stop())}else if("left"==i&&a.isAtStart&&bx(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=vE(n)&&o.viewPosition.offset<=1,s=n.is("element","span")&&"false"==n.getAttribute("contenteditable")&&vE(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=xE(n),s=xE(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 AE(e){const t=new Wr(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 CE(e,t){return(e.is("element","paragraph")||e.is("element","listItem"))&&"todo"==e.getAttribute("listType")&&yx(e)&&function(e,t){for(const o of e.getAttributeKeys())if(!o.startsWith("selection:")&&!t.includes(o))return!1;return!0}(e,t)}function vE(e){return!!e&&e.is("attributeElement")&&e.hasClass("todo-list__label")}function xE(e){return!!e&&(!(!e.is("element","paragraph")&&!e.is("element","listItem"))&&"todo"==e.getAttribute("listType"))}class EE extends hr{static get pluginName(){return"TodoListUI"}init(){const e=this.editor.t;sE(this.editor,"todoList",e("To-do List"),Gh.todoList)}}var DE=i(5484),BE={attributes:{"data-cke":!0}};BE.setAttributes=Er(),BE.insert=vr().bind(null,"head"),BE.domAPI=Ar(),BE.insertStyleElement=Br();_r()(DE.A,BE);DE.A&&DE.A.locals&&DE.A.locals;class SE extends hr{static get requires(){return[yE,EE]}static get pluginName(){return"TodoList"}}const TE=Symbol("isOPCodeBlock");function IE(e){return!!e.getCustomProperty(TE)&&Ok(e)}function PE(e){const t=e.getSelectedElement();return!(!t||!IE(t))}function FE(e,t,o){const n=t.createContainerElement("pre",{title:window.I18n.t("js.editor.macro.toolbar_help")});return RE(t,e,n),function(e,t,o){return t.setCustomProperty(TE,!0,e),Lk(e,t,{label:o})}(n,t,o)}function RE(e,t,o){const n=(t.getAttribute("opCodeblockLanguage")||"language-text").replace(/^language-/,""),i=e.createContainerElement("div",{class:"op-uc-code-block--language"});ME(e,n,i,"text"),e.insert(e.createPositionAt(o,0),i);ME(e,t.getAttribute("opCodeblockContent"),o,"(empty)")}function ME(e,t,o,n){const i=e.createText(t||n);e.insert(e.createPositionAt(o,0),i)}class zE extends Ua{constructor(e){super(e),this.domEventType="dblclick"}onDomEvent(e){this.fire(e.type,e)}}class VE extends hr{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=Yk(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);o.consumable.consume(e,{name:!0});const s=e.data.replace(/\n$/,"");o.writer.setAttribute("opCodeblockContent",s,i),t.modelRange=new Xl(o.writer.createPositionBefore(i),o.writer.createPositionAfter(i)),t.modelCursor=t.modelRange.end}}}()),o.for("editingDowncast").elementToElement({model:"codeblock",view:(e,{writer:t})=>FE(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))),RE(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(zE),this.listenTo(i,"dblclick",((t,o)=>{let n=o.target,i=o.domEvent;if(i.shiftKey||i.altKey||i.metaKey)return;if(!IE(n)&&(n=n.findAncestor(IE),!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 Tm(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 NE extends hr{static get requires(){return[Vb]}static get pluginName(){return"CodeBlockToolbar"}init(){const e=this.editor,t=this.editor.model,o=Yk(e);h_(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(){p_(this,this.editor,"OPCodeBlock",PE)}}function OE(e){return e.__currentlyDisabled=e.__currentlyDisabled||[],e.ui.view.toolbar?e.ui.view.toolbar.items._items:[]}function LE(e,t){jQuery.each(OE(e),(function(o,n){let i=n;n instanceof Ap?i=n.buttonView:n!==t&&n.hasOwnProperty("isEnabled")||(i=null),i&&(i.isEnabled?i.isEnabled=!1:e.__currentlyDisabled.push(i))}))}function HE(e){jQuery.each(OE(e),(function(t,o){let n=o;o instanceof Ap&&(n=o.buttonView),e.__currentlyDisabled.indexOf(n)<0&&(n.isEnabled=!0)})),e.__currentlyDisabled=[]}function jE(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?$E(t):t;return r!==o?o:void 0}}})}function qE(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:$E(l.style),color:$E(l.color),width:$E(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 UE(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 WE(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 $E(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 GE(e,t,o,n,i=1){null!=t&&null!=i&&t>i?n.setAttribute(e,t,o):n.removeAttribute(e,o)}function KE(e,t,o={}){const n=e.createElement("tableCell",o);return e.insertElement("paragraph",n),e.insert(n,t),n}function ZE(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")));for(const a of e)if(r&&s===r||"tbody"===s.name&&Array.from(a.getChildren()).length&&Array.from(a.getChildren()).every((e=>e.is("element","th"))))o++,n.push(a);else{i.push(a);const e=eD(a);(!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")),KE(o.writer,o.writer.createPositionAt(e,"end"))}o.updateConversionResult(l,t)}}))}}function XE(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 eD(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 oD(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 oD{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 nD(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),Lk(e,t,{hasSelectionHandle:!0})}(s,n):s}}function iD(e={}){return(t,{writer:o})=>{const n=t.parent,i=n.parent,r=i.getChildIndex(n),s=new tD(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(!sD(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 sD(e){return 1==e.parent.childCount&&!!e.getAttributeKeys().next().done}class aD extends pr{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 lD extends pr{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 cD extends pr{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 dD extends pr{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 uD(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){GE("headingRows",r-o,e,i,0)}const s=parseInt(t.getAttribute("headingColumns")||"0");if(s>0){GE("headingColumns",s-n,e,i,0)}}(a,e,n,i,o),a}function hD(e,t,o=0){const n=[],i=new tD(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 tD(i,{startRow:r,endRow:d,includeAllSlots:!0})];let h,m=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&&(m=KE(o,t.getPositionBefore(),a))}return GE("rowspan",s,e,o),m}function pD(e,t){const o=[],n=new tD(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=KE(n,n.createPositionAfter(e),r);return GE("colspan",i,e,n),l}function fD(e,t,o,n,i,r){const s=parseInt(e.getAttribute("colspan")||"1"),a=parseInt(e.getAttribute("rowspan")||"1");if(o+s-1>i){GE("colspan",i-o+1,e,r,1)}if(t+a-1>n){GE("rowspan",n-t+1,e,r,1)}}function bD(e,t){const o=t.getColumns(e),n=new Array(o).fill(0);for(const{column:t}of new tD(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 kD(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 wD(e,t){bD(e,t)||kD(e,t)}function _D(e,t){const o=Array.from(new tD(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 yD(e,t){const o=Array.from(new tD(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 AD extends pr{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){CD(e)||(CD(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");wD(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=ZE(o,a),m=ZE(o,l);if(s&&h!=m)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 tD(i,{endRow:u})],m=h.find((t=>t.cell===e)),p=m.column,g=h.find((({row:e,cellHeight:o,column:n})=>n===p&&("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 CD(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}class vD extends pr{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 xD extends pr{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 ED extends pr{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=hD(i,a,a>l?l:0);for(const{cell:o}of t)mD(o,a,e)}GE("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=>ZE(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=pD(i,a);for(const{cell:o,column:n}of t)gD(o,n,a,e)}GE("headingColumns",a,i,e,0)}))}}function BD(e){if(e.is("element","tableColumnGroup"))return e;const t=e.getChildren();return Array.from(t).find((e=>e.is("element","tableColumnGroup")))}function SD(e){const t=BD(e);return t?Array.from(t.getChildren()):[]}class TD extends hr{static get pluginName(){return"TableUtils"}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(e){const t=e.parent,o=t.parent,n=o.getChildIndex(t),i=new tD(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 ID(e,o,0,n,i),t.headingRows&&GE("headingRows",Math.min(t.headingRows,n),o,e,0),t.headingColumns&&GE("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 T("tableutils-insertrows-insert-out-of-range",this,{options:t});o.change((t=>{const o=e.getAttribute("headingRows")||0;if(o>n&&GE("headingRows",o+i,e,t,0),!r&&(0===n||n===a))return void ID(t,e,n,i,l);const c=r?Math.max(n,s):n,d=new tD(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&&KE(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 T("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 tD(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 tD(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),GE("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)GE("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 tD(e)])n<=i&&r>1&&n+r>i?GE("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)}}kD(e,this)||bD(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}=FD(r,t);GE("colspan",s,e,o);const a={};n>1&&(a.colspan=n),i>1&&(a.rowspan=i);PD(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),PD(s,o,o.createPositionAfter(e),d);const u=n.getAttribute("headingColumns")||0;u>l&&GE("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 tD(i,{startRow:r,endRow:r+s-1,includeAllSlots:!0})],{newCellsSpan:l,updatedSpan:c}=FD(s,t);GE("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||PD(1,o,e.getPositionBefore(),u),h++)}}if(sr){const e=i+n;o.setAttribute("rowspan",e,t)}const c={};a>1&&(c.colspan=a),ID(o,i,r+1,n,1,c);const d=i.getAttribute("headingRows")||0;d>r&&GE("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 tD(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 tD(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(RD)}_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=ND(e,r,n,"colspan"),i=ND(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);GE("colspan",r,i,o),GE("rowspan",s,i,o);for(const e of n)zD(e,i,o);wD(i.findAncestor("table"),t),o.setSelection(i,"in")}))}}function zD(e,t,o){VD(e)||(VD(t)&&o.remove(o.createRangeIn(t)),o.move(o.createRangeIn(e),o.createPositionAt(t,"end"))),o.remove(e)}function VD(e){const t=e.getChild(0);return 1==e.childCount&&t.is("element","paragraph")&&t.isEmpty}function ND(e,t,o,n){const i=parseInt(e.getAttribute(n)||"1");return Math.max(o,t+i)}class OD extends pr{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 LD extends pr{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 tD(r,{startColumn:l,endColumn:c}))d.push(t.createRangeOn(e.cell));t.change((e=>{e.setSelection(d)}))}}function HD(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")),UD(t)&&(o=t.range.start.findAncestor("table")),o&&!i.has(o)&&(n=jD(o,e)||n,n=qD(o,e)||n,i.add(o))}return n}(t,e)))}function jD(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 tD(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)GE("rowspan",e.rowspan,e.cell,t,1)}return o}function qD(e,t){let o=!1;const n=function(e){const t=new Array(e.childCount).fill(0);for(const{rowIndex:o}of new tD(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=$D(t.position.nodeAfter,e)||n),"insert"==t.type&&"tableRow"==t.name&&(n=GD(t.position.nodeAfter,e)||n),"insert"==t.type&&"tableCell"==t.name&&(n=KD(t.position.nodeAfter,e)||n),"remove"!=t.type&&"insert"!=t.type||!ZD(t)||(n=KD(t.position.parent,e)||n);return n}(t,e)))}function $D(e,t){let o=!1;for(const n of e.getChildren())n.is("element","tableRow")&&(o=GD(n,t)||o);return o}function GD(e,t){let o=!1;for(const n of e.getChildren())o=KD(n,t)||o;return o}function KD(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 ZD(e){return!!e.position.parent.is("element","tableCell")&&("insert"==e.type&&"$text"==e.name||"remove"==e.type)}function JD(e,t){if(!e.is("element","paragraph"))return!1;const o=t.toViewElement(e);return!!o&&sD(e)!==o.is("element","span")}var YD=i(8864),QD={attributes:{"data-cke":!0}};QD.setAttributes=Er(),QD.insert=vr().bind(null,"head"),QD.domAPI=Ar(),QD.insertStyleElement=Br();_r()(YD.A,QD);YD.A&&YD.A.locals&&YD.A.locals;class XD extends hr{static get pluginName(){return"TableEditing"}static get requires(){return[TD]}constructor(e){super(e),this._additionalSlots=[]}init(){const e=this.editor,t=e.model,o=t.schema,n=e.conversion,i=e.plugins.get(TD);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(QE()),n.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:nD(i,{asWidget:!0,additionalSlots:this._additionalSlots})}),n.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:nD(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(XE("td")),n.for("upcast").add(XE("th")),n.for("editingDowncast").elementToElement({model:"tableCell",view:iD({asWidget:!0})}),n.for("dataDowncast").elementToElement({model:"tableCell",view:iD()}),n.for("editingDowncast").elementToElement({model:"paragraph",view:rD({asWidget:!0}),converterPriority:"high"}),n.for("dataDowncast").elementToElement({model:"paragraph",view:rD(),converterPriority:"high"}),n.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),n.for("upcast").attributeToAttribute({model:{key:"colspan",value:eB("colspan")},view:"colspan"}),n.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),n.for("upcast").attributeToAttribute({model:{key:"rowspan",value:eB("rowspan")},view:"rowspan"}),e.config.define("table.defaultHeadings.rows",0),e.config.define("table.defaultHeadings.columns",0),e.commands.add("insertTable",new aD(e)),e.commands.add("insertTableRowAbove",new lD(e,{order:"above"})),e.commands.add("insertTableRowBelow",new lD(e,{order:"below"})),e.commands.add("insertTableColumnLeft",new cD(e,{order:"left"})),e.commands.add("insertTableColumnRight",new cD(e,{order:"right"})),e.commands.add("removeTableRow",new vD(e)),e.commands.add("removeTableColumn",new xD(e)),e.commands.add("splitTableCellVertically",new dD(e,{direction:"vertically"})),e.commands.add("splitTableCellHorizontally",new dD(e,{direction:"horizontally"})),e.commands.add("mergeTableCells",new MD(e)),e.commands.add("mergeTableCellRight",new AD(e,{direction:"right"})),e.commands.add("mergeTableCellLeft",new AD(e,{direction:"left"})),e.commands.add("mergeTableCellDown",new AD(e,{direction:"down"})),e.commands.add("mergeTableCellUp",new AD(e,{direction:"up"})),e.commands.add("setTableColumnHeader",new DD(e)),e.commands.add("setTableRowHeader",new ED(e)),e.commands.add("selectTableRow",new OD(e)),e.commands.add("selectTableColumn",new LD(e)),HD(t),WD(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 tD(o);for(const e of s){const o=e.rowJD(e,t.mapper)));for(const e of o)t.reconvertItem(e)}}(t,e.editing)}))}registerAdditionalSlot(e){this._additionalSlots.push(e)}}function eB(e){return t=>{const o=parseInt(t.getAttribute(e));return Number.isNaN(o)||o<=0?null:o}}var tB=i(8603),oB={attributes:{"data-cke":!0}};oB.setAttributes=Er(),oB.insert=vr().bind(null,"head"),oB.domAPI=Ar(),oB.insertStyleElement=Br();_r()(tB.A,oB);tB.A&&tB.A.locals&&tB.A.locals;class nB extends km{constructor(e){super(e);const t=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new ir,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(),Am({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=Tg(o);let r;return i.bind("isEnabled").to(n),i.buttonView.set({icon:Gh.table,label:t("Insert table"),tooltip:!0}),i.on("change:isOpen",(()=>{r||(r=new nB(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 bk(o),r=new nB(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:Gh.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=Tg(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 yp||i.editing.view.focus()})),r}_prepareMergeSplitButtonDropdown(e,t,o,n){const i=this.editor,r=Tg(n,xg),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)rB(e,o,n,i);return Fg(e,i),n}}function rB(e,t,o,n){if("button"===e.type||"switchbutton"===e.type){const n=e.model=new Ib(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 sB=i(2850),aB={attributes:{"data-cke":!0}};aB.setAttributes=Er(),aB.insert=vr().bind(null,"head"),aB.domAPI=Ar(),aB.insertStyleElement=Br();_r()(sB.A,aB);sB.A&&sB.A.locals&&sB.A.locals;class lB extends hr{static get pluginName(){return"TableSelection"}static get requires(){return[TD,TD]}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(TD),t=this.editor.model.document.selection,o=e.getSelectedTableCells(t);return 0==o.length?null:o}getSelectionAsFragment(){const e=this.editor.plugins.get(TD),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=_D(l,e),d=yD(l,e)}const u=uD(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(TD),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 tD(e.findAncestor("table"),d))c[t-r].push(o);const u=i.rowe.reverse())),{cells:c.flat(),backward:u||h}}}class cB extends hr{static get pluginName(){return"TableClipboard"}static get requires(){return[W_,$_,lB,TD]}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(lB),i=this.editor.plugins.get(W_);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(TD),r=this.editor.plugins.get(W_),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)}))):wD(s,i)}_replaceSelectedCells(e,t,o){const n=this.editor.plugins.get(TD),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};uB(e,r,a,o),uB(e,s+1,a,o),dB(e,n,l,o),dB(e,i+1,l,o,n)}(i,a,o):(a.lastRow=_D(i,a),a.lastColumn=yD(i,a));return a}(t,i,o,n),s=r.lastRow-r.firstRow+1,a=r.lastColumn-r.firstColumn+1;e=uD(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 tD(e))n[o][t]=i;return n}(e,r,s),l=[...new tD(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],m=h?i.cloneElement(h):null,p=this._replaceTableSlotCell(e,m,d,i);p&&(fD(p,t,o,n.lastRow,n.lastColumn,i),c.push(p),d=i.createPositionAfter(p))}const u=parseInt(o.getAttribute("headingRows")||"0"),h=parseInt(o.getAttribute("headingColumns")||"0"),m=n.firstRowhB(e,t,o))).map((({cell:e})=>mD(e,t,n)))}function uB(e,t,o,n){if(t<1)return;return pD(e,t).filter((({row:e,cellHeight:t})=>hB(e,t,o))).map((({cell:e,column:o})=>gD(e,o,t,n)))}function hB(e,t,o){const n=e+t-1,{first:i,last:r}=o;return e>=i&&e<=r||e=i}class mB extends hr{static get pluginName(){return"TableKeyboard"}static get requires(){return[lB,TD]}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(TD),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 m=u===l.childCount-1,p=d===n.getRows(c)-1;if(s&&p&&m&&(o.execute("insertTableRowBelow"),d===n.getRows(c)-1))return void o.model.change((e=>{e.setSelection(e.createRangeOn(c))}));let g;if(s&&m){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(TD),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 tD(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),m=this.editor.plugins.get("TableSelection");if(o&&m.isEnabled){const t=m.getAnchorCell()||e;m.setCellSelection(t,u)}else{const e=n.createPositionAt(u,h?0:"end");n.change((t=>{t.setSelection(e)}))}}}class pB extends Ua{constructor(){super(...arguments),this.domEventType=["mousemove","mouseleave"]}onDomEvent(e){this.fire(e.type,e)}}class gB extends hr{static get pluginName(){return"TableMouse"}static get requires(){return[lB,TD]}init(){this.editor.editing.view.addObserver(pB),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const e=this.editor,t=e.plugins.get(TD);let o=!1;const n=e.plugins.get(lB);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&&fB(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(lB);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&&fB(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 fB(e,t){return e.parent.parent==t.parent.parent}var bB=i(9969),kB={attributes:{"data-cke":!0}};kB.setAttributes=Er(),kB.insert=vr().bind(null,"head"),kB.domAPI=Ar(),kB.insertStyleElement=Br();_r()(bB.A,kB);bB.A&&bB.A.locals&&bB.A.locals;function wB(e){const t=_B(e);return t||yB(e)}function _B(e){const t=e.getSelectedElement();return t&&AB(t)?t:null}function yB(e){const t=e.getFirstPosition();if(!t)return null;let o=t.parent;for(;o;){if(o.is("element")&&AB(o))return o;o=o.parent}return null}function AB(e){return!!e.getCustomProperty("table")&&Ok(e)}var CB=i(4307),vB={attributes:{"data-cke":!0}};vB.setAttributes=Er(),vB.insert=vr().bind(null,"head"),vB.domAPI=Ar(),vB.insertStyleElement=Br();_r()(CB.A,vB);CB.A&&CB.A.locals&&CB.A.locals;class xB extends km{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 Kh,this.dropdownView=this._createDropdownView(),this.inputView=this._createInputTextView(),this.keystrokes=new ir,this._stillTyping=!1,this.focusCycler=new Mm({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=Tg(e),r=new km;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 Yp(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 Sf(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=EB(e),o=this.options.colorDefinitions.find((e=>t===EB(e.color)));this.inputView.value=o?o.label:e||""}}}function EB(e){return e.replace(/([(,])\s+/g,"$1").replace(/^\s+|\s+(?=[),\s]|$)/g,"").replace(/,|\s/g," ")}const DB=e=>""===e;function BB(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 SB(e){return e('The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".')}function TB(e){return e('The value is invalid. Try "10px" or "2em" or simply "2".')}function IB(e){return e=e.trim().toLowerCase(),DB(e)||Qu(e)}function PB(e){return e=e.trim(),DB(e)||NB(e)||oh(e)||(t=e,nh.test(t));var t}function FB(e){return e=e.trim(),DB(e)||NB(e)||oh(e)}function RB(e,t){const o=new tr,n=BB(e.t);for(const i in n){const r={type:"button",model:new Ib({_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 MB(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 Tm(t.locale);l.set({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 zB=[{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 VB(e){return(t,o,n)=>{const i=new xB(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 NB(e){const t=parseFloat(e);return!Number.isNaN(t)&&e===String(t)}var OB=i(6016),LB={attributes:{"data-cke":!0}};LB.setAttributes=Er(),LB.insert=vr().bind(null,"head"),LB.domAPI=Ar(),LB.insertStyleElement=Br();_r()(OB.A,LB);OB.A&&OB.A.locals&&OB.A.locals;class HB extends km{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 jB=i(1806),qB={attributes:{"data-cke":!0}};qB.setAttributes=Er(),qB.insert=vr().bind(null,"head"),qB.domAPI=Ar(),qB.insertStyleElement=Br();_r()(jB.A,qB);jB.A&&jB.A.locals&&jB.A.locals;var UB=i(5704),WB={attributes:{"data-cke":!0}};WB.setAttributes=Er(),WB.insert=vr().bind(null,"head"),WB.domAPI=Ar(),WB.insertStyleElement=Br();_r()(UB.A,WB);UB.A&&UB.A.locals&&UB.A.locals;var $B=i(6701),GB={attributes:{"data-cke":!0}};GB.setAttributes=Er(),GB.insert=vr().bind(null,"head"),GB.domAPI=Ar(),GB.insertStyleElement=Br();_r()($B.A,GB);$B.A&&$B.A.locals&&$B.A.locals;class KB extends km{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:m,alignmentLabel:p}=this._createAlignmentFields();this.focusTracker=new nr,this.keystrokes=new ir,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=m;const{saveButtonView:g,cancelButtonView:f}=this._createActionButtons();this.saveButtonView=g,this.cancelButtonView=f,this._focusables=new Kh,this._focusCycler=new Mm({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new Rm(e,{label:this.t("Cell properties")})),this.children.add(new HB(e,{labelView:r,children:[r,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new HB(e,{labelView:s,children:[s,a],class:"ck-table-form__background-row"})),this.children.add(new HB(e,{children:[new HB(e,{labelView:u,children:[u,l,c,d],class:"ck-table-form__dimensions-row"}),new HB(e,{children:[this.paddingInput],class:"ck-table-cell-properties-form__padding-row"})]})),this.children.add(new HB(e,{labelView:p,children:[p,h,m],class:"ck-table-cell-properties-form__alignment-row"})),this.children.add(new HB(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(),ym({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=VB({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),n=this.locale,i=this.t,r=i("Style"),s=new up(n);s.text=i("Border");const a=BB(i),l=new $p(n,Og);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)),Fg(l.fieldView,RB(this,t.style),{role:"menu",ariaLabel:r});const c=new $p(n,Vg);c.set({label:i("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",ZB),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new $p(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",ZB),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,n,i)=>{ZB(n)||(this.borderColor="",this.borderWidth=""),ZB(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 up(e);o.text=t("Background");const n=VB({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableCellProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),i=new $p(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 up(e);o.text=t("Dimensions");const n=new $p(e,Vg);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 km(e);i.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const r=new $p(e,Vg);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 $p(e,Vg);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 up(e),n={left:Gh.alignLeft,center:Gh.alignCenter,right:Gh.alignRight,justify:Gh.alignJustify,top:Gh.alignTop,middle:Gh.alignMiddle,bottom:Gh.alignBottom};o.text=t("Table cell text alignment");const i=new mg(e),r="rtl"===e.contentLanguageDirection;i.set({isCompact:!0,ariaLabel:t("Horizontal text alignment toolbar")}),MB({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 mg(e);return s.set({isCompact:!0,ariaLabel:t("Vertical text alignment toolbar")}),MB({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 Tm(e),n=new Tm(e),i=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.paddingInput];return o.set({label:t("Save"),icon:Gh.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:Gh.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 ZB(e){return"none"!==e}const JB=(()=>[Vf.defaultPositions.northArrowSouth,Vf.defaultPositions.northArrowSouthWest,Vf.defaultPositions.northArrowSouthEast,Vf.defaultPositions.southArrowNorth,Vf.defaultPositions.southArrowNorthWest,Vf.defaultPositions.southArrowNorthEast,Vf.defaultPositions.viewportStickyNorth])();function YB(e,t){const o=e.plugins.get("ContextualBalloon"),n=e.editing.view.document.selection;let i;"cell"===t?yB(n)&&(i=XB(e)):wB(n)&&(i=QB(e)),i&&o.updatePosition(i)}function QB(e){const t=YE(e.model.document.selection),o=e.editing.mapper.toViewElement(t);return{target:e.editing.view.domConverter.mapViewToDom(o),positions:JB}}function XB(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=eS(e.start),i=o.toViewElement(t);return new Gn(n.mapViewToDom(i))}));return Gn.getBoundingRect(i)}(n.getRanges(),e),positions:JB};const i=eS(n.getFirstPosition()),r=t.toViewElement(i);return{target:o.mapViewToDom(r),positions:JB}}function eS(e){return e.nodeAfter&&e.nodeAfter.is("element","tableCell")?e.nodeAfter:e.findAncestor("tableCell")}function tS(e){if(!e||!K(e))return e;const{top:t,right:o,bottom:n,left:i}=e;return t==o&&o==n&&n==i?t:void 0}function oS(e,t){const o=parseFloat(e);return Number.isNaN(o)||String(o)!==String(e)?e:`${o}${t}`}function nS(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}const iS={borderStyle:"tableCellBorderStyle",borderColor:"tableCellBorderColor",borderWidth:"tableCellBorderWidth",height:"tableCellHeight",width:"tableCellWidth",padding:"tableCellPadding",backgroundColor:"tableCellBackgroundColor",horizontalAlignment:"tableCellHorizontalAlignment",verticalAlignment:"tableCellVerticalAlignment"};class rS extends hr{static get requires(){return[Vb]}static get pluginName(){return"TableCellPropertiesUI"}constructor(e){super(e),e.config.define("table.tableCellProperties",{borderColors:zB,backgroundColors:zB})}init(){const e=this.editor,t=e.t;this._defaultTableCellProperties=nS(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection}),this._balloon=e.plugins.get(Vb),this.view=null,this._isReady=!1,e.ui.componentFactory.add("tableCellProperties",(o=>{const n=new Tm(o);n.set({label:t("Cell properties"),icon:'',tooltip:!0}),this.listenTo(n,"execute",(()=>this._showView()));const i=Object.values(iS).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=Ip(t.borderColors),n=Tp(e.locale,o),i=Ip(t.backgroundColors),r=Tp(e.locale,i),s=!1!==t.colorPicker,a=new KB(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()})),wm({emitter:a,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const c=SB(l),d=TB(l);return a.on("change:borderStyle",this._getPropertyChangeCallback("tableCellBorderStyle")),a.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:a.borderColorInput,commandName:"tableCellBorderColor",errorText:c,validator:IB})),a.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:a.borderWidthInput,commandName:"tableCellBorderWidth",errorText:d,validator:FB})),a.on("change:padding",this._getValidatedPropertyChangeCallback({viewField:a.paddingInput,commandName:"tableCellPadding",errorText:d,validator:PB})),a.on("change:width",this._getValidatedPropertyChangeCallback({viewField:a.widthInput,commandName:"tableCellWidth",errorText:d,validator:PB})),a.on("change:height",this._getValidatedPropertyChangeCallback({viewField:a.heightInput,commandName:"tableCellHeight",errorText:d,validator:PB})),a.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:a.backgroundInput,commandName:"tableCellBackgroundColor",errorText:c,validator:IB})),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(iS).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:XB(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;yB(e.editing.view.document.selection)?this._isViewVisible&&YB(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=il((()=>{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 sS extends pr{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 aS extends sS{constructor(e,t){super(e,"tableCellWidth",t)}_getValueToSet(e){if((e=oS(e,"px"))!==this._defaultValue)return e}}class lS extends hr{static get pluginName(){return"TableCellWidthEditing"}static get requires(){return[XD]}init(){const e=this.editor,t=nS(e.config.get("table.tableCellProperties.defaultProperties"));JE(e.model.schema,e.conversion,{modelAttribute:"tableCellWidth",styleName:"width",defaultValue:t.width}),e.commands.add("tableCellWidth",new aS(e,t.width))}}class cS extends sS{constructor(e,t){super(e,"tableCellPadding",t)}_getAttribute(e){if(!e)return;const t=tS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=oS(e,"px");if(t!==this._defaultValue)return t}}class dS extends sS{constructor(e,t){super(e,"tableCellHeight",t)}_getValueToSet(e){const t=oS(e,"px");if(t!==this._defaultValue)return t}}class uS extends sS{constructor(e,t){super(e,"tableCellBackgroundColor",t)}}class hS extends sS{constructor(e,t){super(e,"tableCellVerticalAlignment",t)}}class mS extends sS{constructor(e,t){super(e,"tableCellHorizontalAlignment",t)}}class pS extends sS{constructor(e,t){super(e,"tableCellBorderStyle",t)}_getAttribute(e){if(!e)return;const t=tS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class gS extends sS{constructor(e,t){super(e,"tableCellBorderColor",t)}_getAttribute(e){if(!e)return;const t=tS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class fS extends sS{constructor(e,t){super(e,"tableCellBorderWidth",t)}_getAttribute(e){if(!e)return;const t=tS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=oS(e,"px");if(t!==this._defaultValue)return t}}const bS=/^(top|middle|bottom)$/,kS=/^(left|center|right|justify)$/;class wS extends hr{static get pluginName(){return"TableCellPropertiesEditing"}static get requires(){return[XD,lS]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableCellProperties.defaultProperties",{});const n=nS(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:"rtl"===e.locale.contentLanguageDirection});e.data.addStyleProcessorRules(bh),function(e,t,o){const n={width:"tableCellBorderWidth",color:"tableCellBorderColor",style:"tableCellBorderStyle"};e.extend("tableCell",{allowAttributes:Object.values(n)}),qE(t,"td",n,o),qE(t,"th",n,o),UE(t,{modelElement:"tableCell",modelAttribute:n.style,styleName:"border-style"}),UE(t,{modelElement:"tableCell",modelAttribute:n.color,styleName:"border-color"}),UE(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 pS(e,n.borderStyle)),e.commands.add("tableCellBorderColor",new gS(e,n.borderColor)),e.commands.add("tableCellBorderWidth",new fS(e,n.borderWidth)),JE(t,o,{modelAttribute:"tableCellHeight",styleName:"height",defaultValue:n.height}),e.commands.add("tableCellHeight",new dS(e,n.height)),e.data.addStyleProcessorRules(Dh),JE(t,o,{modelAttribute:"tableCellPadding",styleName:"padding",reduceBoxSides:!0,defaultValue:n.padding}),e.commands.add("tableCellPadding",new cS(e,n.padding)),e.data.addStyleProcessorRules(fh),JE(t,o,{modelAttribute:"tableCellBackgroundColor",styleName:"background-color",defaultValue:n.backgroundColor}),e.commands.add("tableCellBackgroundColor",new uS(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":kS}},model:{key:"tableCellHorizontalAlignment",value:e=>{const t=e.getStyle("text-align");return t===o?null:t}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{align:kS}},model:{key:"tableCellHorizontalAlignment",value:e=>{const t=e.getAttribute("align");return t===o?null:t}}})}(t,o,n.horizontalAlignment),e.commands.add("tableCellHorizontalAlignment",new mS(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":bS}},model:{key:"tableCellVerticalAlignment",value:e=>{const t=e.getStyle("vertical-align");return t===o?null:t}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{valign:bS}},model:{key:"tableCellVerticalAlignment",value:e=>{const t=e.getAttribute("valign");return t===o?null:t}}})}(t,o,n.verticalAlignment),e.commands.add("tableCellVerticalAlignment",new hS(e,n.verticalAlignment))}}class _S extends pr{constructor(e,t,o){super(e),this.attributeName=t,this._defaultValue=o}refresh(){const e=YE(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=YE(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 yS extends _S{constructor(e,t){super(e,"tableBackgroundColor",t)}}class AS extends _S{constructor(e,t){super(e,"tableBorderColor",t)}_getValue(e){if(!e)return;const t=tS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class CS extends _S{constructor(e,t){super(e,"tableBorderStyle",t)}_getValue(e){if(!e)return;const t=tS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}}class vS extends _S{constructor(e,t){super(e,"tableBorderWidth",t)}_getValue(e){if(!e)return;const t=tS(e.getAttribute(this.attributeName));return t!==this._defaultValue?t:void 0}_getValueToSet(e){const t=oS(e,"px");if(t!==this._defaultValue)return t}}class xS extends _S{constructor(e,t){super(e,"tableWidth",t)}_getValueToSet(e){if((e=oS(e,"px"))!==this._defaultValue)return e}}class ES extends _S{constructor(e,t){super(e,"tableHeight",t)}_getValueToSet(e){if((e=oS(e,"px"))!==this._defaultValue)return e}}class DS extends _S{constructor(e,t){super(e,"tableAlignment",t)}}const BS=/^(left|center|right)$/,SS=/^(left|none|right)$/;class TS extends hr{static get pluginName(){return"TablePropertiesEditing"}static get requires(){return[XD]}init(){const e=this.editor,t=e.model.schema,o=e.conversion;e.config.define("table.tableProperties.defaultProperties",{});const n=nS(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0});e.data.addStyleProcessorRules(bh),function(e,t,o){const n={width:"tableBorderWidth",color:"tableBorderColor",style:"tableBorderStyle"};e.extend("table",{allowAttributes:Object.values(n)}),qE(t,"table",n,o),WE(t,{modelAttribute:n.color,styleName:"border-color"}),WE(t,{modelAttribute:n.style,styleName:"border-style"}),WE(t,{modelAttribute:n.width,styleName:"border-width"})}(t,o,{color:n.borderColor,style:n.borderStyle,width:n.borderWidth}),e.commands.add("tableBorderColor",new AS(e,n.borderColor)),e.commands.add("tableBorderStyle",new CS(e,n.borderStyle)),e.commands.add("tableBorderWidth",new vS(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:SS}},model:{key:"tableAlignment",value:e=>{let t=e.getStyle("float");return"none"===t&&(t="center"),t===o?null:t}}}).attributeToAttribute({view:{attributes:{align:BS}},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 DS(e,n.alignment)),IS(t,o,{modelAttribute:"tableWidth",styleName:"width",defaultValue:n.width}),e.commands.add("tableWidth",new xS(e,n.width)),IS(t,o,{modelAttribute:"tableHeight",styleName:"height",defaultValue:n.height}),e.commands.add("tableHeight",new ES(e,n.height)),e.data.addStyleProcessorRules(fh),function(e,t,o){const{modelAttribute:n}=o;e.extend("table",{allowAttributes:[n]}),jE(t,{viewElement:"table",...o}),WE(t,o)}(t,o,{modelAttribute:"tableBackgroundColor",styleName:"background-color",defaultValue:n.backgroundColor}),e.commands.add("tableBackgroundColor",new yS(e,n.backgroundColor))}}function IS(e,t,o){const{modelAttribute:n}=o;e.extend("table",{allowAttributes:[n]}),jE(t,{viewElement:/^(table|figure)$/,shouldUpcast:e=>!("table"==e.name&&"figure"==e.parent.name),...o}),UE(t,{modelElement:"table",...o})}var PS=i(4001),FS={attributes:{"data-cke":!0}};FS.setAttributes=Er(),FS.insert=vr().bind(null,"head"),FS.domAPI=Ar(),FS.insertStyleElement=Br();_r()(PS.A,FS);PS.A&&PS.A.locals&&PS.A.locals;class RS extends km{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:m}=this._createAlignmentFields();this.focusTracker=new nr,this.keystrokes=new ir,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:p,cancelButtonView:g}=this._createActionButtons();this.saveButtonView=p,this.cancelButtonView=g,this._focusables=new Kh,this._focusCycler=new Mm({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new Rm(e,{label:this.t("Table properties")})),this.children.add(new HB(e,{labelView:r,children:[r,o,i,n],class:"ck-table-form__border-row"})),this.children.add(new HB(e,{labelView:s,children:[s,a],class:"ck-table-form__background-row"})),this.children.add(new HB(e,{children:[new HB(e,{labelView:u,children:[u,l,c,d],class:"ck-table-form__dimensions-row"}),new HB(e,{labelView:m,children:[m,h],class:"ck-table-properties-form__alignment-row"})]})),this.children.add(new HB(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(),ym({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=VB({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),n=this.locale,i=this.t,r=i("Style"),s=new up(n);s.text=i("Border");const a=BB(i),l=new $p(n,Og);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)),Fg(l.fieldView,RB(this,t.style),{role:"menu",ariaLabel:r});const c=new $p(n,Vg);c.set({label:i("Width"),class:"ck-table-form__border-width"}),c.fieldView.bind("value").to(this,"borderWidth"),c.bind("isEnabled").to(this,"borderStyle",MS),c.fieldView.on("input",(()=>{this.borderWidth=c.fieldView.element.value}));const d=new $p(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",MS),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((e,o,n,i)=>{MS(n)||(this.borderColor="",this.borderWidth=""),MS(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 up(e);o.text=t("Background");const n=VB({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),i=new $p(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 up(e);o.text=t("Dimensions");const n=new $p(e,Vg);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 km(e);i.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const r=new $p(e,Vg);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 up(e);o.text=t("Alignment");const n=new mg(e);return n.set({isCompact:!0,ariaLabel:t("Table alignment toolbar")}),MB({view:this,icons:{left:Gh.objectLeft,center:Gh.objectCenter,right:Gh.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 Tm(e),n=new Tm(e),i=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.widthInput,this.heightInput];return o.set({label:t("Save"),icon:Gh.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:Gh.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 MS(e){return"none"!==e}const zS={borderStyle:"tableBorderStyle",borderColor:"tableBorderColor",borderWidth:"tableBorderWidth",backgroundColor:"tableBackgroundColor",width:"tableWidth",height:"tableHeight",alignment:"tableAlignment"};class VS extends hr{static get requires(){return[Vb]}static get pluginName(){return"TablePropertiesUI"}constructor(e){super(e),this.view=null,e.config.define("table.tableProperties",{borderColors:zB,backgroundColors:zB})}init(){const e=this.editor,t=e.t;this._defaultTableProperties=nS(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),this._balloon=e.plugins.get(Vb),e.ui.componentFactory.add("tableProperties",(o=>{const n=new Tm(o);n.set({label:t("Table properties"),icon:'',tooltip:!0}),this.listenTo(n,"execute",(()=>this._showView()));const i=Object.values(zS).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=Ip(t.borderColors),n=Tp(e.locale,o),i=Ip(t.backgroundColors),r=Tp(e.locale,i),s=!1!==t.colorPicker,a=new RS(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()})),wm({emitter:a,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const c=SB(l),d=TB(l);return a.on("change:borderStyle",this._getPropertyChangeCallback("tableBorderStyle")),a.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:a.borderColorInput,commandName:"tableBorderColor",errorText:c,validator:IB})),a.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:a.borderWidthInput,commandName:"tableBorderWidth",errorText:d,validator:FB})),a.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:a.backgroundInput,commandName:"tableBackgroundColor",errorText:c,validator:IB})),a.on("change:width",this._getValidatedPropertyChangeCallback({viewField:a.widthInput,commandName:"tableWidth",errorText:d,validator:PB})),a.on("change:height",this._getValidatedPropertyChangeCallback({viewField:a.heightInput,commandName:"tableHeight",errorText:d,validator:PB})),a.on("change:alignment",this._getPropertyChangeCallback("tableAlignment")),a}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableBorderStyle");Object.entries(zS).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:QB(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;wB(e.editing.view.document.selection)?this._isViewVisible&&YB(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=il((()=>{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 NS=i(7406),OS={attributes:{"data-cke":!0}};OS.setAttributes=Er(),OS.insert=vr().bind(null,"head"),OS.domAPI=Ar(),OS.insertStyleElement=Br();_r()(NS.A,OS);NS.A&&NS.A.locals&&NS.A.locals;var LS=i(4204),HS={attributes:{"data-cke":!0}};HS.setAttributes=Er(),HS.insert=vr().bind(null,"head"),HS.domAPI=Ar(),HS.insertStyleElement=Br();_r()(LS.A,HS);LS.A&&LS.A.locals&&LS.A.locals;function jS(e){return void 0!==e&&e.endsWith("px")}function qS(e){return e.toFixed(2).replace(/\.?0+$/,"")+"px"}function US(e,t,o){if(!e.childCount)return;const n=new Uu(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=QS(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=JS(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){WS(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=ZS(l,n,o);if(jS(e.marginLeft)&&(0==a||jS(s[a-1].marginLeft))){let o=e.marginLeft;a>0&&(o=qS(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),YS(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 WS(e){const t=e.element.previousSibling;return $S(t||e.element.parent)}function $S(e){return e.is("element","ol")||e.is("element","ul")}function GS(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",m=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]&&(m=parseInt(e[1]))}c&&(h="ol")}return{type:h,startIndex:m,style:KS(u),isLegalStyleList:c}}function KS(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 ZS(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 JS(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 YS(e,t){const o=new Wr({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 QS(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")?qS(96*t/72):e.endsWith("pc")?qS(12*t*96/72):e.endsWith("in")?qS(96*t):e.endsWith("cm")?qS(96*t/2.54):e.endsWith("mm")?qS(t/10*96/2.54):e}(t)}function XS(e,t){if(!e.childCount)return;const o=new Uu(e.document),n=function(e,t){const o=t.createRangeIn(e),n=new Wr({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 Wr({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 Wr({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 Wr({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 tT=//i,oT=/xmlns:o="urn:schemas-microsoft-com/i;class nT{constructor(e,t=!1){this.document=e,this.hasMultiLevelListPlugin=t}isActive(e){return tT.test(e)||oT.test(e)}execute(e){const{body:t,stylesString:o}=e._parsedData;US(t,o,this.hasMultiLevelListPlugin),XS(t,e.dataTransfer.getData("text/rtf")),function(e){const t=[],o=new Uu(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)}}(t),e.content=t}}function iT(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 rT(e,t){return!!e&&e.is("element")&&t.includes(e.name)}const sT=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class aT{constructor(e){this.document=e}isActive(e){return sT.test(e)}execute(e){const t=new Uu(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 Ws(t.document.stylesProcessor),n=new za(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=iT(e,"forward",t,{blockElements:i,inlineObjectElements:r}),n=iT(e,"backward",t,{blockElements:i,inlineObjectElements:r}),a=rT(o,i);(rT(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 lT=/(\s+)<\/span>/g,((e,t)=>1===t.length?" ":Array(t.length+1).join("  ").substr(0,t.length)))}function uT(e,t){const o=new DOMParser,n=function(e){return dT(dT(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(oF.source+"\\s*$"),/^$/,!1]];const iF=[["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&&!uP(a))return!1;if(45===s&&uP(a))return!1;for(;r=4)return!1;c=JP(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 m=e.md.block.ruler.getRules("blockquote"),p=[t,0];e.push("table_open","table",1).map=p,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=JP(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 m,p=!1;for(m=t;m=r)break;if(62===e.src.charCodeAt(i++)&&!t){let t,o,n=e.sCount[m]+1;32===e.src.charCodeAt(i)?(i++,n++,o=!1,t=!0):9===e.src.charCodeAt(i)?(t=!0,(e.bsCount[m]+n)%4==3?(i++,n++,o=!1):o=!0):t=!1;let s=n;for(a.push(e.bMarks[m]),e.bMarks[m]=i;i=r,l.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+(t?1:0),c.push(e.sCount[m]),e.sCount[m]=s-n,d.push(e.tShift[m]),e.tShift[m]=i-e.bMarks[m];continue}if(p)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,m),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&&(m=!0),(h=QP(e,l))>=0){if(d=!0,s=e.bMarks[l]+e.tShift[l],u=Number(e.src.slice(s,h-1)),m&&1!==u)return!1}else{if(!((h=YP(e,l))>=0))return!1;d=!1}if(m&&e.skipSpaces(h)>=e.eMarks[l])return!1;if(n)return!0;const p=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(p);let b=!1;const k=e.md.block.ruler.getRules("list"),w=e.parentType;for(e.parentType="list";l=i?1:n-t,m>4&&(m=1);const g=t+m;a=e.push("list_item_open","li",1),a.markup=String.fromCharCode(p);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(p),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&&uP(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},aF.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){uF[e.charCodeAt(0)]=1}));const mF={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 gF={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 kF=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,wF=/^&([a-z][a-z0-9]{1,31});/i;function _F(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 yF=[["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(dF);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!==uF[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=p,i=e.md.helpers.parseLinkDestination(e.src,p,e.posMax),i.ok){for(s=e.md.normalizeLink(i.str),e.md.validateLink(s)?p=i.pos:s="",l=p;p=u||41!==e.src.charCodeAt(p))&&(c=!0),p++}if(c){if(void 0===e.env.references)return!1;if(p=0?n=e.src.slice(l,p++):p=m+1):p=m+1,n||(n=e.src.slice(h,m)),r=e.env.references[gP(n)],!r)return e.pos=d,!1;s=r.href,a=r.title}if(!t){e.pos=h,e.posMax=m;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=p,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 m=e.pos+2,p=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(p<0)return!1;if(r=p+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=p+1):r=p+1,i||(i=e.src.slice(m,p)),s=e.env.references[gP(i)],!s)return e.pos=u,!1;d=s.href,l=s.title}if(!t){n=e.src.slice(m,p);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(bF.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(fF.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(tF);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(kF);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=YI(t)?QI(t):QI(65533),o.markup=n[0],o.info="entity"}return e.pos+=n[0].length,!0}}else{const n=e.src.slice(o).match(wF);if(n){const o=LI(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}]],AF=[["balance_pairs",function(e){const t=e.tokens_meta,o=e.tokens_meta.length;_F(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},CF.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()},CF.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}}},IF="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]",PF="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function FF(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=wI.source,t.src_Cc=_I.source,t.src_Z=AI.source,t.src_P=bI.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(IF),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]"===EF(o))return!function(e){return"[object RegExp]"===EF(e)}(o.validate)?DF(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(DF(o.normalize)?n.normalize=o.normalize:o.normalize?r(t,o):n.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===EF(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(BF).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 RF(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 MF(e,t){const o=new RF(e,t);return e.__compiled__[o.schema].normalize(o,e),o}function zF(e,t){if(!(this instanceof zF))return new zF(e,t);var o;t||(o=e,Object.keys(o||{}).reduce((function(e,t){return e||SF.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=xF({},SF,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=xF({},TF,e),this.__compiled__={},this.__tlds__=PF,this.__tlds_replaced__=!1,this.re={},FF(this)}zF.prototype.add=function(e,t){return this.__schemas__[e]=t,FF(this),this},zF.prototype.set=function(e){return this.__opts__=xF(this.__opts__,e),this},zF.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},zF.prototype.pretest=function(e){return this.re.pretest.test(e)},zF.prototype.testSchemaAt=function(e,t,o){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,o,this):0},zF.prototype.match=function(e){const t=[];let o=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(MF(this,o)),o=this.__last_index__);let n=o?e.slice(o):e;for(;this.test(n);)t.push(MF(this,o)),n=n.slice(this.__last_index__),o+=this.__last_index__;return t.length?t:null},zF.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,MF(this,0)):null},zF.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(),FF(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,FF(this),this)},zF.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},zF.prototype.onCompile=function(){};const VF=zF,NF=2147483647,OF=36,LF=/^xn--/,HF=/[^\0-\x7F]/,jF=/[\x2E\u3002\uFF0E\uFF61]/g,qF={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},UF=Math.floor,WF=String.fromCharCode;function $F(e){throw new RangeError(qF[e])}function GF(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(jF,".")).split("."),t).join(".");return n+i}function KF(e){const t=[];let o=0;const n=e.length;for(;o=55296&&i<=56319&&o>1,e+=UF(e/t);e>455;n+=OF)e=UF(e/35);return UF(n+36*e/(e+38))},YF=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&&$F("not-basic"),t.push(e.charCodeAt(o));for(let l=s>0?s+1:0;l=o&&$F("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:OF;s>=OF&&$F("invalid-input"),s>UF((NF-n)/t)&&$F("overflow"),n+=s*t;const c=i<=r?1:i>=r+26?26:i-r;if(sUF(NF/d)&&$F("overflow"),t*=d}const c=t.length+1;r=JF(n-s,c,0==s),UF(n/c)>NF-i&&$F("overflow"),i+=UF(n/c),n%=c,t.splice(n++,0,i)}var a;return String.fromCodePoint(...t)},QF=function(e){const t=[],o=(e=KF(e)).length;let n=128,i=0,r=72;for(const o of e)o<128&&t.push(WF(o));const s=t.length;let a=s;for(s&&t.push("-");a=n&&tUF((NF-i)/l)&&$F("overflow"),i+=(o-n)*l,n=o;for(const o of e)if(oNF&&$F("overflow"),o===n){let e=i;for(let o=OF;;o+=OF){const n=o<=r?1:o>=r+26?26:o-r;if(eString.fromCodePoint(...e)},decode:YF,encode:QF,toASCII:function(e){return GF(e,(function(e){return HF.test(e)?"xn--"+QF(e):e}))},toUnicode:function(e){return GF(e,(function(e){return LF.test(e)?YF(e.slice(4).toLowerCase()):e}))}},eR=XF,tR={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"]}}}},oR=/^(vbscript|javascript|file|data):/,nR=/^data:image\/(gif|png|jpeg|webp);/;function iR(e){const t=e.trim().toLowerCase();return!oR.test(t)||nR.test(t)}const rR=["http:","https:","mailto:"];function sR(e){const t=fI(e,!0);if(t.hostname&&(!t.protocol||rR.indexOf(t.protocol)>=0))try{t.hostname=eR.toASCII(t.hostname)}catch(e){}return oI(nI(t))}function aR(e){const t=fI(e,!0);if(t.hostname&&(!t.protocol||rR.indexOf(t.protocol)>=0))try{t.hostname=eR.toUnicode(t.hostname)}catch(e){}return XT(nI(t),XT.defaultChars+"%")}function lR(e,t){if(!(this instanceof lR))return new lR(e,t);t||$I(e)||(t=e||{},e="default"),this.inline=new vF,this.block=new sF,this.core=new $P,this.renderer=new AP,this.linkify=new VF,this.validateLink=iR,this.normalizeLink=sR,this.normalizeLinkText=aR,this.utils=o,this.helpers=ZI({},n),this.options={},this.configure(e),t&&this.set(t)}lR.prototype.set=function(e){return ZI(this.options,e),this},lR.prototype.configure=function(e){const t=this;if($I(e)){const t=e;if(!(e=tR[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},lR.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},lR.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},lR.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},lR.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},lR.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},lR.prototype.parseInline=function(e,t){const o=new this.core.State(e,this,t);return o.inlineMode=!0,this.core.process(o),o.tokens},lR.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};const cR=lR;var dR=i(9428),uR=i.n(dR);class hR{constructor(e){this._htmlDP=new kd(e),this._domConverter=new za(e)}toView(e){const t=cR({html:!0,breaks:!0,langPrefix:"language-"});let o=t.use(uR(),{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)e.insertBefore(document.createElement("p"),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);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," ")),JT(n,o)||(n.nodeValue=_.escape(n.nodeValue))}(t,["strong","em"],["pre","code","table"]),function(e,t,o){let n,i=document.createNodeIterator(e,NodeFilter.SHOW_ELEMENT,(function(e){return"a"===e.nodeName.toLowerCase()?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}));for(;n=i.nextNode();)n.setAttribute("href",n.href)}(t),function(e,t,o){let n,i=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(;n=i.nextNode();)n.appendChild(document.createElement("br"))}(t);const o=new ZT({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([mT]),o.addRule("todolist",{filter:function(e){if("LI"!==e.nodeName)return!1;const t=e.closest("ul");return t&&t.classList.contains("todo-list")},replacement:function(e,t,o){e=e.replace(/^\n+/,"").replace(/\n+$/,"\n").replace(/\n/gm,"\n ");const n=o.bulletListMarker+" ",i=t.querySelector("input[type=checkbox]");return n+(i&&i.checked?"[x] ":"[ ] ")+e+(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.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?"
    \n\n":""}),o.turndown(t).replace(/\u00A0/," ").replace("###turndown-ignore###\n","")}}const mR='\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 pR={"(":")","[":"]","{":"}"};class gR extends pr{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=bR({_text:s,id:i},n);if(1!=e.marker.length)throw new T("mentioncommand-incorrect-marker",this);if(i.charAt(0)!=e.marker)throw new T("mentioncommand-incorrect-id",this);t.change((e=>{const n=rr(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 pR,o=t&&d.data.startsWith(pR[e]);h=t&&o}h||u||t.insertContent(e.createText(" ",n),r.start.getShiftedBy(s.length))}))}}class fR extends hr{static get pluginName(){return"MentionEditing"}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",key:"data-mention",classes:"mention"},model:{key:"mention",value:e=>kR(e)}}),e.conversion.for("downcast").attributeToElement({model:"mention",view:_R}),e.conversion.for("downcast").add(wR),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=AR(n.textNode,e)||i,i=AR(t,e)||i,i=AR(n.nodeBefore,e)||i,i=AR(n.nodeAfter,e)||i}if("$text"!=t.name&&"insert"==t.type){const t=n.nodeAfter;for(const o of e.createRangeIn(t).getItems())i=AR(o,e)||i}if("insert"==t.type&&o.isInline(t.name)){const t=n.nodeAfter&&n.nodeAfter.nextSibling;i=AR(n.nodeBefore,e)||i,i=AR(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])yR(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 gR(e))}}function bR(e,t){return Object.assign({uid:E()},e,t||{})}function kR(e,t){const o=e.getAttribute("data-mention"),n=e.getChild(0);if(!n)return;return bR({id:o,_text:n.data},t)}function wR(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 _R(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 yR(e){if(!e||!e.is("$text")&&!e.is("$textProxy")||!e.hasAttribute("mention"))return!1;return e.data!=e.getAttribute("mention")._text}function AR(e,t){return!!yR(e)&&(t.removeAttribute("mention",e),!0)}var CR=i(7216),vR={attributes:{"data-cke":!0}};vR.setAttributes=Er(),vR.insert=vr().bind(null,"head"),vR.domAPI=Ar(),vR.insertStyleElement=Br();_r()(CR.A,vR);CR.A&&CR.A.locals&&CR.A.locals;class xR extends Ag{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 DR extends bg{highlight(){this.children.first.isOn=!0}removeHighlight(){this.children.first.isOn=!1}}const BR=[Ai.arrowup,Ai.arrowdown,Ai.esc],SR=[Ai.enter,Ai.tab];class TR extends hr{static get pluginName(){return"MentionUI"}static get requires(){return[Vb]}constructor(e){super(e),this._items=new tr,this._mentionsView=this._createMentionView(),this._mentionsConfigurations=new Map,this._requestFeedDebounced=il(this._requestFeed,100),e.config.define("mention",{feeds:[]})}init(){const e=this.editor,t=e.config.get("mention.commitKeys")||SR,o=BR.concat(t);this._balloon=e.plugins.get(Vb),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"}),wm({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(!MR(o))throw new T("mentionconfig-incorrect-marker",null,{marker:o});const i={marker:o,feedCallback:"function"==typeof t?t.bind(this.editor):RR(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 xR(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 DR(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}),I("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:FR(e.marker,e.minimumCharacters||0)}))),n=new yw(t.model,function(e){const t=t=>{const o=PR(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=PR(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=FR(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(zR(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(!zR(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),zR(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 ER(o.locale,t):i=t}if(!n){const e=new Tm(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:IR(t,o.locale.uiLanguageDirection)}}}function IR(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 PR(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 FR(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 RR(e){return t=>e.filter((e=>("string"==typeof e?e:String(e.id)).toLowerCase().includes(t.toLowerCase())))}function MR(e){return e&&1==e.length}function zR(e){return e.model.markers.has("mention")}var VR=i(1478),NR={attributes:{"data-cke":!0}};NR.setAttributes=Er(),NR.insert=vr().bind(null,"head"),NR.domAPI=Ar(),NR.insertStyleElement=Br();_r()(VR.A,NR);VR.A&&VR.A.locals&&VR.A.locals;class OR extends hr{static get pluginName(){return"Autosave"}static get requires(){return[$h]}constructor(e){super(e),this._action=null;const t=e.config.get("autosave")||{},o=t.waitingTime||1e3;this.set("state","synchronized"),this._debouncedSave=il(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($h),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 LR=i(2992);function HR(e){return e.trim().split(/\s+/).length}function jR(e){const t=e.length;let o=5381;for(let n=0;n>>0}function qR(e){const t=localStorage.getItem(e);if(!t)return null;try{return JSON.parse(LR.decompress(t))}catch(e){return console.error("Failed to load CKEditor revisions from localStorage: "+e.toString()),null}}class UR extends hr{init(){const e=this.editor,t=ew(e);e.ui.componentFactory.add("opContentRevisions",(o=>{const n=Tg(o),i=new tr;return Fg(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($R),n=qR(o),i=ew(e),r=Qk(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=jR(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:HR(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 WR extends pr{async execute(e){const t=this.editor,o=t.config.get($R),n=await qR(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 $R="opContentRevisionKey",GR="op_ckeditor_rev";const KR=[Gk,class extends hr{static get requires(){return[tw,e_,f_]}static get pluginName(){return"OPMacroEmbeddedTable"}static get buttonName(){return tw.buttonName}},class extends hr{static get requires(){return[w_,e_,__]}static get pluginName(){return"OPMacroWpButton"}static get buttonName(){return w_.buttonName}},class extends hr{static get requires(){return[uC,e_,hC]}static get pluginName(){return"OPChildPages"}static get buttonName(){return uC.buttonName}}],ZR=[class extends hr{static get requires(){return[A_,EA]}static get pluginName(){return"OpUploadPlugin"}init(){this.editor.plugins.get("FileRepository").createUploadAdapter=e=>{const t=Jk(this.editor);return new v_(e,t,this.editor)}}},class extends hr{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 sc(o,"on");this.editor.model.deleteContent(e)}}}],JR=[class extends hr{static get requires(){return[bp,cy,Nw,kC,jw,ww,by]}static get pluginName(){return"Essentials"}},class extends hr{static get requires(){return[A_]}static get pluginName(){return"CKFinderUploadAdapter"}init(){const e=this.editor.config.get("ckfinder.uploadUrl");e&&(this.editor.plugins.get(A_).createUploadAdapter=t=>new AC(t,e,this.editor.t))}},class extends hr{static get requires(){return[kw]}static get pluginName(){return"Autoformat"}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")&&CC(this.editor,this,/^[*-]\s$/,"bulletedList"),e.get("numberedList")&&CC(this.editor,this,/^1[.|)]\s$/,"numberedList"),e.get("todoList")&&CC(this.editor,this,/^\[\s?\]\s$/,"todoList"),e.get("checkTodoList")&&CC(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=EC(this.editor,"bold");vC(this.editor,this,/(?:^|\s)(\*\*)([^*]+)(\*\*)$/g,e),vC(this.editor,this,/(?:^|\s)(__)([^_]+)(__)$/g,e)}if(e.get("italic")){const e=EC(this.editor,"italic");vC(this.editor,this,/(?:^|\s)(\*)([^*_]+)(\*)$/g,e),vC(this.editor,this,/(?:^|\s)(_)([^_]+)(_)$/g,e)}if(e.get("code")){const e=EC(this.editor,"code");vC(this.editor,this,/(`)([^`]+)(`)$/g,e)}if(e.get("strikethrough")){const e=EC(this.editor,"strikethrough");vC(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$`);CC(this.editor,this,n,(()=>{if(!e.isEnabled||e.value===t)return!1;this.editor.execute("heading",{value:t})}))}))}_addBlockQuoteAutoformats(){this.editor.commands.get("blockQuote")&&CC(this.editor,this,/^>\s$/,"blockQuote")}_addCodeBlockAutoformats(){const e=this.editor,t=e.model.document.selection;e.commands.get("codeBlock")&&CC(e,this,/^```$/,(()=>{if(t.getFirstPosition().parent.is("element","listItem"))return!1;this.editor.execute("codeBlock",{usePreviousLanguageChoice:!0})}))}_addHorizontalLineAutoformats(){this.editor.commands.get("horizontalLine")&&CC(this.editor,this,/^---$/,"horizontalLine")}},OR,class extends hr{static get requires(){return[SC,PC]}static get pluginName(){return"Bold"}},class extends hr{static get requires(){return[RC,NC]}static get pluginName(){return"Code"}},class extends hr{static get requires(){return[LC,jC]}static get pluginName(){return"Italic"}},class extends hr{static get requires(){return[UC,$C]}static get pluginName(){return"Strikethrough"}},class extends hr{static get requires(){return[YC,ev]}static get pluginName(){return"BlockQuote"}},class extends hr{static get requires(){return[cv,hv]}static get pluginName(){return"Heading"}},class extends hr{static get requires(){return[Gy,e_,My,Yy]}static get pluginName(){return"ImageBlock"}},class extends hr{static get requires(){return[eA,e_,My,Yy]}static get pluginName(){return"ImageInline"}},class extends hr{static get requires(){return[nA,iA]}static get pluginName(){return"ImageCaption"}},class extends hr{static get requires(){return[tC,iC]}static get pluginName(){return"ImageStyle"}},class extends hr{static get requires(){return[IA,NA,WA,FA]}static get pluginName(){return"ImageResize"}},class extends hr{static get requires(){return[o_,vy]}static get pluginName(){return"ImageToolbar"}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:lC(e.config.get("image.toolbar")||[]),getRelatedElement:e=>n.getClosestSelectedImageWidget(e)})}},class extends hr{static get pluginName(){return"OpImageAttachmentLookup"}init(){const e=this.editor,t=e.conversion,o=Jk(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 hr{static get requires(){return[Qv,sx,cx]}static get pluginName(){return"Link"}},cE,SE,rv,ww,class extends hr{toMentionAttribute(e,t){return kR(e,t)}static get pluginName(){return"Mention"}static get requires(){return[fR,TR]}},function(e){const t=Yk(e),o=e.editing.view,n=o.document;o.addObserver(ju),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 hr{static get pluginName(){return"PasteFromOffice"}static get requires(){return[$_]}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 nT(o,i)),n.push(new aT(o)),n.push(new cT(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=uT(r,o.stylesProcessor)),s.execute(i),i._isTransformedWithPasteFromOffice=!0)}),{priority:"high"})}},class extends hr{static get pluginName(){return"OPHelpLinkPlugin"}init(){const e=this.editor,t=(e.model,e.config.get("openProject.helpURL"));e.ui.componentFactory.add("openProjectShowFormattingHelp",(e=>{const o=new Tm(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 hr{static get pluginName(){return"OPPreview"}init(){const e=this.editor;let t=!1,o=null;e.ui.componentFactory.add("preview",(n=>{const i=new Tm(n);i.set({label:this.label,icon:'\n',tooltip:!0});let r=function(t){let n,r=jQuery(e.ui.getEditableElement()).parent();n=r.length?r:$editable;let s=jQuery('
    ');n.siblings(".ck-editor__preview").remove();const a=Qk(e,"ckEditorPreview");o=a.render(s[0],t),n.hide(),n.after(s),LE(e,i)},s=function(){let t=function(e){return _.get(e.config,"_config.openProject.context.previewContext")}(e),o=Xk(e).api.v3.previewMarkup(t);jQuery.ajax({data:e.getData(),url:o,response_type:"text",contentType:"text/plain; charset=UTF-8",method:"POST"}).done(r)};return i.on("execute",(()=>{t?(t=!1,function(){let t=jQuery(e.ui.getEditableElement()).parent();o(),t.siblings(".ck-editor__preview").remove(),t.show(),HE(e)}()):(t=!0,s())})),i}))}get label(){return window.I18n.t("js.editor.preview")}},class extends hr{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 Tm(n);i.set({label:o.source,class:"",icon:mR,tooltip:!0});return i.on("execute",(()=>{t?(t=!1,function(){let t=jQuery(e.ui.getEditableElement()).parent();e.fire("op:source-code-disabled"),t.siblings(".ck-editor__source").remove(),t.show(),HE(e),i.set({label:o.source,class:"",icon:mR,tooltip:!0})}()):(t=!0,function(t){let n,r=jQuery(e.ui.getEditableElement()).parent();n=r.length?r:$editable;let s=jQuery('
    ');n.siblings(".ck-editor__source").remove(),n.hide(),n.after(s),LE(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 hr{static get requires(){return[OR,UR]}static get pluginName(){return"OpContentRevisions"}constructor(e){super(e);const t=this.createLocalStorageKey(e);e.config.define($R,t)}init(){const e=this.editor;e.commands.add("opContentRevisionApply",new WR(e)),e.once("ready",(()=>{const t=Date.now();e.plugins.get("Autosave")._domEmitter.stopListening(window,"beforeunload"),Object.keys(localStorage).forEach((e=>{if(e.startsWith(GR)){const o=qR(e);o?.updatedAt&&t-o.updatedAt>=288e5&&localStorage.removeItem(e)}}))}))}createLocalStorageKey(e){const t=Jk(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}`),`${GR}_${n}`}},class extends hr{static get pluginName(){return"CodeBlock"}static get requires(){return[VE,NE]}},function(e){e.data.processor=new hR(e.editing.view.document)},class extends hr{static get requires(){return[XD,iB,lB,gB,mB,cB,e_]}static get pluginName(){return"Table"}},class extends hr{static get requires(){return[o_]}static get pluginName(){return"TableToolbar"}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:yB}),i&&o.register("table",{ariaLabel:t("Table toolbar"),items:i,getRelatedElement:_B})}},class extends hr{static get pluginName(){return"TableProperties"}static get requires(){return[TS,VS]}},class extends hr{static get pluginName(){return"TableCellProperties"}static get requires(){return[wS,rS]}},class extends hr{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 KR){if(-1!==t.indexOf(o.pluginName))continue;const n=e.ui.componentFactory.create(o.buttonName);i.push(n)}const r=Tg(n);return Ig(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 hr{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,m=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"===m?i.setAttribute("alignment",null,a):i.setAttribute("alignment",m,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];s.previousSibling,s.nextSibling;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(KR,ZR);function YR(e){const t=document.createElement("span");return t.classList.add("mention-list-item"),t.textContent=e.name,t}const QR=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 XR={autosave:{waitingTime:5e3,save:e=>async function(e){const t=Date.now(),o=e.config.get($R),n=await e.getData();n||console.warn("Trying to save snapshot but data is not defined.");const i={timestamp:t,hash:jR(n),content:n},r=qR(o),s=r?.items||[];s.find((e=>i.hash===e.hash))||s.push(i);try{const e=LR.compress(JSON.stringify({items:s,updatedAt:t}));localStorage.setItem(o,e)}catch(t){Qk(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,o=Jk(t);if(!o||"WorkPackage"!==o._type)return[];if(t.config.get("disabledMentions").includes("user"))return[];const n=Xk(t).api.v3.principals(o,e)+"&select=elements/_type,elements/id,elements/name",i=Yk(t),r=window.OpenProject.urlRoot;return new Promise(((e,t)=>{jQuery.getJSON(n,(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}})))}))}))},itemRenderer:YR,minimumCharacters:0},{marker:"#",feed:function(e){const t=window.OpenProject.urlRoot+"/work_packages/auto_complete.json";let o=window.OpenProject.urlRoot+"/work_packages/";return this.config.get("disabledMentions").includes("work_package")?[]:new Promise(((n,i)=>{jQuery.getJSON(t,{q:e,scope:"all"},(e=>{n(e.map((e=>{const t=`#${e.id}`;return{id:t,idNumber:e.id,type:"work_package",text:t,name:e.to_s,link:o+e.id}})))}))}))},itemRenderer:YR,minimumCharacters:1},{marker:":",feed:function(e){return new Promise(((t,o)=>{const n=QR.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"};function eM(e){return(t,o)=>{const n=o.openProject.context;o.removePlugins=o.removePlugins||[];const i=n.resource;if(i&&i.canAddAttachments||o.removePlugins.push(...ZR.map((e=>e.pluginName))),!1===n.macros&&(o.openProject.disableAllMacros=!0,o.removePlugins.push(...KR.map((e=>e.pluginName)))),Array.isArray(n.macros)){const e=KR.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 tM extends Dk{}class oM extends Dk{}window.OPConstrainedEditor=tM,window.OPClassicEditor=oM,window.OPEditorWatchdog=Fh,oM.createCustomized=eM(oM),oM.builtinPlugins=JR,oM.defaultConfig=Object.assign({},XR),oM.defaultConfig.toolbar={items:["heading","|","bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","insertTable","macroList","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","|","preview","opShowSource"]},tM.createCustomized=eM(tM),tM.builtinPlugins=JR,tM.defaultConfig=Object.assign({},XR),tM.defaultConfig.toolbar={items:["bold","italic","strikethrough","code","insertCodeBlock","link","bulletedList","numberedList","todoList","imageUpload","blockQuote","|","opContentRevisions","undo","redo","openProjectShowFormattingHelp","preview","opShowSource"]}})(),r=r.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 9e8f91b4836b..919648237939 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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C,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,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,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,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,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,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,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,GAAI,UAAW,CAAC,GAAI,WAAY,CAAC,GAAI,YAAa,CAAC,GAAI,WAAY,CAAC,IAAK,UAAW,CAAC,EAAG,WAAY,CAAC,GAAI,WAAY,CAAC,EAAG,oBAAqB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,sBAAuB,CAAC,EAAG,WAAY,CAAC,GAAI,eAAgB,CAAC,IAAK,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,aAAc,CAAC,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,aAAc,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,aAAc,CAAC,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,GAAI,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,iBAAkB,CAAC,GAAI,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,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,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,U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,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,GAAI,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,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,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,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,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG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","sources":["webpack://OPEditor/webpack/universalModuleDefinition","webpack://OPEditor/webpack/runtime/create fake namespace object","webpack://OPEditor/./node_modules/color-convert/conversions.js","webpack://OPEditor/./node_modules/color-convert/index.js","webpack://OPEditor/./node_modules/color-convert/route.js","webpack://OPEditor/./node_modules/color-name/index.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-basic-styles/theme/code.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-heading/theme/heading.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/image.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagecustomresizeform.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageinsert.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageplaceholder.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageresize.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/link.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkform.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-link/theme/linkimage.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/documentlist.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/list.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/listproperties.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/liststyles.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-list/theme/todolist.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/theme/mention.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-mention/theme/mentionui.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/colorinput.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/form.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/formrow.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/table.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecaption.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecellproperties.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tablecolumnresize.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableediting.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableform.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableproperties.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-table/theme/tableselection.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/autocomplete/autocomplete.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/listitembutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/collapsible/collapsible.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorpicker/colorpicker.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/colorselector/colorselector.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialog.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dialog/dialogactions.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/listdropdown.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/accessibilityhelp.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/editorui.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/formheader/formheader.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/input/input.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubar.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenu.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenubutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenulistitem.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenulistitembutton.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/menubar/menubarmenupanel.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/search/search.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/spinner/spinner.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/textarea/textarea.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/globals/globals.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widget.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgetresize.css","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-widget/theme/widgettypearound.css","webpack://OPEditor/./node_modules/css-loader/dist/runtime/api.js","webpack://OPEditor/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://OPEditor/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://OPEditor/./node_modules/entities/lib/decode.js","webpack://OPEditor/./node_modules/entities/lib/decode_codepoint.js","webpack://OPEditor/./node_modules/entities/lib/encode.js","webpack://OPEditor/./node_modules/entities/lib/escape.js","webpack://OPEditor/./node_modules/entities/lib/generated/decode-data-html.js","webpack://OPEditor/./node_modules/entities/lib/generated/decode-data-xml.js","webpack://OPEditor/./node_modules/entities/lib/generated/encode-html.js","webpack://OPEditor/./node_modules/entities/lib/index.js","webpack://OPEditor/./node_modules/linkify-it/build/index.cjs.js","webpack://OPEditor/./node_modules/lz-string/libs/lz-string.js","webpack://OPEditor/./node_modules/markdown-it-task-lists/index.js","webpack://OPEditor/./node_modules/markdown-it/dist/index.cjs.js","webpack://OPEditor/./node_modules/mdurl/build/index.cjs.js","webpack://OPEditor/./node_modules/punycode.js/punycode.es6.js","webpack://OPEditor/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://OPEditor/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://OPEditor/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://OPEditor/./node_modules/style-loader/dist/runtime/setAttributesWithAttributesAndNonce.js","webpack://OPEditor/./node_modules/style-loader/dist/runtime/singletonStyleDomAPI.js","webpack://OPEditor/./node_modules/uc.micro/build/index.cjs.js","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/getborderwidths.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/delay.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/@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/view/matcher.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/last.js","webpack://OPEditor/./node_modules/lodash-es/_toKey.js","webpack://OPEditor/./node_modules/lodash-es/_baseGet.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/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/src/view/stylesmap.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-utils/src/dom/getancestors.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/node.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/nodelist.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/splicearray.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/text.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/textproxy.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/element.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/selection.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/liverange.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-engine/src/model/documentselection.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/conversion/viewconsumable.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/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/@ckeditor/ckeditor5-watchdog/src/utils/getsubnodes.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-watchdog/src/utils/areconnectedthroughproperties.js","webpack://OPEditor/./node_modules/lodash-es/throttle.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/editor.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-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/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/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/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/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/tooltip/tooltip.css?a08c","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/tooltipmanager.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/theme/icons/project-logo.svg","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-ui/src/editorui/poweredby.js","webpack://OPEditor/./node_modules/@ckeditor/ckeditor5-utils/src/verifylicense.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/./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/@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/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/commonmarkdataprocessor.js","webpack://OPEditor/./src/commonmark/utils/paragraph-in-lists.js","webpack://OPEditor/./src/commonmark/utils/fix-empty-code-blocks.js","webpack://OPEditor/./src/commonmark/utils/fix-tasklist-whitespaces.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-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/./node_modules/@ckeditor/ckeditor5-image/src/imagetoolbar.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-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/mentions-item-renderer.js","webpack://OPEditor/./src/op-ckeditor-config.js","webpack://OPEditor/./src/mentions/user-mentions.js","webpack://OPEditor/./src/mentions/work-package-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};","/* 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","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","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","'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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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\"],\"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,CArBA,mDAYE,sFAAuF,CADvF,+JAAoK,CAFpK,SAYF,CArBA,mDAmBE,sFAAuF,CADvF,+JAAmK,CAFnK,UAKF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\"],\"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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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","// 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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `: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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `.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: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,.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{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\"],\"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,CAXA,iDAKE,eAMF,CAXA,iDASE,gBAEF,CAGC,8DACC,gDACD,CAEA,6DACC,mDACD,CAMD,6FAJC,oDAOD,CAHA,iDAEC,+BACD,CAEA,+BACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\"],\"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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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","// 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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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","// 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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `.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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `.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\"],\"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,CAGD,gJAME,aAEF,CDzED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\"],\"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\"],\"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,CARD,4GAeE,aAMF,CAJE,mEACC,kDACD,CAKF,6CACC,gCAUD,CARC,wEACC,SAAU,CACV,UAKD,CAHC,8EACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\"],\"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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `.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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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","// 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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-list-styles-list {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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","// 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,CAFA,wDApEA,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAoEA,CAhED,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,CAFA,wGAtGC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAsGD,CAlGA,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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest [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, `: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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `: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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-radius:0}.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{border:1px solid var(--ck-color-input-border);height:20px;width:20px}.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-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,CC1BF,+CAGE,4BAA6B,CAD7B,yBAcF,CAhBA,+CAQE,2BAA4B,CAD5B,wBASF,CAHC,2CACC,SACD,CAIA,wEACC,SA0CD,CA3CA,kFAKE,2BAA4B,CAD5B,wBAuCF,CApCE,8FACC,iCACD,CATF,kFAcE,4BAA6B,CAD7B,yBA8BF,CA3BE,8FACC,kCACD,CAGD,oFACC,oDACD,CAEA,4GC1CF,eD2DE,CAjBA,+PCtCD,qCDuDC,CAjBA,4GAKC,6CAA8C,CAD9C,WAAY,CADZ,UAcD,CAVC,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,CATD,8DAYE,yBAeF,CA3BA,8DAgBE,wBAWF,CARC,gEACC,uCAMD,CAPA,0EAKE,sCAAuC,CADvC,cAGF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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\"],\"names\":[],\"mappings\":\"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CAvBE,6CAEE,mCAMF,CARA,6CAME,oCAEF,CAGD,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\"],\"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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `.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}.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,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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/* 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","// 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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `: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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `: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);border-style:none;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,CAKE,8QAGC,2DAA4D,CAK5D,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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&.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\\n\\t\\t\\t/* Fixes the problem where surrounding cells cover the focused cell's border.\\n\\t\\t\\tIt does not fix the problem in all places but the UX is improved.\\n\\t\\t\\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\\n\\t\\t\\tborder-style: none;\\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-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{border-radius:0}.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{background:var(--ck-color-base-error);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.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)}.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}@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,8ECxCD,eD6DC,CArBA,mMCpCA,qCDyDA,CArBA,8EAGC,qCAAsC,CACtC,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAcD,CAXC,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAdD,8EAgBC,iEAKD,CAHC,uCAlBD,8EAmBE,cAEF,CADC,CAID,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `: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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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{border-radius:0}.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{background:var(--ck-color-base-background);border:1px solid var(--ck-color-dropdown-panel-border);box-shadow:var(--ck-drop-shadow),0 0;max-height:200px;min-width:auto;overflow-y:auto}.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,wCCEA,eDuBA,CAzBA,uHCMC,qCDmBD,CAzBA,wCAMC,0CAA2C,CAC3C,sDAAuD,CEPxD,oCAA8B,CFI7B,gBAAiB,CAIjB,cAAe,CAHf,eAoBD,CAfC,6DACC,2BAA4B,CAC5B,4BAA6B,CAG7B,kBACD,CAEA,6DACC,wBAAyB,CACzB,yBAA0B,CAG1B,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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,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{background:var(--ck-color-button-default-background)}.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.ck-button,a.ck.ck-button{border-radius:0}.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)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;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}@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}[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-button__keystroke,a.ck.ck-button .ck-button__keystroke{opacity:.5}.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)}.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-on,a.ck.ck-button.ck-on{color:var(--ck-color-button-on-color)}.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)}.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-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.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-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,CA9BA,iDASE,oBAqBF,CA9BA,iDAaE,qBAiBF,CAdC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEzBD,6BCAC,oDD6ID,CC1IE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CDfD,6BEDC,eF8ID,CA7IA,wIEGE,qCF0IF,CA7IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBAwID,CA9GC,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,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAWD,CAZA,6FAIE,mCAQF,CAZA,6FAQE,oCAIF,CAZA,yEAWC,UACD,CAIC,oIIxFD,oDJ4FC,CAOA,gLKnGD,kCLqGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAYD,CATC,2HAEE,qCAMF,CARA,2HAME,oCAEF,CAKA,mHACC,WACD,CAID,yCChIA,+CDoIA,CCjIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDiHA,yCAGC,qCACD,CAEA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CChJC,mDDqJD,CClJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDiID,2CAIC,wCACD,CAEA,uCAEC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-theme-lark/theme/ckeditor5-ui/components/button/listitembutton.css\"],\"names\":[],\"mappings\":\"AAOA,wBAGC,eAAgB,CAFhB,gBAAiB,CACjB,UAsCD,CAxCA,kCAME,eAkCF,CAxCA,kCAUE,gBA8BF,CA3BC,iEAEE,oCAMF,CARA,iEAME,qCAEF,CAEA,2DACC,mBAAoB,CAEpB,WAAY,CADZ,UAUD,CAZA,qEAME,oCAMF,CAZA,qEAUE,mCAEF,CAEA,yDACC,WACD,CCvCD,kCACC,iEAiCD,CA/BC,0EAEC,0CAA2C,CAC3C,0BACD,CAEA,oFAEE,oCAMF,CARA,oFAME,qCAEF,CAOA,6OAIC,uDAKD,CAHC,qTACC,0BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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{border-radius:0}.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{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.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)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}@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-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,CAEA,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDCpCA,eDgFA,CA5CA,yIChCC,qCD4ED,CA5CA,2DAKE,gBAuCF,CA5CA,2DAUE,iBAkCF,CA5CA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CAD7B,iFAAsF,CAEtF,0CA2BD,CAxBC,2ECxDD,eDuEC,CAfA,6LCpDA,qCAAsC,CDsDpC,8CAaF,CAfA,2EAOC,yDAA0D,CAD1D,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAUD,CAHC,uCAZD,2EAaE,eAEF,CADC,CAGD,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DEpFA,kCFsFA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAKA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-color-grid {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-theme-lark/theme/ckeditor5-ui/components/colorselector/colorselector.css\"],\"names\":[],\"mappings\":\"AAUE,oLAGC,kBAAmB,CADnB,YAMD,CARA,wMAME,0BAEF,CAKA,iFACC,YAAa,CACb,kBAAmB,CACnB,4BAMD,CAJC,oMAEC,MACD,CCrBD,oLAEC,UACD,CAEA,0FAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,sGACC,gDACD,CAEA,gHAEE,uCAMF,CARA,gHAME,sCAEF,CAGD,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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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","// 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 .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-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-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)}.ck.ck-dialog .ck.ck-form__header{border-bottom:1px solid var(--ck-color-dialog-form-header-border)}@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,iBAcD,CAXC,kCACC,aAKD,CAHC,0DACC,WACD,CAVF,mEAcE,kBAEF,CC7BA,MACC,mDAA2D,CAC3D,uDAA8D,CAC9D,2BAA4B,CAC5B,2BAA4B,CAC5B,4DAA6D,CAC7D,gEACD,CAEA,sBACC,+BAAgC,CAChC,oDAAqD,CACrD,0BACD,CAEA,cCbC,eD2BD,CAdA,mECTE,qCDuBF,CAdA,cEfC,oCAA8B,CFmB9B,6CAA8C,CAE9C,4CAA6C,CAG7C,4CAA6C,CAF7C,sCAAuC,CACvC,oCAMD,CAHC,kCACC,iEACD,CAGD,6BACC,GACC,sBACD,CAEA,GACC,oDACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\\n\\t\\t& .ck-form__header__label {\\n\\t\\t\\tcursor: grab;\\n\\t\\t}\\n\\t}\\n\\n\\t@nest .ck.ck-dialog-overlay.ck-dialog-overlay__transparent & {\\n\\t\\tpointer-events: all;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\\n\\t& .ck.ck-form__header {\\n\\t\\tborder-bottom: 1px solid var(--ck-color-dialog-form-header-border);\\n\\t}\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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","// 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{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__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;min-width:100%}.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,uBGlFC,eHkHD,CAhCA,qFG9EE,qCH8GF,CAhCA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAuBD,CAnBC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD,CAEA,6BACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-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,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-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>.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}.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}`, \"\",{\"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,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CAKD,sDAEC,qBAAwB,CADxB,kBAED,CAQC,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGA,sIACC,iEACD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCCzFA,eDmGA,CAVA,qHCrFC,qCD+FD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest [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@nest [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@nest [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@nest [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/* 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@nest [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@nest [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\\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\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `: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,CAZD,wEAcC,EACC,kBACD,CAqED,CAlEC,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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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,CAPA,yJCAE,qCDOF,CAJC,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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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\"],\"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,CAdC,uCAEE,qCAMF,CARA,uCAME,oCAEF,CAEA,4CACC,wBAAyB,CACzB,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\"],\"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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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);will-change:transform}.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,yBAA0B,CAU1B,qBAoBD,CAlBC,0BALA,cAQA,CAMC,sEACC,aAMD,CAJC,+CAEC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-icon {\\n\\tvertical-align: middle;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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/* This will prevent blurry icons on Firefox. See #340. */\\n\\twill-change: transform;\\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-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);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}@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,aCLC,eDmDD,CA9CA,iECDE,qCD+CF,CA9CA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DAkCD,CAhCC,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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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{top:0}[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}.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;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}@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)}[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-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}.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\"],\"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,CA9GA,2FCDE,qCD+GF,CA3GC,mEACC,UAwCD,CAtCC,gFACC,KAoCD,CArCA,0FAIE,MAAS,CAGT,6DAA+D,CAF/D,oBAgCF,CArCA,0FAWE,OAAU,CAEV,sEAA0E,CAD1E,uBAyBF,CArCA,gFAkBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAH9C,mBAAoB,CAQpB,sBAAuB,CAKvB,+JAQD,CAHC,uCAlCD,gFAmCE,eAEF,CADC,CASD,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,2XAGE,+HAYF,CAfA,2XAOE,wIAQF,CAfA,uWAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-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{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none;padding:var(--ck-spacing-small) 0}.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}.ck-list .ck-list__group{:not(.ck-hidden)~&{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\"],\"names\":[],\"mappings\":\"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEdD,YCCC,eDOD,CARA,+DCKE,qCDGF,CARA,YAIC,0CAA2C,CAD3C,oBAAqB,CAIrB,iCACD,CAEA,kBACC,cAAe,CAGf,cA4DD,CA1DC,uDAIC,eAAgB,CAFhB,gBAAiB,CADjB,iEAAoE,CAEpE,UAwCD,CA3CA,iEAOE,eAoCF,CA3CA,iEAWE,gBAgCF,CA7BC,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,CAND,yBASC,mBACC,gDACD,CAOD,CALC,mCACC,cAAe,CACf,eAAiB,CACjB,0DACD,CAGD,uBAGC,sCAAuC,CAFvC,UAAW,CAKX,gCAAiC,CAJjC,UAKD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\tdisplay: block;\\n\\tposition: relative;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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;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\"],\"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,wDAgBD,CAbC,+FAEC,iBAAkB,CADlB,WAED,CAEA,mFACC,2BAA4B,CAC5B,4BACD,CAEA,sFACC,YACD,CAMD,mFACC,eA+BD,CA7BC,qHACC,mCAuBD,CAxBA,+HAOE,sCAAuC,CAGvC,6CAAgD,CANhD,wBAoBF,CAxBA,+HAgBE,+BAAgC,CAMhC,4CAA+C,CAH/C,oCAAqC,CALrC,uBAUF,CAEA,iICpFD,kCDsFC\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `: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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `.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\"],\"names\":[],\"mappings\":\"AAWC,iEACC,eAoBD,CAlBC,0LAGC,8BACD,CAEA,uFAEC,kCASD,CAXA,iGAKE,qCAMF,CAXA,iGASE,oCAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\"],\"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-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{border-radius:0}.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{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-menu-bar-menu-panel-max-width)}.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,mDCFC,eDoCD,CAlCA,6ICEE,qCDgCF,CAlCA,mDAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CEVT,oCAA8B,CFW9B,kBAAmB,CACnB,iDA0BD,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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `: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{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.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,qBCLC,eDmMD,CA9LA,iFCDE,qCD+LF,CA9LA,qBAMC,2CAA4C,CAC5C,wEAAyE,CEdzE,oCAA8B,CFW9B,eA0LD,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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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\"],\"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,CARD,0OAeE,aAMF,CAJE,+IACC,kDACD,CDrEH\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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\"],\"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-theme-lark/theme/ckeditor5-ui/components/search/search.css\"],\"names\":[],\"mappings\":\"AASE,oFACC,iBAAkB,CAClB,OAAQ,CACR,0BASD,CAZA,8FAME,6BAMF,CAZA,8FAUE,8BAEF,CAEA,uDACC,iBAAkB,CAClB,OAAQ,CACR,0BACD,CAKC,oEACC,aACD,CAGA,qEACC,YACD,CChCH,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,CAnBA,6FASE,8BAUF,CAnBA,6FAaE,6BAMF,CAHC,yFACC,SACD,CAGD,2EACC,UAWD,CAZA,oMAUE,4DAEF,CAIF,kCACC,cAkBD,CAhBC,mDAEC,wDAAyD,CADzD,UAcD,CAXC,qDACC,kBACD,CAEA,oEACC,eACD,CAEA,mEACC,mCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `.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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-block-toolbar-button {\\n\\tposition: absolute;\\n\\tz-index: var(--ck-z-default);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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.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{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.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,eCGC,eDwGD,CA3GA,qECOE,qCDoGF,CA3GA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAuGD,CApGC,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,CAtGD,qCAyGE,QAEF,CAYC,+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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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@nest .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-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);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{box-shadow:none}.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,CAE/D,kCFJD,CEMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAEA,wEAEC,oBAAqB,CAErB,eAAgB,CADhB,wCAAyC,CAFzC,wBAID,CArBD,gCAwBC,eAMD,CAHC,uCACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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, `.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-line-height:10px;--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.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:7.5px;font-weight:700;letter-spacing:-.2px;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}.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-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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-powered-by-line-height: 10px;\\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\\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: 7.5px;\\n\\t\\t\\tletter-spacing: -.2px;\\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}\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Default border-radius value.\\n */\\n:root{\\n\\t--ck-border-radius: 2px;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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","// 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{border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}@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-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/_focus.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.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,4BAYD,CARC,yGCnCA,2BAA2B,CCF3B,qCAA8B,CDC9B,YD2CA,CGvCA,4BACC,yGHoCC,iEGlCD,CACD,CHuCA,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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-focus-ring;\\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\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\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","\"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};","\"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};","\"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};","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \" \"], [0, \" \"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar uc_micro = require('uc.micro');\n\nfunction reFactory (opts) {\n const re = {};\n opts = opts || {};\n\n re.src_Any = uc_micro.Any.source;\n re.src_Cc = uc_micro.Cc.source;\n re.src_Z = uc_micro.Z.source;\n re.src_P = uc_micro.P.source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [re.src_Z, re.src_P, re.src_Cc].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [re.src_Z, re.src_Cc].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n const text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n re.src_ip4 =\n\n '(?:(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]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')' +\n '(?!' + (opts['---'] ? '-(?!--)|' : '-|') + '_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-;]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n\n // allow `I'm_king` if no pair found\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-])|' +\n\n // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.{2,}[a-zA-Z0-9%/&]|' +\n\n '\\\\.(?!' + re.src_ZCc + '|[.]|$)|' +\n (opts['---']\n ? '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n : '\\\\-+|'\n ) +\n // allow `,,,` in paths\n ',(?!' + re.src_ZCc + '|$)|' +\n\n // allow `;` if not followed by space-like char\n ';(?!' + re.src_ZCc + '|$)|' +\n\n // allow `!!!` in paths, but not at the end\n '\\\\!+(?!' + re.src_ZCc + '|[!]|$)|' +\n\n '\\\\?(?!' + re.src_ZCc + '|[?]|$)' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/* _root */ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n //\n // Main rules\n //\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re\n}\n\n//\n// Helpers\n//\n\n// Merge objects\n//\nfunction assign (obj /* from1, from2, from3, ... */) {\n const sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj\n}\n\nfunction _class (obj) { return Object.prototype.toString.call(obj) }\nfunction isString (obj) { return _class(obj) === '[object String]' }\nfunction isObject (obj) { return _class(obj) === '[object Object]' }\nfunction isRegExp (obj) { return _class(obj) === '[object RegExp]' }\nfunction isFunction (obj) { return _class(obj) === '[object Function]' }\n\nfunction escapeRE (str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&') }\n\n//\n\nconst defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\nfunction isOptionsObj (obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n /* eslint-disable-next-line no-prototype-builtins */\n return acc || defaultOptions.hasOwnProperty(k)\n }, false)\n}\n\nconst defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length\n }\n return 0\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0 }\n if (pos >= 3 && text[pos - 3] === '/') { return 0 }\n return tail.match(self.re.no_http)[0].length\n }\n return 0\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length\n }\n return 0\n }\n }\n};\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\n/* eslint-disable-next-line max-len */\nconst tlds_2ch_src_re = '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]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nconst tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\nfunction resetScanCache (self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator (re) {\n return function (text, pos) {\n const tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length\n }\n return 0\n }\n}\n\nfunction createNormalizer () {\n return function (match, self) {\n self.normalize(match);\n }\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile (self) {\n // Load & clone RE patterns.\n const re = self.re = reFactory(self.__opts__);\n\n // Define dynamic patterns\n const tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl (tpl) { return tpl.replace('%TLDS%', re.src_tlds) }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n const aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError (name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val)\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n const val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return }\n\n const compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return\n }\n\n if (isString(val)) {\n aliases.push(name);\n return\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n const slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name]\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n self.re.schema_at_start = RegExp('^' + self.re.schema_search.source, 'i');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match (self, shift) {\n const start = self.__index__;\n const end = self.__last_index__;\n const text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch (self, shift) {\n const match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match\n}\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt (schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options)\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add (schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this\n};\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set (options) {\n this.__opts__ = assign(this.__opts__, options);\n return this\n};\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test (text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false }\n\n let m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0\n};\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest (text) {\n return this.re.pretest.test(text)\n};\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt (text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this)\n};\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match (text) {\n const result = [];\n let shift = 0;\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n let tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result\n }\n\n return null\n};\n\n/**\n * LinkifyIt#matchAtStart(text) -> Match|null\n *\n * Returns fully-formed (not fuzzy) link if it starts at the beginning\n * of the string, and null otherwise.\n **/\nLinkifyIt.prototype.matchAtStart = function matchAtStart (text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) return null\n\n const m = this.re.schema_at_start.exec(text);\n if (!m) return null\n\n const len = this.testSchemaAt(text, m[2], m[0].length);\n if (!len) return null\n\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n\n return createMatch(this, 0)\n};\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds (list, keepOld) {\n list = Array.isArray(list) ? list : [list];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1]\n })\n .reverse();\n\n compile(this);\n return this\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize (match) {\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile () {\n};\n\nmodule.exports = LinkifyIt;\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","// 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","'use strict';\n\nvar mdurl = require('mdurl');\nvar ucmicro = require('uc.micro');\nvar entities = require('entities');\nvar LinkifyIt = require('linkify-it');\nvar punycode = require('punycode.js');\n\nfunction _interopNamespaceDefault(e) {\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n.default = e;\n return Object.freeze(n);\n}\n\nvar mdurl__namespace = /*#__PURE__*/_interopNamespaceDefault(mdurl);\nvar ucmicro__namespace = /*#__PURE__*/_interopNamespaceDefault(ucmicro);\n\n// Utilities\n//\n\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isString(obj) {\n return _class(obj) === '[object String]';\n}\nconst _hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction has(object, key) {\n return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /* from1, from2, from3, ... */) {\n const sources = Array.prototype.slice.call(arguments, 1);\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\nfunction isValidEntityCode(c) {\n /* eslint no-bitwise:0 */\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) {\n return false;\n }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) {\n return false;\n }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) {\n return false;\n }\n // control codes\n if (c >= 0x00 && c <= 0x08) {\n return false;\n }\n if (c === 0x0B) {\n return false;\n }\n if (c >= 0x0E && c <= 0x1F) {\n return false;\n }\n if (c >= 0x7F && c <= 0x9F) {\n return false;\n }\n // out of range\n if (c > 0x10FFFF) {\n return false;\n }\n return true;\n}\nfunction fromCodePoint(c) {\n /* eslint no-bitwise:0 */\n if (c > 0xffff) {\n c -= 0x10000;\n const surrogate1 = 0xd800 + (c >> 10);\n const surrogate2 = 0xdc00 + (c & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n }\n return String.fromCharCode(c);\n}\nconst UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])/g;\nconst ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\nconst UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\nconst DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;\nfunction replaceEntityPattern(match, name) {\n if (name.charCodeAt(0) === 0x23 /* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n const code = name[1].toLowerCase() === 'x' ? parseInt(name.slice(2), 16) : parseInt(name.slice(1), 10);\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n return match;\n }\n const decoded = entities.decodeHTML(match);\n if (decoded !== match) {\n return decoded;\n }\n return match;\n}\n\n/* function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n} */\n\nfunction unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) {\n return str;\n }\n return str.replace(UNESCAPE_MD_RE, '$1');\n}\nfunction unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) {\n return str;\n }\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) {\n return escaped;\n }\n return replaceEntityPattern(match, entity);\n });\n}\nconst HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nconst HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nconst HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n};\nfunction replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n}\nfunction escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n return str;\n}\nconst REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\nfunction escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) {\n return true;\n }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n return false;\n}\n\n/* eslint-disable max-len */\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n return ucmicro__namespace.P.test(ch) || ucmicro__namespace.S.test(ch);\n}\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21 /* ! */:\n case 0x22 /* \" */:\n case 0x23 /* # */:\n case 0x24 /* $ */:\n case 0x25 /* % */:\n case 0x26 /* & */:\n case 0x27 /* ' */:\n case 0x28 /* ( */:\n case 0x29 /* ) */:\n case 0x2A /* * */:\n case 0x2B /* + */:\n case 0x2C /* , */:\n case 0x2D /* - */:\n case 0x2E /* . */:\n case 0x2F /* / */:\n case 0x3A /* : */:\n case 0x3B /* ; */:\n case 0x3C /* < */:\n case 0x3D /* = */:\n case 0x3E /* > */:\n case 0x3F /* ? */:\n case 0x40 /* @ */:\n case 0x5B /* [ */:\n case 0x5C /* \\ */:\n case 0x5D /* ] */:\n case 0x5E /* ^ */:\n case 0x5F /* _ */:\n case 0x60 /* ` */:\n case 0x7B /* { */:\n case 0x7C /* | */:\n case 0x7D /* } */:\n case 0x7E /* ~ */:\n return true;\n default:\n return false;\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ');\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß');\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase();\n}\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nconst lib = {\n mdurl: mdurl__namespace,\n ucmicro: ucmicro__namespace\n};\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n arrayReplaceAt: arrayReplaceAt,\n assign: assign,\n escapeHtml: escapeHtml,\n escapeRE: escapeRE,\n fromCodePoint: fromCodePoint,\n has: has,\n isMdAsciiPunct: isMdAsciiPunct,\n isPunctChar: isPunctChar,\n isSpace: isSpace,\n isString: isString,\n isValidEntityCode: isValidEntityCode,\n isWhiteSpace: isWhiteSpace,\n lib: lib,\n normalizeReference: normalizeReference,\n unescapeAll: unescapeAll,\n unescapeMd: unescapeMd\n});\n\n// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n\nfunction parseLinkLabel(state, start, disableNested) {\n let level, found, marker, prevPos;\n const max = state.posMax;\n const oldPos = state.pos;\n state.pos = start + 1;\n level = 1;\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos);\n if (marker === 0x5D /* ] */) {\n level--;\n if (level === 0) {\n found = true;\n break;\n }\n }\n prevPos = state.pos;\n state.md.inline.skipToken(state);\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++;\n } else if (disableNested) {\n state.pos = oldPos;\n return -1;\n }\n }\n }\n let labelEnd = -1;\n if (found) {\n labelEnd = state.pos;\n }\n\n // restore old state\n state.pos = oldPos;\n return labelEnd;\n}\n\n// Parse link destination\n//\n\nfunction parseLinkDestination(str, start, max) {\n let code;\n let pos = start;\n const result = {\n ok: false,\n pos: 0,\n str: ''\n };\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++;\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === 0x0A /* \\n */) {\n return result;\n }\n if (code === 0x3C /* < */) {\n return result;\n }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n pos++;\n }\n\n // no closing '>'\n return result;\n }\n\n // this should be ... } else { ... branch\n\n let level = 0;\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === 0x20) {\n break;\n }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) {\n break;\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n if (str.charCodeAt(pos + 1) === 0x20) {\n break;\n }\n pos += 2;\n continue;\n }\n if (code === 0x28 /* ( */) {\n level++;\n if (level > 32) {\n return result;\n }\n }\n if (code === 0x29 /* ) */) {\n if (level === 0) {\n break;\n }\n level--;\n }\n pos++;\n }\n if (start === pos) {\n return result;\n }\n if (level !== 0) {\n return result;\n }\n result.str = unescapeAll(str.slice(start, pos));\n result.pos = pos;\n result.ok = true;\n return result;\n}\n\n// Parse link title\n//\n\n\n// Parse link title within `str` in [start, max] range,\n// or continue previous parsing if `prev_state` is defined (equal to result of last execution).\n//\nfunction parseLinkTitle(str, start, max, prev_state) {\n let code;\n let pos = start;\n const state = {\n // if `true`, this is a valid link title\n ok: false,\n // if `true`, this link can be continued on the next line\n can_continue: false,\n // if `ok`, it's the position of the first character after the closing marker\n pos: 0,\n // if `ok`, it's the unescaped title\n str: '',\n // expected closing marker character code\n marker: 0\n };\n if (prev_state) {\n // this is a continuation of a previous parseLinkTitle call on the next line,\n // used in reference links only\n state.str = prev_state.str;\n state.marker = prev_state.marker;\n } else {\n if (pos >= max) {\n return state;\n }\n let marker = str.charCodeAt(pos);\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) {\n return state;\n }\n start++;\n pos++;\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) {\n marker = 0x29;\n }\n state.marker = marker;\n }\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === state.marker) {\n state.pos = pos + 1;\n state.str += unescapeAll(str.slice(start, pos));\n state.ok = true;\n return state;\n } else if (code === 0x28 /* ( */ && state.marker === 0x29 /* ) */) {\n return state;\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++;\n }\n pos++;\n }\n\n // no closing marker found, but this link title may continue on the next line (for references)\n state.can_continue = true;\n state.str += unescapeAll(str.slice(start, pos));\n return state;\n}\n\n// Just a shortcut for bulk export\n\nvar helpers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parseLinkDestination: parseLinkDestination,\n parseLinkLabel: parseLinkLabel,\n parseLinkTitle: parseLinkTitle\n});\n\n/**\n * class Renderer\n *\n * Generates HTML from parsed token stream. Each instance has independent\n * copy of rules. Those can be rewritten with ease. Also, you can add new\n * rules if you create plugin and adds new token types.\n **/\n\nconst default_rules = {};\ndefault_rules.code_inline = function (tokens, idx, options, env, slf) {\n const token = tokens[idx];\n return '' + escapeHtml(token.content) + '';\n};\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n const token = tokens[idx];\n return '' + escapeHtml(tokens[idx].content) + '\\n';\n};\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n const token = tokens[idx];\n const info = token.info ? unescapeAll(token.info).trim() : '';\n let langName = '';\n let langAttrs = '';\n if (info) {\n const arr = info.split(/(\\s+)/g);\n langName = arr[0];\n langAttrs = arr.slice(2).join('');\n }\n let highlighted;\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName, langAttrs) || escapeHtml(token.content);\n } else {\n highlighted = escapeHtml(token.content);\n }\n if (highlighted.indexOf('${highlighted}\\n`;\n }\n return `
    ${highlighted}
    \\n`;\n};\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n const token = tokens[idx];\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] = slf.renderInlineAsText(token.children, options, env);\n return slf.renderToken(tokens, idx, options);\n};\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? '
    \\n' : '
    \\n';\n};\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? options.xhtmlOut ? '
    \\n' : '
    \\n' : '\\n';\n};\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content);\n};\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer() {\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return ''; };\n * md.renderer.rules.strong_close = function () { return ''; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independent static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs)\n * for more details and examples.\n **/\n this.rules = assign({}, default_rules);\n}\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs(token) {\n let i, l, result;\n if (!token.attrs) {\n return '';\n }\n result = '';\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"';\n }\n return result;\n};\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken(tokens, idx, options) {\n const token = tokens[idx];\n let result = '';\n\n // Tight list paragraphs\n if (token.hidden) {\n return '';\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n';\n }\n\n // Add token name, e.g. ``.\n //\n needLf = false;\n }\n }\n }\n }\n result += needLf ? '>\\n' : '>';\n return result;\n};\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n let result = '';\n const rules = this.rules;\n for (let i = 0, len = tokens.length; i < len; i++) {\n const type = tokens[i].type;\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options);\n }\n }\n return result;\n};\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n let result = '';\n for (let i = 0, len = tokens.length; i < len; i++) {\n switch (tokens[i].type) {\n case 'text':\n result += tokens[i].content;\n break;\n case 'image':\n result += this.renderInlineAsText(tokens[i].children, options, env);\n break;\n case 'html_inline':\n case 'html_block':\n result += tokens[i].content;\n break;\n case 'softbreak':\n case 'hardbreak':\n result += '\\n';\n break;\n // all other tokens are skipped\n }\n }\n return result;\n};\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n let result = '';\n const rules = this.rules;\n for (let i = 0, len = tokens.length; i < len; i++) {\n const type = tokens[i].type;\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env);\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options, env);\n }\n }\n return result;\n};\n\n/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n\n/**\n * new Ruler()\n **/\nfunction Ruler() {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = [];\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null;\n}\n\n// Helper methods, should not be used directly\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n for (let i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i;\n }\n }\n return -1;\n};\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n const self = this;\n const chains = [''];\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) {\n return;\n }\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName);\n }\n });\n });\n self.__cache__ = {};\n chains.forEach(function (chain) {\n self.__cache__[chain] = [];\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) {\n return;\n }\n if (chain && rule.alt.indexOf(chain) < 0) {\n return;\n }\n self.__cache__[chain].push(rule.fn);\n });\n });\n};\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n const index = this.__find__(name);\n const opt = options || {};\n if (index === -1) {\n throw new Error('Parser rule not found: ' + name);\n }\n this.__rules__[index].fn = fn;\n this.__rules__[index].alt = opt.alt || [];\n this.__cache__ = null;\n};\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n const index = this.__find__(beforeName);\n const opt = options || {};\n if (index === -1) {\n throw new Error('Parser rule not found: ' + beforeName);\n }\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n });\n this.__cache__ = null;\n};\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n const index = this.__find__(afterName);\n const opt = options || {};\n if (index === -1) {\n throw new Error('Parser rule not found: ' + afterName);\n }\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n });\n this.__cache__ = null;\n};\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n const opt = options || {};\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n });\n this.__cache__ = null;\n};\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) {\n list = [list];\n }\n const result = [];\n\n // Search by name and enable\n list.forEach(function (name) {\n const idx = this.__find__(name);\n if (idx < 0) {\n if (ignoreInvalid) {\n return;\n }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = true;\n result.push(name);\n }, this);\n this.__cache__ = null;\n return result;\n};\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) {\n list = [list];\n }\n this.__rules__.forEach(function (rule) {\n rule.enabled = false;\n });\n this.enable(list, ignoreInvalid);\n};\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) {\n list = [list];\n }\n const result = [];\n\n // Search by name and disable\n list.forEach(function (name) {\n const idx = this.__find__(name);\n if (idx < 0) {\n if (ignoreInvalid) {\n return;\n }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = false;\n result.push(name);\n }, this);\n this.__cache__ = null;\n return result;\n};\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__();\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || [];\n};\n\n// Token class\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag;\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null;\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null;\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting;\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0;\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null;\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = '';\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = '';\n\n /**\n * Token#info -> String\n *\n * Additional information:\n *\n * - Info string for \"fence\" tokens\n * - The value \"auto\" for autolink \"link_open\" and \"link_close\" tokens\n * - The string value of the item marker for ordered-list \"list_item_open\" tokens\n **/\n this.info = '';\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null;\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false;\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false;\n}\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n if (!this.attrs) {\n return -1;\n }\n const attrs = this.attrs;\n for (let i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) {\n return i;\n }\n }\n return -1;\n};\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [attrData];\n }\n};\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n const idx = this.attrIndex(name);\n const attrData = [name, value];\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n};\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n const idx = this.attrIndex(name);\n let value = null;\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n return value;\n};\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n const idx = this.attrIndex(name);\n if (idx < 0) {\n this.attrPush([name, value]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n};\n\n// Core state object\n//\n\nfunction StateCore(src, md, env) {\n this.src = src;\n this.env = env;\n this.tokens = [];\n this.inlineMode = false;\n this.md = md; // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token;\n\n// Normalize input string\n\n// https://spec.commonmark.org/0.29/#line-ending\nconst NEWLINES_RE = /\\r\\n?|\\n/g;\nconst NULL_RE = /\\0/g;\nfunction normalize(state) {\n let str;\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n');\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD');\n state.src = str;\n}\n\nfunction block(state) {\n let token;\n if (state.inlineMode) {\n token = new state.Token('inline', '', 0);\n token.content = state.src;\n token.map = [0, 1];\n token.children = [];\n state.tokens.push(token);\n } else {\n state.md.block.parse(state.src, state.md, state.env, state.tokens);\n }\n}\n\nfunction inline(state) {\n const tokens = state.tokens;\n\n // Parse inlines\n for (let i = 0, l = tokens.length; i < l; i++) {\n const tok = tokens[i];\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children);\n }\n }\n}\n\n// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n\nfunction isLinkOpen$1(str) {\n return /^\\s]/i.test(str);\n}\nfunction isLinkClose$1(str) {\n return /^<\\/a\\s*>/i.test(str);\n}\nfunction linkify$1(state) {\n const blockTokens = state.tokens;\n if (!state.md.options.linkify) {\n return;\n }\n for (let j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline' || !state.md.linkify.pretest(blockTokens[j].content)) {\n continue;\n }\n let tokens = blockTokens[j].children;\n let htmlLinkLevel = 0;\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (let i = tokens.length - 1; i >= 0; i--) {\n const currentToken = tokens[i];\n\n // Skip content of markdown links\n if (currentToken.type === 'link_close') {\n i--;\n while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n i--;\n }\n continue;\n }\n\n // Skip content of html tag links\n if (currentToken.type === 'html_inline') {\n if (isLinkOpen$1(currentToken.content) && htmlLinkLevel > 0) {\n htmlLinkLevel--;\n }\n if (isLinkClose$1(currentToken.content)) {\n htmlLinkLevel++;\n }\n }\n if (htmlLinkLevel > 0) {\n continue;\n }\n if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n const text = currentToken.content;\n let links = state.md.linkify.match(text);\n\n // Now split string to nodes\n const nodes = [];\n let level = currentToken.level;\n let lastPos = 0;\n\n // forbid escape sequence at the start of the string,\n // this avoids http\\://example.com/ from being linkified as\n // http://example.com/\n if (links.length > 0 && links[0].index === 0 && i > 0 && tokens[i - 1].type === 'text_special') {\n links = links.slice(1);\n }\n for (let ln = 0; ln < links.length; ln++) {\n const url = links[ln].url;\n const fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) {\n continue;\n }\n let urlText = links[ln].text;\n\n // Linkifier might send raw hostnames like \"example.com\", where url\n // starts with domain name. So we prepend http:// in those cases,\n // and remove it afterwards.\n //\n if (!links[ln].schema) {\n urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '');\n } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '');\n } else {\n urlText = state.md.normalizeLinkText(urlText);\n }\n const pos = links[ln].index;\n if (pos > lastPos) {\n const token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos, pos);\n token.level = level;\n nodes.push(token);\n }\n const token_o = new state.Token('link_open', 'a', 1);\n token_o.attrs = [['href', fullUrl]];\n token_o.level = level++;\n token_o.markup = 'linkify';\n token_o.info = 'auto';\n nodes.push(token_o);\n const token_t = new state.Token('text', '', 0);\n token_t.content = urlText;\n token_t.level = level;\n nodes.push(token_t);\n const token_c = new state.Token('link_close', 'a', -1);\n token_c.level = --level;\n token_c.markup = 'linkify';\n token_c.info = 'auto';\n nodes.push(token_c);\n lastPos = links[ln].lastIndex;\n }\n if (lastPos < text.length) {\n const token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos);\n token.level = level;\n nodes.push(token);\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);\n }\n }\n }\n}\n\n// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → –, --- → —\n//\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - multiplications 2 x 4 -> 2 × 4\n\nconst RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/;\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nconst SCOPED_ABBR_TEST_RE = /\\((c|tm|r)\\)/i;\nconst SCOPED_ABBR_RE = /\\((c|tm|r)\\)/ig;\nconst SCOPED_ABBR = {\n c: '©',\n r: '®',\n tm: '™'\n};\nfunction replaceFn(match, name) {\n return SCOPED_ABBR[name.toLowerCase()];\n}\nfunction replace_scoped(inlineTokens) {\n let inside_autolink = 0;\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i];\n if (token.type === 'text' && !inside_autolink) {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn);\n }\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n}\nfunction replace_rare(inlineTokens) {\n let inside_autolink = 0;\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i];\n if (token.type === 'text' && !inside_autolink) {\n if (RARE_RE.test(token.content)) {\n token.content = token.content.replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..').replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---(?=[^-]|$)/mg, '$1\\u2014')\n // en-dash\n .replace(/(^|\\s)--(?=\\s|$)/mg, '$1\\u2013').replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg, '$1\\u2013');\n }\n }\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n}\nfunction replace(state) {\n let blkIdx;\n if (!state.md.options.typographer) {\n return;\n }\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline') {\n continue;\n }\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children);\n }\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children);\n }\n }\n}\n\n// Convert straight quotation marks to typographic ones\n//\n\nconst QUOTE_TEST_RE = /['\"]/;\nconst QUOTE_RE = /['\"]/g;\nconst APOSTROPHE = '\\u2019'; /* ’ */\n\nfunction replaceAt(str, index, ch) {\n return str.slice(0, index) + ch + str.slice(index + 1);\n}\nfunction process_inlines(tokens, state) {\n let j;\n const stack = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const thisLevel = tokens[i].level;\n for (j = stack.length - 1; j >= 0; j--) {\n if (stack[j].level <= thisLevel) {\n break;\n }\n }\n stack.length = j + 1;\n if (token.type !== 'text') {\n continue;\n }\n let text = token.content;\n let pos = 0;\n let max = text.length;\n\n /* eslint no-labels:0,block-scoped-var:0 */\n OUTER: while (pos < max) {\n QUOTE_RE.lastIndex = pos;\n const t = QUOTE_RE.exec(text);\n if (!t) {\n break;\n }\n let canOpen = true;\n let canClose = true;\n pos = t.index + 1;\n const isSingle = t[0] === \"'\";\n\n // Find previous character,\n // default to space if it's the beginning of the line\n //\n let lastChar = 0x20;\n if (t.index - 1 >= 0) {\n lastChar = text.charCodeAt(t.index - 1);\n } else {\n for (j = i - 1; j >= 0; j--) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // lastChar defaults to 0x20\n if (!tokens[j].content) continue; // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1);\n break;\n }\n }\n\n // Find next character,\n // default to space if it's the end of the line\n //\n let nextChar = 0x20;\n if (pos < max) {\n nextChar = text.charCodeAt(pos);\n } else {\n for (j = i + 1; j < tokens.length; j++) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // nextChar defaults to 0x20\n if (!tokens[j].content) continue; // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n nextChar = tokens[j].content.charCodeAt(0);\n break;\n }\n }\n const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n const isLastWhiteSpace = isWhiteSpace(lastChar);\n const isNextWhiteSpace = isWhiteSpace(nextChar);\n if (isNextWhiteSpace) {\n canOpen = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n canOpen = false;\n }\n }\n if (isLastWhiteSpace) {\n canClose = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n canClose = false;\n }\n }\n if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n // special case: 1\"\" - count first quote as an inch\n canClose = canOpen = false;\n }\n }\n if (canOpen && canClose) {\n // Replace quotes in the middle of punctuation sequence, but not\n // in the middle of the words, i.e.:\n //\n // 1. foo \" bar \" baz - not replaced\n // 2. foo-\"-bar-\"-baz - replaced\n // 3. foo\"bar\"baz - not replaced\n //\n canOpen = isLastPunctChar;\n canClose = isNextPunctChar;\n }\n if (!canOpen && !canClose) {\n // middle of word\n if (isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n continue;\n }\n if (canClose) {\n // this could be a closing quote, rewind the stack to get a match\n for (j = stack.length - 1; j >= 0; j--) {\n let item = stack[j];\n if (stack[j].level < thisLevel) {\n break;\n }\n if (item.single === isSingle && stack[j].level === thisLevel) {\n item = stack[j];\n let openQuote;\n let closeQuote;\n if (isSingle) {\n openQuote = state.md.options.quotes[2];\n closeQuote = state.md.options.quotes[3];\n } else {\n openQuote = state.md.options.quotes[0];\n closeQuote = state.md.options.quotes[1];\n }\n\n // replace token.content *before* tokens[item.token].content,\n // because, if they are pointing at the same token, replaceAt\n // could mess up indices when quote length != 1\n token.content = replaceAt(token.content, t.index, closeQuote);\n tokens[item.token].content = replaceAt(tokens[item.token].content, item.pos, openQuote);\n pos += closeQuote.length - 1;\n if (item.token === i) {\n pos += openQuote.length - 1;\n }\n text = token.content;\n max = text.length;\n stack.length = j;\n continue OUTER;\n }\n }\n }\n if (canOpen) {\n stack.push({\n token: i,\n pos: t.index,\n single: isSingle,\n level: thisLevel\n });\n } else if (canClose && isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n }\n }\n}\nfunction smartquotes(state) {\n /* eslint max-depth:0 */\n if (!state.md.options.typographer) {\n return;\n }\n for (let blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline' || !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n continue;\n }\n process_inlines(state.tokens[blkIdx].children, state);\n }\n}\n\n// Join raw text tokens with the rest of the text\n//\n// This is set as a separate rule to provide an opportunity for plugins\n// to run text replacements after text join, but before escape join.\n//\n// For example, `\\:)` shouldn't be replaced with an emoji.\n//\n\nfunction text_join(state) {\n let curr, last;\n const blockTokens = state.tokens;\n const l = blockTokens.length;\n for (let j = 0; j < l; j++) {\n if (blockTokens[j].type !== 'inline') continue;\n const tokens = blockTokens[j].children;\n const max = tokens.length;\n for (curr = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text_special') {\n tokens[curr].type = 'text';\n }\n }\n for (curr = last = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text' && curr + 1 < max && tokens[curr + 1].type === 'text') {\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) {\n tokens[last] = tokens[curr];\n }\n last++;\n }\n }\n if (curr !== last) {\n tokens.length = last;\n }\n }\n}\n\n/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n\nconst _rules$2 = [['normalize', normalize], ['block', block], ['inline', inline], ['linkify', linkify$1], ['replacements', replace], ['smartquotes', smartquotes],\n// `text_join` finds `text_special` tokens (for escape sequences)\n// and joins them with the rest of the text\n['text_join', text_join]];\n\n/**\n * new Core()\n **/\nfunction Core() {\n /**\n * Core#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of core rules.\n **/\n this.ruler = new Ruler();\n for (let i = 0; i < _rules$2.length; i++) {\n this.ruler.push(_rules$2[i][0], _rules$2[i][1]);\n }\n}\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n const rules = this.ruler.getRules('');\n for (let i = 0, l = rules.length; i < l; i++) {\n rules[i](state);\n }\n};\nCore.prototype.State = StateCore;\n\n// Parser state class\n\nfunction StateBlock(src, md, env, tokens) {\n this.src = src;\n\n // link to parser instance\n this.md = md;\n this.env = env;\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens;\n this.bMarks = []; // line begin offsets for fast jumps\n this.eMarks = []; // line end offsets for fast jumps\n this.tShift = []; // offsets of the first non-space characters (tabs not expanded)\n this.sCount = []; // indents for each line (tabs expanded)\n\n // An amount of virtual spaces (tabs expanded) between beginning\n // of each line (bMarks) and real beginning of that line.\n //\n // It exists only as a hack because blockquotes override bMarks\n // losing information in the process.\n //\n // It's used only when expanding tabs, you can think about it as\n // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n // means first tab should be expanded to 4-21%4 === 3 spaces.\n //\n this.bsCount = [];\n\n // block parser variables\n\n // required block content indent (for example, if we are\n // inside a list, it would be positioned after list marker)\n this.blkIndent = 0;\n this.line = 0; // line index in src\n this.lineMax = 0; // lines count\n this.tight = false; // loose/tight mode for lists\n this.ddIndent = -1; // indent of the current dd block (-1 if there isn't any)\n this.listIndent = -1; // indent of the current list block (-1 if there isn't any)\n\n // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n // used in lists to determine if they interrupt a paragraph\n this.parentType = 'root';\n this.level = 0;\n\n // Create caches\n // Generate markers.\n const s = this.src;\n for (let start = 0, pos = 0, indent = 0, offset = 0, len = s.length, indent_found = false; pos < len; pos++) {\n const ch = s.charCodeAt(pos);\n if (!indent_found) {\n if (isSpace(ch)) {\n indent++;\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n continue;\n } else {\n indent_found = true;\n }\n }\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) {\n pos++;\n }\n this.bMarks.push(start);\n this.eMarks.push(pos);\n this.tShift.push(indent);\n this.sCount.push(offset);\n this.bsCount.push(0);\n indent_found = false;\n indent = 0;\n offset = 0;\n start = pos + 1;\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length);\n this.eMarks.push(s.length);\n this.tShift.push(0);\n this.sCount.push(0);\n this.bsCount.push(0);\n this.lineMax = this.bMarks.length - 1; // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n const token = new Token(type, tag, nesting);\n token.block = true;\n if (nesting < 0) this.level--; // closing tag\n token.level = this.level;\n if (nesting > 0) this.level++; // opening tag\n\n this.tokens.push(token);\n return token;\n};\nStateBlock.prototype.isEmpty = function isEmpty(line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line];\n};\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines(from) {\n for (let max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break;\n }\n }\n return from;\n};\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces(pos) {\n for (let max = this.src.length; pos < max; pos++) {\n const ch = this.src.charCodeAt(pos);\n if (!isSpace(ch)) {\n break;\n }\n }\n return pos;\n};\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack(pos, min) {\n if (pos <= min) {\n return pos;\n }\n while (pos > min) {\n if (!isSpace(this.src.charCodeAt(--pos))) {\n return pos + 1;\n }\n }\n return pos;\n};\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars(pos, code) {\n for (let max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) {\n break;\n }\n }\n return pos;\n};\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack(pos, code, min) {\n if (pos <= min) {\n return pos;\n }\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) {\n return pos + 1;\n }\n }\n return pos;\n};\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines(begin, end, indent, keepLastLF) {\n if (begin >= end) {\n return '';\n }\n const queue = new Array(end - begin);\n for (let i = 0, line = begin; line < end; line++, i++) {\n let lineIndent = 0;\n const lineStart = this.bMarks[line];\n let first = lineStart;\n let last;\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1;\n } else {\n last = this.eMarks[line];\n }\n while (first < last && lineIndent < indent) {\n const ch = this.src.charCodeAt(first);\n if (isSpace(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4;\n } else {\n lineIndent++;\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++;\n } else {\n break;\n }\n first++;\n }\n if (lineIndent > indent) {\n // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n // with indent=2 becomes ' \\tfoobar'\n queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last);\n } else {\n queue[i] = this.src.slice(first, last);\n }\n }\n return queue.join('');\n};\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token;\n\n// GFM table, https://github.github.com/gfm/#tables-extension-\n\n\n// Limit the amount of empty autocompleted cells in a table,\n// see https://github.com/markdown-it/markdown-it/issues/1000,\n//\n// Both pulldown-cmark and commonmark-hs limit the number of cells this way to ~200k.\n// We set it to 65k, which can expand user input by a factor of x370\n// (256x256 square is 1.8kB expanded into 650kB).\nconst MAX_AUTOCOMPLETED_CELLS = 0x10000;\nfunction getLine(state, line) {\n const pos = state.bMarks[line] + state.tShift[line];\n const max = state.eMarks[line];\n return state.src.slice(pos, max);\n}\nfunction escapedSplit(str) {\n const result = [];\n const max = str.length;\n let pos = 0;\n let ch = str.charCodeAt(pos);\n let isEscaped = false;\n let lastPos = 0;\n let current = '';\n while (pos < max) {\n if (ch === 0x7c /* | */) {\n if (!isEscaped) {\n // pipe separating cells, '|'\n result.push(current + str.substring(lastPos, pos));\n current = '';\n lastPos = pos + 1;\n } else {\n // escaped pipe, '\\|'\n current += str.substring(lastPos, pos - 1);\n lastPos = pos;\n }\n }\n isEscaped = ch === 0x5c /* \\ */;\n pos++;\n ch = str.charCodeAt(pos);\n }\n result.push(current + str.substring(lastPos));\n return result;\n}\nfunction table(state, startLine, endLine, silent) {\n // should have at least two lines\n if (startLine + 2 > endLine) {\n return false;\n }\n let nextLine = startLine + 1;\n if (state.sCount[nextLine] < state.blkIndent) {\n return false;\n }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n return false;\n }\n\n // first character of the second line should be '|', '-', ':',\n // and no other characters are allowed but spaces;\n // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n let pos = state.bMarks[nextLine] + state.tShift[nextLine];\n if (pos >= state.eMarks[nextLine]) {\n return false;\n }\n const firstCh = state.src.charCodeAt(pos++);\n if (firstCh !== 0x7C /* | */ && firstCh !== 0x2D /* - */ && firstCh !== 0x3A /* : */) {\n return false;\n }\n if (pos >= state.eMarks[nextLine]) {\n return false;\n }\n const secondCh = state.src.charCodeAt(pos++);\n if (secondCh !== 0x7C /* | */ && secondCh !== 0x2D /* - */ && secondCh !== 0x3A /* : */ && !isSpace(secondCh)) {\n return false;\n }\n\n // if first character is '-', then second character must not be a space\n // (due to parsing ambiguity with list)\n if (firstCh === 0x2D /* - */ && isSpace(secondCh)) {\n return false;\n }\n while (pos < state.eMarks[nextLine]) {\n const ch = state.src.charCodeAt(pos);\n if (ch !== 0x7C /* | */ && ch !== 0x2D /* - */ && ch !== 0x3A /* : */ && !isSpace(ch)) {\n return false;\n }\n pos++;\n }\n let lineText = getLine(state, startLine + 1);\n let columns = lineText.split('|');\n const aligns = [];\n for (let i = 0; i < columns.length; i++) {\n const t = columns[i].trim();\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue;\n } else {\n return false;\n }\n }\n if (!/^:?-+:?$/.test(t)) {\n return false;\n }\n if (t.charCodeAt(t.length - 1) === 0x3A /* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A /* : */ ? 'center' : 'right');\n } else if (t.charCodeAt(0) === 0x3A /* : */) {\n aligns.push('left');\n } else {\n aligns.push('');\n }\n }\n lineText = getLine(state, startLine).trim();\n if (lineText.indexOf('|') === -1) {\n return false;\n }\n if (state.sCount[startLine] - state.blkIndent >= 4) {\n return false;\n }\n columns = escapedSplit(lineText);\n if (columns.length && columns[0] === '') columns.shift();\n if (columns.length && columns[columns.length - 1] === '') columns.pop();\n\n // header row will define an amount of columns in the entire table,\n // and align row should be exactly the same (the rest of the rows can differ)\n const columnCount = columns.length;\n if (columnCount === 0 || columnCount !== aligns.length) {\n return false;\n }\n if (silent) {\n return true;\n }\n const oldParentType = state.parentType;\n state.parentType = 'table';\n\n // use 'blockquote' lists for termination because it's\n // the most similar to tables\n const terminatorRules = state.md.block.ruler.getRules('blockquote');\n const token_to = state.push('table_open', 'table', 1);\n const tableLines = [startLine, 0];\n token_to.map = tableLines;\n const token_tho = state.push('thead_open', 'thead', 1);\n token_tho.map = [startLine, startLine + 1];\n const token_htro = state.push('tr_open', 'tr', 1);\n token_htro.map = [startLine, startLine + 1];\n for (let i = 0; i < columns.length; i++) {\n const token_ho = state.push('th_open', 'th', 1);\n if (aligns[i]) {\n token_ho.attrs = [['style', 'text-align:' + aligns[i]]];\n }\n const token_il = state.push('inline', '', 0);\n token_il.content = columns[i].trim();\n token_il.children = [];\n state.push('th_close', 'th', -1);\n }\n state.push('tr_close', 'tr', -1);\n state.push('thead_close', 'thead', -1);\n let tbodyLines;\n let autocompletedCells = 0;\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) {\n break;\n }\n let terminate = false;\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) {\n break;\n }\n lineText = getLine(state, nextLine).trim();\n if (!lineText) {\n break;\n }\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n break;\n }\n columns = escapedSplit(lineText);\n if (columns.length && columns[0] === '') columns.shift();\n if (columns.length && columns[columns.length - 1] === '') columns.pop();\n\n // note: autocomplete count can be negative if user specifies more columns than header,\n // but that does not affect intended use (which is limiting expansion)\n autocompletedCells += columnCount - columns.length;\n if (autocompletedCells > MAX_AUTOCOMPLETED_CELLS) {\n break;\n }\n if (nextLine === startLine + 2) {\n const token_tbo = state.push('tbody_open', 'tbody', 1);\n token_tbo.map = tbodyLines = [startLine + 2, 0];\n }\n const token_tro = state.push('tr_open', 'tr', 1);\n token_tro.map = [nextLine, nextLine + 1];\n for (let i = 0; i < columnCount; i++) {\n const token_tdo = state.push('td_open', 'td', 1);\n if (aligns[i]) {\n token_tdo.attrs = [['style', 'text-align:' + aligns[i]]];\n }\n const token_il = state.push('inline', '', 0);\n token_il.content = columns[i] ? columns[i].trim() : '';\n token_il.children = [];\n state.push('td_close', 'td', -1);\n }\n state.push('tr_close', 'tr', -1);\n }\n if (tbodyLines) {\n state.push('tbody_close', 'tbody', -1);\n tbodyLines[1] = nextLine;\n }\n state.push('table_close', 'table', -1);\n tableLines[1] = nextLine;\n state.parentType = oldParentType;\n state.line = nextLine;\n return true;\n}\n\n// Code block (4 spaces padded)\n\nfunction code(state, startLine, endLine /*, silent */) {\n if (state.sCount[startLine] - state.blkIndent < 4) {\n return false;\n }\n let nextLine = startLine + 1;\n let last = nextLine;\n while (nextLine < endLine) {\n if (state.isEmpty(nextLine)) {\n nextLine++;\n continue;\n }\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n nextLine++;\n last = nextLine;\n continue;\n }\n break;\n }\n state.line = last;\n const token = state.push('code_block', 'code', 0);\n token.content = state.getLines(startLine, last, 4 + state.blkIndent, false) + '\\n';\n token.map = [startLine, state.line];\n return true;\n}\n\n// fences (``` lang, ~~~ lang)\n\nfunction fence(state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine];\n let max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) {\n return false;\n }\n if (pos + 3 > max) {\n return false;\n }\n const marker = state.src.charCodeAt(pos);\n if (marker !== 0x7E /* ~ */ && marker !== 0x60 /* ` */) {\n return false;\n }\n\n // scan marker length\n let mem = pos;\n pos = state.skipChars(pos, marker);\n let len = pos - mem;\n if (len < 3) {\n return false;\n }\n const markup = state.src.slice(mem, pos);\n const params = state.src.slice(pos, max);\n if (marker === 0x60 /* ` */) {\n if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n return false;\n }\n }\n\n // Since start is found, we can report success here in validation mode\n if (silent) {\n return true;\n }\n\n // search end of block\n let nextLine = startLine;\n let haveEndMarker = false;\n for (;;) {\n nextLine++;\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break;\n }\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break;\n }\n if (state.src.charCodeAt(pos) !== marker) {\n continue;\n }\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue;\n }\n pos = state.skipChars(pos, marker);\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) {\n continue;\n }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos);\n if (pos < max) {\n continue;\n }\n haveEndMarker = true;\n // found!\n break;\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine];\n state.line = nextLine + (haveEndMarker ? 1 : 0);\n const token = state.push('fence', 'code', 0);\n token.info = params;\n token.content = state.getLines(startLine + 1, nextLine, len, true);\n token.markup = markup;\n token.map = [startLine, state.line];\n return true;\n}\n\n// Block quotes\n\nfunction blockquote(state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine];\n let max = state.eMarks[startLine];\n const oldLineMax = state.lineMax;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) {\n return false;\n }\n\n // check the block quote marker\n if (state.src.charCodeAt(pos) !== 0x3E /* > */) {\n return false;\n }\n\n // we know that it's going to be a valid blockquote,\n // so no point trying to find the end of it in silent mode\n if (silent) {\n return true;\n }\n const oldBMarks = [];\n const oldBSCount = [];\n const oldSCount = [];\n const oldTShift = [];\n const terminatorRules = state.md.block.ruler.getRules('blockquote');\n const oldParentType = state.parentType;\n state.parentType = 'blockquote';\n let lastLineEmpty = false;\n let nextLine;\n\n // Search the end of the block\n //\n // Block ends with either:\n // 1. an empty line outside:\n // ```\n // > test\n //\n // ```\n // 2. an empty line inside:\n // ```\n // >\n // test\n // ```\n // 3. another tag:\n // ```\n // > test\n // - - -\n // ```\n for (nextLine = startLine; nextLine < endLine; nextLine++) {\n // check if it's outdented, i.e. it's inside list item and indented\n // less than said list item:\n //\n // ```\n // 1. anything\n // > current blockquote\n // 2. checking this line\n // ```\n const isOutdented = state.sCount[nextLine] < state.blkIndent;\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n if (pos >= max) {\n // Case 1: line is not inside the blockquote, and this line is empty.\n break;\n }\n if (state.src.charCodeAt(pos++) === 0x3E /* > */ && !isOutdented) {\n // This line is inside the blockquote.\n\n // set offset past spaces and \">\"\n let initial = state.sCount[nextLine] + 1;\n let spaceAfterMarker;\n let adjustTab;\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++;\n initial++;\n adjustTab = false;\n spaceAfterMarker = true;\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true;\n if ((state.bsCount[nextLine] + initial) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++;\n initial++;\n adjustTab = false;\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true;\n }\n } else {\n spaceAfterMarker = false;\n }\n let offset = initial;\n oldBMarks.push(state.bMarks[nextLine]);\n state.bMarks[nextLine] = pos;\n while (pos < max) {\n const ch = state.src.charCodeAt(pos);\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n pos++;\n }\n lastLineEmpty = pos >= max;\n oldBSCount.push(state.bsCount[nextLine]);\n state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0);\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] = offset - initial;\n oldTShift.push(state.tShift[nextLine]);\n state.tShift[nextLine] = pos - state.bMarks[nextLine];\n continue;\n }\n\n // Case 2: line is not inside the blockquote, and the last line was empty.\n if (lastLineEmpty) {\n break;\n }\n\n // Case 3: another tag found.\n let terminate = false;\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) {\n // Quirk to enforce \"hard termination mode\" for paragraphs;\n // normally if you call `tokenize(state, startLine, nextLine)`,\n // paragraphs will look below nextLine for paragraph continuation,\n // but if blockquote is terminated by another tag, they shouldn't\n state.lineMax = nextLine;\n if (state.blkIndent !== 0) {\n // state.blkIndent was non-zero, we now set it to zero,\n // so we need to re-calculate all offsets to appear as\n // if indent wasn't changed\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] -= state.blkIndent;\n }\n break;\n }\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n\n // A negative indentation means that this is a paragraph continuation\n //\n state.sCount[nextLine] = -1;\n }\n const oldIndent = state.blkIndent;\n state.blkIndent = 0;\n const token_o = state.push('blockquote_open', 'blockquote', 1);\n token_o.markup = '>';\n const lines = [startLine, 0];\n token_o.map = lines;\n state.md.block.tokenize(state, startLine, nextLine);\n const token_c = state.push('blockquote_close', 'blockquote', -1);\n token_c.markup = '>';\n state.lineMax = oldLineMax;\n state.parentType = oldParentType;\n lines[1] = state.line;\n\n // Restore original tShift; this might not be necessary since the parser\n // has already been here, but just to make sure we can do that.\n for (let i = 0; i < oldTShift.length; i++) {\n state.bMarks[i + startLine] = oldBMarks[i];\n state.tShift[i + startLine] = oldTShift[i];\n state.sCount[i + startLine] = oldSCount[i];\n state.bsCount[i + startLine] = oldBSCount[i];\n }\n state.blkIndent = oldIndent;\n return true;\n}\n\n// Horizontal rule\n\nfunction hr(state, startLine, endLine, silent) {\n const max = state.eMarks[startLine];\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) {\n return false;\n }\n let pos = state.bMarks[startLine] + state.tShift[startLine];\n const marker = state.src.charCodeAt(pos++);\n\n // Check hr marker\n if (marker !== 0x2A /* * */ && marker !== 0x2D /* - */ && marker !== 0x5F /* _ */) {\n return false;\n }\n\n // markers can be mixed with spaces, but there should be at least 3 of them\n\n let cnt = 1;\n while (pos < max) {\n const ch = state.src.charCodeAt(pos++);\n if (ch !== marker && !isSpace(ch)) {\n return false;\n }\n if (ch === marker) {\n cnt++;\n }\n }\n if (cnt < 3) {\n return false;\n }\n if (silent) {\n return true;\n }\n state.line = startLine + 1;\n const token = state.push('hr', 'hr', 0);\n token.map = [startLine, state.line];\n token.markup = Array(cnt + 1).join(String.fromCharCode(marker));\n return true;\n}\n\n// Lists\n\n\n// Search `[-+*][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipBulletListMarker(state, startLine) {\n const max = state.eMarks[startLine];\n let pos = state.bMarks[startLine] + state.tShift[startLine];\n const marker = state.src.charCodeAt(pos++);\n // Check bullet\n if (marker !== 0x2A /* * */ && marker !== 0x2D /* - */ && marker !== 0x2B /* + */) {\n return -1;\n }\n if (pos < max) {\n const ch = state.src.charCodeAt(pos);\n if (!isSpace(ch)) {\n // \" -test \" - is not a list item\n return -1;\n }\n }\n return pos;\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker(state, startLine) {\n const start = state.bMarks[startLine] + state.tShift[startLine];\n const max = state.eMarks[startLine];\n let pos = start;\n\n // List marker should have at least 2 chars (digit + dot)\n if (pos + 1 >= max) {\n return -1;\n }\n let ch = state.src.charCodeAt(pos++);\n if (ch < 0x30 /* 0 */ || ch > 0x39 /* 9 */) {\n return -1;\n }\n for (;;) {\n // EOL -> fail\n if (pos >= max) {\n return -1;\n }\n ch = state.src.charCodeAt(pos++);\n if (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) {\n // List marker should have no more than 9 digits\n // (prevents integer overflow in browsers)\n if (pos - start >= 10) {\n return -1;\n }\n continue;\n }\n\n // found valid marker\n if (ch === 0x29 /* ) */ || ch === 0x2e /* . */) {\n break;\n }\n return -1;\n }\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n if (!isSpace(ch)) {\n // \" 1.test \" - is not a list item\n return -1;\n }\n }\n return pos;\n}\nfunction markTightParagraphs(state, idx) {\n const level = state.level + 2;\n for (let i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true;\n state.tokens[i].hidden = true;\n i += 2;\n }\n }\n}\nfunction list(state, startLine, endLine, silent) {\n let max, pos, start, token;\n let nextLine = startLine;\n let tight = true;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n return false;\n }\n\n // Special case:\n // - item 1\n // - item 2\n // - item 3\n // - item 4\n // - this one is a paragraph continuation\n if (state.listIndent >= 0 && state.sCount[nextLine] - state.listIndent >= 4 && state.sCount[nextLine] < state.blkIndent) {\n return false;\n }\n let isTerminatingParagraph = false;\n\n // limit conditions when list can interrupt\n // a paragraph (validation mode only)\n if (silent && state.parentType === 'paragraph') {\n // Next list item should still terminate previous list item;\n //\n // This code can fail if plugins use blkIndent as well as lists,\n // but I hope the spec gets fixed long before that happens.\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n isTerminatingParagraph = true;\n }\n }\n\n // Detect list type and position after marker\n let isOrdered;\n let markerValue;\n let posAfterMarker;\n if ((posAfterMarker = skipOrderedListMarker(state, nextLine)) >= 0) {\n isOrdered = true;\n start = state.bMarks[nextLine] + state.tShift[nextLine];\n markerValue = Number(state.src.slice(start, posAfterMarker - 1));\n\n // If we're starting a new ordered list right after\n // a paragraph, it should start with 1.\n if (isTerminatingParagraph && markerValue !== 1) return false;\n } else if ((posAfterMarker = skipBulletListMarker(state, nextLine)) >= 0) {\n isOrdered = false;\n } else {\n return false;\n }\n\n // If we're starting a new unordered list right after\n // a paragraph, first line should not be empty.\n if (isTerminatingParagraph) {\n if (state.skipSpaces(posAfterMarker) >= state.eMarks[nextLine]) return false;\n }\n\n // For validation mode we can terminate immediately\n if (silent) {\n return true;\n }\n\n // We should terminate list on style change. Remember first one to compare.\n const markerCharCode = state.src.charCodeAt(posAfterMarker - 1);\n\n // Start list\n const listTokIdx = state.tokens.length;\n if (isOrdered) {\n token = state.push('ordered_list_open', 'ol', 1);\n if (markerValue !== 1) {\n token.attrs = [['start', markerValue]];\n }\n } else {\n token = state.push('bullet_list_open', 'ul', 1);\n }\n const listLines = [nextLine, 0];\n token.map = listLines;\n token.markup = String.fromCharCode(markerCharCode);\n\n //\n // Iterate list items\n //\n\n let prevEmptyEnd = false;\n const terminatorRules = state.md.block.ruler.getRules('list');\n const oldParentType = state.parentType;\n state.parentType = 'list';\n while (nextLine < endLine) {\n pos = posAfterMarker;\n max = state.eMarks[nextLine];\n const initial = state.sCount[nextLine] + posAfterMarker - (state.bMarks[nextLine] + state.tShift[nextLine]);\n let offset = initial;\n while (pos < max) {\n const ch = state.src.charCodeAt(pos);\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine]) % 4;\n } else if (ch === 0x20) {\n offset++;\n } else {\n break;\n }\n pos++;\n }\n const contentStart = pos;\n let indentAfterMarker;\n if (contentStart >= max) {\n // trimming space in \"- \\n 3\" case, indent is 1 here\n indentAfterMarker = 1;\n } else {\n indentAfterMarker = offset - initial;\n }\n\n // If we have more than 4 spaces, the indent is 1\n // (the rest is just indented code block)\n if (indentAfterMarker > 4) {\n indentAfterMarker = 1;\n }\n\n // \" - test\"\n // ^^^^^ - calculating total length of this thing\n const indent = initial + indentAfterMarker;\n\n // Run subparser & write tokens\n token = state.push('list_item_open', 'li', 1);\n token.markup = String.fromCharCode(markerCharCode);\n const itemLines = [nextLine, 0];\n token.map = itemLines;\n if (isOrdered) {\n token.info = state.src.slice(start, posAfterMarker - 1);\n }\n\n // change current state, then restore it after parser subcall\n const oldTight = state.tight;\n const oldTShift = state.tShift[nextLine];\n const oldSCount = state.sCount[nextLine];\n\n // - example list\n // ^ listIndent position will be here\n // ^ blkIndent position will be here\n //\n const oldListIndent = state.listIndent;\n state.listIndent = state.blkIndent;\n state.blkIndent = indent;\n state.tight = true;\n state.tShift[nextLine] = contentStart - state.bMarks[nextLine];\n state.sCount[nextLine] = offset;\n if (contentStart >= max && state.isEmpty(nextLine + 1)) {\n // workaround for this case\n // (list item is empty, list terminates before \"foo\"):\n // ~~~~~~~~\n // -\n //\n // foo\n // ~~~~~~~~\n state.line = Math.min(state.line + 2, endLine);\n } else {\n state.md.block.tokenize(state, nextLine, endLine, true);\n }\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false;\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = state.line - nextLine > 1 && state.isEmpty(state.line - 1);\n state.blkIndent = state.listIndent;\n state.listIndent = oldListIndent;\n state.tShift[nextLine] = oldTShift;\n state.sCount[nextLine] = oldSCount;\n state.tight = oldTight;\n token = state.push('list_item_close', 'li', -1);\n token.markup = String.fromCharCode(markerCharCode);\n nextLine = state.line;\n itemLines[1] = nextLine;\n if (nextLine >= endLine) {\n break;\n }\n\n //\n // Try to check if list is terminated or continued.\n //\n if (state.sCount[nextLine] < state.blkIndent) {\n break;\n }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n break;\n }\n\n // fail if terminating block found\n let terminate = false;\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) {\n break;\n }\n\n // fail if list has another type\n if (isOrdered) {\n posAfterMarker = skipOrderedListMarker(state, nextLine);\n if (posAfterMarker < 0) {\n break;\n }\n start = state.bMarks[nextLine] + state.tShift[nextLine];\n } else {\n posAfterMarker = skipBulletListMarker(state, nextLine);\n if (posAfterMarker < 0) {\n break;\n }\n }\n if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) {\n break;\n }\n }\n\n // Finalize list\n if (isOrdered) {\n token = state.push('ordered_list_close', 'ol', -1);\n } else {\n token = state.push('bullet_list_close', 'ul', -1);\n }\n token.markup = String.fromCharCode(markerCharCode);\n listLines[1] = nextLine;\n state.line = nextLine;\n state.parentType = oldParentType;\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx);\n }\n return true;\n}\n\nfunction reference(state, startLine, _endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine];\n let max = state.eMarks[startLine];\n let nextLine = startLine + 1;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) {\n return false;\n }\n if (state.src.charCodeAt(pos) !== 0x5B /* [ */) {\n return false;\n }\n function getNextLine(nextLine) {\n const endLine = state.lineMax;\n if (nextLine >= endLine || state.isEmpty(nextLine)) {\n // empty line or end of input\n return null;\n }\n let isContinuation = false;\n\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) {\n isContinuation = true;\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) {\n isContinuation = true;\n }\n if (!isContinuation) {\n const terminatorRules = state.md.block.ruler.getRules('reference');\n const oldParentType = state.parentType;\n state.parentType = 'reference';\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false;\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n state.parentType = oldParentType;\n if (terminate) {\n // terminated by another block\n return null;\n }\n }\n const pos = state.bMarks[nextLine] + state.tShift[nextLine];\n const max = state.eMarks[nextLine];\n\n // max + 1 explicitly includes the newline\n return state.src.slice(pos, max + 1);\n }\n let str = state.src.slice(pos, max + 1);\n max = str.length;\n let labelEnd = -1;\n for (pos = 1; pos < max; pos++) {\n const ch = str.charCodeAt(pos);\n if (ch === 0x5B /* [ */) {\n return false;\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos;\n break;\n } else if (ch === 0x0A /* \\n */) {\n const lineContent = getNextLine(nextLine);\n if (lineContent !== null) {\n str += lineContent;\n max = str.length;\n nextLine++;\n }\n } else if (ch === 0x5C /* \\ */) {\n pos++;\n if (pos < max && str.charCodeAt(pos) === 0x0A) {\n const lineContent = getNextLine(nextLine);\n if (lineContent !== null) {\n str += lineContent;\n max = str.length;\n nextLine++;\n }\n }\n }\n }\n if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A /* : */) {\n return false;\n }\n\n // [label]: destination 'title'\n // ^^^ skip optional whitespace here\n for (pos = labelEnd + 2; pos < max; pos++) {\n const ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n const lineContent = getNextLine(nextLine);\n if (lineContent !== null) {\n str += lineContent;\n max = str.length;\n nextLine++;\n }\n } else if (isSpace(ch)) ; else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^^^^^ parse this\n const destRes = state.md.helpers.parseLinkDestination(str, pos, max);\n if (!destRes.ok) {\n return false;\n }\n const href = state.md.normalizeLink(destRes.str);\n if (!state.md.validateLink(href)) {\n return false;\n }\n pos = destRes.pos;\n\n // save cursor state, we could require to rollback later\n const destEndPos = pos;\n const destEndLineNo = nextLine;\n\n // [label]: destination 'title'\n // ^^^ skipping those spaces\n const start = pos;\n for (; pos < max; pos++) {\n const ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n const lineContent = getNextLine(nextLine);\n if (lineContent !== null) {\n str += lineContent;\n max = str.length;\n nextLine++;\n }\n } else if (isSpace(ch)) ; else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^ parse this\n let titleRes = state.md.helpers.parseLinkTitle(str, pos, max);\n while (titleRes.can_continue) {\n const lineContent = getNextLine(nextLine);\n if (lineContent === null) break;\n str += lineContent;\n pos = max;\n max = str.length;\n nextLine++;\n titleRes = state.md.helpers.parseLinkTitle(str, pos, max, titleRes);\n }\n let title;\n if (pos < max && start !== pos && titleRes.ok) {\n title = titleRes.str;\n pos = titleRes.pos;\n } else {\n title = '';\n pos = destEndPos;\n nextLine = destEndLineNo;\n }\n\n // skip trailing spaces until the rest of the line\n while (pos < max) {\n const ch = str.charCodeAt(pos);\n if (!isSpace(ch)) {\n break;\n }\n pos++;\n }\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n if (title) {\n // garbage at the end of the line after title,\n // but it could still be a valid reference if we roll back\n title = '';\n pos = destEndPos;\n nextLine = destEndLineNo;\n while (pos < max) {\n const ch = str.charCodeAt(pos);\n if (!isSpace(ch)) {\n break;\n }\n pos++;\n }\n }\n }\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n // garbage at the end of the line\n return false;\n }\n const label = normalizeReference(str.slice(1, labelEnd));\n if (!label) {\n // CommonMark 0.20 disallows empty labels\n return false;\n }\n\n // Reference can not terminate anything. This check is for safety only.\n /* istanbul ignore if */\n if (silent) {\n return true;\n }\n if (typeof state.env.references === 'undefined') {\n state.env.references = {};\n }\n if (typeof state.env.references[label] === 'undefined') {\n state.env.references[label] = {\n title,\n href\n };\n }\n state.line = nextLine;\n return true;\n}\n\n// List of valid html blocks names, according to commonmark spec\n// https://spec.commonmark.org/0.30/#html-blocks\n\nvar block_names = ['address', 'article', 'aside', 'base', 'basefont', 'blockquote', 'body', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dialog', 'dir', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hr', 'html', 'iframe', 'legend', 'li', 'link', 'main', 'menu', 'menuitem', 'nav', 'noframes', 'ol', 'optgroup', 'option', 'p', 'param', 'search', 'section', 'summary', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul'];\n\n// Regexps to match html elements\n\nconst attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nconst unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nconst single_quoted = \"'[^']*'\";\nconst double_quoted = '\"[^\"]*\"';\nconst attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\nconst attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\nconst open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\nconst close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nconst comment = '';\nconst processing = '<[?][\\\\s\\\\S]*?[?]>';\nconst declaration = ']*>';\nconst cdata = '';\nconst HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment + '|' + processing + '|' + declaration + '|' + cdata + ')');\nconst HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\n// HTML block\n\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nconst HTML_SEQUENCES = [[/^<(script|pre|style|textarea)(?=(\\s|>|$))/i, /<\\/(script|pre|style|textarea)>/i, true], [/^/, true], [/^<\\?/, /\\?>/, true], [/^/, true], [/^/, true], [new RegExp('^|$))', 'i'), /^$/, true], [new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false]];\nfunction html_block(state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine];\n let max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) {\n return false;\n }\n if (!state.md.options.html) {\n return false;\n }\n if (state.src.charCodeAt(pos) !== 0x3C /* < */) {\n return false;\n }\n let lineText = state.src.slice(pos, max);\n let i = 0;\n for (; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) {\n break;\n }\n }\n if (i === HTML_SEQUENCES.length) {\n return false;\n }\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2];\n }\n let nextLine = startLine + 1;\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) {\n break;\n }\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n lineText = state.src.slice(pos, max);\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) {\n nextLine++;\n }\n break;\n }\n }\n }\n state.line = nextLine;\n const token = state.push('html_block', '', 0);\n token.map = [startLine, nextLine];\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true);\n return true;\n}\n\n// heading (#, ##, ...)\n\nfunction heading(state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine];\n let max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) {\n return false;\n }\n let ch = state.src.charCodeAt(pos);\n if (ch !== 0x23 /* # */ || pos >= max) {\n return false;\n }\n\n // count heading level\n let level = 1;\n ch = state.src.charCodeAt(++pos);\n while (ch === 0x23 /* # */ && pos < max && level <= 6) {\n level++;\n ch = state.src.charCodeAt(++pos);\n }\n if (level > 6 || pos < max && !isSpace(ch)) {\n return false;\n }\n if (silent) {\n return true;\n }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos);\n const tmp = state.skipCharsBack(max, 0x23, pos); // #\n if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n max = tmp;\n }\n state.line = startLine + 1;\n const token_o = state.push('heading_open', 'h' + String(level), 1);\n token_o.markup = '########'.slice(0, level);\n token_o.map = [startLine, state.line];\n const token_i = state.push('inline', '', 0);\n token_i.content = state.src.slice(pos, max).trim();\n token_i.map = [startLine, state.line];\n token_i.children = [];\n const token_c = state.push('heading_close', 'h' + String(level), -1);\n token_c.markup = '########'.slice(0, level);\n return true;\n}\n\n// lheading (---, ===)\n\nfunction lheading(state, startLine, endLine /*, silent */) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) {\n return false;\n }\n const oldParentType = state.parentType;\n state.parentType = 'paragraph'; // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n let level = 0;\n let marker;\n let nextLine = startLine + 1;\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) {\n continue;\n }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n let pos = state.bMarks[nextLine] + state.tShift[nextLine];\n const max = state.eMarks[nextLine];\n if (pos < max) {\n marker = state.src.charCodeAt(pos);\n if (marker === 0x2D /* - */ || marker === 0x3D /* = */) {\n pos = state.skipChars(pos, marker);\n pos = state.skipSpaces(pos);\n if (pos >= max) {\n level = marker === 0x3D /* = */ ? 1 : 2;\n break;\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) {\n continue;\n }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false;\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) {\n break;\n }\n }\n if (!level) {\n // Didn't find valid underline\n return false;\n }\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n state.line = nextLine + 1;\n const token_o = state.push('heading_open', 'h' + String(level), 1);\n token_o.markup = String.fromCharCode(marker);\n token_o.map = [startLine, state.line];\n const token_i = state.push('inline', '', 0);\n token_i.content = content;\n token_i.map = [startLine, state.line - 1];\n token_i.children = [];\n const token_c = state.push('heading_close', 'h' + String(level), -1);\n token_c.markup = String.fromCharCode(marker);\n state.parentType = oldParentType;\n return true;\n}\n\n// Paragraph\n\nfunction paragraph(state, startLine, endLine) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph');\n const oldParentType = state.parentType;\n let nextLine = startLine + 1;\n state.parentType = 'paragraph';\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) {\n continue;\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) {\n continue;\n }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false;\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) {\n break;\n }\n }\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n state.line = nextLine;\n const token_o = state.push('paragraph_open', 'p', 1);\n token_o.map = [startLine, state.line];\n const token_i = state.push('inline', '', 0);\n token_i.content = content;\n token_i.map = [startLine, state.line];\n token_i.children = [];\n state.push('paragraph_close', 'p', -1);\n state.parentType = oldParentType;\n return true;\n}\n\n/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n\nconst _rules$1 = [\n// First 2 params - rule name & source. Secondary array - list of rules,\n// which can be terminated by this one.\n['table', table, ['paragraph', 'reference']], ['code', code], ['fence', fence, ['paragraph', 'reference', 'blockquote', 'list']], ['blockquote', blockquote, ['paragraph', 'reference', 'blockquote', 'list']], ['hr', hr, ['paragraph', 'reference', 'blockquote', 'list']], ['list', list, ['paragraph', 'reference', 'blockquote']], ['reference', reference], ['html_block', html_block, ['paragraph', 'reference', 'blockquote']], ['heading', heading, ['paragraph', 'reference', 'blockquote']], ['lheading', lheading], ['paragraph', paragraph]];\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock() {\n /**\n * ParserBlock#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of block rules.\n **/\n this.ruler = new Ruler();\n for (let i = 0; i < _rules$1.length; i++) {\n this.ruler.push(_rules$1[i][0], _rules$1[i][1], {\n alt: (_rules$1[i][2] || []).slice()\n });\n }\n}\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n const rules = this.ruler.getRules('');\n const len = rules.length;\n const maxNesting = state.md.options.maxNesting;\n let line = startLine;\n let hasEmptyLines = false;\n while (line < endLine) {\n state.line = line = state.skipEmptyLines(line);\n if (line >= endLine) {\n break;\n }\n\n // Termination condition for nested calls.\n // Nested calls currently used for blockquotes & lists\n if (state.sCount[line] < state.blkIndent) {\n break;\n }\n\n // If nesting level exceeded - skip tail to the end. That's not ordinary\n // situation and we should not care about content.\n if (state.level >= maxNesting) {\n state.line = endLine;\n break;\n }\n\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.line`\n // - update `state.tokens`\n // - return true\n const prevLine = state.line;\n let ok = false;\n for (let i = 0; i < len; i++) {\n ok = rules[i](state, line, endLine, false);\n if (ok) {\n if (prevLine >= state.line) {\n throw new Error(\"block rule didn't increment state.line\");\n }\n break;\n }\n }\n\n // this can only happen if user disables paragraph rule\n if (!ok) throw new Error('none of the block rules matched');\n\n // set state.tight if we had an empty line before current tag\n // i.e. latest empty line should not count\n state.tight = !hasEmptyLines;\n\n // paragraph might \"eat\" one newline after it in nested lists\n if (state.isEmpty(state.line - 1)) {\n hasEmptyLines = true;\n }\n line = state.line;\n if (line < endLine && state.isEmpty(line)) {\n hasEmptyLines = true;\n line++;\n state.line = line;\n }\n }\n};\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n if (!src) {\n return;\n }\n const state = new this.State(src, md, env, outTokens);\n this.tokenize(state, state.line, state.lineMax);\n};\nParserBlock.prototype.State = StateBlock;\n\n// Inline parser state\n\nfunction StateInline(src, md, env, outTokens) {\n this.src = src;\n this.env = env;\n this.md = md;\n this.tokens = outTokens;\n this.tokens_meta = Array(outTokens.length);\n this.pos = 0;\n this.posMax = this.src.length;\n this.level = 0;\n this.pending = '';\n this.pendingLevel = 0;\n\n // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n this.cache = {};\n\n // List of emphasis-like delimiters for current tag\n this.delimiters = [];\n\n // Stack of delimiter lists for upper level tags\n this._prev_delimiters = [];\n\n // backtick length => last seen position\n this.backticks = {};\n this.backticksScanned = false;\n\n // Counter used to disable inline linkify-it execution\n // inside and markdown links\n this.linkLevel = 0;\n}\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n const token = new Token('text', '', 0);\n token.content = this.pending;\n token.level = this.pendingLevel;\n this.tokens.push(token);\n this.pending = '';\n return token;\n};\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending();\n }\n const token = new Token(type, tag, nesting);\n let token_meta = null;\n if (nesting < 0) {\n // closing tag\n this.level--;\n this.delimiters = this._prev_delimiters.pop();\n }\n token.level = this.level;\n if (nesting > 0) {\n // opening tag\n this.level++;\n this._prev_delimiters.push(this.delimiters);\n this.delimiters = [];\n token_meta = {\n delimiters: this.delimiters\n };\n }\n this.pendingLevel = this.level;\n this.tokens.push(token);\n this.tokens_meta.push(token_meta);\n return token;\n};\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n const max = this.posMax;\n const marker = this.src.charCodeAt(start);\n\n // treat beginning of the line as a whitespace\n const lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n let pos = start;\n while (pos < max && this.src.charCodeAt(pos) === marker) {\n pos++;\n }\n const count = pos - start;\n\n // treat end of the line as a whitespace\n const nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n const isLastWhiteSpace = isWhiteSpace(lastChar);\n const isNextWhiteSpace = isWhiteSpace(nextChar);\n const left_flanking = !isNextWhiteSpace && (!isNextPunctChar || isLastWhiteSpace || isLastPunctChar);\n const right_flanking = !isLastWhiteSpace && (!isLastPunctChar || isNextWhiteSpace || isNextPunctChar);\n const can_open = left_flanking && (canSplitWord || !right_flanking || isLastPunctChar);\n const can_close = right_flanking && (canSplitWord || !left_flanking || isNextPunctChar);\n return {\n can_open,\n can_close,\n length: count\n };\n};\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token;\n\n// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar(ch) {\n switch (ch) {\n case 0x0A /* \\n */:\n case 0x21 /* ! */:\n case 0x23 /* # */:\n case 0x24 /* $ */:\n case 0x25 /* % */:\n case 0x26 /* & */:\n case 0x2A /* * */:\n case 0x2B /* + */:\n case 0x2D /* - */:\n case 0x3A /* : */:\n case 0x3C /* < */:\n case 0x3D /* = */:\n case 0x3E /* > */:\n case 0x40 /* @ */:\n case 0x5B /* [ */:\n case 0x5C /* \\ */:\n case 0x5D /* ] */:\n case 0x5E /* ^ */:\n case 0x5F /* _ */:\n case 0x60 /* ` */:\n case 0x7B /* { */:\n case 0x7D /* } */:\n case 0x7E /* ~ */:\n return true;\n default:\n return false;\n }\n}\nfunction text(state, silent) {\n let pos = state.pos;\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++;\n }\n if (pos === state.pos) {\n return false;\n }\n if (!silent) {\n state.pending += state.src.slice(state.pos, pos);\n }\n state.pos = pos;\n return true;\n}\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParserInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos,\n idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n // first char is terminator -> empty text\n if (idx === 0) { return false; }\n\n // no terminator -> text till end of string\n if (idx < 0) {\n if (!silent) { state.pending += state.src.slice(pos); }\n state.pos = state.src.length;\n return true;\n }\n\n if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n state.pos += idx;\n\n return true;\n}; */\n\n// Process links like https://example.org/\n\n// RFC3986: scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\nconst SCHEME_RE = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;\nfunction linkify(state, silent) {\n if (!state.md.options.linkify) return false;\n if (state.linkLevel > 0) return false;\n const pos = state.pos;\n const max = state.posMax;\n if (pos + 3 > max) return false;\n if (state.src.charCodeAt(pos) !== 0x3A /* : */) return false;\n if (state.src.charCodeAt(pos + 1) !== 0x2F /* / */) return false;\n if (state.src.charCodeAt(pos + 2) !== 0x2F /* / */) return false;\n const match = state.pending.match(SCHEME_RE);\n if (!match) return false;\n const proto = match[1];\n const link = state.md.linkify.matchAtStart(state.src.slice(pos - proto.length));\n if (!link) return false;\n let url = link.url;\n\n // invalid link, but still detected by linkify somehow;\n // need to check to prevent infinite loop below\n if (url.length <= proto.length) return false;\n\n // disallow '*' at the end of the link (conflicts with emphasis)\n url = url.replace(/\\*+$/, '');\n const fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) return false;\n if (!silent) {\n state.pending = state.pending.slice(0, -proto.length);\n const token_o = state.push('link_open', 'a', 1);\n token_o.attrs = [['href', fullUrl]];\n token_o.markup = 'linkify';\n token_o.info = 'auto';\n const token_t = state.push('text', '', 0);\n token_t.content = state.md.normalizeLinkText(url);\n const token_c = state.push('link_close', 'a', -1);\n token_c.markup = 'linkify';\n token_c.info = 'auto';\n }\n state.pos += url.length - proto.length;\n return true;\n}\n\n// Proceess '\\n'\n\nfunction newline(state, silent) {\n let pos = state.pos;\n if (state.src.charCodeAt(pos) !== 0x0A /* \\n */) {\n return false;\n }\n const pmax = state.pending.length - 1;\n const max = state.posMax;\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n // Find whitespaces tail of pending chars.\n let ws = pmax - 1;\n while (ws >= 1 && state.pending.charCodeAt(ws - 1) === 0x20) ws--;\n state.pending = state.pending.slice(0, ws);\n state.push('hardbreak', 'br', 0);\n } else {\n state.pending = state.pending.slice(0, -1);\n state.push('softbreak', 'br', 0);\n }\n } else {\n state.push('softbreak', 'br', 0);\n }\n }\n pos++;\n\n // skip heading spaces for next line\n while (pos < max && isSpace(state.src.charCodeAt(pos))) {\n pos++;\n }\n state.pos = pos;\n return true;\n}\n\n// Process escaped chars and hardbreaks\n\nconst ESCAPED = [];\nfor (let i = 0; i < 256; i++) {\n ESCAPED.push(0);\n}\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'.split('').forEach(function (ch) {\n ESCAPED[ch.charCodeAt(0)] = 1;\n});\nfunction escape(state, silent) {\n let pos = state.pos;\n const max = state.posMax;\n if (state.src.charCodeAt(pos) !== 0x5C /* \\ */) return false;\n pos++;\n\n // '\\' at the end of the inline block\n if (pos >= max) return false;\n let ch1 = state.src.charCodeAt(pos);\n if (ch1 === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0);\n }\n pos++;\n // skip leading whitespaces from next line\n while (pos < max) {\n ch1 = state.src.charCodeAt(pos);\n if (!isSpace(ch1)) break;\n pos++;\n }\n state.pos = pos;\n return true;\n }\n let escapedStr = state.src[pos];\n if (ch1 >= 0xD800 && ch1 <= 0xDBFF && pos + 1 < max) {\n const ch2 = state.src.charCodeAt(pos + 1);\n if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) {\n escapedStr += state.src[pos + 1];\n pos++;\n }\n }\n const origStr = '\\\\' + escapedStr;\n if (!silent) {\n const token = state.push('text_special', '', 0);\n if (ch1 < 256 && ESCAPED[ch1] !== 0) {\n token.content = escapedStr;\n } else {\n token.content = origStr;\n }\n token.markup = origStr;\n token.info = 'escape';\n }\n state.pos = pos + 1;\n return true;\n}\n\n// Parse backticks\n\nfunction backtick(state, silent) {\n let pos = state.pos;\n const ch = state.src.charCodeAt(pos);\n if (ch !== 0x60 /* ` */) {\n return false;\n }\n const start = pos;\n pos++;\n const max = state.posMax;\n\n // scan marker length\n while (pos < max && state.src.charCodeAt(pos) === 0x60 /* ` */) {\n pos++;\n }\n const marker = state.src.slice(start, pos);\n const openerLength = marker.length;\n if (state.backticksScanned && (state.backticks[openerLength] || 0) <= start) {\n if (!silent) state.pending += marker;\n state.pos += openerLength;\n return true;\n }\n let matchEnd = pos;\n let matchStart;\n\n // Nothing found in the cache, scan until the end of the line (or until marker is found)\n while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n matchEnd = matchStart + 1;\n\n // scan marker length\n while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60 /* ` */) {\n matchEnd++;\n }\n const closerLength = matchEnd - matchStart;\n if (closerLength === openerLength) {\n // Found matching closer length.\n if (!silent) {\n const token = state.push('code_inline', 'code', 0);\n token.markup = marker;\n token.content = state.src.slice(pos, matchStart).replace(/\\n/g, ' ').replace(/^ (.+) $/, '$1');\n }\n state.pos = matchEnd;\n return true;\n }\n\n // Some different length found, put it in cache as upper limit of where closer can be found\n state.backticks[closerLength] = matchStart;\n }\n\n // Scanned through the end, didn't find anything\n state.backticksScanned = true;\n if (!silent) state.pending += marker;\n state.pos += openerLength;\n return true;\n}\n\n// ~~strike through~~\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction strikethrough_tokenize(state, silent) {\n const start = state.pos;\n const marker = state.src.charCodeAt(start);\n if (silent) {\n return false;\n }\n if (marker !== 0x7E /* ~ */) {\n return false;\n }\n const scanned = state.scanDelims(state.pos, true);\n let len = scanned.length;\n const ch = String.fromCharCode(marker);\n if (len < 2) {\n return false;\n }\n let token;\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n for (let i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n state.delimiters.push({\n marker,\n length: 0,\n // disable \"rule of 3\" length checks meant for emphasis\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n state.pos += scanned.length;\n return true;\n}\nfunction postProcess$1(state, delimiters) {\n let token;\n const loneMarkers = [];\n const max = delimiters.length;\n for (let i = 0; i < max; i++) {\n const startDelim = delimiters[i];\n if (startDelim.marker !== 0x7E /* ~ */) {\n continue;\n }\n if (startDelim.end === -1) {\n continue;\n }\n const endDelim = delimiters[startDelim.end];\n token = state.tokens[startDelim.token];\n token.type = 's_open';\n token.tag = 's';\n token.nesting = 1;\n token.markup = '~~';\n token.content = '';\n token = state.tokens[endDelim.token];\n token.type = 's_close';\n token.tag = 's';\n token.nesting = -1;\n token.markup = '~~';\n token.content = '';\n if (state.tokens[endDelim.token - 1].type === 'text' && state.tokens[endDelim.token - 1].content === '~') {\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n const i = loneMarkers.pop();\n let j = i + 1;\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++;\n }\n j--;\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction strikethrough_postProcess(state) {\n const tokens_meta = state.tokens_meta;\n const max = state.tokens_meta.length;\n postProcess$1(state, state.delimiters);\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess$1(state, tokens_meta[curr].delimiters);\n }\n }\n}\nvar r_strikethrough = {\n tokenize: strikethrough_tokenize,\n postProcess: strikethrough_postProcess\n};\n\n// Process *this* and _that_\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction emphasis_tokenize(state, silent) {\n const start = state.pos;\n const marker = state.src.charCodeAt(start);\n if (silent) {\n return false;\n }\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) {\n return false;\n }\n const scanned = state.scanDelims(state.pos, marker === 0x2A);\n for (let i = 0; i < scanned.length; i++) {\n const token = state.push('text', '', 0);\n token.content = String.fromCharCode(marker);\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker,\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n state.pos += scanned.length;\n return true;\n}\nfunction postProcess(state, delimiters) {\n const max = delimiters.length;\n for (let i = max - 1; i >= 0; i--) {\n const startDelim = delimiters[i];\n if (startDelim.marker !== 0x5F /* _ */ && startDelim.marker !== 0x2A /* * */) {\n continue;\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue;\n }\n const endDelim = delimiters[startDelim.end];\n\n // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n const isStrong = i > 0 && delimiters[i - 1].end === startDelim.end + 1 &&\n // check that first two markers match and adjacent\n delimiters[i - 1].marker === startDelim.marker && delimiters[i - 1].token === startDelim.token - 1 &&\n // check that last two markers are adjacent (we can safely assume they match)\n delimiters[startDelim.end + 1].token === endDelim.token + 1;\n const ch = String.fromCharCode(startDelim.marker);\n const token_o = state.tokens[startDelim.token];\n token_o.type = isStrong ? 'strong_open' : 'em_open';\n token_o.tag = isStrong ? 'strong' : 'em';\n token_o.nesting = 1;\n token_o.markup = isStrong ? ch + ch : ch;\n token_o.content = '';\n const token_c = state.tokens[endDelim.token];\n token_c.type = isStrong ? 'strong_close' : 'em_close';\n token_c.tag = isStrong ? 'strong' : 'em';\n token_c.nesting = -1;\n token_c.markup = isStrong ? ch + ch : ch;\n token_c.content = '';\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = '';\n state.tokens[delimiters[startDelim.end + 1].token].content = '';\n i--;\n }\n }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction emphasis_post_process(state) {\n const tokens_meta = state.tokens_meta;\n const max = state.tokens_meta.length;\n postProcess(state, state.delimiters);\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n}\nvar r_emphasis = {\n tokenize: emphasis_tokenize,\n postProcess: emphasis_post_process\n};\n\n// Process [link]( \"stuff\")\n\nfunction link(state, silent) {\n let code, label, res, ref;\n let href = '';\n let title = '';\n let start = state.pos;\n let parseReference = true;\n if (state.src.charCodeAt(state.pos) !== 0x5B /* [ */) {\n return false;\n }\n const oldPos = state.pos;\n const max = state.posMax;\n const labelStart = state.pos + 1;\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) {\n return false;\n }\n let pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28 /* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) {\n break;\n }\n }\n if (pos >= max) {\n return false;\n }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) {\n break;\n }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) {\n break;\n }\n }\n }\n }\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29 /* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true;\n }\n pos++;\n }\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') {\n return false;\n }\n if (pos < max && state.src.charCodeAt(pos) === 0x5B /* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) {\n label = state.src.slice(labelStart, labelEnd);\n }\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart;\n state.posMax = labelEnd;\n const token_o = state.push('link_open', 'a', 1);\n const attrs = [['href', href]];\n token_o.attrs = attrs;\n if (title) {\n attrs.push(['title', title]);\n }\n state.linkLevel++;\n state.md.inline.tokenize(state);\n state.linkLevel--;\n state.push('link_close', 'a', -1);\n }\n state.pos = pos;\n state.posMax = max;\n return true;\n}\n\n// Process ![image]( \"title\")\n\nfunction image(state, silent) {\n let code, content, label, pos, ref, res, title, start;\n let href = '';\n const oldPos = state.pos;\n const max = state.posMax;\n if (state.src.charCodeAt(state.pos) !== 0x21 /* ! */) {\n return false;\n }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B /* [ */) {\n return false;\n }\n const labelStart = state.pos + 2;\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) {\n return false;\n }\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28 /* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) {\n break;\n }\n }\n if (pos >= max) {\n return false;\n }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) {\n break;\n }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) {\n break;\n }\n }\n } else {\n title = '';\n }\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29 /* ) */) {\n state.pos = oldPos;\n return false;\n }\n pos++;\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') {\n return false;\n }\n if (pos < max && state.src.charCodeAt(pos) === 0x5B /* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) {\n label = state.src.slice(labelStart, labelEnd);\n }\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd);\n const tokens = [];\n state.md.inline.parse(content, state.md, state.env, tokens);\n const token = state.push('image', 'img', 0);\n const attrs = [['src', href], ['alt', '']];\n token.attrs = attrs;\n token.children = tokens;\n token.content = content;\n if (title) {\n attrs.push(['title', title]);\n }\n }\n state.pos = pos;\n state.posMax = max;\n return true;\n}\n\n// Process autolinks ''\n\n/* eslint max-len:0 */\nconst EMAIL_RE = /^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/;\n/* eslint-disable-next-line no-control-regex */\nconst AUTOLINK_RE = /^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\\x00-\\x20]*)$/;\nfunction autolink(state, silent) {\n let pos = state.pos;\n if (state.src.charCodeAt(pos) !== 0x3C /* < */) {\n return false;\n }\n const start = state.pos;\n const max = state.posMax;\n for (;;) {\n if (++pos >= max) return false;\n const ch = state.src.charCodeAt(pos);\n if (ch === 0x3C /* < */) return false;\n if (ch === 0x3E /* > */) break;\n }\n const url = state.src.slice(start + 1, pos);\n if (AUTOLINK_RE.test(url)) {\n const fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) {\n return false;\n }\n if (!silent) {\n const token_o = state.push('link_open', 'a', 1);\n token_o.attrs = [['href', fullUrl]];\n token_o.markup = 'autolink';\n token_o.info = 'auto';\n const token_t = state.push('text', '', 0);\n token_t.content = state.md.normalizeLinkText(url);\n const token_c = state.push('link_close', 'a', -1);\n token_c.markup = 'autolink';\n token_c.info = 'auto';\n }\n state.pos += url.length + 2;\n return true;\n }\n if (EMAIL_RE.test(url)) {\n const fullUrl = state.md.normalizeLink('mailto:' + url);\n if (!state.md.validateLink(fullUrl)) {\n return false;\n }\n if (!silent) {\n const token_o = state.push('link_open', 'a', 1);\n token_o.attrs = [['href', fullUrl]];\n token_o.markup = 'autolink';\n token_o.info = 'auto';\n const token_t = state.push('text', '', 0);\n token_t.content = state.md.normalizeLinkText(url);\n const token_c = state.push('link_close', 'a', -1);\n token_c.markup = 'autolink';\n token_c.info = 'auto';\n }\n state.pos += url.length + 2;\n return true;\n }\n return false;\n}\n\n// Process html tags\n\nfunction isLinkOpen(str) {\n return /^\\s]/i.test(str);\n}\nfunction isLinkClose(str) {\n return /^<\\/a\\s*>/i.test(str);\n}\nfunction isLetter(ch) {\n /* eslint no-bitwise:0 */\n const lc = ch | 0x20; // to lower case\n return lc >= 0x61 /* a */ && lc <= 0x7a /* z */;\n}\nfunction html_inline(state, silent) {\n if (!state.md.options.html) {\n return false;\n }\n\n // Check start\n const max = state.posMax;\n const pos = state.pos;\n if (state.src.charCodeAt(pos) !== 0x3C /* < */ || pos + 2 >= max) {\n return false;\n }\n\n // Quick fail on second char\n const ch = state.src.charCodeAt(pos + 1);\n if (ch !== 0x21 /* ! */ && ch !== 0x3F /* ? */ && ch !== 0x2F /* / */ && !isLetter(ch)) {\n return false;\n }\n const match = state.src.slice(pos).match(HTML_TAG_RE);\n if (!match) {\n return false;\n }\n if (!silent) {\n const token = state.push('html_inline', '', 0);\n token.content = match[0];\n if (isLinkOpen(token.content)) state.linkLevel++;\n if (isLinkClose(token.content)) state.linkLevel--;\n }\n state.pos += match[0].length;\n return true;\n}\n\n// Process html entity - {, ¯, ", ...\n\nconst DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i;\nconst NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i;\nfunction entity(state, silent) {\n const pos = state.pos;\n const max = state.posMax;\n if (state.src.charCodeAt(pos) !== 0x26 /* & */) return false;\n if (pos + 1 >= max) return false;\n const ch = state.src.charCodeAt(pos + 1);\n if (ch === 0x23 /* # */) {\n const match = state.src.slice(pos).match(DIGITAL_RE);\n if (match) {\n if (!silent) {\n const code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);\n const token = state.push('text_special', '', 0);\n token.content = isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD);\n token.markup = match[0];\n token.info = 'entity';\n }\n state.pos += match[0].length;\n return true;\n }\n } else {\n const match = state.src.slice(pos).match(NAMED_RE);\n if (match) {\n const decoded = entities.decodeHTML(match[0]);\n if (decoded !== match[0]) {\n if (!silent) {\n const token = state.push('text_special', '', 0);\n token.content = decoded;\n token.markup = match[0];\n token.info = 'entity';\n }\n state.pos += match[0].length;\n return true;\n }\n }\n }\n return false;\n}\n\n// For each opening emphasis-like marker find a matching closing one\n//\n\nfunction processDelimiters(delimiters) {\n const openersBottom = {};\n const max = delimiters.length;\n if (!max) return;\n\n // headerIdx is the first delimiter of the current (where closer is) delimiter run\n let headerIdx = 0;\n let lastTokenIdx = -2; // needs any value lower than -1\n const jumps = [];\n for (let closerIdx = 0; closerIdx < max; closerIdx++) {\n const closer = delimiters[closerIdx];\n jumps.push(0);\n\n // markers belong to same delimiter run if:\n // - they have adjacent tokens\n // - AND markers are the same\n //\n if (delimiters[headerIdx].marker !== closer.marker || lastTokenIdx !== closer.token - 1) {\n headerIdx = closerIdx;\n }\n lastTokenIdx = closer.token;\n\n // Length is only used for emphasis-specific \"rule of 3\",\n // if it's not defined (in strikethrough or 3rd party plugins),\n // we can default it to 0 to disable those checks.\n //\n closer.length = closer.length || 0;\n if (!closer.close) continue;\n\n // Previously calculated lower bounds (previous fails)\n // for each marker, each delimiter length modulo 3,\n // and for whether this closer can be an opener;\n // https://github.com/commonmark/cmark/commit/34250e12ccebdc6372b8b49c44fab57c72443460\n /* eslint-disable-next-line no-prototype-builtins */\n if (!openersBottom.hasOwnProperty(closer.marker)) {\n openersBottom[closer.marker] = [-1, -1, -1, -1, -1, -1];\n }\n const minOpenerIdx = openersBottom[closer.marker][(closer.open ? 3 : 0) + closer.length % 3];\n let openerIdx = headerIdx - jumps[headerIdx] - 1;\n let newMinOpenerIdx = openerIdx;\n for (; openerIdx > minOpenerIdx; openerIdx -= jumps[openerIdx] + 1) {\n const opener = delimiters[openerIdx];\n if (opener.marker !== closer.marker) continue;\n if (opener.open && opener.end < 0) {\n let isOddMatch = false;\n\n // from spec:\n //\n // If one of the delimiters can both open and close emphasis, then the\n // sum of the lengths of the delimiter runs containing the opening and\n // closing delimiters must not be a multiple of 3 unless both lengths\n // are multiples of 3.\n //\n if (opener.close || closer.open) {\n if ((opener.length + closer.length) % 3 === 0) {\n if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n isOddMatch = true;\n }\n }\n }\n if (!isOddMatch) {\n // If previous delimiter cannot be an opener, we can safely skip\n // the entire sequence in future checks. This is required to make\n // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n //\n const lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open ? jumps[openerIdx - 1] + 1 : 0;\n jumps[closerIdx] = closerIdx - openerIdx + lastJump;\n jumps[openerIdx] = lastJump;\n closer.open = false;\n opener.end = closerIdx;\n opener.close = false;\n newMinOpenerIdx = -1;\n // treat next token as start of run,\n // it optimizes skips in **<...>**a**<...>** pathological case\n lastTokenIdx = -2;\n break;\n }\n }\n }\n if (newMinOpenerIdx !== -1) {\n // If match for this delimiter run failed, we want to set lower bound for\n // future lookups. This is required to make sure algorithm has linear\n // complexity.\n //\n // See details here:\n // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n //\n openersBottom[closer.marker][(closer.open ? 3 : 0) + (closer.length || 0) % 3] = newMinOpenerIdx;\n }\n }\n}\nfunction link_pairs(state) {\n const tokens_meta = state.tokens_meta;\n const max = state.tokens_meta.length;\n processDelimiters(state.delimiters);\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n processDelimiters(tokens_meta[curr].delimiters);\n }\n }\n}\n\n// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n\nfunction fragments_join(state) {\n let curr, last;\n let level = 0;\n const tokens = state.tokens;\n const max = state.tokens.length;\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels after emphasis/strikethrough turns some text nodes\n // into opening/closing tags\n if (tokens[curr].nesting < 0) level--; // closing tag\n tokens[curr].level = level;\n if (tokens[curr].nesting > 0) level++; // opening tag\n\n if (tokens[curr].type === 'text' && curr + 1 < max && tokens[curr + 1].type === 'text') {\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) {\n tokens[last] = tokens[curr];\n }\n last++;\n }\n }\n if (curr !== last) {\n tokens.length = last;\n }\n}\n\n/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n\n\n// Parser rules\n\nconst _rules = [['text', text], ['linkify', linkify], ['newline', newline], ['escape', escape], ['backticks', backtick], ['strikethrough', r_strikethrough.tokenize], ['emphasis', r_emphasis.tokenize], ['link', link], ['image', image], ['autolink', autolink], ['html_inline', html_inline], ['entity', entity]];\n\n// `rule2` ruleset was created specifically for emphasis/strikethrough\n// post-processing and may be changed in the future.\n//\n// Don't use this for anything except pairs (plugins working with `balance_pairs`).\n//\nconst _rules2 = [['balance_pairs', link_pairs], ['strikethrough', r_strikethrough.postProcess], ['emphasis', r_emphasis.postProcess],\n// rules for pairs separate '**' into its own text tokens, which may be left unused,\n// rule below merges unused segments back with the rest of the text\n['fragments_join', fragments_join]];\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline() {\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new Ruler();\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new Ruler();\n for (let i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1]);\n }\n}\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n const pos = state.pos;\n const rules = this.ruler.getRules('');\n const len = rules.length;\n const maxNesting = state.md.options.maxNesting;\n const cache = state.cache;\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos];\n return;\n }\n let ok = false;\n if (state.level < maxNesting) {\n for (let i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++;\n ok = rules[i](state, true);\n state.level--;\n if (ok) {\n if (pos >= state.pos) {\n throw new Error(\"inline rule didn't increment state.pos\");\n }\n break;\n }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax;\n }\n if (!ok) {\n state.pos++;\n }\n cache[pos] = state.pos;\n};\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n const rules = this.ruler.getRules('');\n const len = rules.length;\n const end = state.posMax;\n const maxNesting = state.md.options.maxNesting;\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n const prevPos = state.pos;\n let ok = false;\n if (state.level < maxNesting) {\n for (let i = 0; i < len; i++) {\n ok = rules[i](state, false);\n if (ok) {\n if (prevPos >= state.pos) {\n throw new Error(\"inline rule didn't increment state.pos\");\n }\n break;\n }\n }\n }\n if (ok) {\n if (state.pos >= end) {\n break;\n }\n continue;\n }\n state.pending += state.src[state.pos++];\n }\n if (state.pending) {\n state.pushPending();\n }\n};\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n const state = new this.State(str, md, env, outTokens);\n this.tokenize(state);\n const rules = this.ruler2.getRules('');\n const len = rules.length;\n for (let i = 0; i < len; i++) {\n rules[i](state);\n }\n};\nParserInline.prototype.State = StateInline;\n\n// markdown-it default options\n\nvar cfg_default = {\n options: {\n // Enable HTML tags in source\n html: false,\n // Use '/' to close single tags (
    )\n xhtmlOut: false,\n // Convert '\\n' in paragraphs into
    \n breaks: false,\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n // autoconvert URL-like texts to links\n linkify: false,\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019',\n /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n xhtmlOut: false,\n // Convert '\\n' in paragraphs into
    \n breaks: false,\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n // autoconvert URL-like texts to links\n linkify: false,\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019',\n /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n xhtmlOut: true,\n // Convert '\\n' in paragraphs into
    \n breaks: false,\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n // autoconvert URL-like texts to links\n linkify: false,\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019',\n /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with = 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname);\n } catch (er) {/**/}\n }\n }\n return mdurl__namespace.encode(mdurl__namespace.format(parsed));\n}\nfunction normalizeLinkText(url) {\n const parsed = mdurl__namespace.parse(url, true);\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname);\n } catch (er) {/**/}\n }\n }\n\n // add '%' to exclude list because of https://github.com/markdown-it/markdown-it/issues/720\n return mdurl__namespace.decode(mdurl__namespace.format(parsed), mdurl__namespace.decode.defaultChars + '%');\n}\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.mjs) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.mjs) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.mjs) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`
    `). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `
    `.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.mjs) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with ` or ``):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '
    ' +\n *                hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +\n *                '
    ';\n * } catch (__) {}\n * }\n *\n * return '
    ' + md.utils.escapeHtml(str) + '
    ';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt(presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options);\n }\n if (!options) {\n if (!isString(presetName)) {\n options = presetName || {};\n presetName = 'default';\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline();\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock();\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new Core();\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs).\n **/\n this.renderer = new Renderer();\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.mjs)\n * rule.\n **/\n this.linkify = new LinkifyIt();\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink;\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink;\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText;\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.mjs).\n **/\n this.utils = utils;\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = assign({}, helpers);\n this.options = {};\n this.configure(presetName);\n if (options) {\n this.set(options);\n }\n}\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n assign(this.options, options);\n return this;\n};\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you will - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n const self = this;\n if (isString(presets)) {\n const presetName = presets;\n presets = config[presetName];\n if (!presets) {\n throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name');\n }\n }\n if (!presets) {\n throw new Error('Wrong `markdown-it` preset, can\\'t be empty');\n }\n if (presets.options) {\n self.set(presets.options);\n }\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules);\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2);\n }\n });\n }\n return this;\n};\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n let result = [];\n if (!Array.isArray(list)) {\n list = [list];\n }\n ['core', 'block', 'inline'].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true));\n }, this);\n result = result.concat(this.inline.ruler2.enable(list, true));\n const missed = list.filter(function (name) {\n return result.indexOf(name) < 0;\n });\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n }\n return this;\n};\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n let result = [];\n if (!Array.isArray(list)) {\n list = [list];\n }\n ['core', 'block', 'inline'].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true));\n }, this);\n result = result.concat(this.inline.ruler2.disable(list, true));\n const missed = list.filter(function (name) {\n return result.indexOf(name) < 0;\n });\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n }\n return this;\n};\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n const args = [this].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n};\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and return list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n if (typeof src !== 'string') {\n throw new Error('Input data should be a String');\n }\n const state = new this.core.State(src, this, env);\n this.core.process(state);\n return state.tokens;\n};\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {};\n return this.renderer.render(this.parse(src, env), this.options, env);\n};\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n const state = new this.core.State(src, this, env);\n state.inlineMode = true;\n this.core.process(state);\n return state.tokens;\n};\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `

    ` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {};\n return this.renderer.render(this.parseInline(src, env), this.options, env);\n};\n\nmodule.exports = MarkdownIt;\n","'use strict';\n\n/* eslint-disable no-bitwise */\n\nconst decodeCache = {};\n\nfunction getDecodeCache (exclude) {\n let cache = decodeCache[exclude];\n if (cache) { return cache }\n\n cache = decodeCache[exclude] = [];\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i);\n cache.push(ch);\n }\n\n for (let i = 0; i < exclude.length; i++) {\n const ch = exclude.charCodeAt(i);\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);\n }\n\n return cache\n}\n\n// Decode percent-encoded string.\n//\nfunction decode (string, exclude) {\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars;\n }\n\n const cache = getDecodeCache(exclude);\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function (seq) {\n let result = '';\n\n for (let i = 0, l = seq.length; i < l; i += 3) {\n const b1 = parseInt(seq.slice(i + 1, i + 3), 16);\n\n if (b1 < 0x80) {\n result += cache[b1];\n continue\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n\n if ((b2 & 0xC0) === 0x80) {\n const chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 3;\n continue\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n const chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 6;\n continue\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n const b4 = parseInt(seq.slice(i + 10, i + 12), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n let chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd';\n } else {\n chr -= 0x10000;\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));\n }\n\n i += 9;\n continue\n }\n }\n\n result += '\\ufffd';\n }\n\n return result\n })\n}\n\ndecode.defaultChars = ';/?:@&=+$,#';\ndecode.componentChars = '';\n\nconst encodeCache = {};\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache (exclude) {\n let cache = encodeCache[exclude];\n if (cache) { return cache }\n\n cache = encodeCache[exclude] = [];\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (let i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache\n}\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode (string, exclude, keepEscaped) {\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n const cache = getEncodeCache(exclude);\n let result = '';\n\n for (let i = 0, l = string.length; i < l; i++) {\n const code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n const nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue\n }\n }\n result += '%EF%BF%BD';\n continue\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\nfunction format (url) {\n let result = '';\n\n result += url.protocol || '';\n result += url.slashes ? '//' : '';\n result += url.auth ? url.auth + '@' : '';\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']';\n } else {\n result += url.hostname || '';\n }\n\n result += url.port ? ':' + url.port : '';\n result += url.pathname || '';\n result += url.search || '';\n result += url.hash || '';\n\n return result\n}\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n// so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n// i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n// (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n// which can be constructed using other parts of the url.\n//\n\nfunction Url () {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.pathname = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nconst protocolPattern = /^([a-z0-9.+-]+:)/i;\nconst portPattern = /:[0-9]*$/;\n\n// Special case for a simple path URL\n/* eslint-disable-next-line no-useless-escape */\nconst simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/;\n\n// RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\nconst delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'];\n\n// RFC 2396: characters not allowed for various reasons.\nconst unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims);\n\n// Allowed by RFCs, but cause of XSS attacks. Always escape these.\nconst autoEscape = ['\\''].concat(unwise);\n// Characters that are never ever allowed in a hostname.\n// Note that any invalid chars are also handled, but these\n// are the ones that are *expected* to be seen, so we fast-path\n// them.\nconst nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape);\nconst hostEndingChars = ['/', '?', '#'];\nconst hostnameMaxLen = 255;\nconst hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/;\nconst hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/;\n// protocols that can allow \"unsafe\" and \"unwise\" chars.\n// protocols that never have a hostname.\nconst hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n};\n// protocols that always contain a // bit.\nconst slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n};\n\nfunction urlParse (url, slashesDenoteHost) {\n if (url && url instanceof Url) return url\n\n const u = new Url();\n u.parse(url, slashesDenoteHost);\n return u\n}\n\nUrl.prototype.parse = function (url, slashesDenoteHost) {\n let lowerProto, hec, slashes;\n let rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n const simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n }\n return this\n }\n }\n\n let proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n lowerProto = proto.toLowerCase();\n this.protocol = proto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n /* eslint-disable-next-line no-useless-escape */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n let hostEnd = -1;\n for (let i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n let auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = auth;\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (let i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length;\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd--; }\n const host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost(host);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n const ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n const hostparts = this.hostname.split(/\\./);\n for (let i = 0, l = hostparts.length; i < l; i++) {\n const part = hostparts[i];\n if (!part) { continue }\n if (!part.match(hostnamePartPattern)) {\n let newpart = '';\n for (let j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n const validParts = hostparts.slice(0, i);\n const notHost = hostparts.slice(i + 1);\n const bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n }\n }\n\n // chop off from the tail first.\n const hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n const qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n rest = rest.slice(0, qm);\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '';\n }\n\n return this\n};\n\nUrl.prototype.parseHost = function (host) {\n let port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.decode = decode;\nexports.encode = encode;\nexports.format = format;\nexports.parse = urlParse;\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.3.1',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\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};","\"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;","\"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;","\"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;","\"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;","'use strict';\n\nvar regex$5 = /[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\nvar regex$4 = /[\\0-\\x1F\\x7F-\\x9F]/;\n\nvar regex$3 = /[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD80D[\\uDC30-\\uDC3F]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/;\n\nvar regex$2 = /[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDEAD\\uDF55-\\uDF59\\uDF86-\\uDF89]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDEB9\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDD44-\\uDD46\\uDDE2\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2\\uDF00-\\uDF09]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8\\uDF43-\\uDF4F\\uDFFF]|\\uD809[\\uDC70-\\uDC74]|\\uD80B[\\uDFF1\\uDFF2]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A\\uDFE2]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/;\n\nvar regex$1 = /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u0888\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20C0\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFF\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u31EF\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC2\\uFD40-\\uFD4F\\uFDCF\\uFDFC-\\uFDFF\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD833[\\uDF50-\\uDFC3]|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDEA\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEDC-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF76\\uDF7B-\\uDFD9\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC5\\uDECE-\\uDEDB\\uDEE0-\\uDEE8\\uDEF0-\\uDEF8\\uDF00-\\uDF92\\uDF94-\\uDFCA]/;\n\nvar regex = /[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n\nexports.Any = regex$5;\nexports.Cc = regex$4;\nexports.Cf = regex$3;\nexports.P = regex$2;\nexports.S = regex$1;\nexports.Z = regex;\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].call(module.exports, 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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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 //\n // 1. Math.random() is a float between 0 and 1.\n // 2. 0x100000000 is 2^32 = 4294967296.\n // 3. >>> 0 enforces integer (in JS all numbers are floating point).\n //\n // For instance:\n //\t\tMath.random() * 0x100000000 = 3366450031.853859\n // but\n //\t\tMath.random() * 0x100000000 >>> 0 = 3366450031.\n const r1 = Math.random() * 0x100000000 >>> 0;\n const r2 = Math.random() * 0x100000000 >>> 0;\n const r3 = Math.random() * 0x100000000 >>> 0;\n const r4 = Math.random() * 0x100000000 >>> 0;\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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 for (let i = 0; i < objects.length; i++) {\n if (priorities.get(objects[i].priority) < priority) {\n objects.splice(i, 0, objectToInsert);\n return;\n }\n }\n objects.push(objectToInsert);\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module utils/version\n */\nimport CKEditorError from './ckeditorerror.js';\nconst version = '43.0.0';\nexport default version;\n// The second argument is not a month. It is `monthIndex` and starts from `0`.\nexport const releaseDate = new Date(2024, 7, 7);\n/* istanbul ignore next -- @preserve */\nif (globalThis.CKEDITOR_VERSION) {\n /**\n * The best solution to avoid this error is migrating your CKEditor 5 instance to\n * {@glink updating/nim-migration/migration-to-new-installation-methods new installation methods}.\n *\n * Mentioned below are predefined builds, which are a deprecated installation method. The solutions\n * provided are kept here for legacy support only.\n *\n * This error is thrown when due to a mistake in how CKEditor 5 was installed or initialized, some\n * of its modules were duplicated (evaluated and executed twice). Module duplication leads to inevitable runtime\n * errors.\n *\n * There are many situations in which some modules can be loaded twice. In the worst case scenario,\n * you may need to check your project for each of these issues and fix them all.\n *\n * # Trying to add a plugin to an existing build\n *\n * If you import an existing CKEditor 5 build and a plugin like this:\n *\n * ```ts\n * import ClassicEditor from '@ckeditor/ckeditor5-build-classic';\n * import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight';\n * ```\n *\n * Then your project loads some CKEditor 5 packages twice. How does it happen?\n *\n * The build package contains a file which is already compiled with webpack. This means\n * that it contains all the necessary code from e.g. `@ckeditor/ckeditor5-engine` and `@ckeditor/ckeditor5-utils`.\n *\n * However, the `Highlight` plugin imports some of the modules from these packages, too. If you ask webpack to\n * build such a project, you will end up with the modules being included (and run) twice – first, because they are\n * included inside the build package, and second, because they are required by the `Highlight` plugin.\n *\n * Therefore, **you must never add plugins to an existing build** unless your plugin has no dependencies.\n *\n * Adding plugins to a build is done by taking the source version of this build (so, before it was built with webpack)\n * and adding plugins there. In this situation, webpack will know that it only needs to load each plugin once.\n *\n * # Confused an editor build with an editor implementation\n *\n * This scenario is very similar to the previous one, but has a different origin.\n *\n * Let's assume that you wanted to use CKEditor 5 from source.\n *\n * The correct way to do so is to import an editor and plugins and run them together like this:\n *\n * ```ts\n * import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';\n * import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';\n * import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';\n * import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold';\n * import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';\n *\n * ClassicEditor\n * \t.create( document.querySelector( '#editor' ), {\n * \t\tplugins: [ Essentials, Paragraph, Bold, Italic ],\n * \t\ttoolbar: [ 'bold', 'italic' ]\n * \t} )\n * \t.then( editor => {\n * \t\tconsole.log( 'Editor was initialized', editor );\n * \t} )\n * \t.catch( error => {\n * \t\tconsole.error( error.stack );\n * \t} );\n * ```\n *\n * However, you might have mistakenly imported a build instead of the source `ClassicEditor`. In this case\n * your imports will look like this:\n *\n * ```ts\n * import ClassicEditor from '@ckeditor/ckeditor5-build-classic';\n * import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';\n * import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';\n * import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold';\n * import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';\n * ```\n *\n * This creates the same situation as in the previous section because you use a build together with source plugins.\n *\n * Remember: `@ckeditor/ckeditor5-build-*` packages contain editor builds and `@ckeditor/ckeditor5-editor-*` contain source editors.\n *\n * # Loading two or more builds on one page\n *\n * If you use CKEditor 5 builds, you might have loaded two (or more) `ckeditor.js` files on one web page.\n * Check your web page for duplicated `