diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 564bc90e7..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "globals": { - "appName": true, - "appVersion": true, - "PLYR_ICONS": true, - "oc_defaults": true, - "__dirname": true - }, - "extends": [ - "@nextcloud/eslint-config/typescript" - ] -} diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 347a869d4..fdb1a7063 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -1,42 +1,27 @@ -# SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors +# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors # SPDX-License-Identifier: MIT -name: Playwright - -on: pull_request - -concurrency: - group: playwright-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -permissions: - contents: read - -env: - APP_NAME: ${{ github.event.repository.name }} - BRANCH: ${{ github.base_ref || github.ref_name }} +name: Playwright Tests +on: + pull_request: + branches: [master] jobs: - playwright: + playwright-tests: + timeout-minutes: 60 runs-on: ubuntu-latest - - name: Playwright E2E tests - + strategy: + fail-fast: false + matrix: + shardIndex: [1, 2] + shardTotal: [2] steps: - - name: Disabled on forks - if: ${{ github.event.pull_request.head.repo.full_name != github.repository }} - run: | - echo 'Can not run Playwright on forks' - exit 1 - - name: Checkout app - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Check composer.json id: check_composer - uses: andstor/file-existence-action@558493d6c74bf472d87c84eab196434afc2fa029 # v3.1.0 + uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v2 with: files: 'composer.json' @@ -44,63 +29,74 @@ jobs: if: steps.check_composer.outputs.files_exists == 'true' run: composer install --no-dev - - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 + - name: Read package.json + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions - with: - fallbackNode: '^24' - fallbackNpm: '^11' - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + - name: Set up node + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version }} - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + - name: Set up npm + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version }}' - - name: Install dependencies & build app + - name: Install node dependencies & build app run: | npm ci - TESTING=true npm run build --if-present + npm run build --if-present - - name: Install Playwright browsers - run: npx playwright install chromium --with-deps + - name: Install Playwright Browsers + run: npx playwright install --with-deps - name: Run Playwright tests - run: npx playwright test - env: - BRANCH: ${{ env.BRANCH }} - CI: true + run: npx playwright test --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} - - name: Show Nextcloud logs on failure - if: failure() - run: | - docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} cat data/nextcloud.log || true - - - name: Upload Playwright report - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 if: ${{ !cancelled() }} with: - name: playwright-report - path: playwright-report/ - retention-days: 7 - if-no-files-found: ignore - - - name: Upload Playwright traces - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 - if: failure() - with: - name: playwright-traces - path: test-results/ - retention-days: 7 - if-no-files-found: ignore + name: blob-report-${{ matrix.shardIndex }} + path: blob-report + retention-days: 1 + + merge-reports: + # Merge reports after playwright-tests, even if some shards have failed + if: ${{ !cancelled() }} + needs: [playwright-tests] - summary: runs-on: ubuntu-latest-low - needs: playwright - if: always() - name: playwright-summary steps: - - name: Summary status - run: if ${{ needs.playwright.result != 'success' && needs.playwright.result != 'skipped' }}; then exit 1; fi + - name: Checkout app + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + + - name: Read package.json + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 + id: versions + + - name: Set up node + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + with: + node-version: ${{ steps.versions.outputs.node-version }} + + - name: Set up npm + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version }}' + + - name: Install dependencies + run: npm ci + + - name: Download blob reports from GitHub Actions Artifacts + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 + with: + path: all-blob-reports + pattern: blob-report-* + merge-multiple: true + + - name: Merge into HTML Report + run: npx playwright merge-reports --config playwright/merge.config.ts ./all-blob-reports + + - name: Upload HTML report + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 + with: + name: html-report--attempt-${{ github.run_attempt }} + path: playwright-report + retention-days: 14 diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml new file mode 100644 index 000000000..3116444a0 --- /dev/null +++ b/.github/workflows/vitest.yml @@ -0,0 +1,44 @@ +# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Vitest + +on: + pull_request: + branches: [master] + +permissions: + contents: read + +concurrency: + group: vitest-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + vitest: + runs-on: ubuntu-latest + name: Unit & component tests + + steps: + - name: Checkout app + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + with: + persist-credentials: false + + - name: Read package.json + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 + id: versions + + - name: Set up node + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + with: + node-version: ${{ steps.versions.outputs.node-version }} + + - name: Set up npm + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version }}' + + - name: Install dependencies + run: npm ci + + - name: Run vitest + run: npm run test:coverage diff --git a/.gitignore b/.gitignore index 445022048..4f19d7301 100644 --- a/.gitignore +++ b/.gitignore @@ -22,19 +22,18 @@ vendor .php_cs.cache .php-cs-fixer.cache -build/ -coverage/ -*.orig - -# We do not ship the Roboto font files (only needed for Playwright) - but we need to ship the other font files -css/fonts/roboto-* js/*roboto* # Playwright files -playwright-report/ -test-results/ -blob-report/ -playwright/.cache/ +/playwright-report/ +/test-results/ +/blob-report/ +/playwright/.cache/ # RelativeCI webpack bundle stats webpack-stats.json +*.orig +.php-cs-fixer.cache + +# Test coverage +/coverage/ diff --git a/README.md b/README.md index a1889eb6e..01d8aa22a 100644 --- a/README.md +++ b/README.md @@ -22,19 +22,10 @@ Show your latest holiday photos and videos like in the movies. Show a glimpse of ### 🧙 Advanced development stuff To build the Javascript whenever you make changes, you can also run `npm run dev` for development builds. -### 📷 Running Playwright tests -The end-to-end tests use [Playwright](https://playwright.dev/) and a disposable Nextcloud Docker container. +### 🧪 Running tests +Unit and component tests run with [Vitest](https://vitest.dev): execute `npm run test`. -Build the app once, then run the tests: - -```sh -npm ci -npx playwright install chromium -TESTING=true npm run build -npm run test:e2e -``` - -`npm run test:e2e:ui` opens the interactive UI. The Nextcloud container is started automatically by `playwright/start-server.mjs` (port 8081) and reused between local runs; set `PLAYWRIGHT_BASE_URL` to target an existing instance instead. +End-to-end tests run with [Playwright](https://playwright.dev) and require Docker to spin up a Nextcloud instance. Start the test server with `npm run playwright:start-nextcloud`, then run the tests with `npm run playwright`. ## API diff --git a/REUSE.toml b/REUSE.toml index 8b02d3eca..a204dab26 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -36,7 +36,7 @@ SPDX-FileCopyrightText = "2023 Nextcloud GmbH and Nextcloud contributors" SPDX-License-Identifier = "AGPL-3.0-or-later" [[annotations]] -path = [".eslintrc.json"] +path = ["eslint.config.js", "stylelint.config.cjs", "rector.php"] precedence = "aggregate" SPDX-FileCopyrightText = "2024 Nextcloud GmbH and Nextcloud contributors" SPDX-License-Identifier = "AGPL-3.0-or-later" @@ -83,12 +83,6 @@ precedence = "aggregate" SPDX-FileCopyrightText = "2012 AnRo0002 " SPDX-License-Identifier = "CC0-1.0" -[[annotations]] -path = ["playwright/fixtures/test-card.mp4", "playwright/fixtures/test-card.png"] -precedence = "aggregate" -SPDX-FileCopyrightText = "2023 Bulgarian National Television " -SPDX-License-Identifier = "CC0-1.0" - [[annotations]] path = ["playwright/fixtures/audio.mp3", "playwright/fixtures/audio.ogg"] precedence = "aggregate" @@ -102,17 +96,11 @@ SPDX-FileCopyrightText = "2013 Wilfredor "; inherits: true; initial-value: 34px;}@property --default-grid-baseline{syntax: ""; inherits: true; initial-value: 4px;}.image-editor[data-v-5225c517]{--color-main-text: #f2f2f7;--color-main-background: #141416;--color-background-hover: rgba(255, 255, 255, .08);--color-background-dark: rgba(255, 255, 255, .14);--color-border: rgba(255, 255, 255, .09);--color-element-hover: rgba(255, 255, 255, .08);--editor-glass: rgba(20, 20, 26, .6);font-size:13px;position:relative;height:100%;width:100%;overflow:hidden;color:var(--color-main-text);background-color:var(--color-main-background);container:editor/size}.image-editor[data-v-5225c517],.image-editor[data-v-5225c517] *,.image-editor[data-v-5225c517] *:before,.image-editor[data-v-5225c517] *:after{box-sizing:border-box}.image-editor__shell[data-v-5225c517]{position:relative;height:100%;width:100%}.image-editor[data-v-5225c517]:before{content:"";position:absolute;inset:-10%;background-image:var(--editor-backdrop);background-size:cover;background-position:center;filter:blur(64px) saturate(1.3) brightness(.55);transform:scale(1.15)}.image-editor__frame[data-v-5225c517]{position:relative;height:100%;width:100%;overflow:hidden;background:#0e0e128c;-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px)}.image-editor__viewport[data-v-5225c517]{position:absolute;inset:0;padding:56px 16px 16px}@container editor (max-width: 600px){.image-editor__viewport[data-v-5225c517]{padding:56px 8px 8px}.image-editor .image-editor__controls[data-v-5225c517]{inset-inline:8px;transform:none;min-width:0;max-width:none;width:auto}.image-editor .image-editor__strip[data-v-5225c517]{flex-direction:row;inset-inline:8px;inset-block-start:auto;inset-block-end:calc(var(--default-grid-baseline) * 4);transform:none;max-height:none;overflow-x:auto;overflow-y:hidden}.image-editor .image-editor__rail[data-v-5225c517]{inset-inline-start:var(--default-grid-baseline);inset-block-start:64px;transform:none;max-height:calc(100% - 240px);overflow-y:auto;padding:var(--default-grid-baseline);background:var(--editor-glass);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);border:1px solid rgba(255,255,255,.09);border-radius:var(--border-radius-large, 12px)}}.image-editor__canvas[data-v-5225c517]{height:100%;width:100%;touch-action:none}.image-editor__topbar[data-v-5225c517]{position:absolute;inset-block-start:0;inset-inline:0;background:linear-gradient(rgba(8,8,12,.5),transparent)}.image-editor__rail[data-v-5225c517]{position:absolute;inset-inline-start:calc(var(--default-grid-baseline) * 4);inset-block-start:50%;transform:translateY(-50%)}.image-editor__controls[data-v-5225c517]{position:absolute;inset-block-end:calc(var(--default-grid-baseline) * 5);inset-inline-start:50%;transform:translate(-50%)}.image-editor__strip[data-v-5225c517]{position:absolute;inset-inline-end:calc(var(--default-grid-baseline) * 4);inset-block-start:50%;transform:translateY(-50%);max-height:calc(100% - 160px)}.image-editor .hidden-visually[data-v-5225c517]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.image-editor__loading[data-v-5225c517]{position:absolute;inset:0;margin:auto}.image-editor__error[data-v-5225c517]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--default-grid-baseline) * 3);text-align:center;padding:calc(var(--default-grid-baseline) * 4)}.image-editor__error p[data-v-5225c517]{margin:0;opacity:.85}.viewer__image-editor[data-v-f21f14ab]{position:fixed;inset:0;z-index:10102} diff --git a/css/NcActionButton-BjaRp7qa.chunk.css b/css/NcActionButton-BjaRp7qa.chunk.css deleted file mode 100644 index de3a161e9..000000000 --- a/css/NcActionButton-BjaRp7qa.chunk.css +++ /dev/null @@ -1 +0,0 @@ -.material-design-icon[data-v-ab2ff78b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-ab2ff78b]:hover,li.action.active[data-v-ab2ff78b]{border-radius:6px;padding:0}li.action[data-v-ab2ff78b]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-ab2ff78b]{pointer-events:none;opacity:.5}.action--disabled[data-v-ab2ff78b]:hover,.action--disabled[data-v-ab2ff78b]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-ab2ff78b]{opacity:1!important}.action-button[data-v-ab2ff78b]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-button>span[data-v-ab2ff78b]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-ab2ff78b]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-ab2ff78b] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-button[data-v-ab2ff78b] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button__longtext-wrapper[data-v-ab2ff78b],.action-button__longtext[data-v-ab2ff78b]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-ab2ff78b]{cursor:pointer;white-space:pre-wrap!important}.action-button__name[data-v-ab2ff78b]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-button__description[data-v-ab2ff78b]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-button__menu-icon[data-v-ab2ff78b],.action-button__pressed-icon[data-v-ab2ff78b]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action-button *[data-v-ab2ff78b]{cursor:pointer} diff --git a/css/NcActionLink-DqmJtdZG.chunk.css b/css/NcActionLink-DqmJtdZG.chunk.css deleted file mode 100644 index 29c42e8f4..000000000 --- a/css/NcActionLink-DqmJtdZG.chunk.css +++ /dev/null @@ -1 +0,0 @@ -.material-design-icon[data-v-b7a160c7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-b7a160c7]:hover,li.action.active[data-v-b7a160c7]{border-radius:6px;padding:0}li.action[data-v-b7a160c7]:hover{background-color:var(--color-background-hover)}.action-link[data-v-b7a160c7]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-link>span[data-v-b7a160c7]{cursor:pointer;white-space:nowrap}.action-link__icon[data-v-b7a160c7]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-link[data-v-b7a160c7] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-link[data-v-b7a160c7] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-link__longtext-wrapper[data-v-b7a160c7],.action-link__longtext[data-v-b7a160c7]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-link__longtext[data-v-b7a160c7]{cursor:pointer;white-space:pre-wrap!important}.action-link__name[data-v-b7a160c7]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-link__description[data-v-b7a160c7]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-link__menu-icon[data-v-b7a160c7]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)} diff --git a/css/NcIconSvgWrapper-Bui9PhAS-3xIBDiQU.chunk.css b/css/NcIconSvgWrapper-Bui9PhAS-3xIBDiQU.chunk.css deleted file mode 100644 index cb356c24f..000000000 --- a/css/NcIconSvgWrapper-Bui9PhAS-3xIBDiQU.chunk.css +++ /dev/null @@ -1 +0,0 @@ -.material-design-icon[data-v-4625d649]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-4625d649]{--icon-size: var(--dad67fa8);display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue--inline[data-v-4625d649]{display:inline-flex;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-4625d649]{line-height:0}.icon-vue[data-v-4625d649] svg{fill:currentColor;width:var(--icon-size, 20px);height:var(--icon-size, 20px);max-width:var(--icon-size, 20px);max-height:var(--icon-size, 20px)}.icon-vue--directional[data-v-4625d649] svg:dir(rtl){transform:scaleX(-1)} diff --git a/css/NcModal-Cv5qtEVN.chunk.css b/css/NcModal-Cv5qtEVN.chunk.css deleted file mode 100644 index ce376bd52..000000000 --- a/css/NcModal-Cv5qtEVN.chunk.css +++ /dev/null @@ -1 +0,0 @@ -.material-design-icon[data-v-29ac0caf]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-29ac0caf]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element, calc(var(--button-size) / 2));--button-padding-default: clamp(var(--default-grid-baseline), var(--button-radius), calc(var(--default-grid-baseline) * 4));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:var(--font-weight-element, bold)}.button-vue--size-small[data-v-29ac0caf]{--button-size: var(--clickable-area-small, 24px);--button-radius: var(--border-radius)}.button-vue--size-large[data-v-29ac0caf]{--button-size: var(--clickable-area-large, 48px)}.button-vue[data-v-29ac0caf],.button-vue[data-v-29ac0caf] *{cursor:pointer}.button-vue[data-v-29ac0caf]:focus{outline:none}.button-vue[data-v-29ac0caf]:disabled{cursor:default;opacity:.5;filter:saturate(.7)}.button-vue[data-v-29ac0caf]:disabled *{cursor:default}.button-vue[data-v-29ac0caf]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-29ac0caf]:active:not(:disabled){background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-29ac0caf]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-29ac0caf]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-29ac0caf]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-29ac0caf]{flex-direction:row-reverse}.button-vue--reverse.button-vue--icon-and-text[data-v-29ac0caf]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-29ac0caf]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue--size-small .button-vue__icon[data-v-29ac0caf]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-29ac0caf] svg{height:16px;width:16px}.button-vue__text[data-v-29ac0caf]{font-weight:var(--font-weight-element, bold);margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue--icon-only[data-v-29ac0caf]{--button-padding: clamp(var(--default-grid-baseline), var(--button-radius), calc(var(--default-grid-baseline) * 4));line-height:1;width:var(--button-size)!important}.button-vue--text-only[data-v-29ac0caf]{--button-padding: var(--button-padding-default)}.button-vue--text-only .button-vue__text[data-v-29ac0caf]{margin-inline:4px}.button-vue--wide[data-v-29ac0caf]{width:100%}.button-vue[data-v-29ac0caf]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-29ac0caf]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element, var(--border-radius));background-color:transparent}.button-vue--vue-primary[data-v-29ac0caf]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--vue-primary[data-v-29ac0caf]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-29ac0caf]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-29ac0caf]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--vue-secondary[data-v-29ac0caf]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-29ac0caf],.button-vue--vue-tertiary[data-v-29ac0caf]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-29ac0caf]:hover:not(:disabled),.button-vue--vue-tertiary[data-v-29ac0caf]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary[data-v-29ac0caf]:not(.button-vue--legacy34):hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.button-vue--vue-tertiary-no-background[data-v-29ac0caf]:hover:not(:disabled){background-color:transparent}.button-vue--vue-tertiary-on-primary[data-v-29ac0caf]{color:var(--color-primary-element-text)}.button-vue--vue-tertiary-on-primary[data-v-29ac0caf]:hover:not(:disabled){background-color:transparent}.button-vue--vue-success[data-v-29ac0caf]{background-color:var(--color-success);border-color:var(--color-success-hover);color:var(--color-success-text)}.button-vue--vue-success[data-v-29ac0caf]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-29ac0caf]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-29ac0caf]{background-color:var(--color-warning);border-color:var(--color-warning-hover);color:var(--color-warning-text)}.button-vue--vue-warning[data-v-29ac0caf]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-29ac0caf]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-29ac0caf]{background-color:var(--color-error);border-color:var(--color-error-hover);color:var(--color-error-text)}.button-vue--vue-error[data-v-29ac0caf]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-29ac0caf]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-29ac0caf]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--vue-error[data-v-29ac0caf],.button-vue--legacy.button-vue--vue-success[data-v-29ac0caf],.button-vue--legacy.button-vue--vue-warning[data-v-29ac0caf]{color:#fff}.material-design-icon[data-v-38a26e61]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-38a26e61]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-38a26e61]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-38a26e61]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-38a26e61]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-38a26e61]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-38a26e61]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-38a26e61]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-38a26e61]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-38a26e61]{background-color:var(--open-background-color)}.action-item__menutoggle__icon[data-v-38a26e61]{width:20px;height:20px;object-fit:contain}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-nc-popover-8.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-large)}.v-popper--theme-nc-popover-8.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-large);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_iOqZb{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_HuRfU.v-popper--theme-nc-popover-8 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_HuRfU.v-popper--theme-nc-popover-8 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-large)}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-large);overflow:hidden;background:var(--color-main-background)}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:transparent;border-width:10px}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-9px;border-bottom-width:0;border-top-color:var(--color-main-background)}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-9px;border-top-width:0;border-bottom-color:var(--color-main-background)}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-9px;border-left-width:0;border-right-color:var(--color-main-background)}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-9px;border-right-width:0;border-left-color:var(--color-main-background)}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_HuRfU.v-popper--theme-nc-popover-8.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}.material-design-icon[data-v-01926ad2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-01926ad2]{--backdrop-color: 0, 0, 0;--icon-size: 20px;--slideshow-duration: var(--476657af);position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;background-color:rgba(var(--backdrop-color),.5)}.modal-mask--opaque[data-v-01926ad2]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-01926ad2]{--backdrop-color: 255, 255, 255}.modal-header[data-v-01926ad2]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:space-between;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-01926ad2]{overflow-x:hidden;box-sizing:border-box;width:100%;padding-inline:12px 0;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width: 1024px){.modal-header__name[data-v-01926ad2]{padding-inline-start:calc(var(--header-height) * var(--19158013));text-align:center}}.modal-header .icons-menu[data-v-01926ad2]{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end}.modal-header .icons-menu .header-close[data-v-01926ad2]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-01926ad2]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-01926ad2],.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-01926ad2],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-01926ad2],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-01926ad2]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__play[data-v-01926ad2],.modal-header .icons-menu .play-pause-icons__pause[data-v-01926ad2]{box-sizing:border-box;width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-01926ad2] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-01926ad2] .action-item--single{box-sizing:border-box;width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-01926ad2] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-header .icons-menu[data-v-01926ad2] .action-item__menutoggle{padding:0}.modal-header .icons-menu[data-v-01926ad2] .action-item__menutoggle span,.modal-header .icons-menu[data-v-01926ad2] .action-item__menutoggle svg{width:var(--icon-size);height:var(--icon-size)}.modal-wrapper[data-v-01926ad2]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-01926ad2],.modal-wrapper .next[data-v-01926ad2]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-01926ad2]:focus-visible,.modal-wrapper .next[data-v-01926ad2]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-01926ad2]{inset-inline-start:2px}.modal-wrapper .next[data-v-01926ad2]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-01926ad2]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container, var(--border-radius-rounded));background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003}.modal-wrapper .modal-container__close[data-v-01926ad2]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-01926ad2]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-01926ad2]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--normal>.modal-container[data-v-01926ad2]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--large>.modal-container[data-v-01926ad2]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--full>.modal-container[data-v-01926ad2]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}@media only screen and ((max-width: 512px) or (max-height: 400px)){.modal-wrapper .modal-container[data-v-01926ad2]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}}.fade-enter-active[data-v-01926ad2],.fade-leave-active[data-v-01926ad2]{transition:opacity .25s}.fade-enter[data-v-01926ad2],.fade-leave-to[data-v-01926ad2]{opacity:0}.fade-visibility-enter[data-v-01926ad2],.fade-visibility-leave-to[data-v-01926ad2]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-01926ad2],.modal-in-leave-active[data-v-01926ad2],.modal-out-enter-active[data-v-01926ad2],.modal-out-leave-active[data-v-01926ad2]{transition:opacity .25s}.modal-in-enter[data-v-01926ad2],.modal-in-leave-to[data-v-01926ad2],.modal-out-enter[data-v-01926ad2],.modal-out-leave-to[data-v-01926ad2]{opacity:0}.modal-in-enter .modal-container[data-v-01926ad2],.modal-in-leave-to .modal-container[data-v-01926ad2]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-01926ad2],.modal-out-leave-to .modal-container[data-v-01926ad2]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-01926ad2]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-01926ad2]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-01926ad2 linear var(--slideshow-duration) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .icon-pause[data-v-01926ad2]{animation:breath-01926ad2 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-01926ad2]{animation-play-state:paused!important}@keyframes progressring-01926ad2{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-01926ad2{0%{opacity:1}50%{opacity:0}to{opacity:1}} diff --git a/css/index-CS3F8E0B.chunk.css b/css/index-CS3F8E0B.chunk.css deleted file mode 100644 index e18a1f1c9..000000000 --- a/css/index-CS3F8E0B.chunk.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(fonts/roboto-cyrillic-ext-400-normal.woff2) format("woff2"),url(fonts/roboto-cyrillic-ext-400-normal.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(fonts/roboto-cyrillic-400-normal.woff2) format("woff2"),url(fonts/roboto-cyrillic-400-normal.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAXEAA8AAAAABxQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABQAAAAUAA8ACUdQT1MAAAFsAAAAHgAAAB5EdEx1R1NVQgAAAYwAAAAzAAAANJMNggJPUy8yAAABwAAAAE0AAABgdArg2VNUQVQAAAIQAAAASQAAAF5e+0M1Y21hcAAAAlwAAABAAAAAXj5j4n9nYXNwAAACnAAAAAwAAAAMAAgAGWdseWYAAAKoAAABNgAAATZnhEGkaGVhZAAAA+AAAAA2AAAANglAYTFoaGVhAAAEGAAAAB8AAAAkCroFqmhtdHgAAAQ4AAAAHwAAACQX6f/DbG9jYQAABFgAAAATAAAAFAFZAbFtYXhwAAAEbAAAABwAAAAgACkBIW5hbWUAAASIAAABJQAAAng3dGTWcG9zdAAABbAAAAATAAAAIP9tAGQAAQAAAAwAAAAAAAAAAQAIAAEAAQABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAeNpjYGRgYOBiMAJCFhc3nxAGueTKohwGqfSi1GwGqZzEkjwGKQYQYAER//+DSADdjQkeAHjaY2BhaWecwMDKwMA6i9WYgYFRHkIzX2RIY2JgYABiKHAACjIgAXd/f3eQoLwvG8M/BoY09llMDAoMjPNBcixWrBuAlAIDMwDj2QowAAAAeNoNx7EBQVEQALDcPdDCAgAwFADowBoGMpzfJUJoKegpWMnP/nmO4HM6P4O4PDf3SKmhYyCQMbVHEZUb8SV/KLL6DAR/orwHzQAAAHjaY2BgYAJiZiAWAZKMYJqFwQtI8zFwAOXYwCp4GRQYFsj7/v8P5KHwQTr+f/v/5H/6g91g3TwMCMAEANCmDfkAAQACAAgACP//AA8ABQBkAAADKAWwAAMABgAJAAwADwAAAREhEQUBASUJAyEJAgMo/TwCjv7vARH9qAEN/vMBKv7+AgP9/QECAQEFsPpQBbBU/Xz9fAwCeAJ4/UT9ogVE/aICXgAAAgB3/+wFCgXEABUAKwAAARUUAgYGIyImJgI1NTQSNjYzMhYWEgM1NC4CIyIOAhUVFB4CMzI+AgUKUprXhYHXnVZVnNeBhdebU781ZpNdWpFnODhpkVpekmU0AwZcpP78tmBgtgEEpFykAQO3YGC3/v3/AF6CyIhGRojIgl6DyYlGRonJAAACAHAEcQLJBdcABQAPAAABNRMzFQMlNTMVFBYXByYmAZJ0w9/+hqcqKklWXASEEQFCFf7C/lVPSGgtOi2P///+eP/sBVAF1gAmAAVGAAAHAAb+CP//AAAAAQAAAAMCTqtYHyJfDzz1ABsIAAAAAADE8BEuAAAAAOHUAm/6Gv3VCTEIcwAAAAkAAgAAAAAAAHjaY2BkYGDP+cfDwMDp9UvqnxenIVAEFXACAG+cBHIAeNpj7mFIYYACxj8QzNrIUM6syFAAZh//VwEAaU4HvgB42mNgYNCFwwKGfiCcDQATpAMLAHjaY2BkYGDgZFjJIMpQxsAO5iEAMwMjAB3kAUt42n2QRVYDQBBEK+7Z4e7uDhvcXbdxd88VuAt6Dq6E1BsaJ3ljv2tm2gA4cQsdNHoL+VFTL6yBXWMX1vLNi7AOk3gS1qMZ98IG9OJa2Eg9IezELObfWQPYMSysgRWdwlrqtcLGr1iaPupW4X4ScIok4nDT+yEpoziGHeTUGYYXV9x9tEMkPzlIyoGLI4UsFjHGkST76SVASiAnf6kgy31U+Q6qaB6uHNcILT+1PN+6eXtJK8PXYeWhHVP8Nc6xgCVak6RJTP/w0P7Tw48fWzji2CJVi/nb+nq5pioqU5WKJYcJjnacU/Gj/Vc2x3ydRIQ3XvV+hZ7ZKVV7lnb/n64FEVYv8vQyCi9fxpWa5AgyK/9nP7PUMz8q8aqssxxh8sAbFBtciwAAAHjaY2BmAIP/WQwpDFgAACofAdEA) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(fonts/roboto-greek-400-normal.woff2) format("woff2"),url(fonts/roboto-greek-400-normal.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(fonts/roboto-math-400-normal.woff2) format("woff2"),url(fonts/roboto-math-400-normal.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(fonts/roboto-symbols-400-normal.woff2) format("woff2"),url(fonts/roboto-symbols-400-normal.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(fonts/roboto-vietnamese-400-normal.woff2) format("woff2"),url(fonts/roboto-vietnamese-400-normal.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(fonts/roboto-latin-ext-400-normal.woff2) format("woff2"),url(fonts/roboto-latin-ext-400-normal.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(fonts/roboto-latin-400-normal.woff2) format("woff2"),url(fonts/roboto-latin-400-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} diff --git a/css/init-Pfn7QR6a.chunk.css b/css/init-Pfn7QR6a.chunk.css deleted file mode 100644 index 26d69f80f..000000000 --- a/css/init-Pfn7QR6a.chunk.css +++ /dev/null @@ -1,7 +0,0 @@ -@charset "UTF-8";.material-design-icon[data-v-d5482fd6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-button-group-base>div[data-v-d5482fd6]{text-align:center;color:var(--color-text-maxcontrast)}.nc-button-group-base ul.nc-button-group-content[data-v-d5482fd6]{display:flex;gap:4px;justify-content:space-between}.nc-button-group-base ul.nc-button-group-content[data-v-d5482fd6] li{flex:1 1}.nc-button-group-base ul.nc-button-group-content[data-v-d5482fd6] .action-button{padding:0!important;width:100%;display:flex;justify-content:center}.nc-button-group-base ul.nc-button-group-content[data-v-d5482fd6] .action-button.action-button--active{background-color:var(--color-primary-element);border-radius:var(--border-radius-large);color:var(--color-primary-element-text)}.nc-button-group-base ul.nc-button-group-content[data-v-d5482fd6] .action-button.action-button--active:hover,.nc-button-group-base ul.nc-button-group-content[data-v-d5482fd6] .action-button.action-button--active:focus,.nc-button-group-base ul.nc-button-group-content[data-v-d5482fd6] .action-button.action-button--active:focus-within{background-color:var(--color-primary-element-hover)}.nc-button-group-base ul.nc-button-group-content[data-v-d5482fd6] .action-button .action-button__pressed-icon{display:none}.material-design-icon[data-v-7bf21eca]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-7bf21eca]{color:var(--color-text-maxcontrast);line-height:var(--default-clickable-area);white-space:nowrap;text-overflow:ellipsis;box-shadow:none!important;-webkit-user-select:none;user-select:none;pointer-events:none;margin-inline-start:12px;padding-inline-end:14px;height:var(--default-clickable-area);display:flex;align-items:center}.material-design-icon[data-v-7fbb3c95]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-7fbb3c95]:hover,li.action.active[data-v-7fbb3c95]{border-radius:6px;padding:0}li.action[data-v-7fbb3c95]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-7fbb3c95]{pointer-events:none;opacity:.5}.action--disabled[data-v-7fbb3c95]:hover,.action--disabled[data-v-7fbb3c95]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-7fbb3c95]{opacity:1!important}.action-checkbox[data-v-7fbb3c95]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-checkbox>span[data-v-7fbb3c95]{cursor:pointer;white-space:nowrap}.action-checkbox__icon[data-v-7fbb3c95]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-checkbox[data-v-7fbb3c95] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-checkbox[data-v-7fbb3c95] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-checkbox__longtext-wrapper[data-v-7fbb3c95],.action-checkbox__longtext[data-v-7fbb3c95]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-checkbox__longtext[data-v-7fbb3c95]{cursor:pointer;white-space:pre-wrap!important}.action-checkbox__name[data-v-7fbb3c95]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-checkbox__description[data-v-7fbb3c95]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-checkbox__menu-icon[data-v-7fbb3c95]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action[data-v-7fbb3c95]:has(:focus-visible){outline:2px solid currentColor}.action-checkbox__icon[data-v-7fbb3c95]{color:var(--color-primary-element)}.action-checkbox__input[data-v-7fbb3c95]{width:20px;height:20px;margin:auto;position:absolute;z-index:-1;opacity:0!important}.material-design-icon[data-v-7f2f2ad1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-7f2f2ad1]:not(.button-vue),input[data-v-7f2f2ad1]:not([type=range]),textarea[data-v-7f2f2ad1]{margin:0;padding:7px 6px;cursor:text;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-radius:var(--border-radius);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-7f2f2ad1]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-7f2f2ad1]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-7f2f2ad1],input[data-v-7f2f2ad1]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-7f2f2ad1]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-7f2f2ad1],textarea[data-v-7f2f2ad1]:not(:disabled):not(.primary):hover,textarea[data-v-7f2f2ad1]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-7f2f2ad1]{border-color:var(--color-primary-element);outline:none}button[data-v-7f2f2ad1]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-7f2f2ad1]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-7f2f2ad1]:not(:disabled):not(.primary):active{color:var(--color-text-light);outline:none;background-color:var(--color-main-background)}button[data-v-7f2f2ad1]:not(.button-vue):disabled,input[data-v-7f2f2ad1]:not([type=range]):disabled,textarea[data-v-7f2f2ad1]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-7f2f2ad1]:not(.button-vue):required,input[data-v-7f2f2ad1]:not([type=range]):required,textarea[data-v-7f2f2ad1]:required{box-shadow:none}button[data-v-7f2f2ad1]:not(.button-vue):invalid,input[data-v-7f2f2ad1]:not([type=range]):invalid,textarea[data-v-7f2f2ad1]:invalid{border-color:var(--color-border-error, var(--color-error));box-shadow:none!important}button:not(.button-vue).primary[data-v-7f2f2ad1],input:not([type=range]).primary[data-v-7f2f2ad1],textarea.primary[data-v-7f2f2ad1]{cursor:pointer;color:var(--color-primary-element-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-7f2f2ad1]:not(:disabled):hover,button:not(.button-vue).primary[data-v-7f2f2ad1]:not(:disabled):focus,button:not(.button-vue).primary[data-v-7f2f2ad1]:not(:disabled):active,input:not([type=range]).primary[data-v-7f2f2ad1]:not(:disabled):hover,input:not([type=range]).primary[data-v-7f2f2ad1]:not(:disabled):focus,input:not([type=range]).primary[data-v-7f2f2ad1]:not(:disabled):active,textarea.primary[data-v-7f2f2ad1]:not(:disabled):hover,textarea.primary[data-v-7f2f2ad1]:not(:disabled):focus,textarea.primary[data-v-7f2f2ad1]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-7f2f2ad1]:not(:disabled):active,input:not([type=range]).primary[data-v-7f2f2ad1]:not(:disabled):active,textarea.primary[data-v-7f2f2ad1]:not(:disabled):active{color:var(--color-primary-element-text-dark)}button:not(.button-vue).primary[data-v-7f2f2ad1]:disabled,input:not([type=range]).primary[data-v-7f2f2ad1]:disabled,textarea.primary[data-v-7f2f2ad1]:disabled{cursor:default;color:var(--color-primary-element-text-dark);background-color:var(--color-primary-element)}li.action[data-v-7f2f2ad1]:hover,li.action.active[data-v-7f2f2ad1]{border-radius:6px;padding:0}li.action[data-v-7f2f2ad1]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-7f2f2ad1]{pointer-events:none;opacity:.5}.action--disabled[data-v-7f2f2ad1]:hover,.action--disabled[data-v-7f2f2ad1]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-7f2f2ad1]{opacity:1!important}.action-input[data-v-7f2f2ad1]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-default, normal)}.action-input__icon-wrapper[data-v-7f2f2ad1]{display:flex;align-self:center;align-items:center;justify-content:center}.action-input__icon-wrapper[data-v-7f2f2ad1] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-input__icon-wrapper[data-v-7f2f2ad1] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-input>span[data-v-7f2f2ad1]{cursor:pointer;white-space:nowrap}.action-input__icon[data-v-7f2f2ad1]{min-width:0;min-height:0;padding:calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px}.action-input__form[data-v-7f2f2ad1]{display:flex;align-items:center;flex:1 1 auto;margin:4px 0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.action-input__container[data-v-7f2f2ad1]{position:relative;width:100%}.action-input__input-container[data-v-7f2f2ad1]{display:flex}.action-input__input-container .colorpicker__trigger[data-v-7f2f2ad1],.action-input__input-container .colorpicker__preview[data-v-7f2f2ad1]{width:100%}.action-input__input-container .colorpicker__preview[data-v-7f2f2ad1]{width:100%;height:36px;border-radius:var(--border-radius-large);border:2px solid var(--color-border-maxcontrast);box-shadow:none!important}.action-input__text-label[data-v-7f2f2ad1]{padding:4px 0;display:block}.action-input__text-label--hidden[data-v-7f2f2ad1]{position:absolute;inset-inline-start:0;width:1px;height:1px;overflow:hidden;z-index:-1;opacity:0}.action-input__datetimepicker[data-v-7f2f2ad1]{width:100%}.action-input__datetimepicker[data-v-7f2f2ad1] .mx-input{margin:0}.action-input__multi[data-v-7f2f2ad1]{width:100%}li:last-child>.action-input[data-v-7f2f2ad1]{padding-bottom:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}li:first-child>.action-input[data-v-7f2f2ad1]:not(.action-input--visible-label){padding-top:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}.material-design-icon[data-v-6c1feae8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.native-datetime-picker[data-v-6c1feae8]{display:flex;flex-direction:column}.native-datetime-picker .native-datetime-picker--label[data-v-6c1feae8]{margin-block-end:2px}.native-datetime-picker .native-datetime-picker--input[data-v-6c1feae8]{--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));width:100%;flex:0 0 auto;margin:0;padding-inline-start:calc(var(--border-radius-large) + var(--input-border-width-offset));padding-inline-end:calc(var(--default-grid-baseline) + var(--input-border-width-offset));border:var(--border-width-input, 2px) solid var(--color-border-maxcontrast)}.native-datetime-picker .native-datetime-picker--input[data-v-6c1feae8]:active:not([disabled]),.native-datetime-picker .native-datetime-picker--input[data-v-6c1feae8]:hover:not([disabled]),.native-datetime-picker .native-datetime-picker--input[data-v-6c1feae8]:focus:not([disabled]),.native-datetime-picker .native-datetime-picker--input[data-v-6c1feae8]:focus-within:not([disabled]){border-color:var(--color-main-text);border-width:var(--border-width-input-focused, 2px);box-shadow:0 0 0 2px var(--color-main-background)!important;--input-border-width-offset: 0px}[data-theme-light] .native-datetime-picker--input[data-v-6c1feae8],[data-themes*=light] .native-datetime-picker--input[data-v-6c1feae8]{color-scheme:light}[data-theme-dark] .native-datetime-picker--input[data-v-6c1feae8],[data-themes*=dark] .native-datetime-picker--input[data-v-6c1feae8]{color-scheme:dark}@media (prefers-color-scheme: light){[data-theme-default] .native-datetime-picker--input[data-v-6c1feae8],[data-themes*=default] .native-datetime-picker--input[data-v-6c1feae8]{color-scheme:light}}@media (prefers-color-scheme: dark){[data-theme-default] .native-datetime-picker--input[data-v-6c1feae8],[data-themes*=default] .native-datetime-picker--input[data-v-6c1feae8]{color-scheme:dark}}.material-design-icon[data-v-0800cef1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}[data-v-0800cef1] .password-field__input--secure-text{-webkit-text-security:disc}.material-design-icon[data-v-17c3f609]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.input-field[data-v-17c3f609]{--input-border-color: var(--color-border-maxcontrast);--input-border-radius: var(--border-radius-element);--input-padding-start: var(--border-radius-large);--input-padding-end: var(--border-radius-large);position:relative;width:100%;margin-block-start:6px}.input-field--disabled[data-v-17c3f609]{opacity:.4;filter:saturate(.4)}.input-field--label-outside[data-v-17c3f609]{margin-block-start:0}.input-field--leading-icon[data-v-17c3f609]{--input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--trailing-icon[data-v-17c3f609]{--input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--pill[data-v-17c3f609]{--input-border-radius: var(--border-radius-pill)}.input-field__main-wrapper[data-v-17c3f609]{height:var(--default-clickable-area);padding:var(--border-width-input-focused, 2px);position:relative}.input-field__input[data-v-17c3f609]{--input-border-box-shadow-light: 0 -1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.input-field__input[data-v-17c3f609]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}@media (prefers-color-scheme: dark){.input-field__input .input-field__input[data-v-17c3f609]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .input-field__input[data-v-17c3f609]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .input-field__input[data-v-17c3f609]{--input-border-box-shadow: var(--input-border-box-shadow-light)}.input-field--legacy .input-field__input[data-v-17c3f609]{box-shadow:0 0 0 1px var(--input-border-color)}.input-field--legacy .input-field__input[data-v-17c3f609]:hover:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color)}.input-field__input[data-v-17c3f609]:focus-within:not([disabled]),.input-field__input[data-v-17c3f609]:active:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color),0 0 0 4px var(--color-main-background)!important}.input-field__input[data-v-17c3f609]{background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--input-border-radius);cursor:pointer;-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important;font-size:var(--default-font-size);text-overflow:ellipsis;padding-block:0;padding-inline:var(--input-padding-start) var(--input-padding-end);height:100%!important;min-height:unset;width:100%}.input-field__input[data-v-17c3f609]::placeholder{color:var(--color-text-maxcontrast)}.input-field__input[data-v-17c3f609]::-webkit-search-cancel-button{display:none}.input-field__input[data-v-17c3f609]::-webkit-search-decoration,.input-field__input[data-v-17c3f609]::-webkit-search-results-button,.input-field__input[data-v-17c3f609]::-webkit-search-results-decoration,.input-field__input[data-v-17c3f609]::-ms-clear{display:none}.input-field__input[data-v-17c3f609]:active:not([disabled]),.input-field__input[data-v-17c3f609]:focus:not([disabled]){--input-border-color: var(--color-main-text)}.input-field__input:focus+.input-field__label[data-v-17c3f609],.input-field__input:hover:not(:placeholder-shown)+.input-field__label[data-v-17c3f609]{color:var(--color-main-text)}.input-field__input[data-v-17c3f609]:focus{cursor:text}.input-field__input[data-v-17c3f609]:disabled{cursor:default}.input-field__input[data-v-17c3f609]:focus-visible{box-shadow:unset!important}.input-field__input--success[data-v-17c3f609]{border-color:var(--color-border-success, var(--color-success))!important}.input-field__input--success[data-v-17c3f609]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field__input--error[data-v-17c3f609],.input-field__input[data-v-17c3f609]:user-invalid{border-color:var(--color-border-error, var(--color-error))!important}.input-field__input--error[data-v-17c3f609]:focus-visible,.input-field__input[data-v-17c3f609]:user-invalid:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field:not(.input-field--label-outside) .input-field__input[data-v-17c3f609]:not(:focus)::placeholder{opacity:0}.input-field__label[data-v-17c3f609]{--input-label-font-size: var(--default-font-size);position:absolute;margin-inline:var(--input-padding-start) var(--input-padding-end);max-width:fit-content;font-size:var(--input-label-font-size);inset-block-start:calc((var(--default-clickable-area) - 1lh) / 2);inset-inline:var(--border-width-input-focused, 2px);color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.input-field__input:focus+.input-field__label[data-v-17c3f609],.input-field__input:not(:placeholder-shown)+.input-field__label[data-v-17c3f609]{--input-label-font-size: 13px;line-height:1.5;inset-block-start:calc(-1.5 * var(--input-label-font-size) / 2);font-weight:var(--font-weight-element, 500);border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:var(--default-grid-baseline);margin-inline:calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.input-field__icon[data-v-17c3f609]{position:absolute;height:var(--default-clickable-area);width:var(--default-clickable-area);display:flex;align-items:center;justify-content:center;opacity:.7;inset-block-end:0}.input-field__icon--leading[data-v-17c3f609]{inset-inline-start:0px}.input-field__icon--trailing[data-v-17c3f609]{inset-inline-end:0px}.input-field__trailing-button[data-v-17c3f609]{--button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;--button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px))}.input-field__trailing-button.button-vue[data-v-17c3f609]{position:absolute;top:var(--border-width-input-focused, 2px);inset-inline-end:var(--border-width-input-focused, 2px)}.input-field__trailing-button.button-vue[data-v-17c3f609]:focus-visible{box-shadow:none!important}.input-field__helper-text-message[data-v-17c3f609]{padding-block:4px;padding-inline:var(--border-radius-large);display:flex;align-items:center;color:var(--color-text-maxcontrast);overflow-wrap:anywhere}.input-field__helper-text-message__icon[data-v-17c3f609]{margin-inline-end:8px}.input-field__helper-text-message--error[data-v-17c3f609]{color:var(--color-text-error, var(--color-error))}.input-field--error .input-field__input[data-v-17c3f609],.input-field__input[data-v-17c3f609]:user-invalid{--input-border-color: var(--color-border-error, var(--color-error)) !important}.input-field--error .input-field__input[data-v-17c3f609]:focus-visible,.input-field__input[data-v-17c3f609]:user-invalid:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field--success .input-field__input[data-v-17c3f609]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.input-field--success .input-field__input[data-v-17c3f609]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.material-design-icon[data-v-a3f0f3fe]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-a3f0f3fe]:hover,li.action.active[data-v-a3f0f3fe]{border-radius:6px;padding:0}li.action[data-v-a3f0f3fe]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-a3f0f3fe]{pointer-events:none;opacity:.5}.action--disabled[data-v-a3f0f3fe]:hover,.action--disabled[data-v-a3f0f3fe]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-a3f0f3fe]{opacity:1!important}.action-radio[data-v-a3f0f3fe]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-radio>span[data-v-a3f0f3fe]{cursor:pointer;white-space:nowrap}.action-radio__icon[data-v-a3f0f3fe]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-radio[data-v-a3f0f3fe] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-radio[data-v-a3f0f3fe] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-radio__longtext-wrapper[data-v-a3f0f3fe],.action-radio__longtext[data-v-a3f0f3fe]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-radio__longtext[data-v-a3f0f3fe]{cursor:pointer;white-space:pre-wrap!important}.action-radio__name[data-v-a3f0f3fe]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-radio__description[data-v-a3f0f3fe]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-radio__menu-icon[data-v-a3f0f3fe]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action[data-v-a3f0f3fe]:has(:focus-visible){outline:2px solid currentColor}.action-radio__icon[data-v-a3f0f3fe]{color:var(--color-primary-element)}.action-radio__input[data-v-a3f0f3fe]{width:20px;height:20px;margin:auto;position:absolute;z-index:-1;opacity:0!important}.material-design-icon[data-v-4dae1ff7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-4dae1ff7]:hover,li.action.active[data-v-4dae1ff7]{border-radius:6px;padding:0}li.action[data-v-4dae1ff7]:hover{background-color:var(--color-background-hover)}.action-router[data-v-4dae1ff7]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-router>span[data-v-4dae1ff7]{cursor:pointer;white-space:nowrap}.action-router__icon[data-v-4dae1ff7]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-router[data-v-4dae1ff7] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-router[data-v-4dae1ff7] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-router__longtext-wrapper[data-v-4dae1ff7],.action-router__longtext[data-v-4dae1ff7]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-router__longtext[data-v-4dae1ff7]{cursor:pointer;white-space:pre-wrap!important}.action-router__name[data-v-4dae1ff7]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-router__description[data-v-4dae1ff7]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-router__menu-icon[data-v-4dae1ff7]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action--disabled[data-v-4dae1ff7]{pointer-events:none;opacity:.5}.action--disabled[data-v-4dae1ff7]:hover,.action--disabled[data-v-4dae1ff7]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-4dae1ff7]{opacity:1!important}.material-design-icon[data-v-3e2324b7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-separator[data-v-3e2324b7]{height:0;margin:5px 10px 5px 15px;border-bottom:1px solid var(--color-border-dark);cursor:default}.material-design-icon[data-v-2fe7eb92]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-2fe7eb92]:hover,li.action.active[data-v-2fe7eb92]{border-radius:6px;padding:0}li.action[data-v-2fe7eb92]:hover{background-color:var(--color-background-hover)}.action-text[data-v-2fe7eb92]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-element, normal);font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-text>span[data-v-2fe7eb92]{cursor:pointer;white-space:nowrap}.action-text__icon[data-v-2fe7eb92]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-text[data-v-2fe7eb92] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-text[data-v-2fe7eb92] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text__longtext-wrapper[data-v-2fe7eb92],.action-text__longtext[data-v-2fe7eb92]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-text__longtext[data-v-2fe7eb92]{cursor:pointer;white-space:pre-wrap!important}.action-text__name[data-v-2fe7eb92]{font-weight:var(--font-weight-heading, bold);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-text__description[data-v-2fe7eb92]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);font-weight:var(--font-weight-default, normal);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-text__menu-icon[data-v-2fe7eb92]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action--disabled[data-v-2fe7eb92]{pointer-events:none;opacity:.5}.action--disabled[data-v-2fe7eb92]:hover,.action--disabled[data-v-2fe7eb92]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-2fe7eb92]{opacity:1!important}.action-text[data-v-2fe7eb92],.action-text span[data-v-2fe7eb92]{cursor:default}.material-design-icon[data-v-f1b01716]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-f1b01716]:not(.button-vue),input[data-v-f1b01716]:not([type=range]),textarea[data-v-f1b01716]{margin:0;padding:7px 6px;cursor:text;color:var(--color-text-lighter);border:1px solid var(--color-border-dark);border-radius:var(--border-radius);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-f1b01716]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-f1b01716]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-f1b01716],input[data-v-f1b01716]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-f1b01716]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-f1b01716],textarea[data-v-f1b01716]:not(:disabled):not(.primary):hover,textarea[data-v-f1b01716]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-f1b01716]{border-color:var(--color-primary-element);outline:none}button[data-v-f1b01716]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-f1b01716]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-f1b01716]:not(:disabled):not(.primary):active{color:var(--color-text-light);outline:none;background-color:var(--color-main-background)}button[data-v-f1b01716]:not(.button-vue):disabled,input[data-v-f1b01716]:not([type=range]):disabled,textarea[data-v-f1b01716]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-f1b01716]:not(.button-vue):required,input[data-v-f1b01716]:not([type=range]):required,textarea[data-v-f1b01716]:required{box-shadow:none}button[data-v-f1b01716]:not(.button-vue):invalid,input[data-v-f1b01716]:not([type=range]):invalid,textarea[data-v-f1b01716]:invalid{border-color:var(--color-border-error, var(--color-error));box-shadow:none!important}button:not(.button-vue).primary[data-v-f1b01716],input:not([type=range]).primary[data-v-f1b01716],textarea.primary[data-v-f1b01716]{cursor:pointer;color:var(--color-primary-element-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-f1b01716]:not(:disabled):hover,button:not(.button-vue).primary[data-v-f1b01716]:not(:disabled):focus,button:not(.button-vue).primary[data-v-f1b01716]:not(:disabled):active,input:not([type=range]).primary[data-v-f1b01716]:not(:disabled):hover,input:not([type=range]).primary[data-v-f1b01716]:not(:disabled):focus,input:not([type=range]).primary[data-v-f1b01716]:not(:disabled):active,textarea.primary[data-v-f1b01716]:not(:disabled):hover,textarea.primary[data-v-f1b01716]:not(:disabled):focus,textarea.primary[data-v-f1b01716]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-f1b01716]:not(:disabled):active,input:not([type=range]).primary[data-v-f1b01716]:not(:disabled):active,textarea.primary[data-v-f1b01716]:not(:disabled):active{color:var(--color-primary-element-text-dark)}button:not(.button-vue).primary[data-v-f1b01716]:disabled,input:not([type=range]).primary[data-v-f1b01716]:disabled,textarea.primary[data-v-f1b01716]:disabled{cursor:default;color:var(--color-primary-element-text-dark);background-color:var(--color-primary-element)}li.action[data-v-f1b01716]:hover,li.action.active[data-v-f1b01716]{border-radius:6px;padding:0}li.action[data-v-f1b01716]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-f1b01716]{pointer-events:none;opacity:.5}.action--disabled[data-v-f1b01716]:hover,.action--disabled[data-v-f1b01716]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-f1b01716]{opacity:1!important}.action-text-editable[data-v-f1b01716]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:var(--font-weight-default, normal);line-height:var(--default-clickable-area)}.action-text-editable>span[data-v-f1b01716]{cursor:pointer;white-space:nowrap}.action-text-editable__icon[data-v-f1b01716]{min-width:0;min-height:0;padding:calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px}.action-text-editable[data-v-f1b01716] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-text-editable[data-v-f1b01716] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text-editable__form[data-v-f1b01716]{display:flex;flex:1 1 auto;flex-direction:column;position:relative;margin:4px 0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.action-text-editable__submit[data-v-f1b01716]{position:absolute;inset-inline-start:0;top:auto;width:1px;height:1px;overflow:hidden;z-index:-1;opacity:0}.action-text-editable__label[data-v-f1b01716]{display:flex;align-items:center;justify-content:center;position:absolute;inset-inline-end:calc((var(--default-clickable-area) - 16px) / 2 + 1px);bottom:1px;width:calc(var(--default-clickable-area) - 8px);height:calc(var(--default-clickable-area) - 8px);box-sizing:border-box;margin:0;padding:7px 6px;border:0;border-radius:50%;background-color:var(--color-main-background);background-clip:padding-box}.action-text-editable__label[data-v-f1b01716],.action-text-editable__label *[data-v-f1b01716]{cursor:pointer}.action-text-editable__textarea[data-v-f1b01716]{flex:1 1 auto;color:inherit;border-color:var(--color-border-maxcontrast);min-height:calc(var(--default-clickable-area) * 2 - 8px);max-height:calc(var(--default-clickable-area) * 3 - 8px);min-width:calc(var(--default-clickable-area) * 4);width:100%!important;margin:0}.action-text-editable__textarea[data-v-f1b01716]:disabled{cursor:default}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid+.action-text-editable__label[data-v-f1b01716]{background-color:var(--color-error)}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-f1b01716]:active,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-f1b01716]:hover,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-f1b01716]:focus{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.action-text-editable__textarea:active:not(:disabled)+.action-text-editable__label[data-v-f1b01716],.action-text-editable__textarea:hover:not(:disabled)+.action-text-editable__label[data-v-f1b01716],.action-text-editable__textarea:focus:not(:disabled)+.action-text-editable__label[data-v-f1b01716]{z-index:2;border-color:var(--color-primary-element);border-inline-start-color:transparent}li:last-child>.action-text-editable[data-v-f1b01716]{margin-bottom:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}li:first-child>.action-text-editable[data-v-f1b01716]{margin-top:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}.material-design-icon[data-v-d0b1a8bc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-details-toggle[data-v-d0b1a8bc]{position:sticky;width:var(--default-clickable-area);height:var(--default-clickable-area);padding:calc((var(--default-clickable-area) - 16px) / 2);cursor:pointer;opacity:.6;transform:rotate(180deg);background-color:var(--color-main-background);z-index:2000;top:var(--app-navigation-padding);inset-inline-start:calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2)}.app-details-toggle--mobile[data-v-d0b1a8bc]{inset-inline-start:var(--app-navigation-padding)}.app-details-toggle[data-v-d0b1a8bc]:active,.app-details-toggle[data-v-d0b1a8bc]:hover,.app-details-toggle[data-v-d0b1a8bc]:focus{opacity:1}.material-design-icon[data-v-42ca73dd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-42ca73dd]{position:initial;z-index:1000;flex-basis:100vw;height:100%;margin:0!important;background-color:var(--color-main-background);min-width:0}.app-content[data-v-42ca73dd]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-42ca73dd]{position:relative;width:100%;height:100%}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-42ca73dd] .app-content-list{display:flex}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-42ca73dd] .app-content-details,.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-42ca73dd] .app-content-list{display:none}.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-42ca73dd] .app-content-details{display:block}[data-v-42ca73dd] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-42ca73dd] .splitpanes.default-theme .splitpanes__pane{background-color:transparent;transition:none}[data-v-42ca73dd] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky}@media only screen and (width < 1024px){[data-v-42ca73dd] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-42ca73dd] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width < 1024px){[data-v-42ca73dd] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-42ca73dd] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--color-main-background)}[data-v-42ca73dd] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-42ca73dd] .splitpanes.default-theme .splitpanes__splitter:after{background-color:var(--color-border)}[data-v-42ca73dd] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter{border-left:1px solid var(--color-border)}[data-v-42ca73dd] .splitpanes.default-theme.splitpanes--horizontal .splitpanes__splitter{border-top:1px solid var(--color-border)}.app-content-wrapper--show-list[data-v-42ca73dd] .app-content-list{max-width:none}.app-content-wrapper__list[data-v-42ca73dd]{height:100%}.splitpanes{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%}.splitpanes--vertical{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.splitpanes--horizontal{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{-webkit-transition:width .2s ease-out;-o-transition:width .2s ease-out;transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{-webkit-transition:height .2s ease-out;-o-transition:height .2s ease-out;transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{-webkit-transition:none;-o-transition:none;transition:none}.splitpanes__splitter{-ms-touch-action:none;touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-ms-flex-negative:0;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:before,.splitpanes.default-theme .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;-webkit-transition:background-color .3s;-o-transition:background-color .3s;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:before,.splitpanes.default-theme .splitpanes__splitter:hover:after{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.app-navigation,.app-content{--app-navigation-padding: calc(var(--default-grid-baseline, 4px) * 2)}.material-design-icon[data-v-632c552d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-632c552d]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));transition:transform var(--animation-quick),margin var(--animation-quick);width:300px;--app-navigation-max-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));max-width:var(--app-navigation-max-width);position:relative;top:0;inset-inline-start:0;padding:0;z-index:1800;height:100%;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-grow:0;flex-shrink:0;background-color:transparent}.app-navigation--legacy[data-v-632c552d]{background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}.app-navigation--close[data-v-632c552d]{margin-inline-start:calc(-1*min(300px,var(--app-navigation-max-width)))}.app-navigation__search[data-v-632c552d]{width:100%}.app-navigation__body[data-v-632c552d]{overflow-y:scroll}.app-navigation__content>ul[data-v-632c552d]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.app-navigation .app-navigation__list[data-v-632c552d]{height:100%}.app-navigation__body--no-list[data-v-632c552d]{flex:1 1 auto;overflow:auto;height:100%}.app-navigation__content[data-v-632c552d]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-632c552d]{border-inline-end:1px solid var(--color-border)}@media only screen and (width < 1024px){.app-navigation[data-v-632c552d]{position:absolute;border-inline-end:1px solid var(--color-border);background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}}@media only screen and (max-width: 512px){.app-navigation[data-v-632c552d]{z-index:1400}}.material-design-icon[data-v-058e6060]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-list[data-v-058e6060]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.material-design-icon[data-v-a3e8b54b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-toggle-wrapper[data-v-a3e8b54b]{position:absolute;top:var(--app-navigation-padding);inset-inline-end:calc(0px - var(--app-navigation-padding));margin-inline-end:calc(-1 * var(--default-clickable-area))}button.app-navigation-toggle[data-v-a3e8b54b]{background-color:var(--color-main-background)}.material-design-icon[data-v-e6a6c621]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-e6a6c621]{display:flex;justify-content:space-between}.app-navigation-caption--heading[data-v-e6a6c621]{padding:var(--app-navigation-padding)}.app-navigation-caption--heading[data-v-e6a6c621]:not(:first-child):not(:last-child){padding:0 var(--app-navigation-padding)}.app-navigation-caption__name[data-v-e6a6c621]{font-weight:var(--font-weight-heading, bold);color:var(--color-main-text);font-size:var(--default-font-size);line-height:var(--default-clickable-area);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:none!important;flex-shrink:1;padding-block:0;padding-inline:calc(var(--default-grid-baseline, 4px) * 2) 0;margin-top:0;margin-bottom:var(--default-grid-baseline)}.app-navigation-caption__actions[data-v-e6a6c621]{flex:0 0 var(--default-clickable-area)}.app-navigation-caption[data-v-e6a6c621]:not(:first-child){margin-top:calc(var(--default-clickable-area) / 2)}.material-design-icon[data-v-04a313f4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__icon-bullet[data-v-04a313f4]{display:block;padding:calc((var(--default-clickable-area) - 16px) / 2 + 1px)}.app-navigation-entry__icon-bullet div[data-v-04a313f4]{width:14px;height:14px;cursor:pointer;transition:background .1s ease-in-out;border:none;border-radius:50%}.material-design-icon[data-v-3c547cb0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-3c547cb0]{position:relative;inset-inline-end:0}.icon-collapse[data-v-3c547cb0]:hover{background-color:var(--color-background-dark)!important}.icon-collapse--active[data-v-3c547cb0]:hover{background-color:var(--color-primary-element)!important}.material-design-icon[data-v-bcb47ab4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-bcb47ab4]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%;min-height:var(--default-clickable-area);transition:background-color var(--animation-quick) ease-in-out;transition:background-color .2s ease-in-out;border-radius:var(--border-radius-element, var(--border-radius-pill))}.app-navigation-entry-wrapper[data-v-bcb47ab4]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-bcb47ab4]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-bcb47ab4]{background-color:color-mix(in srgb,var(--color-primary-element) 16%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-bcb47ab4]:hover{background-color:color-mix(in srgb,var(--color-primary-element) 22%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-bcb47ab4],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-bcb47ab4]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-bcb47ab4]:not(.app-navigation-entry--editing):before{content:"";position:absolute;inset-block:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px;animation:nc-nav-stripe-in-bcb47ab4 var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-bcb47ab4]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-bcb47ab4]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-bcb47ab4],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-bcb47ab4]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-bcb47ab4]:focus-within,.app-navigation-entry[data-v-bcb47ab4]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-bcb47ab4]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-bcb47ab4]:not(.app-navigation-entry--legacy):hover{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-navigation-entry.active .app-navigation-entry__children[data-v-bcb47ab4],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-bcb47ab4],.app-navigation-entry:hover .app-navigation-entry__children[data-v-bcb47ab4]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-bcb47ab4],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-bcb47ab4],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-bcb47ab4],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-bcb47ab4],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-bcb47ab4]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-bcb47ab4]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active .app-navigation-entry__actions[data-v-bcb47ab4]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-bcb47ab4]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-bcb47ab4]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-bcb47ab4],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-bcb47ab4]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-bcb47ab4],.app-navigation-entry .app-navigation-entry-button[data-v-bcb47ab4]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;box-sizing:border-box;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);font-weight:var(--font-weight-element, 500);background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px 16px;line-height:var(--default-clickable-area)}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-bcb47ab4],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-bcb47ab4]{display:flex;align-items:center;flex:0 0 var(--default-clickable-area);justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);background-size:16px 16px;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-bcb47ab4],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-bcb47ab4]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--font-weight-element, normal)}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-bcb47ab4],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-bcb47ab4]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-bcb47ab4]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-bcb47ab4]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text);border-radius:var(--border-radius-element, var(--border-radius-pill))}.app-navigation-entry__children[data-v-bcb47ab4]{--app-navigation-item-child-offset: 10px;position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px);padding-inline-start:var(--app-navigation-item-child-offset)}.app-navigation-entry__children .app-navigation-entry[data-v-bcb47ab4]{display:inline-flex;flex-wrap:wrap}.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-bcb47ab4]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-bcb47ab4]{display:inline-flex;flex:1 1 0;padding-inline-start:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-bcb47ab4]{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:var(--default-clickable-area)}.app-navigation-entry__utils[data-v-bcb47ab4]{display:flex;min-width:var(--default-clickable-area);align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-bcb47ab4]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-bcb47ab4]{margin-inline-end:calc(var(--default-grid-baseline) * 2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-bcb47ab4]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-bcb47ab4]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-bcb47ab4]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-bcb47ab4]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-bcb47ab4]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-bcb47ab4]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-bcb47ab4{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.material-design-icon[data-v-f9a3bb35]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm[data-v-f9a3bb35]{flex:1 0 100%;width:100%}.app-navigation-input-confirm form[data-v-f9a3bb35]{display:flex}.app-navigation-input-confirm__input[data-v-f9a3bb35]{height:34px;flex:1 1 100%;font-size:100%!important;margin:5px 5px 5px -8px!important;padding:7px!important}.app-navigation-input-confirm__input[data-v-f9a3bb35]:active,.app-navigation-input-confirm__input[data-v-f9a3bb35]:focus,.app-navigation-input-confirm__input[data-v-f9a3bb35]:hover{outline:none;background-color:var(--color-main-background);color:var(--color-main-text);border-color:var(--color-primary-element)}.app-navigation-input-confirm:not(.app-navigation-input-confirm--legacy) form[data-v-f9a3bb35]{align-items:center;gap:5px;padding-inline-end:5px}.app-navigation-input-confirm:not(.app-navigation-input-confirm--legacy) .app-navigation-input-confirm__input[data-v-f9a3bb35]{margin-inline-end:0!important}.app-navigation-input-confirm[data-v-f9a3bb35]:not(.app-navigation-input-confirm--legacy) .button-vue{width:34px!important;min-width:34px!important;height:34px!important;flex:0 0 34px}.material-design-icon[data-v-94ff8098]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon[data-v-94ff8098]{overflow:hidden}.loading-icon svg[data-v-94ff8098]{animation:rotate var(--animation-duration, .8s) linear infinite}.material-design-icon[data-v-6f255eb3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new[data-v-6f255eb3]{display:block;padding:calc(var(--default-grid-baseline, 4px) * 2)}.app-navigation-new button[data-v-6f255eb3]{width:100%}.material-design-icon[data-v-258871fd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-258871fd]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%;min-height:var(--default-clickable-area);transition:background-color var(--animation-quick) ease-in-out;transition:background-color .2s ease-in-out;border-radius:var(--border-radius-element, var(--border-radius-pill))}.app-navigation-entry-wrapper[data-v-258871fd]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;box-sizing:border-box;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-258871fd]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-258871fd]{background-color:color-mix(in srgb,var(--color-primary-element) 16%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-258871fd]:hover{background-color:color-mix(in srgb,var(--color-primary-element) 22%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-258871fd],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-258871fd]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-258871fd]:not(.app-navigation-entry--editing):before{content:"";position:absolute;inset-block:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px;animation:nc-nav-stripe-in-258871fd var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-258871fd]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-258871fd]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-258871fd],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-258871fd]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-258871fd]:focus-within,.app-navigation-entry[data-v-258871fd]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-258871fd]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-258871fd]:not(.app-navigation-entry--legacy):hover{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-navigation-entry.active .app-navigation-entry__children[data-v-258871fd],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-258871fd],.app-navigation-entry:hover .app-navigation-entry__children[data-v-258871fd]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-258871fd],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-258871fd],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-258871fd],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-258871fd],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-258871fd]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-258871fd]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active .app-navigation-entry__actions[data-v-258871fd]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-258871fd]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-258871fd]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-258871fd],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-258871fd]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-258871fd],.app-navigation-entry .app-navigation-entry-button[data-v-258871fd]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;box-sizing:border-box;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);font-weight:var(--font-weight-element, 500);background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px 16px;line-height:var(--default-clickable-area)}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-258871fd],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-258871fd]{display:flex;align-items:center;flex:0 0 var(--default-clickable-area);justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);background-size:16px 16px;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-258871fd],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-258871fd]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--font-weight-element, normal)}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-258871fd],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-258871fd]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-258871fd]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-258871fd]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text);border-radius:var(--border-radius-element, var(--border-radius-pill))}.app-navigation-entry__children[data-v-258871fd]{--app-navigation-item-child-offset: 10px;position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px);padding-inline-start:var(--app-navigation-item-child-offset)}.app-navigation-entry__children .app-navigation-entry[data-v-258871fd]{display:inline-flex;flex-wrap:wrap}.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-258871fd]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-258871fd]{display:inline-flex;flex:1 1 0;padding-inline-start:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-258871fd]{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:var(--default-clickable-area)}.app-navigation-entry__utils[data-v-258871fd]{display:flex;min-width:var(--default-clickable-area);align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-258871fd]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-258871fd]{margin-inline-end:calc(var(--default-grid-baseline) * 2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-258871fd]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-258871fd]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-258871fd]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-258871fd]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-258871fd]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-258871fd]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-258871fd{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.app-navigation-new-item__name[data-v-258871fd]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;padding-inline-start:7px;font-size:14px}.newItemContainer[data-v-258871fd]{width:calc(100% - var(--default-clickable-area));margin:auto}.material-design-icon[data-v-df568544]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-search[data-v-df568544]{display:flex;gap:var(--app-navigation-padding);padding:var(--app-navigation-padding)}.app-navigation-search--has-actions .app-navigation-search__input[data-v-df568544]{flex-grow:1;z-index:3}.app-navigation-search__actions[data-v-df568544]{display:flex;gap:var(--default-grid-baseline);margin-inline-start:0;max-width:calc(2 * var(--default-clickable-area) + var(--default-grid-baseline));max-height:var(--default-clickable-area);transition:margin-inline-start var(--animation-quick)}.app-navigation-search__actions--hidden[data-v-df568544]{margin-inline-start:calc(-1 * var(--default-clickable-area))}.app-navigation-search__input[data-v-df568544]{--input-border-radius: var(--border-radius-element, var(--border-radius-pill)) !important}.material-design-icon[data-v-07bfaab0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mention-bubble--primary .mention-bubble__content[data-v-07bfaab0]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-07bfaab0]{position:relative;max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-07bfaab0]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-inline:2px 6px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-07bfaab0]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-07bfaab0]{color:inherit;background-size:cover}.mention-bubble__title[data-v-07bfaab0]{overflow:hidden;margin-inline-start:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-07bfaab0]:before{content:attr(title)}.mention-bubble__select[data-v-07bfaab0]{position:absolute;z-index:-1;inset-inline-start:-100vw;width:1px;height:1px;overflow:hidden}.material-design-icon[data-v-ddd7d69d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#app-settings[data-v-ddd7d69d]{margin-top:auto;padding:3px}#app-settings__header[data-v-ddd7d69d]{box-sizing:border-box;margin:0 3px 3px}#app-settings__header .settings-button[data-v-ddd7d69d]{padding-inline:0 calc((var(--default-clickable-area) - 16px) / 2)!important}#app-settings__header .settings-button[data-v-ddd7d69d] .button-vue__text{font-weight:var(--font-weight-default, normal)!important}#app-settings__content[data-v-ddd7d69d]{display:block;padding:10px;margin-bottom:-3px;max-height:300px;overflow-y:auto;box-sizing:border-box}.slide-up-leave-active[data-v-ddd7d69d],.slide-up-enter-active[data-v-ddd7d69d]{transition-duration:var(--animation-slow);transition-property:max-height,padding;overflow-y:hidden!important}.slide-up-enter[data-v-ddd7d69d],.slide-up-leave-to[data-v-ddd7d69d]{max-height:0!important;padding:0 10px!important}.app-navigation-spacer[data-v-b699c557]{flex-shrink:0;height:22px}._material-design-icon_K1kcr{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._appSettingsDialogVersion_AVGMT{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));color:var(--color-text-maxcontrast);margin-block-end:calc(8 * var(--default-grid-baseline));margin-inline:var(--form-element-label-offset)}._appSettingsDialogVersion__legacy_sBgwm{margin-inline:0}.material-design-icon[data-v-1b265bb0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings[data-v-1b265bb0]:not(.app-settings--legacy){--nav-tint: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--nav-tint-strong: var(--color-primary-element-light)}.app-settings[data-v-1b265bb0]:not(.app-settings--legacy) .modal-wrapper .modal-container{padding-inline-start:0!important;padding-block-start:0!important;background-color:var(--nav-tint);overflow:hidden;max-width:900px}.app-settings[data-v-1b265bb0]:not(.app-settings--legacy) .dialog__name{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(100%);white-space:nowrap;border:0}.app-settings:not(.app-settings--legacy) .app-settings__title[data-v-1b265bb0]{box-sizing:border-box;padding:calc(3 * var(--default-grid-baseline));margin:0;font-size:20px;font-weight:var(--font-weight-heading, 700)}.app-settings[data-v-1b265bb0]:not(.app-settings--legacy) .app-settings__navigation{min-width:200px;max-width:200px;flex:0 0 200px;margin-right:0!important;overflow-x:hidden;overflow-y:auto;position:relative;background-color:var(--nav-tint)}.app-settings[data-v-1b265bb0]:not(.app-settings--legacy) .app-settings__content{box-sizing:border-box;padding:calc(3 * var(--default-grid-baseline));background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border-dark);border-start-start-radius:var(--border-radius-element);border-end-start-radius:var(--border-radius-element)}.app-settings:not(.app-settings--legacy) .navigation-list[data-v-1b265bb0]{height:100%;box-sizing:border-box;overflow-y:auto;padding:var(--default-grid-baseline)}.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-1b265bb0]{position:relative;display:flex;align-items:center;font-size:var(--default-font-size);font-weight:var(--font-weight-element, 500);height:var(--default-clickable-area);margin:2px 0;line-height:var(--default-clickable-area);border-radius:var(--border-radius-element, var(--border-radius-pill));padding-inline:calc(2 * var(--default-grid-baseline));cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:transparent;border:none;color:var(--color-main-text)}.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-1b265bb0]:hover,.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-1b265bb0]:focus-visible{background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.app-settings:not(.app-settings--legacy) .navigation-list__link[data-v-1b265bb0]:focus-visible{outline:2px solid var(--color-main-text);outline-offset:-2px}.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-1b265bb0]{background-color:var(--nav-tint-strong)}.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-1b265bb0]:hover,.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-1b265bb0]:focus-visible{background-color:var(--color-primary-element-light-hover)}.app-settings:not(.app-settings--legacy) .navigation-list__link--active[data-v-1b265bb0]:before{content:"";position:absolute;inset-block:var(--default-grid-baseline);inset-inline-start:0;width:3px;background-color:var(--color-primary-element);border-radius:999px}.app-settings:not(.app-settings--legacy) .navigation-list__link--icon[data-v-1b265bb0]{gap:var(--default-grid-baseline)}.app-settings:not(.app-settings--legacy) .navigation-list__link-icon[data-v-1b265bb0]{display:flex;justify-content:center;align-content:center;width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));max-width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}[data-v-1b265bb0] .app-settings__content.app-settings__non-legacy *{box-sizing:border-box}@media only screen and (width < 1024px){.app-settings[data-v-1b265bb0]:not(.app-settings--legacy) .modal-wrapper .modal-container{padding-inline-start:12px!important;padding-block-start:4px!important;background-color:var(--color-main-background)}.app-settings[data-v-1b265bb0]:not(.app-settings--legacy) .dialog__name{position:static;width:auto;height:auto;margin:0 0 12px;padding-inline-end:var(--default-clickable-area);overflow:visible;clip-path:none;white-space:normal;border:0}.app-settings[data-v-1b265bb0]:not(.app-settings--legacy) .app-settings__content{border:none;border-radius:0}}.app-settings.app-settings--legacy[data-v-1b265bb0] .app-settings__navigation{min-width:200px;margin-inline-end:calc(4 * var(--default-grid-baseline));overflow-x:hidden;overflow-y:auto;position:relative}.app-settings.app-settings--legacy[data-v-1b265bb0] .app-settings__content{padding-inline:calc(4 * var(--default-grid-baseline))}.app-settings.app-settings--legacy .navigation-list[data-v-1b265bb0]{height:100%;overflow-y:auto;padding:calc(3 * var(--default-grid-baseline))}.app-settings.app-settings--legacy .navigation-list__link[data-v-1b265bb0]{display:flex;align-content:center;font-size:16px;height:var(--default-clickable-area);margin:4px 0;line-height:var(--default-clickable-area);border-radius:var(--border-radius-element, var(--border-radius-pill));font-weight:var(--font-weight-element, bold);padding:0 calc(4 * var(--default-grid-baseline));cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:transparent;border:none}.app-settings.app-settings--legacy .navigation-list__link[data-v-1b265bb0]:hover,.app-settings.app-settings--legacy .navigation-list__link[data-v-1b265bb0]:focus{background-color:var(--color-background-hover)}.app-settings.app-settings--legacy .navigation-list__link--active[data-v-1b265bb0]{background-color:var(--color-primary-element-light)!important}.app-settings.app-settings--legacy .navigation-list__link--icon[data-v-1b265bb0]{padding-inline-start:calc(2 * var(--default-grid-baseline));gap:var(--default-grid-baseline)}.app-settings.app-settings--legacy .navigation-list__link-icon[data-v-1b265bb0]{display:flex;justify-content:center;align-content:center;width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));max-width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}@media only screen and (max-width: 512px){.dialog__modal .modal-wrapper--small .modal-container{width:fit-content;height:unset;max-height:90%;position:relative;top:unset;border-radius:var(--border-radius-large)}}.material-design-icon[data-v-66c29e13]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dialog[data-v-66c29e13]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.dialog__modal[data-v-66c29e13] .modal-wrapper .modal-container{display:flex!important;padding-block:4px 0;padding-inline:12px 0}.dialog__modal[data-v-66c29e13] .modal-wrapper .modal-container__content{display:flex;flex-direction:column;overflow:hidden}.dialog__wrapper[data-v-66c29e13]{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.dialog__wrapper--collapsed[data-v-66c29e13]{flex-direction:column}.dialog__navigation[data-v-66c29e13]{display:flex;flex-shrink:0}.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-66c29e13]{flex-direction:column;overflow:hidden auto;height:100%;min-width:200px;margin-inline-end:20px}.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-66c29e13]{flex-direction:row;justify-content:space-between;overflow:auto hidden;width:100%;min-width:100%}.dialog__name[data-v-66c29e13]{font-size:21px;text-align:center;height:fit-content;min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);overflow-wrap:break-word;margin-block:0 12px}.dialog__content[data-v-66c29e13]{flex:1;min-height:0;overflow:auto;padding-inline-end:12px}.dialog__text[data-v-66c29e13]{padding-block-end:6px}.dialog__actions[data-v-66c29e13]{box-sizing:border-box;display:flex;gap:6px;align-content:center;justify-content:end;width:100%;max-width:100%;padding-inline:0 12px;margin-inline:0;margin-block:0}.dialog__actions[data-v-66c29e13]:not(:empty){margin-block:6px 12px}@media only screen and (max-width: 512px){.dialog__name[data-v-66c29e13]{text-align:start;margin-inline-end:var(--default-clickable-area)}}.material-design-icon[data-v-6b7bb88c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-section[data-v-6b7bb88c]{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--app-settings-section-text-offset: var(--form-element-label-offset);--app-settings-section-content-gap: calc(6 * var(--default-grid-baseline));margin-block-end:calc(8 * var(--default-grid-baseline))}.app-settings-section__name[data-v-6b7bb88c]{margin:0;padding-inline:var(--app-settings-section-text-offset);padding-block:0;font-size:20px;font-weight:var(--font-weight-heading, bold)}.app-settings-section__description[data-v-6b7bb88c]{padding-inline:var(--app-settings-section-text-offset);color:var(--color-text-maxcontrast)}.app-settings-section__content[data-v-6b7bb88c]{margin-block-start:calc(2 * var(--default-grid-baseline));display:flex;flex-direction:column;justify-content:stretch;gap:var(--app-settings-section-content-gap)}.app-settings-section__legacy[data-v-6b7bb88c]{--app-settings-section-text-offset: 0;--app-settings-section-content-gap: 0}._material-design-icon_ZBLye{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._appSettingsSectionShortcuts_roVRi{display:flex;flex-direction:column;gap:calc(4 * var(--default-grid-baseline));box-sizing:border-box}._appSettingsSectionShortcuts_roVRi *{box-sizing:border-box}.material-design-icon[data-v-30dd628e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-tabs[data-v-30dd628e]{display:flex;flex-direction:column;min-height:0;flex:1 1 100%}.app-sidebar-tabs__nav[data-v-30dd628e]{display:flex;justify-content:stretch;margin:10px 8px 0;border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy){gap:var(--default-grid-baseline);padding-block-end:var(--default-grid-baseline)}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant{position:relative;border:unset!important;border-radius:var(--border-radius-element)!important;background-color:var(--color-main-background);min-width:var(--default-clickable-area);transition:background-color var(--animation-quick)}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant .checkbox-content{padding:var(--default-grid-baseline);padding-block-end:calc(var(--default-grid-baseline) * 2);border-radius:var(--border-radius-element)!important;margin:0!important}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant .checkbox-content .checkbox-content__icon>*{color:var(--color-main-text)!important}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant .checkbox-content__text{font-weight:var(--font-weight-element, normal)}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:4px;border-radius:999px;background-color:var(--color-primary-element);opacity:0;transform:translate(-50%);transition:width var(--animation-quick),opacity var(--animation-quick)}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant:hover{background-color:var(--color-background-hover)}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant:focus-visible{outline:2px solid var(--color-main-text);outline-offset:2px}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant.checkbox-radio-switch--checked{background-color:var(--color-background-hover)!important}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content{background:transparent!important;color:var(--color-main-text)!important}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant.checkbox-radio-switch--checked:after{width:80%;opacity:1}.app-sidebar-tabs__nav[data-v-30dd628e]:not(.app-sidebar-tabs__nav--legacy) .checkbox-radio-switch--button-variant.checkbox-radio-switch--checked:hover{background-color:var(--color-background-dark)!important}.app-sidebar-tabs__nav--legacy[data-v-30dd628e] .checkbox-radio-switch--button-variant{border:unset!important;border-radius:0!important}.app-sidebar-tabs__nav--legacy[data-v-30dd628e] .checkbox-radio-switch--button-variant .checkbox-content{padding:var(--default-grid-baseline);border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0!important;margin:0!important;border-bottom:var(--default-grid-baseline) solid transparent!important}.app-sidebar-tabs__nav--legacy[data-v-30dd628e] .checkbox-radio-switch--button-variant .checkbox-content .checkbox-content__icon>*{color:var(--color-main-text)!important}.app-sidebar-tabs__nav--legacy[data-v-30dd628e] .checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content{background:transparent!important;color:var(--color-main-text)!important;border-bottom:var(--default-grid-baseline) solid var(--color-primary-element)!important}.app-sidebar-tabs__nav--legacy[data-v-30dd628e] .checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-content__text{font-weight:var(--font-weight-element, bold)}.app-sidebar-tabs__tab[data-v-30dd628e]{flex:1 1}.app-sidebar-tabs__tab.active[data-v-30dd628e]{color:var(--color-primary-element)}.app-sidebar-tabs__tab-caption[data-v-30dd628e]{flex:0 1 100%;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center}.app-sidebar-tabs__tab-icon[data-v-30dd628e]{display:flex;align-items:center;justify-content:center;background-size:20px}.app-sidebar-tabs__tab[data-v-30dd628e] .checkbox-radio-switch__content{max-width:unset}.app-sidebar-tabs__content[data-v-30dd628e]{position:relative;min-height:256px;height:100%}.app-sidebar-tabs__content--multiple[data-v-30dd628e]>:not(section){display:none}@property --app-sidebar-offset{syntax: ""; initial-value: 0; inherits: true;}.content{--app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);--app-sidebar-offset: 0;transition:--app-sidebar-offset 0ms!important}.content:has(.app-sidebar.slide-right-enter-active),.content:has(.app-sidebar.slide-right-leave-active){transition:--app-sidebar-offset var(--animation-quick)}.content:has(.app-sidebar__toggle){--app-sidebar-offset: calc(var(--app-sidebar-padding) + var(--default-clickable-area))}.material-design-icon[data-v-82f4f9ef]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar[data-v-82f4f9ef]{--app-sidebar-width: clamp(300px, 27vw, 500px);width:var(--app-sidebar-width);z-index:1500;top:0;inset-inline-end:0;display:flex;overflow-x:hidden;overflow-y:auto;flex-direction:column;flex-shrink:0;height:100%;border-inline-start:1px solid var(--color-border);background:var(--color-main-background);position:relative}.app-sidebar__toggle[data-v-82f4f9ef]{position:absolute!important;inset-block-start:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-padding);z-index:1001}.app-sidebar .app-sidebar-header[data-v-82f4f9ef]{--app-sidebar-close-button-offset: calc(var(--default-clickable-area) + calc(var(--default-grid-baseline, 4px) * 2))}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-82f4f9ef]{position:absolute;z-index:100;top:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-end:calc(var(--default-grid-baseline, 4px) * 2);width:var(--default-clickable-area);height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-82f4f9ef]{flex-direction:row}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-82f4f9ef]{--figure-size: calc(52px + var(--app-sidebar-padding));z-index:2;width:var(--figure-size);height:var(--figure-size);margin:calc(var(--app-sidebar-padding) / 2);border-radius:3px;flex:0 0 auto}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-82f4f9ef]{padding-inline-start:0;flex:1 1 auto;min-width:0;padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset));padding-top:var(--app-sidebar-padding)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-82f4f9ef]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-82f4f9ef]{z-index:3;position:absolute;top:calc(var(--app-sidebar-padding) / 2);inset-inline-start:calc(-1 * var(--default-clickable-area));gap:0}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-82f4f9ef]{top:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-end:var(--app-sidebar-close-button-offset);position:absolute}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-82f4f9ef]{position:absolute;top:calc(var(--default-grid-baseline, 4px) * 2);inset-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-82f4f9ef]{padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset))}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-82f4f9ef]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-82f4f9ef]{display:flex;flex-direction:column}.app-sidebar .app-sidebar-header__figure[data-v-82f4f9ef]{width:100%;height:250px;max-height:250px;background-repeat:no-repeat;background-position:center;background-size:contain}.app-sidebar .app-sidebar-header__figure--with-action[data-v-82f4f9ef]{cursor:pointer}.app-sidebar .app-sidebar-header__desc[data-v-82f4f9ef]{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding-inline:var(--app-sidebar-padding);padding-block:calc(var(--default-grid-baseline, 4px) * 2) calc(var(--app-sidebar-padding) / 2);gap:0 4px}.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-82f4f9ef]{padding-inline-start:6px}.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__mainname-form[data-v-82f4f9ef],.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__mainname-form[data-v-82f4f9ef]{margin-top:-2px;margin-bottom:-2px}.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__subname[data-v-82f4f9ef]{margin-top:-2px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-82f4f9ef]{display:flex;height:var(--default-clickable-area);width:var(--default-clickable-area);justify-content:center;flex:0 0 auto}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-82f4f9ef]{box-shadow:none}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-82f4f9ef]:not([aria-pressed=true]):hover{box-shadow:none;background-color:var(--color-background-hover)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container[data-v-82f4f9ef]{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-width:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container[data-v-82f4f9ef]{display:flex;align-items:center;min-height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-82f4f9ef]{padding:0;min-height:30px;font-size:20px;line-height:30px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-82f4f9ef] .linkified{cursor:pointer;text-decoration:underline;margin:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form[data-v-82f4f9ef]{display:flex;flex:1 1 auto;align-items:center}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form input.app-sidebar-header__mainname-input[data-v-82f4f9ef]{flex:1 1 auto;margin:0;padding:7px;font-size:20px;font-weight:var(--font-weight-heading, bold)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__menu[data-v-82f4f9ef]{margin-inline-start:5px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname[data-v-82f4f9ef],.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-82f4f9ef]{overflow:hidden;width:100%;margin:0;white-space:nowrap;text-overflow:ellipsis}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-82f4f9ef]{color:var(--color-text-maxcontrast);font-size:var(--default-font-size);padding:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname *[data-v-82f4f9ef]{vertical-align:text-bottom}.app-sidebar .app-sidebar-header .app-sidebar-header__mainname--hidden[data-v-82f4f9ef]{position:absolute;top:0;inset-inline-start:0;margin:0;width:1px;height:1px;overflow:hidden}.app-sidebar .app-sidebar-header__description[data-v-82f4f9ef]{display:flex;align-items:center;margin:0 10px}@media only screen and (max-width: 512px){.app-sidebar[data-v-82f4f9ef]{position:absolute;--app-sidebar-width: 100vw}}.slide-right-leave-active[data-v-82f4f9ef],.slide-right-enter-active[data-v-82f4f9ef]{transition-duration:var(--animation-quick);transition-property:margin-inline-end}.slide-right-enter-to[data-v-82f4f9ef],.slide-right-leave[data-v-82f4f9ef]{margin-inline-end:0}.slide-right-enter[data-v-82f4f9ef],.slide-right-leave-to[data-v-82f4f9ef]{margin-inline-end:calc(-1 * var(--app-sidebar-width))}.material-design-icon[data-v-dc2e9d6a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-content[data-v-dc2e9d6a]{display:flex;align-items:center;flex-direction:row;gap:var(--default-grid-baseline);-webkit-user-select:none;user-select:none;min-height:var(--default-clickable-area);border-radius:var(--checkbox-radio-switch--border-radius);padding:var(--default-grid-baseline) calc((var(--default-clickable-area) - var(--icon-height)) / 2);width:100%;max-width:fit-content}.checkbox-content__wrapper[data-v-dc2e9d6a]{flex:1 0}.checkbox-content__text[data-v-dc2e9d6a]:empty{display:none}.checkbox-content-checkbox:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-dc2e9d6a],.checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-dc2e9d6a],.checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-dc2e9d6a]{margin-block:calc((var(--default-clickable-area) - 2 * var(--default-grid-baseline) - var(--icon-height)) / 2) auto;line-height:0}.checkbox-content-checkbox:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-dc2e9d6a],.checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-dc2e9d6a],.checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-dc2e9d6a]{display:flex;align-items:center;margin-block-end:0;align-self:start}.checkbox-content__icon>*[data-v-dc2e9d6a]{width:var(--icon-size);height:var(--icon-height);color:var(--color-primary-element)}.checkbox-content__description[data-v-dc2e9d6a]{display:block;color:var(--color-text-maxcontrast);font-weight:var(--font-weight-default, normal)}.checkbox-content--button-variant .checkbox-content__icon:not(.checkbox-content__icon--checked)>*[data-v-dc2e9d6a]{color:var(--color-primary-element)}.checkbox-content--button-variant .checkbox-content__icon--checked>*[data-v-dc2e9d6a]{color:var(--color-primary-element-text)}.checkbox-content--has-text[data-v-dc2e9d6a]{padding-right:calc((var(--default-clickable-area) - 16px) / 2)}.checkbox-content[data-v-dc2e9d6a],.checkbox-content *[data-v-dc2e9d6a]{cursor:pointer;flex-shrink:0}.material-design-icon[data-v-dbcba8fe]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-radio-switch[data-v-dbcba8fe]{--icon-size: var(--476f2fd4);--icon-height: var(--155d383a);display:flex;align-items:center;color:var(--color-main-text);background-color:transparent;box-sizing:border-box;font-size:var(--default-font-size);font-weight:var(--font-weight-element, normal);line-height:var(--default-line-height);padding:0;position:relative}.checkbox-radio-switch *[data-v-dbcba8fe]{box-sizing:border-box}.checkbox-radio-switch__input[data-v-dbcba8fe]{position:absolute;z-index:-1;opacity:0!important;width:var(--icon-size);height:var(--icon-size);margin:4px calc((var(--default-clickable-area) - 16px) / 2)}.checkbox-radio-switch__input:focus-visible+.checkbox-radio-switch__content[data-v-dbcba8fe],.checkbox-radio-switch__input[data-v-dbcba8fe]:focus-visible{outline:2px solid var(--color-main-text);border-color:var(--color-main-background);outline-offset:-2px}.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-dbcba8fe]{opacity:.5}.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-dbcba8fe] .checkbox-radio-switch__icon>*{color:var(--color-main-text)}.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-dbcba8fe],.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-dbcba8fe] *:not(a){cursor:default!important}.checkbox-radio-switch:not(.checkbox-radio-switch--disabled,.checkbox-radio-switch--checked):focus-within .checkbox-radio-switch__content[data-v-dbcba8fe],.checkbox-radio-switch:not(.checkbox-radio-switch--disabled,.checkbox-radio-switch--checked) .checkbox-radio-switch__content[data-v-dbcba8fe]:hover{background-color:var(--color-background-hover)}.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-dbcba8fe],.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-dbcba8fe]:hover{background-color:var(--color-primary-element-hover)}.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-dbcba8fe],.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-dbcba8fe]:hover{background-color:var(--color-primary-element-light-hover)}.checkbox-radio-switch-switch[data-v-dbcba8fe]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon>*{color:var(--color-text-maxcontrast)}.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked[data-v-dbcba8fe] .checkbox-radio-switch__icon>*{color:var(--color-primary-element-light)}.checkbox-radio-switch[data-v-dbcba8fe]{--checkbox-radio-switch--border-radius: var(--border-radius-element, calc(var(--default-clickable-area) / 2));--checkbox-radio-switch--border-radius-outer: calc(var(--checkbox-radio-switch--border-radius) + 2px)}.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-dbcba8fe]{background-color:var(--color-main-background);border:2px solid var(--color-border-maxcontrast);overflow:hidden}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-dbcba8fe]{font-weight:var(--font-weight-element, bold)}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content[data-v-dbcba8fe]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.checkbox-radio-switch--button-variant[data-v-dbcba8fe] .checkbox-radio-switch__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.checkbox-radio-switch--button-variant[data-v-dbcba8fe]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon>*{color:var(--color-main-text)}.checkbox-radio-switch--button-variant[data-v-dbcba8fe] .checkbox-radio-switch__icon:empty{display:none}.checkbox-radio-switch--button-variant[data-v-dbcba8fe]:not(.checkbox-radio-switch--button-variant-v-grouped):not(.checkbox-radio-switch--button-variant-h-grouped),.checkbox-radio-switch--button-variant .checkbox-radio-switch__content[data-v-dbcba8fe]{border-radius:var(--checkbox-radio-switch--border-radius)}.checkbox-radio-switch--button-variant-v-grouped .checkbox-radio-switch__content[data-v-dbcba8fe]{flex-basis:100%;max-width:unset}.checkbox-radio-switch--button-variant-v-grouped[data-v-dbcba8fe]:first-of-type{border-start-start-radius:var(--checkbox-radio-switch--border-radius-outer);border-start-end-radius:var(--checkbox-radio-switch--border-radius-outer)}.checkbox-radio-switch--button-variant-v-grouped[data-v-dbcba8fe]:last-of-type{border-end-start-radius:var(--checkbox-radio-switch--border-radius-outer);border-end-end-radius:var(--checkbox-radio-switch--border-radius-outer)}.checkbox-radio-switch--button-variant-v-grouped[data-v-dbcba8fe]:not(:last-of-type){border-bottom:0!important}.checkbox-radio-switch--button-variant-v-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-dbcba8fe]{margin-bottom:2px}.checkbox-radio-switch--button-variant-v-grouped[data-v-dbcba8fe]:not(:first-of-type){border-top:0!important}.checkbox-radio-switch--button-variant-h-grouped[data-v-dbcba8fe]:first-of-type{border-start-start-radius:var(--checkbox-radio-switch--border-radius-outer);border-end-start-radius:var(--checkbox-radio-switch--border-radius-outer)}.checkbox-radio-switch--button-variant-h-grouped[data-v-dbcba8fe]:last-of-type{border-start-end-radius:var(--checkbox-radio-switch--border-radius-outer);border-end-end-radius:var(--checkbox-radio-switch--border-radius-outer)}.checkbox-radio-switch--button-variant-h-grouped[data-v-dbcba8fe]:not(:last-of-type){border-inline-end:0!important}.checkbox-radio-switch--button-variant-h-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-dbcba8fe]{margin-inline-end:2px}.checkbox-radio-switch--button-variant-h-grouped[data-v-dbcba8fe]:not(:first-of-type){border-inline-start:0!important}.checkbox-radio-switch--button-variant-h-grouped[data-v-dbcba8fe] .checkbox-radio-switch__text{text-align:center;display:flex;align-items:center}.checkbox-radio-switch--button-variant-h-grouped .checkbox-radio-switch__content[data-v-dbcba8fe]{flex-direction:column;justify-content:center;width:100%;margin:0;gap:0}._material-design-icon_584lD{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_rwBqv{color:var(--2d1b8583);transition:color var(--animation-quick) ease}._iconToggleSwitch_rwBqv svg{height:auto!important}._iconToggleSwitch_rwBqv circle{cx:var(--78386a55);transition:cx var(--animation-quick) ease}.material-design-icon[data-v-53618902]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.empty-content[data-v-53618902]{display:flex;align-items:center;flex-direction:column;justify-content:center;flex-grow:1;padding:var(--default-grid-baseline)}.modal-wrapper .empty-content[data-v-53618902]{margin-top:5vh;margin-bottom:5vh}.empty-content__icon[data-v-53618902]{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 15px;opacity:.4;background-repeat:no-repeat;background-position:center;background-size:64px}.empty-content__icon[data-v-53618902] svg{width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important}.empty-content__name[data-v-53618902]{margin-bottom:10px;text-align:center;font-weight:var(--font-weight-heading, bold);font-size:20px;line-height:30px}.empty-content__description[data-v-53618902]{color:var(--color-text-maxcontrast);text-align:center;text-wrap-style:balance}.empty-content__action[data-v-53618902]{margin-top:8px}.modal-wrapper .empty-content__action[data-v-53618902]{margin-top:20px;display:flex}.material-design-icon[data-v-bc553f62]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar__tab[data-v-bc553f62]{display:none;padding:10px;min-height:100%;max-height:100%;height:100%;overflow:auto}.app-sidebar__tab[data-v-bc553f62]:focus{border-color:var(--color-primary-element);box-shadow:0 0 .2em var(--color-primary-element);outline:0}.app-sidebar__tab--active[data-v-bc553f62]{display:block}._material-design-icon_ePPOJ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantButton_ZX1Pl{--assistant-button-color: var(--color-element-assistant, linear-gradient(238deg, #A569D3 12%, #00679E 39%, #422083 86%));--assistant-button-background-color: var(--color-background-assistant, #F6F5FF);background-image:var(--color-border-assistant, linear-gradient(125deg, #7398FE 50%, #6104A4 125%));border-radius:var(--border-radius-element);height:var(--default-clickable-area);width:fit-content;padding-inline:1px;padding-block:1px 2px}._assistantButton_disabled_c71L4{filter:saturate(.5);opacity:.5}._assistantButton_primary_wEjtO{--assistant-button-color: white;--assistant-button-background-color: var(--color-element-assistant,linear-gradient(238deg, #A569D3 12%, #00679E 39%, #422083 86%))}._assistantButton_primary_wEjtO ._assistantButton__icon_0tVDb,._assistantButton_primary_wEjtO ._assistantButton__text_1qFCl{color:#fff!important}._assistantButton__button_bOS3i{--button-size: calc(var(--default-clickable-area) - 3px) !important;background-color:var(--assistant-button-background-color)!important;background-image:var(--assistant-button-background-color)!important;border:none!important}._assistantButton__button_bOS3i:hover{filter:brightness(120%)}._assistantButton__text_1qFCl{background-image:var(--assistant-button-color);color:transparent!important;-webkit-background-clip:text;background-clip:text}._material-design-icon_9W9QS{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantIcon_j0PpI{display:inline-flex;align-items:center;justify-content:center}._assistantIcon_j0PpI:not(._assistantIcon_inline_Ai22k){display:flex;min-height:var(--default-clickable-area);min-width:var(--default-clickable-area)}._assistantIcon__svg_hHP9O{display:inline-block;width:var(--a843d9d2);height:var(--a843d9d2);max-width:var(--a843d9d2);max-height:var(--a843d9d2)}._material-design-icon_2rRlc{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantContent_buKYt{background-image:var(--color-border-assistant, linear-gradient(125deg, #7398FE 50%, #6104A4 125%));border-radius:var(--border-radius-container);padding:2px}._assistantContent__inner_1y6-r{background-color:var(--color-background-assistant, #F6F5FF);border-radius:calc(var(--border-radius-container) - 1px);color:var(--color-main-text);padding:calc(var(--border-radius-container) - 1px);height:100%;width:100%}.material-design-icon[data-v-d573e8e2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.avatardiv[data-v-d573e8e2]{position:relative;display:inline-block;width:var(--avatar-size);height:var(--avatar-size)}.avatardiv--unknown[data-v-d573e8e2]{position:relative;background-color:var(--color-main-background);white-space:normal}.avatardiv[data-v-d573e8e2]:not(.avatardiv--unknown){background-color:var(--color-main-background)!important;box-shadow:0 0 5px #0000000d inset}.avatardiv--with-menu[data-v-d573e8e2]{cursor:pointer}.avatardiv--with-menu .action-item[data-v-d573e8e2]{position:absolute;top:0;left:0}.avatardiv--with-menu[data-v-d573e8e2] .action-item__menutoggle{cursor:pointer;opacity:0}.avatardiv--with-menu[data-v-d573e8e2]:focus-within .action-item__menutoggle,.avatardiv--with-menu[data-v-d573e8e2]:hover .action-item__menutoggle,.avatardiv--with-menu.avatardiv--with-menu-loading[data-v-d573e8e2] .action-item__menutoggle{opacity:1}.avatardiv--with-menu:focus-within img[data-v-d573e8e2],.avatardiv--with-menu:hover img[data-v-d573e8e2],.avatardiv--with-menu.avatardiv--with-menu-loading img[data-v-d573e8e2]{opacity:.3}.avatardiv--with-menu[data-v-d573e8e2] .action-item__menutoggle,.avatardiv--with-menu img[data-v-d573e8e2]{transition:opacity var(--animation-quick)}.avatardiv--with-menu[data-v-d573e8e2] .button-vue,.avatardiv--with-menu[data-v-d573e8e2] .button-vue__icon{height:var(--avatar-size);min-height:var(--avatar-size);width:var(--avatar-size)!important;min-width:var(--avatar-size)}.avatardiv--with-menu[data-v-d573e8e2]>.button-vue,.avatardiv--with-menu[data-v-d573e8e2]>.action-item .button-vue{--button-radius: calc(var(--avatar-size) / 2)}.avatardiv .avatardiv__initials-wrapper[data-v-d573e8e2]{display:block;height:var(--avatar-size);width:var(--avatar-size);background-color:var(--color-main-background);border-radius:calc(var(--avatar-size) / 2)}.avatardiv .avatardiv__initials-wrapper .avatardiv__initials[data-v-d573e8e2]{position:absolute;top:0;left:0;display:block;width:100%;text-align:center;font-weight:var(--font-weight-default, normal)}.avatardiv img[data-v-d573e8e2]{width:100%;height:100%;object-fit:cover}.avatardiv .material-design-icon[data-v-d573e8e2]{width:var(--avatar-size);height:var(--avatar-size)}.avatardiv .avatardiv__user-status[data-v-d573e8e2]{--avatar-status-size-orbital: calc(var(--avatar-size) * (1 - 1 / sqrt(2)));--avatar-status-size-min: var(--font-size-small);--avatar-status-size: max(var(--avatar-status-size-orbital), var(--avatar-status-size-min));box-sizing:border-box;position:absolute;inset-inline-end:0;inset-block-end:0;height:var(--avatar-status-size);width:var(--avatar-status-size);line-height:1;font-size:calc(var(--avatar-status-size) / 1.2);background-color:var(--color-main-background);background-repeat:no-repeat;background-size:var(--avatar-status-size);background-position:center;border-radius:50%;display:flex;align-items:center;justify-content:center}.acli:hover .avatardiv .avatardiv__user-status[data-v-d573e8e2]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-d573e8e2]{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}.avatardiv .avatardiv__user-status--icon[data-v-d573e8e2]{border:none;background-color:transparent}.avatardiv .popovermenu-wrapper[data-v-d573e8e2]{position:relative;display:inline-block}.avatar-class-icon[data-v-d573e8e2]{display:block;border-radius:calc(var(--avatar-size) / 2);background-color:var(--color-background-darker);height:100%}._material-design-icon_Y0Z8V{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._externalLink_-OQw-{text-decoration:underline}._externalLink_decorated_LMmLc:after{content:" ↗"}.material-design-icon[data-v-86b73d39]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.user-status-icon[data-v-86b73d39]{--user-status-color-online: #2D7B41;--user-status-color-busy: #DB0606;--user-status-color-away: #C88800;--user-status-color-offline: #6B6B6B;display:flex;justify-content:center;align-items:center}.user-status-icon--invisible[data-v-86b73d39]{filter:var(--background-invert-if-dark)}.user-status-icon[data-v-86b73d39] svg{width:100%;height:100%}._fadeTransition_OHtaK{transition:all var(--animation-quick) ease}._fadeTransitionActive_5vb16{opacity:0;position:absolute}.material-design-icon[data-v-6e1e1ed2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-crumb[data-v-6e1e1ed2]{background-image:none;display:inline-flex;height:var(--default-clickable-area);padding:0}.vue-crumb[data-v-6e1e1ed2]:last-child{min-width:0}.vue-crumb:last-child .vue-crumb__separator[data-v-6e1e1ed2]{display:none}.vue-crumb--hidden[data-v-6e1e1ed2]{display:none}.vue-crumb__separator[data-v-6e1e1ed2]{padding:0;color:var(--color-text-maxcontrast)}.vue-crumb.vue-crumb--hovered[data-v-6e1e1ed2] .button-vue{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb[data-v-6e1e1ed2]:not(:last-child) .button-vue{color:var(--color-text-maxcontrast)}.vue-crumb[data-v-6e1e1ed2]:not(:last-child) .button-vue:hover,.vue-crumb[data-v-6e1e1ed2]:not(:last-child) .button-vue:focus{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb[data-v-6e1e1ed2]:not(:last-child) .button-vue__text{font-weight:var(--font-weight-element, normal)}.vue-crumb[data-v-6e1e1ed2] .button-vue__text{margin:0}.vue-crumb[data-v-6e1e1ed2]:not(.dropdown) .action-item{max-width:100%}.vue-crumb[data-v-6e1e1ed2]:not(.dropdown) .action-item .button-vue{padding:0 4px 0 16px;max-width:100%}.vue-crumb[data-v-6e1e1ed2]:not(.dropdown) .action-item .button-vue__wrapper{flex-direction:row-reverse}.vue-crumb[data-v-6e1e1ed2]:not(.dropdown) .action-item.action-item--open .action-item__menutoggle{background-color:var(--color-background-dark);color:var(--color-main-text)}.material-design-icon[data-v-8d4e090c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.breadcrumb[data-v-8d4e090c]{width:100%;flex-grow:1;display:inline-flex;align-items:center}.breadcrumb--collapsed[data-v-8d4e090c] .vue-crumb:last-child{min-width:100px}.breadcrumb nav[data-v-8d4e090c]{flex-shrink:1;min-width:0}.breadcrumb .breadcrumb__crumbs[data-v-8d4e090c]{max-width:100%}.breadcrumb .breadcrumb__crumbs[data-v-8d4e090c],.breadcrumb .breadcrumb__actions[data-v-8d4e090c]{display:inline-flex}.material-design-icon[data-v-88468fab]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.fade-enter-active[data-v-88468fab],.fade-leave-active[data-v-88468fab]{transition:opacity .3s ease}.fade-enter[data-v-88468fab],.fade-leave-to[data-v-88468fab]{opacity:0}.linked-icons[data-v-88468fab]{display:flex}.linked-icons img[data-v-88468fab]{padding:12px;height:44px;display:block;background-repeat:no-repeat;background-position:center;opacity:.7}.linked-icons img[data-v-88468fab]:hover{opacity:1}.popovermenu[data-v-88468fab]{display:none}.popovermenu.open[data-v-88468fab]{display:block}li.collection-list-item[data-v-88468fab]{flex-wrap:wrap;height:auto;cursor:pointer;margin-bottom:0!important}li.collection-list-item .collection-avatar[data-v-88468fab]{margin-top:0}li.collection-list-item form[data-v-88468fab],li.collection-list-item .collection-item-name[data-v-88468fab]{flex-basis:10%;flex-grow:1;display:flex}li.collection-list-item .collection-item-name[data-v-88468fab]{padding:12px 9px}li.collection-list-item input[data-v-88468fab]{margin-top:4px;border-color:var(--color-border-maxcontrast)}li.collection-list-item input[type=text][data-v-88468fab]{flex-grow:1}li.collection-list-item .error[data-v-88468fab],li.collection-list-item .resource-list-details[data-v-88468fab]{flex-basis:100%;width:100%}li.collection-list-item .resource-list-details li[data-v-88468fab]{display:flex;margin-left:44px;border-radius:3px;cursor:pointer}li.collection-list-item .resource-list-details li[data-v-88468fab]:hover{background-color:var(--color-background-dark)}li.collection-list-item .resource-list-details li a[data-v-88468fab]{flex-grow:1;padding:3px;max-width:calc(100% - 30px);display:flex}li.collection-list-item .resource-list-details span[data-v-88468fab]{display:inline-block;vertical-align:top;margin-right:10px}li.collection-list-item .resource-list-details span.resource-name[data-v-88468fab]{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top;white-space:nowrap;flex-grow:1;padding:4px}li.collection-list-item .resource-list-details img[data-v-88468fab]{width:24px;height:24px}li.collection-list-item .resource-list-details .icon-close[data-v-88468fab]{opacity:.7}li.collection-list-item .resource-list-details .icon-close[data-v-88468fab]:hover,li.collection-list-item .resource-list-details .icon-close[data-v-88468fab]:focus{opacity:1}.should-shake[data-v-88468fab]{animation:shake-88468fab .6s 1 linear}@keyframes shake-88468fab{0%{transform:translate(15px)}20%{transform:translate(-15px)}40%{transform:translate(7px)}60%{transform:translate(-7px)}80%{transform:translate(3px)}to{transform:translate(0)}}.material-design-icon[data-v-e1b88947]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.collection-list *[data-v-e1b88947]{box-sizing:border-box}.collection-list>li[data-v-e1b88947]{display:flex;align-items:center;gap:12px}.collection-list>li>.avatar[data-v-e1b88947]{margin-top:0}#collection-select-container[data-v-e1b88947]{display:flex;flex-direction:column}.v-select span.avatar[data-v-e1b88947]{display:block;padding:16px;opacity:.7;background-repeat:no-repeat;background-position:center}.v-select span.avatar[data-v-e1b88947]:hover{opacity:1}p.hint[data-v-e1b88947]{z-index:1;margin-top:-16px;padding:8px;color:var(--color-text-maxcontrast);line-height:normal}div.avatar[data-v-e1b88947]{width:32px;height:32px;margin:30px 0 0;padding:8px;background-color:var(--color-background-dark)}.icon-projects[data-v-e1b88947]{display:block;padding:8px;background-repeat:no-repeat;background-position:center}.option__wrapper[data-v-e1b88947]{display:flex}.option__wrapper .avatar[data-v-e1b88947]{display:block;width:32px;height:32px;background-color:var(--color-background-darker)!important}.option__wrapper .option__title[data-v-e1b88947]{padding:4px}.fade-enter-active[data-v-e1b88947],.fade-leave-active[data-v-e1b88947]{transition:opacity .5s}.fade-enter[data-v-e1b88947],.fade-leave-to[data-v-e1b88947]{opacity:0}body{--vs-search-input-color: var(--color-main-text);--vs-search-input-bg: var(--color-main-background);--vs-search-input-placeholder-color: var(--color-text-maxcontrast);--vs-font-size: var(--default-font-size);--vs-line-height: var(--default-line-height);--vs-state-disabled-bg: var(--color-background-hover);--vs-state-disabled-color: var(--color-text-maxcontrast);--vs-state-disabled-controls-color: var(--color-text-maxcontrast);--vs-state-disabled-cursor: not-allowed;--vs-disabled-bg: var(--color-background-hover);--vs-disabled-color: var(--color-text-maxcontrast);--vs-disabled-cursor: not-allowed;--vs-border-color: var(--color-border-maxcontrast);--vs-border-width: var(--border-width-input, 2px) !important;--vs-border-style: solid;--vs-border-radius: var(--border-radius-large);--vs-controls-color: var(--color-main-text);--vs-selected-bg: var(--color-background-hover);--vs-selected-color: var(--color-main-text);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: var(--color-main-background);--vs-dropdown-color: var(--color-main-text);--vs-dropdown-z-index: 9999;--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);--vs-dropdown-option-padding: 8px 20px;--vs-dropdown-option--active-bg: var(--color-background-hover);--vs-dropdown-option--active-color: var(--color-main-text);--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);--vs-dropdown-option--deselect-bg: var(--color-error);--vs-dropdown-option--deselect-color: #fff;--vs-transition-duration: 0ms;--vs-actions-padding: 0 8px 0 4px}.v-select.select{min-height:calc(var(--default-clickable-area) - 2 * var(--border-width-input));min-width:260px;margin:0 0 var(--default-grid-baseline)}.v-select.select.vs--open{--vs-border-width: var(--border-width-input-focused, 2px)}.v-select.select .select__label{display:block;margin-bottom:2px}.v-select.select .vs__selected{height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));margin:calc(var(--default-grid-baseline) / 2);padding-block:0;padding-inline:12px 8px;border-radius:16px!important;background:var(--color-primary-element-light);border:none}.v-select.select.vs--open .vs__selected:first-of-type{margin-inline-start:calc(var(--default-grid-baseline) / 2 - (var(--border-width-input-focused, 2px) - var(--border-width-input, 2px)))!important}.v-select.select .vs__search{text-overflow:ellipsis;color:var(--color-main-text);min-height:unset!important;height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width))!important}.v-select.select .vs__search::placeholder{color:var(--color-text-maxcontrast)}.v-select.select .vs__search,.v-select.select .vs__search:focus{margin:0}.v-select.select .vs__dropdown-toggle{position:relative;max-height:100px;padding:var(--border-width-input);overflow-y:auto}.v-select.select .vs__actions{position:sticky;top:0}.v-select.select .vs__clear{margin-right:2px}.v-select.select.vs--open .vs__dropdown-toggle{border-color:var(--color-main-text);border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0;border-style:solid;border-width:var(--border-width-input-focused);outline:2px solid var(--color-main-background);padding:0}.v-select.select:not(.vs--disabled,.vs--open) .vs__dropdown-toggle:active,.v-select.select:not(.vs--disabled,.vs--open) .vs__dropdown-toggle:focus-within{outline:2px solid var(--color-main-background);border-color:var(--color-main-text)}.v-select.select.vs--disabled .vs__search,.v-select.select.vs--disabled .vs__selected{color:var(--color-text-maxcontrast)}.v-select.select.vs--disabled .vs__clear,.v-select.select.vs--disabled .vs__deselect{display:none}.v-select.select--no-wrap .vs__selected-options{flex-wrap:nowrap;overflow:auto;min-width:unset}.v-select.select--no-wrap .vs__selected-options .vs__selected{min-width:unset}.v-select.select--drop-up.vs--open .vs__dropdown-toggle{border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-color:transparent;border-bottom-color:var(--color-main-text)}.v-select.select .vs__selected-options{min-height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width))}.v-select.select .vs__selected-options .vs__selected~.vs__search[readonly]{position:absolute}.v-select.select .vs__selected-options{padding:0 5px}.v-select.select.vs--single.vs--loading .vs__selected,.v-select.select.vs--single.vs--open .vs__selected{max-width:100%;opacity:1;color:var(--color-text-maxcontrast)}.v-select.select.vs--single .vs__selected-options{flex-wrap:nowrap}.v-select.select.vs--single .vs__selected{background:unset!important}.vs__dropdown-toggle{--input-border-box-shadow-light: 0 -1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--vs-border-color), 0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.vs__dropdown-toggle:hover:not([disabled]){box-shadow:0 0 0 1px var(--vs-border-color)}@media (prefers-color-scheme: dark){.vs__dropdown-toggle .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .vs__dropdown-toggle{--input-border-box-shadow: var(--input-border-box-shadow-light)}.select--legacy .vs__dropdown-toggle{box-shadow:0 0 0 1px var(--vs-border-color)}.select--legacy .vs__dropdown-toggle:hover:not([disabled]){box-shadow:0 0 0 2px var(--vs-border-color)}.vs__dropdown-menu{border-width:var(--border-width-input-focused)!important;border-color:var(--color-main-text)!important;outline:none!important;box-shadow:-2px 0 0 var(--color-main-background),0 2px 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important;padding:4px!important}.vs__dropdown-menu--floating{width:max-content;position:absolute;top:0;left:0}.vs__dropdown-menu--floating-placement-top{border-radius:var(--vs-border-radius) var(--vs-border-radius) 0 0!important;border-top-style:var(--vs-border-style)!important;border-bottom-style:none!important;box-shadow:0 -2px 0 var(--color-main-background),-2px 0 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important}.vs__dropdown-menu .vs__dropdown-option{border-radius:6px!important}.vs__dropdown-menu .vs__no-options{color:var(--color-text-lighter)!important}.user-select .vs__selected{padding-inline:0 5px!important}.material-design-icon[data-v-592b8444]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.name-parts[data-v-592b8444]{display:flex;max-width:100%;cursor:inherit}.name-parts__first[data-v-592b8444]{overflow:hidden;text-overflow:ellipsis}.name-parts__first[data-v-592b8444],.name-parts__last[data-v-592b8444]{white-space:pre;cursor:inherit}.name-parts__first strong[data-v-592b8444],.name-parts__last strong[data-v-592b8444]{font-weight:700}.material-design-icon[data-v-eff1d9a4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.option[data-v-eff1d9a4]{display:flex;align-items:center;width:100%;height:var(--height);cursor:inherit}.option__avatar[data-v-eff1d9a4]{margin-right:var(--margin)}.option__details[data-v-eff1d9a4]{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0}.option__lineone[data-v-eff1d9a4]{color:var(--color-main-text)}.option__linetwo[data-v-eff1d9a4]{color:var(--color-text-maxcontrast)}.option__lineone[data-v-eff1d9a4],.option__linetwo[data-v-eff1d9a4]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2}.option__lineone strong[data-v-eff1d9a4],.option__linetwo strong[data-v-eff1d9a4]{font-weight:700}.option--compact .option__lineone[data-v-eff1d9a4]{font-size:14px}.option--compact .option__linetwo[data-v-eff1d9a4]{font-size:11px;line-height:1.5;margin-top:-4px}.option__icon[data-v-eff1d9a4]{width:var(--default-clickable-area);height:var(--default-clickable-area);color:var(--color-text-maxcontrast)}.option__icon.icon[data-v-eff1d9a4]{flex:0 0 var(--default-clickable-area);opacity:.7;background-position:center;background-size:16px}.option__details[data-v-eff1d9a4],.option__lineone[data-v-eff1d9a4],.option__linetwo[data-v-eff1d9a4],.option__icon[data-v-eff1d9a4]{cursor:inherit}:host,:root{--vs-colors--lightest:rgba(60,60,60,.26);--vs-colors--light:rgba(60,60,60,.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#136cfb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--kb-focus-box-shadow:inset 0px 0px 0px 2px #949494;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-.115,.975,.855);--vs-transition-duration:.15s}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,.5,.8,1);--vs-transition-duration:.15s}@-webkit-keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled .vs__clear,.vs--disabled .vs__dropdown-toggle,.vs--disabled .vs__open-indicator,.vs--disabled .vs__open-indicator-button,.vs--disabled .vs__search,.vs--disabled .vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}.v-select[dir=rtl] .vs__actions{padding:0 3px 0 6px}.v-select[dir=rtl] .vs__clear{margin-left:6px;margin-right:0}.v-select[dir=rtl] .vs__deselect{margin-left:0;margin-right:2px}.v-select[dir=rtl] .vs__dropdown-menu{text-align:right}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;min-width:0;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator-button{background-color:transparent;border:0;cursor:pointer;padding:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{fill:var(--vs-controls-color);background-color:transparent;border:0;cursor:pointer;margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--kb-focus{box-shadow:var(--vs-dropdown-option--kb-focus-box-shadow)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;min-width:0;padding:0 .25em;z-index:0}.vs__deselect{fill:var(--vs-controls-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single .vs__selected{background-color:transparent;border-color:transparent}.vs--single.vs--loading .vs__selected,.vs--single.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}.vs--single.vs--searching .vs__selected{display:none}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search:-ms-input-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable .vs__search{opacity:1}.vs--unsearchable:not(.vs--disabled) .vs__search{cursor:pointer}.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search{opacity:.2}.vs__spinner{align-self:center;-webkit-animation:vSelectSpinner 1.1s linear infinite;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39%,.1);border-left-color:#3c3c3c73;font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}.material-design-icon[data-v-a8b9d9f6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.color-picker[data-v-a8b9d9f6]{display:flex;overflow:hidden;align-content:flex-end;flex-direction:column;justify-content:space-between;padding:var(--border-radius-element);min-width:calc(4 * var(--default-clickable-area) + 2 * var(--border-radius-element))}.color-picker--clearable[data-v-a8b9d9f6]{min-width:calc(5 * var(--default-clickable-area) + 2 * var(--border-radius-element))}.color-picker--advanced-fields[data-v-a8b9d9f6]{min-width:264px}.color-picker__clear[data-v-a8b9d9f6]{color:var(--color-main-text)}.color-picker__clear[data-v-a8b9d9f6]:hover:not(:has(:checked)){color:var(--color-text-maxcontrast)}.color-picker__simple[data-v-a8b9d9f6]{display:grid;grid-template-columns:repeat(auto-fit,var(--default-clickable-area));grid-auto-rows:var(--default-clickable-area)}.color-picker__simple-color-circle[data-v-a8b9d9f6]{display:flex;align-items:center;justify-content:center;width:calc(var(--default-clickable-area) - 10px);height:calc(var(--default-clickable-area) - 10px);min-height:calc(var(--default-clickable-area) - 10px);margin:auto;padding:0;color:#fff;border:1px solid rgba(0,0,0,.25);border-radius:50%;font-size:16px}.color-picker__simple-color-circle[data-v-a8b9d9f6]:focus-within{outline:2px solid var(--color-main-text)}.color-picker__simple-color-circle[data-v-a8b9d9f6]:hover{opacity:.6}.color-picker__simple-color-circle--active[data-v-a8b9d9f6]{width:calc(var(--default-clickable-area) - 6px);height:calc(var(--default-clickable-area) - 6px);min-height:calc(var(--default-clickable-area) - 6px);transition:all .1s ease-in-out;opacity:1!important}.color-picker__advanced[data-v-a8b9d9f6]{box-shadow:none!important}.color-picker__navigation[data-v-a8b9d9f6]{display:flex;flex-direction:row;gap:var(--default-grid-baseline);justify-content:space-between;margin-top:calc(2 * var(--default-grid-baseline))}[data-v-a8b9d9f6] .vc-chrome{width:unset;background-color:var(--color-main-background)}[data-v-a8b9d9f6] .vc-chrome-color-wrap{width:30px;height:30px}[data-v-a8b9d9f6] .vc-chrome-active-color{border-radius:17px}[data-v-a8b9d9f6] .vc-chrome-body{padding:14px 0 0;background-color:var(--color-main-background)}[data-v-a8b9d9f6] .vc-chrome-body .vc-input__input{--input-border-radius: var(--border-radius-element, var(--border-radius-large));--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));width:100%;height:var(--default-clickable-area);margin:0;padding-inline:calc(var(--border-radius-large) + var(--input-border-width-offset));padding-block:var(--input-border-width-offset);border:var(--border-width-input, 2px) solid var(--color-border-maxcontrast);border-radius:var(--input-border-radius);font-size:var(--default-font-size);color:var(--color-main-text);box-shadow:none}[data-v-a8b9d9f6] .vc-chrome-body .vc-input__input:active:not([disabled]),[data-v-a8b9d9f6] .vc-chrome-body .vc-input__input:hover:not([disabled]),[data-v-a8b9d9f6] .vc-chrome-body .vc-input__input:focus:not([disabled]){--input-border-width-offset: 0px;border-color:var(--color-main-text);border-width:var(--border-width-input-focused, 2px);box-shadow:0 0 0 2px var(--color-main-background)!important}[data-v-a8b9d9f6] .vc-chrome-body .vc-input__input:active:not([disabled])+.vc-input__label,[data-v-a8b9d9f6] .vc-chrome-body .vc-input__input:hover:not([disabled])+.vc-input__label,[data-v-a8b9d9f6] .vc-chrome-body .vc-input__input:focus:not([disabled])+.vc-input__label{color:var(--color-main-text)}[data-v-a8b9d9f6] .vc-chrome-body .vc-input__label{position:absolute;inset-inline:var(--border-width-input-focused, 2px);inset-block-start:calc(-1.5 * var(--font-size-small, 13px) / 2);max-width:fit-content;margin-inline:calc(var(--border-radius-large) - var(--default-grid-baseline));margin-block:0;padding-inline:var(--default-grid-baseline);font-family:var(--font-face);font-size:var(--font-size-small, 13px);line-height:1.5;font-weight:var(--font-weight-element, 500);color:var(--color-text-maxcontrast);background-color:var(--color-main-background);pointer-events:none}[data-v-a8b9d9f6] .vc-chrome-toggle-btn{display:flex;justify-content:center;align-items:center;width:var(--default-clickable-area);height:var(--default-clickable-area);margin-inline-start:6px;filter:var(--background-invert-if-dark)}[data-v-a8b9d9f6] .vc-chrome-toggle-icon{width:24px;height:24px;margin:0}[data-v-a8b9d9f6] .vc-chrome-toggle-icon-highlight{width:var(--default-clickable-area);height:var(--default-clickable-area);inset:0}[data-v-a8b9d9f6] .vc-chrome-saturation-wrap{border-radius:3px}[data-v-a8b9d9f6] .vc-chrome-saturation-circle{width:20px;height:20px}.slide-enter[data-v-a8b9d9f6]{transform:translate(-50%);opacity:0}.slide-enter-to[data-v-a8b9d9f6],.slide-leave[data-v-a8b9d9f6]{transform:translate(0);opacity:1}.slide-leave-to[data-v-a8b9d9f6]{transform:translate(-50%);opacity:0}.slide-enter-active[data-v-a8b9d9f6],.slide-leave-active[data-v-a8b9d9f6]{transition:all 50ms ease-in-out}#skip-actions.vue-skip-actions:focus-within{top:0!important;left:0!important;width:100vw;height:100vh;padding:var(--body-container-margin)!important;-webkit-backdrop-filter:brightness(50%);backdrop-filter:brightness(50%)}@media only screen and (min-width: 1024px){.content:not(.content--legacy) .app-navigation:not(.app-navigation--close)~.app-content{border-inline-start:1px solid var(--color-border);border-start-start-radius:var(--body-container-radius);border-end-start-radius:var(--body-container-radius)}}.material-design-icon[data-v-0549f131]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-skip-actions__container[data-v-0549f131]{background-color:var(--color-main-background);border-radius:var(--border-radius-large);padding:22px}.vue-skip-actions__headline[data-v-0549f131]{font-weight:var(--font-weight-heading, bold);font-size:20px;line-height:30px;margin-bottom:12px}.vue-skip-actions__buttons[data-v-0549f131]{display:flex;flex-wrap:wrap;gap:12px}.vue-skip-actions__buttons>*[data-v-0549f131]{flex:1 0 fit-content}.vue-skip-actions__image[data-v-0549f131]{margin-top:12px}.vue-skip-actions__image[data-v-0549f131]:dir(rtl){transform:rotateY(180deg)}.content[data-v-0549f131]{box-sizing:border-box;margin:var(--body-container-margin);margin-top:var(--header-height);display:flex;width:calc(100% - var(--body-container-margin) * 2);border-radius:var(--body-container-radius);height:var(--body-height);overflow:hidden;padding:0}.content[data-v-0549f131]:not(.content--legacy){background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}.content[data-v-0549f131]:not(.with-sidebar--full){position:fixed}.content[data-v-0549f131] *{box-sizing:border-box}.material-design-icon[data-v-7d9795d6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.counter-bubble__counter[data-v-7d9795d6]{--counter-bubble-height: 22px;font-size:var(--font-size-small, 13px);overflow:hidden;width:fit-content;min-width:var(--counter-bubble-height);text-align:center;line-height:var(--counter-bubble-height);padding:0 calc(1.5 * var(--default-grid-baseline));border-radius:var(--border-radius-pill);background-color:var(--color-primary-element-light);font-weight:700;color:var(--color-primary-element-light-text)}.counter-bubble__counter .active[data-v-7d9795d6]{color:var(--color-main-background);background-color:var(--color-primary-element-light)}.counter-bubble__counter--highlighted[data-v-7d9795d6]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.counter-bubble__counter--highlighted.active[data-v-7d9795d6]{color:var(--color-primary-element);background-color:var(--color-main-background)}.counter-bubble__counter--outlined[data-v-7d9795d6]{color:var(--color-primary-element);background:transparent;box-shadow:inset 0 0 0 2px}.counter-bubble__counter--outlined.active[data-v-7d9795d6]{color:var(--color-main-background);box-shadow:inset 0 0 0 2px}.material-design-icon[data-v-bde19bf3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dashboard-widget[data-v-bde19bf3] .empty-content{text-align:center;padding-top:5vh}.dashboard-widget[data-v-bde19bf3] .empty-content.half-screen{padding-top:0;margin-bottom:1vh}.more[data-v-bde19bf3]{display:block;text-align:center;color:var(--color-text-maxcontrast);line-height:60px;cursor:pointer}.more[data-v-bde19bf3]:hover,.more[data-v-bde19bf3]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-large);color:var(--color-main-text)}.item-list__entry[data-v-bde19bf3]{display:flex;align-items:flex-start;padding:8px}.item-list__entry .item-avatar[data-v-bde19bf3]{position:relative;margin-top:auto;margin-bottom:auto;background-color:var(--color-background-dark)!important}.item-list__entry .item__details[data-v-bde19bf3]{padding-left:8px;max-height:var(--default-clickable-area);flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-bde19bf3],.item-list__entry .item__details .message[data-v-bde19bf3]{white-space:nowrap;background-color:var(--color-background-dark)}.item-list__entry .item__details h3[data-v-bde19bf3]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-bde19bf3]{width:80%;height:15px;margin-top:5px}.material-design-icon[data-v-3c6f752d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.item-list__entry[data-v-3c6f752d]{display:flex;align-items:center;position:relative;padding:8px}.item-list__entry[data-v-3c6f752d]:hover,.item-list__entry[data-v-3c6f752d]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.item-list__entry .item-avatar[data-v-3c6f752d]{position:relative;margin-top:auto;margin-bottom:auto}.item-list__entry .item__details[data-v-3c6f752d]{padding-inline-start:8px;max-height:fit-content;flex-grow:1;overflow:hidden;display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area)}.item-list__entry .item__details h3[data-v-3c6f752d],.item-list__entry .item__details .message[data-v-3c6f752d]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-list__entry .item__details .message span[data-v-3c6f752d]{width:10px;display:inline-block;margin-bottom:-3px}.item-list__entry .item__details h3[data-v-3c6f752d]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-3c6f752d]{width:100%;color:var(--color-text-maxcontrast)}.item-list__entry .item-icon[data-v-3c6f752d]{position:relative;width:14px;height:14px;margin-top:25px;margin-inline:-10px -2px}.item-list__entry button.primary[data-v-3c6f752d]{padding:21px;margin:0}.mx-icon-left:before,.mx-icon-right:before,.mx-icon-double-left:before,.mx-icon-double-right:before,.mx-icon-double-left:after,.mx-icon-double-right:after{content:"";position:relative;top:-1px;display:inline-block;width:10px;height:10px;vertical-align:middle;border-style:solid;border-color:currentColor;border-width:2px 0 0 2px;border-radius:1px;box-sizing:border-box;transform-origin:center;transform:rotate(-45deg) scale(.7)}.mx-icon-double-left:after{left:-4px}.mx-icon-double-right:before{left:4px}.mx-icon-right:before,.mx-icon-double-right:before,.mx-icon-double-right:after{transform:rotate(135deg) scale(.7)}.mx-btn{box-sizing:border-box;line-height:1;font-size:14px;font-weight:500;padding:7px 15px;margin:0;cursor:pointer;background-color:transparent;outline:none;border:1px solid rgba(0,0,0,.1);border-radius:4px;color:#73879c;white-space:nowrap}.mx-btn:hover{border-color:#1284e7;color:#1284e7}.mx-btn:disabled,.mx-btn.disabled{color:#ccc;cursor:not-allowed}.mx-btn-text{border:0;padding:0 4px;text-align:left;line-height:inherit}.mx-scrollbar{height:100%}.mx-scrollbar:hover .mx-scrollbar-track{opacity:1}.mx-scrollbar-wrap{height:100%;overflow-x:hidden;overflow-y:auto}.mx-scrollbar-track{position:absolute;top:2px;right:2px;bottom:2px;width:6px;z-index:1;border-radius:4px;opacity:0;transition:opacity .24s ease-out}.mx-scrollbar-track .mx-scrollbar-thumb{position:absolute;width:100%;height:0;cursor:pointer;border-radius:inherit;background-color:#9093994d;transition:background-color .3s}.mx-zoom-in-down-enter-active,.mx-zoom-in-down-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.mx-zoom-in-down-enter,.mx-zoom-in-down-enter-from,.mx-zoom-in-down-leave-to{opacity:0;transform:scaleY(0)}.mx-datepicker{position:relative;display:inline-block;width:210px}.mx-datepicker svg{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.mx-datepicker-range{width:320px}.mx-datepicker-inline{width:auto}.mx-input-wrapper{position:relative}.mx-input{display:inline-block;box-sizing:border-box;width:100%;height:34px;padding:6px 30px 6px 10px;font-size:14px;line-height:1.4;color:#555;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px #00000013}.mx-input:hover,.mx-input:focus{border-color:#409aff}.mx-input:disabled,.mx-input.disabled{color:#ccc;background-color:#f3f3f3;border-color:#ccc;cursor:not-allowed}.mx-input:focus{outline:none}.mx-input::-ms-clear{display:none}.mx-icon-calendar,.mx-icon-clear{position:absolute;top:50%;right:8px;transform:translateY(-50%);font-size:16px;line-height:1;color:#00000080;vertical-align:middle}.mx-icon-clear{cursor:pointer}.mx-icon-clear:hover{color:#000c}.mx-datepicker-main{font:14px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,sans-serif;color:#73879c;background-color:#fff;border:1px solid #e8e8e8}.mx-datepicker-popup{position:absolute;margin-top:1px;margin-bottom:1px;box-shadow:0 6px 12px #0000002d;z-index:2001}.mx-datepicker-sidebar{float:left;box-sizing:border-box;width:100px;padding:6px;overflow:auto}.mx-datepicker-sidebar+.mx-datepicker-content{margin-left:100px;border-left:1px solid #e8e8e8}.mx-datepicker-body{position:relative;-webkit-user-select:none;user-select:none}.mx-btn-shortcut{display:block;padding:0 6px;line-height:24px}.mx-range-wrapper{display:flex}@media (max-width: 750px){.mx-range-wrapper{flex-direction:column}}.mx-datepicker-header{padding:6px 8px;border-bottom:1px solid #e8e8e8}.mx-datepicker-footer{padding:6px 8px;text-align:right;border-top:1px solid #e8e8e8}.mx-calendar{box-sizing:border-box;width:248px;padding:6px 12px}.mx-calendar+.mx-calendar{border-left:1px solid #e8e8e8}.mx-calendar-header,.mx-time-header{box-sizing:border-box;height:34px;line-height:34px;text-align:center;overflow:hidden}.mx-btn-icon-left,.mx-btn-icon-double-left{float:left}.mx-btn-icon-right,.mx-btn-icon-double-right{float:right}.mx-calendar-header-label{font-size:14px}.mx-calendar-decade-separator{margin:0 2px}.mx-calendar-decade-separator:after{content:"~"}.mx-calendar-content{position:relative;height:224px;box-sizing:border-box}.mx-calendar-content .cell{cursor:pointer}.mx-calendar-content .cell:hover{color:#73879c;background-color:#f3f9fe}.mx-calendar-content .cell.active{color:#fff;background-color:#1284e7}.mx-calendar-content .cell.in-range,.mx-calendar-content .cell.hover-in-range{color:#73879c;background-color:#dbedfb}.mx-calendar-content .cell.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-calendar-week-mode .mx-date-row{cursor:pointer}.mx-calendar-week-mode .mx-date-row:hover{background-color:#f3f9fe}.mx-calendar-week-mode .mx-date-row.mx-active-week{background-color:#dbedfb}.mx-calendar-week-mode .mx-date-row .cell:hover,.mx-calendar-week-mode .mx-date-row .cell.active{color:inherit;background-color:transparent}.mx-week-number{opacity:.5}.mx-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;height:100%;box-sizing:border-box;text-align:center}.mx-table th{padding:0;font-weight:500;vertical-align:middle}.mx-table td{padding:0;vertical-align:middle}.mx-table-date td,.mx-table-date th{height:32px;font-size:12px}.mx-table-date .today{color:#2a90e9}.mx-table-date .cell.not-current-month{color:#ccc;background:none}.mx-time{flex:1;width:224px;background:#fff}.mx-time+.mx-time{border-left:1px solid #e8e8e8}.mx-calendar-time{position:absolute;top:0;left:0;width:100%;height:100%}.mx-time-header{border-bottom:1px solid #e8e8e8}.mx-time-content{height:224px;box-sizing:border-box;overflow:hidden}.mx-time-columns{display:flex;width:100%;height:100%;overflow:hidden}.mx-time-column{flex:1;position:relative;border-left:1px solid #e8e8e8;text-align:center}.mx-time-column:first-child{border-left:0}.mx-time-column .mx-time-list{margin:0;padding:0;list-style:none}.mx-time-column .mx-time-list:after{content:"";display:block;height:192px}.mx-time-column .mx-time-item{cursor:pointer;font-size:12px;height:32px;line-height:32px}.mx-time-column .mx-time-item:hover{color:#73879c;background-color:#f3f9fe}.mx-time-column .mx-time-item.active{color:#1284e7;background-color:transparent;font-weight:700}.mx-time-column .mx-time-item.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-time-option{cursor:pointer;padding:8px 10px;font-size:14px;line-height:20px}.mx-time-option:hover{color:#73879c;background-color:#f3f9fe}.mx-time-option.active{color:#1284e7;background-color:transparent;font-weight:700}.mx-time-option.disabled{cursor:not-allowed;color:#ccc;background-color:#f3f3f3}.mx-datepicker[data-v-e7118ae]{-webkit-user-select:none;user-select:none;color:var(--color-main-text)}.mx-datepicker[data-v-e7118ae] svg{fill:var(--color-main-text)}.mx-datepicker[data-v-e7118ae] .mx-input-wrapper .mx-input{width:100%;border:2px solid var(--color-border-maxcontrast);background-color:var(--color-main-background);background-clip:content-box}.mx-datepicker[data-v-e7118ae] .mx-input-wrapper .mx-input:active:not(.disabled),.mx-datepicker[data-v-e7118ae] .mx-input-wrapper .mx-input:hover:not(.disabled),.mx-datepicker[data-v-e7118ae] .mx-input-wrapper .mx-input:focus:not(.disabled){border-color:var(--color-primary-element)}.mx-datepicker[data-v-e7118ae] .mx-input-wrapper:disabled,.mx-datepicker[data-v-e7118ae] .mx-input-wrapper.disabled{cursor:not-allowed;opacity:.7}.mx-datepicker[data-v-e7118ae] .mx-input-wrapper .mx-icon-calendar,.mx-datepicker[data-v-e7118ae] .mx-input-wrapper .mx-icon-clear{color:var(--color-text-lighter)}.mx-datepicker-main{color:var(--color-main-text);border:1px solid var(--color-border);background-color:var(--color-main-background);font-family:var(--font-face)!important;line-height:1.5}.mx-datepicker-main svg{fill:var(--color-main-text)}.mx-datepicker-main.mx-datepicker-popup{z-index:2000;box-shadow:none}.mx-datepicker-main.mx-datepicker-popup .mx-datepicker-sidebar+.mx-datepicker-content{border-left:1px solid var(--color-border)}.mx-datepicker-main.show-week-number .mx-calendar{width:296px}.mx-datepicker-main .mx-datepicker-header{border-bottom:1px solid var(--color-border)}.mx-datepicker-main .mx-datepicker-footer{border-top:1px solid var(--color-border)}.mx-datepicker-main .mx-datepicker-btn-confirm{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-element-text)!important;opacity:1!important}.mx-datepicker-main .mx-datepicker-btn-confirm:hover{background-color:var(--color-primary-element-light)!important;border-color:var(--color-primary-element-light)!important}.mx-datepicker-main .mx-calendar{width:264px;padding:5px}.mx-datepicker-main .mx-calendar.mx-calendar-week-mode{width:296px}.mx-datepicker-main .mx-time+.mx-time,.mx-datepicker-main .mx-calendar+.mx-calendar{border-left:1px solid var(--color-border)}.mx-datepicker-main .mx-range-wrapper{display:flex;overflow:hidden}.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell{border-radius:var(--border-radius-small)}.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.active{border-radius:var(--border-radius-small) 0 0 var(--border-radius-small)}.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.in-range+.cell.active{border-radius:0 var(--border-radius-small) var(--border-radius-small) 0}.mx-datepicker-main .mx-table{text-align:center}.mx-datepicker-main .mx-table thead>tr>th{text-align:center;opacity:.5;color:var(--color-main-text)}.mx-datepicker-main .mx-table tr:focus,.mx-datepicker-main .mx-table tr:hover,.mx-datepicker-main .mx-table tr:active{background-color:transparent}.mx-datepicker-main .mx-table .cell{transition:all .1s ease-in-out;text-align:center;opacity:.7;border-radius:var(--border-radius-small);min-height:var(--clickable-area-small)!important}.mx-datepicker-main .mx-table .cell>*{cursor:pointer}.mx-datepicker-main .mx-table .cell.today{opacity:1;font-weight:700;background-color:transparent;color:var(--color-primary-element);border-radius:var(--border-radius-small)}.mx-datepicker-main .mx-table .cell.today:hover,.mx-datepicker-main .mx-table .cell.today:focus{color:var(--color-primary-element-text)}.mx-datepicker-main .mx-table .cell.in-range,.mx-datepicker-main .mx-table .cell.disabled{border-radius:var(--border-radius-small);color:var(--color-main-text);opacity:1}.mx-datepicker-main .mx-table .cell.in-range{opacity:.7}.mx-datepicker-main .mx-table .cell.not-current-month{opacity:.5;color:var(--color-text-maxcontrast)}.mx-datepicker-main .mx-table .cell.not-current-month:hover,.mx-datepicker-main .mx-table .cell.not-current-month:focus{opacity:1}.mx-datepicker-main .mx-table .cell:hover,.mx-datepicker-main .mx-table .cell:focus,.mx-datepicker-main .mx-table .cell.actived,.mx-datepicker-main .mx-table .cell.active,.mx-datepicker-main .mx-table .cell.in-range{opacity:1;color:var(--color-primary-element-text);background-color:var(--color-primary-element);font-weight:700}.mx-datepicker-main .mx-table .cell.disabled{opacity:1;color:var(--color-main-text);border-radius:var(--border-radius-small)}.mx-datepicker-main .mx-table .mx-week-number{text-align:center;opacity:.7;border-radius:50px}.mx-datepicker-main .mx-table span.mx-week-number,.mx-datepicker-main .mx-table li.mx-week-number,.mx-datepicker-main .mx-table span.cell,.mx-datepicker-main .mx-table li.cell{min-height:32px}.mx-datepicker-main .mx-table.mx-table-date thead,.mx-datepicker-main .mx-table.mx-table-date tbody,.mx-datepicker-main .mx-table.mx-table-year,.mx-datepicker-main .mx-table.mx-table-month{display:flex;flex-direction:column;justify-content:space-around}.mx-datepicker-main .mx-table.mx-table-date thead tr,.mx-datepicker-main .mx-table.mx-table-date tbody tr,.mx-datepicker-main .mx-table.mx-table-year tr,.mx-datepicker-main .mx-table.mx-table-month tr{display:inline-flex;align-items:center;flex:1 1 32px;justify-content:space-around;min-height:32px;color:var(--color-main-text)}.mx-datepicker-main .mx-table.mx-table-date thead th,.mx-datepicker-main .mx-table.mx-table-date thead td,.mx-datepicker-main .mx-table.mx-table-date tbody th,.mx-datepicker-main .mx-table.mx-table-date tbody td,.mx-datepicker-main .mx-table.mx-table-year th,.mx-datepicker-main .mx-table.mx-table-year td,.mx-datepicker-main .mx-table.mx-table-month th,.mx-datepicker-main .mx-table.mx-table-month td{display:flex;align-items:center;flex:0 1 32%;justify-content:center;min-width:32px;height:95%;min-height:32px;transition:background .1s ease-in-out;color:var(--color-main-text)}.mx-datepicker-main .mx-table.mx-table-year tr th,.mx-datepicker-main .mx-table.mx-table-year tr td{flex-basis:48%}.mx-datepicker-main .mx-table.mx-table-date tr th,.mx-datepicker-main .mx-table.mx-table-date tr td{flex-basis:32px}.mx-datepicker-main .mx-btn{min-width:32px;height:32px;margin:0 2px!important;padding:0;cursor:pointer;text-decoration:none;opacity:1;color:var(--color-main-text);border-radius:var(--border-radius-small);line-height:20px}.mx-datepicker-main .mx-btn:hover,.mx-datepicker-main .mx-btn:focus{opacity:1;color:var(--color-main-text);background-color:var(--color-background-darker)}.mx-datepicker-main .mx-calendar-header{display:inline-flex;align-items:center;justify-content:space-between;width:100%;height:var(--default-clickable-area);margin-bottom:4px}.mx-datepicker-main .mx-calendar-header button{min-width:32px;min-height:32px;margin:0;cursor:pointer;text-align:center;text-decoration:none;opacity:1;color:var(--color-main-text);border-radius:var(--border-radius-small);background-color:transparent;line-height:20px}.mx-datepicker-main .mx-calendar-header button:hover,.mx-datepicker-main .mx-calendar-header button:focus{opacity:1;color:var(--color-main-text);background-color:var(--color-background-darker)}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right{align-items:center;justify-content:center;width:32px;padding:0}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left>i:after,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left>i:before,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left>i:after,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left>i:before,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right>i:after,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right>i:before,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right>i:after,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right>i:before{content:none}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right>i,.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right>i{background-repeat:no-repeat;background-size:16px;background-position:center;filter:var(--background-invert-if-dark);display:inline-block;width:32px;height:32px}.mx-datepicker-main .mx-calendar-header button.mx-btn-text{line-height:initial}.mx-datepicker-main .mx-calendar-header .mx-calendar-header-label{display:flex;color:var(--color-main-text)}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-left>i{background-image:url("data:image/svg+xml,%3c!--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='%23222'%3e%3cpath%20d='M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z'/%3e%3c/svg%3e")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-left>i{background-image:url("data:image/svg+xml,%3c!--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='%23222'%3e%3cpath%20d='M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z'/%3e%3c/svg%3e")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-right>i{background-image:url("data:image/svg+xml,%3c!--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='%23222'%3e%3cpath%20d='M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z'/%3e%3c/svg%3e")}.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-right>i{background-image:url("data:image/svg+xml,%3c!--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='%23222'%3e%3cpath%20d='M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z'/%3e%3c/svg%3e")}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right{order:2}.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right{order:3}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row .mx-week-number{font-weight:700}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week{opacity:1;border-radius:var(--border-radius-small);background-color:var(--color-background-dark)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td{background-color:transparent}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:focus,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:hover,.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:focus{color:inherit}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td{opacity:.7;font-weight:400}.mx-datepicker-main .mx-time{background-color:var(--color-main-background)}.mx-datepicker-main .mx-time .mx-time-header{justify-content:center;border-bottom:1px solid var(--color-border);opacity:1!important;background-color:transparent}.mx-datepicker-main .mx-time .mx-time-column{border-left:1px solid var(--color-border)}.mx-datepicker-main .mx-time .mx-time-option.active,.mx-datepicker-main .mx-time .mx-time-item.active{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.mx-datepicker-main .mx-time .mx-time-option:hover,.mx-datepicker-main .mx-time .mx-time-item:hover{background-color:var(--color-background-hover);color:var(--color-main-text)}.mx-datepicker-main .mx-time .mx-time-option.disabled,.mx-datepicker-main .mx-time .mx-time-item.disabled{cursor:not-allowed;opacity:.5;color:var(--color-main-text)}.material-design-icon[data-v-ecb9b537]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mx-datepicker[data-v-ecb9b537] .mx-input-wrapper .mx-input{background-clip:border-box}.datetime-picker-inline-icon[data-v-ecb9b537]{opacity:.3;border:none;background-color:transparent;border-radius:0;padding:0!important;margin:0}.datetime-picker-inline-icon--highlighted[data-v-ecb9b537]{opacity:.7}.datetime-picker-inline-icon[data-v-ecb9b537]:focus,.datetime-picker-inline-icon[data-v-ecb9b537]:hover{opacity:1}.v-popper--theme-nc-popover-8.v-popper__popper.timezone-select__popper .v-popper__wrapper{border-radius:var(--border-radius-large)}.v-popper--theme-nc-popover-8.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner{padding:4px;border-radius:var(--border-radius-large)}.v-popper--theme-nc-popover-8.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__label{padding:4px 0 4px 14px}.v-popper--theme-nc-popover-8.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select.select{min-width:246px;left:-8px!important}.v-popper--theme-nc-popover-8.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select .vs__dropdown-toggle{border-radius:calc(var(--border-radius-large) - 4px)}.v-popper--theme-nc-popover-8.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select.vs--open .vs__dropdown-toggle{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-popper--theme-nc-popover-8.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select.vs--open.select--drop-up .vs__dropdown-toggle{border-radius:0 0 calc(var(--border-radius-large) - 4px) calc(var(--border-radius-large) - 4px)}.vs__dropdown-menu--floating{z-index:100001!important}.material-design-icon[data-v-a3ed576d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart *{box-sizing:border-box;line-height:1.15}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart{font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;font-size:16px;display:flex;flex-direction:column;height:420px;color:#222427;border:1px solid #d9d9d9;border-radius:5px;background:#fff}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-emoji{padding:6px;position:relative;display:inline-block;font-size:0;border:none;background:none;box-shadow:none}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-emoji span{display:inline-block}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-emoji .emoji-mart-emoji span{width:38px;height:38px;font-size:32px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-type-native{font-family:"Segoe UI Emoji",Segoe UI Symbol,Segoe UI,"Apple Color Emoji",Twemoji Mozilla,"Noto Color Emoji",EmojiOne Color,"Android Emoji";word-break:keep-all}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-type-image{background-size:6100%}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-type-image.emoji-set-apple{background-image:url(https://unpkg.com/emoji-datasource-apple@15.0.1/img/apple/sheets-256/64.png)}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-type-image.emoji-set-facebook{background-image:url(https://unpkg.com/emoji-datasource-facebook@15.0.1/img/facebook/sheets-256/64.png)}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-type-image.emoji-set-google{background-image:url(https://unpkg.com/emoji-datasource-google@15.0.1/img/google/sheets-256/64.png)}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-type-image.emoji-set-twitter{background-image:url(https://unpkg.com/emoji-datasource-twitter@15.0.1/img/twitter/sheets-256/64.png)}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-bar{border:0 solid #d9d9d9}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-scroll{position:relative;overflow-y:scroll;flex:1;padding:0 6px 6px;z-index:0;will-change:transform;-webkit-overflow-scrolling:touch}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-anchors{display:flex;flex-direction:row;justify-content:space-between;padding:0 6px;color:#858585;line-height:0}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-anchor{position:relative;display:block;flex:1 1 auto;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;border:none;background:none;box-shadow:none}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-anchor:hover,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-anchor-selected{color:#464646}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#464646}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-anchors svg{fill:currentColor;max-height:18px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .scroller{height:250px;position:relative;flex:1;padding:0 6px 6px;z-index:0;will-change:transform;-webkit-overflow-scrolling:touch}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-search{margin-top:6px;padding:0 6px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-search input{font-size:16px;display:block;width:100%;padding:.2em .6em;border-radius:25px;border:1px solid #d9d9d9;outline:0}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-search-results{height:250px;overflow-y:scroll}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-category{position:relative}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center;cursor:default}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-category .emoji-mart-emoji:hover:before,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-emoji-selected:before{z-index:0;content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#f4f4f4;border-radius:100%;opacity:0}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-category .emoji-mart-emoji:hover:before,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-emoji-selected:before{opacity:1}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-category-label{position:sticky;top:0}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-static .emoji-mart-category-label{z-index:2;position:relative}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-category-label h3{display:block;font-size:16px;width:100%;font-weight:500;padding:5px 6px;background-color:#fff;background-color:#fffffff2}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#858585}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-no-results .emoji-mart-category-label{display:none}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-no-results .emoji-mart-emoji:hover:before{content:none}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview{position:relative;height:70px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-emoji,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-data,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-skins{position:absolute;top:50%;transform:translateY(-50%)}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-emoji{left:12px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-data{left:68px;right:12px;word-break:break-all}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-skins{right:30px;text-align:right}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-name{font-size:14px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-shortname{font-size:12px;color:#888}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-shortname+.emoji-mart-preview-shortname,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-shortname+.emoji-mart-preview-emoticon,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-emoticon+.emoji-mart-preview-emoticon{margin-left:.5em}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-preview-emoticon{font-size:11px;color:#bbb}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-title span{display:inline-block;vertical-align:middle}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-title .emoji-mart-emoji{padding:0}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-title-label{color:#999a9c;font-size:21px;font-weight:300}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatches{font-size:0;padding:2px 0;border:1px solid #d9d9d9;border-radius:12px;background-color:#fff}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch{width:16px;padding:0 2px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after{opacity:.75}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatch{display:inline-block;width:0;vertical-align:middle;transition-property:width,padding;transition-duration:.125s;transition-timing-function:ease-out}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatch:nth-child(1){transition-delay:0s}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatch:nth-child(2){transition-delay:.03s}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatch:nth-child(3){transition-delay:.06s}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatch:nth-child(4){transition-delay:.09s}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatch:nth-child(5){transition-delay:.12s}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatch:nth-child(6){transition-delay:.15s}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatch-selected{position:relative;width:16px;padding:0 2px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-swatch-selected:after{content:"";position:absolute;top:50%;left:50%;width:4px;height:4px;margin:-2px 0 0 -2px;background-color:#fff;border-radius:100%;pointer-events:none;opacity:0;transition:opacity .2s ease-out}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin{display:inline-block;width:100%;padding-top:100%;max-width:12px;border-radius:100%}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-tone-1{background-color:#ffc93a}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-tone-2{background-color:#fadcbc}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-tone-3{background-color:#e0bb95}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-tone-4{background-color:#bf8f68}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-tone-5{background-color:#9b643d}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-skin-tone-6{background-color:#594539}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller{position:relative}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller.direction-horizontal{display:flex}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller__slot{flex:auto 0 0}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller__item-wrapper{flex:1;box-sizing:border-box;overflow:hidden;position:relative}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart-search .hidden{display:none;visibility:hidden}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart{background-color:var(--color-main-background)!important;border:0;color:var(--color-main-text)!important}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart button{border:none;background:transparent;font-size:inherit}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-bar,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-anchors,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-search,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-search input,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-category,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-category-label,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-category-label span,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-skin-swatches{background-color:transparent!important;border-color:var(--color-border)!important;color:inherit!important}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-anchors{padding-block:0;padding-inline:calc(2 * var(--default-grid-baseline))}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-anchor{border-radius:0;margin:0!important;padding:0!important;height:var(--clickable-area-small);min-width:var(--clickable-area-small)}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-anchor:hover{background-color:var(--color-background-hover)}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-anchor:focus-visible{outline:2px solid var(--color-primary-element)!important;outline-offset:-2px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-anchor div{display:grid;place-content:center}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-scroll{padding-inline:calc(2 * var(--default-grid-baseline));padding-block:0 calc(2 * var(--default-grid-baseline))}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-category{display:grid;grid-template-columns:repeat(8,1fr);justify-items:stretch}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-category.emoji-mart-no-results{grid-template-columns:1fr;font-size:inherit;color:var(--color-text-maxcontrast)!important}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart div.emoji-mart-category-label{grid-column:span 8;justify-self:stretch}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart h3.emoji-mart-category-label{display:flex;align-items:center;height:var(--default-clickable-area);margin:0;padding-inline:calc(2 * var(--default-grid-baseline));padding-block:0;-webkit-user-select:none;user-select:none}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-emoji{aspect-ratio:1/1;text-align:center;margin:0!important;padding:0!important}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-emoji:hover,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-emoji:focus-visible,.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-emoji.emoji-mart-emoji-selected{background-color:var(--color-background-hover)!important;border:none;border-radius:var(--border-radius-element, var(--border-radius-pill));box-shadow:none!important;outline:2px solid var(--color-primary-element)!important;outline-offset:-2px}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-emoji:before{display:none}.nc-emoji-picker-container[data-v-a3ed576d] .emoji-mart .emoji-mart-emoji span{cursor:pointer}.search__wrapper[data-v-a3ed576d]{display:flex;flex-direction:row;gap:var(--default-grid-baseline);align-items:end;padding-block:var(--default-grid-baseline);padding-inline:calc(2 * var(--default-grid-baseline))}.row-selected button[data-v-a3ed576d],.row-selected span[data-v-a3ed576d]{vertical-align:middle}.emoji-delete[data-v-a3ed576d]{vertical-align:top;margin-left:-21px;margin-top:-3px}._filePicker_BDTDc{display:inline-flex;align-items:center;height:var(--default-clickable-area)}._material-design-icon_imcru{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_8a2Kh{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_8a2Kh._ncFormBox_row_3x4Kh{flex-direction:row}._ncFormBox__item_fTqeW{border-radius:var(--border-radius-small)!important}._ncFormBox_col_R7DeP{flex-direction:column}._ncFormBox_col_R7DeP ._ncFormBox__item_fTqeW:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_R7DeP ._ncFormBox__item_fTqeW:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_3x4Kh{flex-direction:row}._ncFormBox_row_3x4Kh ._ncFormBox__item_fTqeW{flex:1 1}._ncFormBox_row_3x4Kh ._ncFormBox__item_fTqeW:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_3x4Kh ._ncFormBox__item_fTqeW:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_t08Oc{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_piKd5{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_EeAM0{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_9-pQo{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);transition-property:color,border-color,background-color;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_9-pQo *{cursor:inherit}._formBoxItem_9-pQo:has(:disabled){cursor:default;opacity:.5}._formBoxItem_9-pQo:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_9-pQo:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_9iJ-O{font-weight:var(--font-weight-default, normal)}._formBoxItem_9-pQo._formBoxItem_legacy_iQoPw{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_9-pQo._formBoxItem_inverted_y1uKV ._formBoxItem__element_9-qks{color:var(--color-text-maxcontrast)}._formBoxItem_9-pQo._formBoxItem_inverted_y1uKV ._formBoxItem__description_9iJ-O{color:inherit}._formBoxItem__content_fsltG{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_9-qks:after{content:"";position:absolute;inset:0}._formBoxItem__description_9iJ-O{color:var(--color-text-maxcontrast)}._formBoxItem__icon_dEMLq{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_AHfws{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_59A7r{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_qbAGk{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_yrK8o{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_yrK8o._formGroup_noGap_-XHDf{--form-group-content-gap: 0}._formGroup__label_-UA7A{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_uSxeO{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_Cy4eq{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_Cy4eq._formGroup__content_only_umUCR{margin-block-start:0}.material-design-icon[data-v-4979e1a8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#guest-content-vue[data-v-4979e1a8]{color:var(--color-main-text);background-color:var(--color-main-background);min-width:0;border-radius:var(--border-radius-large);box-shadow:0 0 10px var(--color-box-shadow);height:fit-content;padding:15px;margin:20px auto}#content:has(#guest-content-vue){overflow:auto;margin-bottom:0;height:calc(var(--body-height) + var(--body-container-margin))}.material-design-icon[data-v-f1ee5a71]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.header-menu[data-v-f1ee5a71]{position:relative;width:var(--header-height);height:var(--header-height)}.header-menu .header-menu__trigger[data-v-f1ee5a71]{--button-size: var(--header-height) !important;height:var(--header-height);opacity:.85;filter:none!important;color:var(--color-background-plain-text, var(--color-primary-text))!important}.header-menu .header-menu__trigger[data-v-f1ee5a71]:focus-visible{outline:none!important;box-shadow:none!important}.header-menu .header-menu__trigger[data-v-f1ee5a71] .button-vue__icon svg,.header-menu .header-menu__trigger[data-v-f1ee5a71] .button-vue__icon:not(:has(svg)){mask:var(--header-menu-icon-mask, none)}.header-menu--opened .header-menu__trigger[data-v-f1ee5a71],.header-menu__trigger[data-v-f1ee5a71]:hover,.header-menu__trigger[data-v-f1ee5a71]:focus,.header-menu__trigger[data-v-f1ee5a71]:active{opacity:1}@media only screen and (max-width: 512px){.header-menu[data-v-f1ee5a71]{width:var(--default-clickable-area)}.header-menu .header-menu__trigger[data-v-f1ee5a71]{--button-size: var(--default-clickable-area) !important}}.material-design-icon[data-v-f00deac7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! - * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */.header-menu[data-v-f00deac7]{position:relative;width:var(--header-height);height:var(--header-height)}.header-menu .header-menu__trigger[data-v-f00deac7]{--button-size: var(--header-height) !important;height:var(--header-height);opacity:.85;filter:none!important;color:var(--color-background-plain-text, var(--color-primary-text))!important}.header-menu .header-menu__trigger[data-v-f00deac7]:focus-visible{outline:none!important;box-shadow:none!important}.header-menu .header-menu__trigger[data-v-f00deac7] .button-vue__icon svg,.header-menu .header-menu__trigger[data-v-f00deac7] .button-vue__icon:not(:has(svg)){mask:var(--header-menu-icon-mask, none)}.header-menu--opened .header-menu__trigger[data-v-f00deac7],.header-menu__trigger[data-v-f00deac7]:hover,.header-menu__trigger[data-v-f00deac7]:focus,.header-menu__trigger[data-v-f00deac7]:active{opacity:1}@media only screen and (max-width: 512px){.header-menu[data-v-f00deac7]{width:var(--default-clickable-area)}.header-menu .header-menu__trigger[data-v-f00deac7]{--button-size: var(--default-clickable-area) !important}}.header-menu__wrapper[data-v-f00deac7]{position:fixed;z-index:2000;top:var(--header-height);inset-inline-end:0;box-sizing:border-box;margin:0 8px;border-radius:0 0 var(--border-radius) var(--border-radius);border-radius:var(--border-radius-large);background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow))}.header-menu__carret[data-v-f00deac7]{position:absolute;z-index:2001;bottom:0;inset-inline-start:calc(50% - 10px);width:0;height:0;content:" ";pointer-events:none;border:10px solid transparent;border-bottom-color:var(--color-main-background)}.header-menu__content[data-v-f00deac7]{overflow:auto;width:350px;max-width:calc(100vw - 16px);min-height:calc(var(--default-clickable-area) * 1.5);max-height:calc(100vh - var(--header-height) * 2)}.header-menu__content[data-v-f00deac7] .empty-content{margin:12vh 10px}._material-design-icon_yBAKx{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._hotkey_pXWSG{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));display:flex;flex-direction:row-reverse;align-items:stretch;padding-inline:var(--form-element-label-offset)}._hotkey_pXWSG:first-child ._hotkey__label_7I8Ed,._hotkey_pXWSG:first-child ._hotkey__keys_zvZ-P{border-block-start:none}._hotkey__label_7I8Ed,._hotkey__keys_zvZ-P{display:flex;align-items:center;padding-block:calc(2 * var(--default-grid-baseline));border-block-start:1px solid var(--color-border)}._hotkey__label_7I8Ed{flex:1 1 200px}._hotkey__keys_zvZ-P{flex:1 1 auto;flex-wrap:wrap;justify-content:end;row-gap:calc(1 * var(--default-grid-baseline))}._material-design-icon_3bD8c{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._kbd_8ysg1{display:inline-flex;align-items:center;justify-content:center;min-width:var(--default-clickable-area);height:var(--default-clickable-area);padding-inline:calc(2 * var(--default-grid-baseline)) calc(2 * var(--default-grid-baseline));border:2px solid var(--color-primary-element-light);border-block-end-width:4px;border-radius:var(--border-radius-element);box-shadow:none;font-family:var(--font-family);line-height:1;white-space:nowrap}._kbd_8ysg1+._kbd_8ysg1{margin-inline-start:calc(1 * var(--default-grid-baseline))}._hotkeyList_riohA{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline))}._hotkeyList__heading_UQr9K{font-weight:var(--font-weight-heading, bold);margin-inline:var(--form-element-label-offset)}.material-design-icon[data-v-9ea2f116]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.list-item__wrapper[data-v-9ea2f116]{display:flex;position:relative;width:100%;padding:2px 4px}.list-item__wrapper[data-v-9ea2f116]:first-of-type{padding-block-start:4px}.list-item__wrapper[data-v-9ea2f116]:last-of-type{padding-block-end:4px}.list-item__wrapper--active .list-item[data-v-9ea2f116],.list-item__wrapper.active .list-item[data-v-9ea2f116]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)!important}.list-item__wrapper--active .list-item[data-v-9ea2f116]:hover,.list-item__wrapper--active .list-item[data-v-9ea2f116]:focus-within,.list-item__wrapper--active .list-item[data-v-9ea2f116]:has(:focus-visible),.list-item__wrapper--active .list-item[data-v-9ea2f116]:has(:active),.list-item__wrapper.active .list-item[data-v-9ea2f116]:hover,.list-item__wrapper.active .list-item[data-v-9ea2f116]:focus-within,.list-item__wrapper.active .list-item[data-v-9ea2f116]:has(:focus-visible),.list-item__wrapper.active .list-item[data-v-9ea2f116]:has(:active){background-color:var(--color-primary-element-hover)}.list-item__wrapper--active .list-item-content__name[data-v-9ea2f116],.list-item__wrapper--active .list-item-content__subname[data-v-9ea2f116],.list-item__wrapper--active .list-item-content__details[data-v-9ea2f116],.list-item__wrapper--active .list-item-details__details[data-v-9ea2f116],.list-item__wrapper.active .list-item-content__name[data-v-9ea2f116],.list-item__wrapper.active .list-item-content__subname[data-v-9ea2f116],.list-item__wrapper.active .list-item-content__details[data-v-9ea2f116],.list-item__wrapper.active .list-item-details__details[data-v-9ea2f116]{color:var(--color-primary-element-text)!important}.list-item__wrapper .list-item-content__name[data-v-9ea2f116],.list-item__wrapper .list-item-content__subname[data-v-9ea2f116],.list-item__wrapper .list-item-content__details[data-v-9ea2f116],.list-item__wrapper .list-item-details__details[data-v-9ea2f116]{white-space:nowrap;margin-block:0;margin-inline:0 auto;overflow:hidden;text-overflow:ellipsis}.list-item-content__name[data-v-9ea2f116]{min-width:100px;flex:1 1 10%;font-weight:var(--font-weight-element, 500)}.list-item-content__subname[data-v-9ea2f116]{flex:1 0;min-width:0;color:var(--color-text-maxcontrast)}.list-item-content__subname--bold[data-v-9ea2f116]{font-weight:var(--font-weight-element, 500)}.list-item[data-v-9ea2f116]{--list-item-padding: var(--default-grid-baseline);--list-item-height: 2lh;--list-item-border-radius: var(--border-radius-element, 32px);box-sizing:border-box;display:flex;position:relative;flex:0 0 auto;justify-content:flex-start;padding:var(--list-item-padding);width:100%;border-radius:var(--border-radius-element, 32px);cursor:pointer;transition:background-color var(--animation-quick) ease-in-out;list-style:none}.list-item[data-v-9ea2f116]:hover,.list-item[data-v-9ea2f116]:focus-within,.list-item[data-v-9ea2f116]:has(:active),.list-item[data-v-9ea2f116]:has(:focus-visible){background-color:var(--color-background-hover)}.list-item[data-v-9ea2f116]:has(.list-item__anchor:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}.list-item--compact[data-v-9ea2f116]{--list-item-padding: calc(.5 * var(--default-grid-baseline)) var(--default-grid-baseline)}.list-item--compact[data-v-9ea2f116]:not(:has(.list-item-content__subname)){--list-item-height: var(--default-clickable-area)}.list-item--legacy[data-v-9ea2f116]{--list-item-padding: calc(2 * var(--default-grid-baseline))}.list-item--legacy.list-item--compact[data-v-9ea2f116]{--list-item-padding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline))}.list-item--one-line[data-v-9ea2f116]{--list-item-height: var(--default-clickable-area);--list-item-border-radius: var(--border-radius-element, calc(var(--default-clickable-area) / 2));--list-item-padding: var(--default-grid-baseline)}.list-item--one-line.list-item--one-line--legacy[data-v-9ea2f116]{--list-item-padding: 2px calc((var(--list-item-height) - var(--list-item-border-radius)) / 2)}.list-item--one-line .list-item-content__main[data-v-9ea2f116]{display:flex;justify-content:start;gap:12px;min-width:0}.list-item--one-line .list-item-content__details[data-v-9ea2f116]{flex-direction:row;align-items:center;justify-content:end}.list-item--one-line .list-item-content__name[data-v-9ea2f116]{align-self:center;max-width:300px}.list-item__anchor[data-v-9ea2f116]{color:inherit;display:flex;flex:1 0 auto;align-items:center;height:var(--list-item-height);min-width:0}.list-item__anchor[data-v-9ea2f116]:focus-visible{outline:none}.list-item-content[data-v-9ea2f116]{display:flex;flex:1 0;justify-content:space-between;padding-inline-start:calc(2 * var(--default-grid-baseline));min-width:0}.list-item-content__main[data-v-9ea2f116]{flex:1 0;width:0;margin:auto 0}.list-item-content__main--oneline[data-v-9ea2f116]{display:flex}.list-item-content__details[data-v-9ea2f116]{display:flex;flex-direction:column;justify-content:end;align-items:end}.list-item-content__actions[data-v-9ea2f116],.list-item-content__extra-actions[data-v-9ea2f116]{flex:0 0 auto;align-self:center;justify-content:center;margin-inline-start:var(--default-grid-baseline)}.list-item-content__extra-actions[data-v-9ea2f116]{display:flex;align-items:center;gap:var(--default-grid-baseline)}.list-item-details__details[data-v-9ea2f116]{color:var(--color-text-maxcontrast);margin:0 9px!important;font-weight:var(--font-weight-default, normal)}.list-item-details__extra[data-v-9ea2f116]{margin:2px 4px 0;display:flex;align-items:center}.list-item-details__indicator[data-v-9ea2f116]{margin:0 5px}.list-item__extra[data-v-9ea2f116]{margin-top:var(--default-grid-baseline)}.material-design-icon[data-v-4606150f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-4606150f]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-4606150f]{font-size:var(--note-card-icon-size);font-weight:var(--font-weight-heading, 600)}.notecard__icon--heading[data-v-4606150f]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-4606150f]{--note-background: var(--color-success);--note-theme: var(--color-success-text, var(--color-success))}.notecard--info[data-v-4606150f]{--note-background: var(--color-info);--note-theme: var(--color-info-text, var(--color-info))}.notecard--error[data-v-4606150f]{--note-background: var(--color-error);--note-theme: var(--color-error-text, var(--color-error))}.notecard--warning[data-v-4606150f]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text, var(--color-warning))}.notecard--legacy.notecard--error[data-v-4606150f]{--note-background: rgba(var(--color-error-rgb), .1)}.notecard--legacy.notecard--info[data-v-4606150f]{--note-background: rgba(var(--color-info-rgb), .1)}.notecard--legacy.notecard--success[data-v-4606150f]{--note-background: rgba(var(--color-success-rgb), .1)}.notecard--legacy.notecard--warning[data-v-4606150f]{--note-background: rgba(var(--color-warning-rgb), .1)}.material-design-icon[data-v-06c9abdc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-06c9abdc]{display:block;height:var(--progress-bar-height);--progress-bar-color: var(--15a054de)}.progress-bar--linear[data-v-06c9abdc]{width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-06c9abdc]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:transparent}.progress-bar--linear[data-v-06c9abdc]::-webkit-progress-value{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-06c9abdc]::-moz-progress-bar{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--circular[data-v-06c9abdc]{width:var(--progress-bar-height);color:var(--progress-bar-color, var(--color-primary-element))}.progress-bar--error[data-v-06c9abdc]{color:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-06c9abdc]::-moz-progress-bar{background:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-06c9abdc]::-webkit-progress-value{background:var(--color-text-error, var(--color-error))!important}._material-design-icon_hB6fD{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroup_checkboxRadioContainer_amoAo .checkbox-content{max-width:unset!important}._material-design-icon_7ahcn{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroupButton_7L9nl{--radio-group-button--border-radius: var(--border-radius-small);--radio-group-button--border-width: 1px;--radio-group-button--color: var(--color-primary-element-light-text);--radio-group-button--background-color: var(--color-primary-element-light);--radio-group-button--background-color-hover: var(--color-primary-element-light-hover);--radio-group-button--padding: 1px;cursor:pointer;color:var(--radio-group-button--color);background-color:var(--radio-group-button--background-color);transition:var(--animation-quick) background-color;border:var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);border-bottom-width:2px;border-radius:var(--radio-group-button--border-radius);display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:center;min-height:var(--default-clickable-area);padding-block:var(--radio-group-button--padding) 0;padding-inline:var(--radio-group-button--padding)}._radioGroupButton_7L9nl *{cursor:pointer}._radioGroupButton_7L9nl:has(._radioGroupButton__label_u1VfE){padding-inline:calc(var(--radio-group-button--padding) + var(--border-radius-element))}._radioGroupButton_7L9nl:has(._radioGroupButton__icon_w45z4){padding-inline-start:var(--radio-group-button--padding)}._radioGroupButton_7L9nl:hover:not(._radioGroupButton_disabled_6HMWB){background-color:var(--radio-group-button--background-color-hover)}._radioGroupButton_7L9nl:focus-within{--radio-group-button--border-width: 2px;--radio-group-button--padding: 0px;border:var(--radio-group-button--border-width) solid var(--color-main-text)!important;outline:calc(var(--default-grid-baseline) / 2) var(--color-main-background)}._radioGroupButton_active_sPnCq{--radio-group-button--color: var(--color-primary-element-text);--radio-group-button--background-color: var(--color-primary-element);--radio-group-button--background-color-hover: var(--color-primary-element-hover)}._radioGroupButton__label_u1VfE{font-weight:var(--font-weight-element, bold)}._radioGroupButton_disabled_6HMWB{filter:saturate(.7);opacity:.5;cursor:default}._radioGroupButton_disabled_6HMWB *{cursor:default}._radioGroupButton__icon_w45z4{--radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);display:flex;align-items:center;justify-content:center;height:100%;width:var(--radio-group-button--icon-size)}._radioGroupButton__icon_w45z4 *{--default-clickable-area: var(--radio-group-button--icon-size)}.material-design-icon[data-v-2660b55a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resource[data-v-2660b55a]{display:flex;align-items:center;height:var(--default-clickable-area)}.resource__button[data-v-2660b55a]{width:100%!important;justify-content:flex-start!important;padding:0!important}.resource__button[data-v-2660b55a] .button-vue__wrapper{justify-content:flex-start!important}.resource__button[data-v-2660b55a] .button-vue__wrapper .button-vue__text{font-weight:var(--font-weight-default, normal)!important;margin-left:2px!important}.resource__icon[data-v-2660b55a]{width:32px;height:32px;background-color:var(--color-text-maxcontrast);border-radius:50%;display:flex;align-items:center;justify-content:center}.resource__icon img[data-v-2660b55a]{width:16px;height:16px;filter:var(--background-invert-if-dark)}.material-design-icon[data-v-82938a03]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.team-resources__header[data-v-82938a03]{font-weight:var(--font-weight-heading, bold);margin-bottom:6px}.related-team[data-v-82938a03]{border-radius:var(--border-radius-rounded);border:2px solid var(--color-border-dark);margin-bottom:6px}.related-team__open[data-v-82938a03]{border-color:var(--color-primary-element)}.related-team__header[data-v-82938a03]{padding:6px 24px 6px 6px;display:flex;gap:12px}.related-team__name[data-v-82938a03]{display:flex;flex-grow:1;align-items:center;gap:12px;padding:6px 12px;font-weight:var(--font-weight-heading, bold);margin:0}.related-team .related-team-provider[data-v-82938a03]{padding:6px 12px}.related-team .related-team-provider__name[data-v-82938a03]{font-weight:var(--font-weight-heading, bold);margin-bottom:3px}.related-team .related-team-provider__link[data-v-82938a03]{display:flex;gap:12px;padding:6px 12px;font-weight:var(--font-weight-heading, bold)}.related-team .related-team-resource__link[data-v-82938a03]{display:flex;gap:12px;height:var(--default-clickable-area);align-items:center;border-radius:var(--border-radius-large)}.related-team .related-team-resource__link[data-v-82938a03]:hover{background-color:var(--color-background-hover)}.related-team .related-team-resource__link[data-v-82938a03]:focus{background-color:var(--color-background-hover);outline:2px solid var(--color-primary-element)}.related-team .related-team-resource .resource__icon[data-v-82938a03]{width:var(--default-clickable-area);height:var(--default-clickable-area);display:flex;align-items:center;justify-content:center;text-align:center}.related-team .related-team-resource .resource__icon>img[data-v-82938a03]{border-radius:var(--border-radius-pill);overflow:hidden;width:32px;height:32px}.material-design-icon[data-v-3ca2fd14]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.related-resources__header h5[data-v-3ca2fd14]{font-weight:var(--font-weight-heading, bold);margin-bottom:6px}.related-resources__header p[data-v-3ca2fd14]{color:var(--color-text-maxcontrast)}.material-design-icon[data-v-ef14f1ec]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.autocomplete-result[data-v-ef14f1ec]{display:flex;align-items:center;gap:var(--default-grid-baseline);line-height:1.2;--auto-complete-result-avatar-size: var(--default-clickable-area)}.autocomplete-result__icon[data-v-ef14f1ec]{position:relative;flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);min-width:var(--default-clickable-area);height:var(--default-clickable-area);border-radius:var(--default-clickable-area);background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:contain}.autocomplete-result__icon--with-avatar[data-v-ef14f1ec]{color:inherit;background-size:cover}.autocomplete-result__status[data-v-ef14f1ec]{--auto-complete-result-status-icon-size: clamp(14px, var(--auto-complete-result-avatar-size) * .4, 18px);--auto-complete-result-status-icon-position: calc(var(--auto-complete-result-avatar-size) / 2 * (1 - 1 / sqrt(2)) - var(--auto-complete-result-status-icon-size) / 2);box-sizing:border-box;position:absolute;inset-inline-end:var(--auto-complete-result-status-icon-position);bottom:var(--auto-complete-result-status-icon-position);height:var(--auto-complete-result-status-icon-size);width:var(--auto-complete-result-status-icon-size);border:2px solid var(--color-main-background);border-radius:50%;background-color:var(--color-main-background);font-size:calc(var(--auto-complete-result-status-icon-size) / 1.2);line-height:1.2;background-repeat:no-repeat;background-size:var(--auto-complete-result-status-icon-size);background-position:center}.autocomplete-result__status--icon[data-v-ef14f1ec]{border:none;background-color:transparent}.autocomplete-result__content[data-v-ef14f1ec]{display:flex;flex:1 1 100%;flex-direction:column;justify-content:center;min-width:0}.autocomplete-result__title[data-v-ef14f1ec],.autocomplete-result__subline[data-v-ef14f1ec]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-result__subline[data-v-ef14f1ec]{color:var(--color-text-maxcontrast)}.material-design-icon[data-v-2d84a6b6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-contenteditable[data-v-2d84a6b6]{--contenteditable-block-offset: calc(2 * var(--default-grid-baseline));--contenteditable-inline-start-offset: calc(2 * var(--default-grid-baseline));--contenteditable-inline-end-offset: calc(2 * var(--default-grid-baseline));position:relative;width:auto}.rich-contenteditable__label[data-v-2d84a6b6]{position:absolute;margin-inline:14px;max-width:fit-content;inset-block-start:11px;inset-inline:0;color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.rich-contenteditable__input:focus+.rich-contenteditable__label[data-v-2d84a6b6],.rich-contenteditable__input:not(.rich-contenteditable__input--empty)+.rich-contenteditable__label[data-v-2d84a6b6]{inset-block-start:-10px;line-height:1.5;font-size:13px;font-weight:var(--font-weight-element, 500);border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:5px;margin-inline:9px;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.rich-contenteditable__input[data-v-2d84a6b6]{overflow-y:auto;width:auto;margin:0;padding-block:var(--contenteditable-block-offset);padding-inline:var(--contenteditable-inline-start-offset) var(--contenteditable-inline-end-offset);cursor:text;white-space:pre-wrap;overflow-wrap:break-word;color:var(--color-main-text);border:2px solid var(--color-border-maxcontrast);border-radius:var(--border-radius-large);outline:none;background-color:var(--color-main-background);font-family:var(--font-face);font-size:inherit;tab-size:4;min-height:var(--default-clickable-area);max-height:calc(var(--default-clickable-area) * 5.5)}.rich-contenteditable__input--has-label[data-v-2d84a6b6]{margin-top:10px}.rich-contenteditable__input--empty[data-v-2d84a6b6]:focus:before,.rich-contenteditable__input--empty[data-v-2d84a6b6]:not(.rich-contenteditable__input--has-label):before{content:attr(aria-placeholder);color:var(--color-text-maxcontrast);position:absolute;width:calc(100% - var(--contenteditable-inline-start-offset) - var(--contenteditable-inline-end-offset));height:calc(100% - 2 * var(--contenteditable-block-offset));overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.rich-contenteditable__input[contenteditable=false][data-v-2d84a6b6]:not(.rich-contenteditable__input--disabled){cursor:default;background-color:transparent;color:var(--color-main-text);border-color:transparent;opacity:1;border-radius:0}.rich-contenteditable__input--multiline[data-v-2d84a6b6]{min-height:calc(var(--default-clickable-area) * 3);max-height:none}.rich-contenteditable__input--disabled[data-v-2d84a6b6]{opacity:.5;color:var(--color-text-maxcontrast);border:2px solid var(--color-background-darker);border-radius:var(--border-radius);background-color:var(--color-background-dark)}.rich-contenteditable__input--overflow[data-v-2d84a6b6],.rich-contenteditable__input--overflow[data-v-2d84a6b6]:hover{border-color:var(--color-border-error, var(--color-error))!important}._material-design-icon_-baaq{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._tribute-container_KKFA2{z-index:9000;overflow:auto;position:absolute;left:-100vw;margin:var(--default-grid-baseline) 0;padding:var(--default-grid-baseline);color:var(--color-text-maxcontrast);border-radius:var(--border-radius-element, var(--border-radius));background:var(--color-main-background);box-shadow:0 1px 5px var(--color-box-shadow)}._tribute-container_KKFA2,._tribute-container_KKFA2 *{box-sizing:border-box}._tribute-container_KKFA2 ul{display:flex;flex-direction:column;gap:var(--default-grid-baseline)}._tribute-container_KKFA2 ._tribute-container__item_yxuxT{color:var(--color-text-maxcontrast);border-radius:var(--border-radius-small, var(--border-radius));padding:var(--default-grid-baseline);cursor:pointer;min-height:var(--clickable-area-small, auto)}._tribute-container_KKFA2 ._tribute-container__item_yxuxT.highlight{color:var(--color-main-text);background:var(--color-background-hover)}._tribute-container_KKFA2 ._tribute-container__item_yxuxT.highlight,._tribute-container_KKFA2 ._tribute-container__item_yxuxT.highlight *{cursor:pointer}._tribute-container_KKFA2._tribute-container--focus-visible_gS2CI .highlight._tribute-container__item_yxuxT{outline:2px solid var(--color-main-text)!important}._tribute-container-autocomplete_E4ZMB{min-width:250px;max-width:300px;max-height:calc((var(--default-clickable-area) + 3 * var(--default-grid-baseline)) * 4.5 - 1.5 * var(--default-grid-baseline))}._tribute-container-emoji_7fqYf,._tribute-container-link_9lERG{min-width:200px;max-width:200px;max-height:calc((24px + 3 * var(--default-grid-baseline)) * 5.5 - 1.5 * var(--default-grid-baseline))}._tribute-container-emoji_7fqYf ._tribute-item_i-NJG,._tribute-container-link_9lERG ._tribute-item_i-NJG{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._tribute-container-link_9lERG{min-width:200px;max-width:300px}._tribute-container-link_9lERG ._tribute-item_i-NJG{display:flex;align-items:center}._tribute-container-link_9lERG ._tribute-item__title_Uh5SR{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._tribute-container-link_9lERG ._tribute-item__icon_UaL-X{margin:auto 0;width:20px;height:20px;object-fit:contain;padding-inline-end:var(--default-grid-baseline);filter:var(--background-invert-if-dark)}.material-design-icon[data-v-96e3ab0e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widget-custom[data-v-96e3ab0e]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex;position:relative}.widget-custom.full-width[data-v-96e3ab0e]{width:var(--widget-full-width, 100%)!important;inset-inline-start:calc((var(--widget-full-width, 100%) - 100%) / 2 * -1);position:relative}.widget-custom__content[data-v-96e3ab0e]{width:100%;display:flex;flex-direction:column}.widget-custom__resize-handle[data-v-96e3ab0e]{position:absolute;bottom:0;inset-inline-start:0;width:100%;height:calc(var(--default-grid-baseline) * 2);border-top:1px solid var(--color-border);margin-top:-1px;cursor:row-resize;touch-action:none}.widget-custom__resize-handle[data-v-96e3ab0e]:before,.widget-custom__resize-handle[data-v-96e3ab0e]:after{content:"";position:absolute;top:50%;left:50%;background-color:var(--color-border);margin-top:1px;transform:translate(-50%);width:30px;height:1px}.widget-custom__resize-handle[data-v-96e3ab0e]:before{margin-top:-2px}.widget-custom__resize-handle[data-v-96e3ab0e]:focus-visible{outline:2px solid var(--color-primary-element);outline-offset:-4px}.widget-access[data-v-96e3ab0e]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex;padding:calc(var(--default-grid-baseline, 4px) * 3)}.widget-default[data-v-96e3ab0e]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex}.widget-default--compact[data-v-96e3ab0e]{flex-direction:column}.widget-default--compact .widget-default--image[data-v-96e3ab0e]{width:100%;height:150px}.widget-default--compact .widget-default--details[data-v-96e3ab0e]{width:100%;padding-top:calc(var(--default-grid-baseline, 4px) * 2);padding-bottom:calc(var(--default-grid-baseline, 4px) * 2)}.widget-default--compact .widget-default--description[data-v-96e3ab0e]{display:none}.widget-default--image[data-v-96e3ab0e]{width:40%;background-position:center;background-size:cover;background-repeat:no-repeat}.widget-default--name[data-v-96e3ab0e]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-heading, bold)}.widget-default--details[data-v-96e3ab0e]{padding:calc(var(--default-grid-baseline, 4px) * 3);width:60%}.widget-default--details p[data-v-96e3ab0e]{margin:0;padding:0}.widget-default--description[data-v-96e3ab0e]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.widget-default--link[data-v-96e3ab0e]{color:var(--color-text-maxcontrast);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toggle-interactive[data-v-96e3ab0e]{position:relative}.toggle-interactive .toggle-interactive--button[data-v-96e3ab0e]{position:absolute;bottom:var(--default-grid-baseline);inset-inline-end:var(--default-grid-baseline);z-index:10000}.material-design-icon[data-v-0547d92f],.material-design-icon[data-v-f39d58d9]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.provider-list[data-v-f39d58d9]{width:100%;min-height:400px;padding:0 16px 16px;display:flex;flex-direction:column}.provider-list--select[data-v-f39d58d9]{width:100%}.provider-list--select .provider[data-v-f39d58d9]{display:flex;align-items:center;height:28px;overflow:hidden}.provider-list--select .provider .link-icon[data-v-f39d58d9]{margin-inline-end:8px}.provider-list--select .provider .provider-icon[data-v-f39d58d9]{width:20px;height:20px;object-fit:contain;margin-inline-end:8px;filter:var(--background-invert-if-dark)}.provider-list--select .provider .option-text[data-v-f39d58d9]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-be630586]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.raw-link[data-v-be630586]{width:100%;min-height:350px;display:flex;flex-direction:column;overflow-y:auto;padding:0 16px 16px}.raw-link .input-wrapper[data-v-be630586]{width:100%}.raw-link .reference-widget[data-v-be630586]{display:flex}.raw-link--empty-content .provider-icon[data-v-be630586]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.raw-link--input[data-v-be630586]{width:99%}.material-design-icon[data-v-995c2758]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.result[data-v-995c2758]{display:flex;align-items:center;height:var(--default-clickable-area);overflow:hidden}.result--icon-class[data-v-995c2758],.result--image[data-v-995c2758]{width:40px;min-width:40px;height:40px;object-fit:contain}.result--icon-class.rounded[data-v-995c2758],.result--image.rounded[data-v-995c2758]{border-radius:50%}.result--content[data-v-995c2758]{display:flex;flex-direction:column;padding-inline-start:10px;overflow:hidden}.result--content--name[data-v-995c2758],.result--content--subline[data-v-995c2758]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-e61f71e3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.smart-picker-search[data-v-e61f71e3]{width:100%;display:flex;flex-direction:column;padding:0 16px 16px}.smart-picker-search.with-empty-content[data-v-e61f71e3]{min-height:400px}.smart-picker-search .provider-icon[data-v-e61f71e3]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.smart-picker-search--select[data-v-e61f71e3],.smart-picker-search--select .search-result[data-v-e61f71e3]{width:100%}.smart-picker-search--select .group-name-icon[data-v-e61f71e3],.smart-picker-search--select .option-simple-icon[data-v-e61f71e3]{width:20px;height:20px;margin:0 20px 0 10px}.smart-picker-search--select .custom-option[data-v-e61f71e3]{height:var(--default-clickable-area);display:flex;align-items:center;overflow:hidden}.smart-picker-search--select .option-text[data-v-e61f71e3]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-646d5538]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker[data-v-646d5538],.reference-picker .custom-element-wrapper[data-v-646d5538],.reference-picker .custom-element-wrapper .custom-element[data-v-646d5538]{display:flex;overflow-y:auto;width:100%}.material-design-icon[data-v-00990f2a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker-modal[data-v-00990f2a] .modal-container{display:flex!important}.reference-picker-modal--content[data-v-00990f2a]{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto}.reference-picker-modal--content .close-button[data-v-00990f2a],.reference-picker-modal--content .back-button[data-v-00990f2a]{position:absolute;top:4px}.reference-picker-modal--content .back-button[data-v-00990f2a]{inset-inline-start:4px}.reference-picker-modal--content .close-button[data-v-00990f2a]{inset-inline-end:4px}.reference-picker-modal--content>h2[data-v-00990f2a]{display:flex;margin:12px 0 20px}.reference-picker-modal--content>h2 .icon[data-v-00990f2a]{margin-inline-end:8px}.material-design-icon[data-v-a50e616b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widgets--list[data-v-a50e616b]{width:100%;min-height:var(--default-clickable-area)}.material-design-icon[data-v-e55203a2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-text--wrapper[data-v-e55203a2]{overflow-wrap:break-word;line-height:1.5}.rich-text--wrapper .rich-text--fallback[data-v-e55203a2],.rich-text--wrapper .rich-text-component[data-v-e55203a2]{display:inline}.rich-text--wrapper-markdown[data-v-e55203a2]{tab-size:4}.rich-text--wrapper-markdown div>*[data-v-e55203a2]:first-child,.rich-text--wrapper-markdown blockquote>*[data-v-e55203a2]:first-child{margin-top:0!important}.rich-text--wrapper-markdown div>*[data-v-e55203a2]:last-child,.rich-text--wrapper-markdown blockquote>*[data-v-e55203a2]:last-child{margin-block-end:0!important}.rich-text--wrapper-markdown blockquote[data-v-e55203a2]{padding-inline-start:13px;border-inline-start:2px solid var(--color-border-dark);color:var(--color-text-lighter)}.rich-text--wrapper-markdown h1[data-v-e55203a2],.rich-text--wrapper-markdown h2[data-v-e55203a2],.rich-text--wrapper-markdown h3[data-v-e55203a2],.rich-text--wrapper-markdown h4[data-v-e55203a2],.rich-text--wrapper-markdown h5[data-v-e55203a2],.rich-text--wrapper-markdown h6[data-v-e55203a2],.rich-text--wrapper-markdown p[data-v-e55203a2],.rich-text--wrapper-markdown ul[data-v-e55203a2],.rich-text--wrapper-markdown ol[data-v-e55203a2],.rich-text--wrapper-markdown blockquote[data-v-e55203a2],.rich-text--wrapper-markdown pre[data-v-e55203a2]{margin-top:0;margin-block-end:1em}.rich-text--wrapper-markdown h1[data-v-e55203a2],.rich-text--wrapper-markdown h2[data-v-e55203a2],.rich-text--wrapper-markdown h3[data-v-e55203a2],.rich-text--wrapper-markdown h4[data-v-e55203a2],.rich-text--wrapper-markdown h5[data-v-e55203a2],.rich-text--wrapper-markdown h6[data-v-e55203a2]{font-weight:var(--font-weight-heading, bold)}.rich-text--wrapper-markdown h4[data-v-e55203a2]{font-size:20px}.rich-text--wrapper-markdown h5[data-v-e55203a2]{font-size:18px}.rich-text--wrapper-markdown h6[data-v-e55203a2]{font-size:15px}.rich-text--wrapper-markdown ul[data-v-e55203a2],.rich-text--wrapper-markdown ol[data-v-e55203a2]{padding-inline-start:4ch}.rich-text--wrapper-markdown ul[data-v-e55203a2]{list-style-type:disc}.rich-text--wrapper-markdown ul.contains-task-list[data-v-e55203a2]{list-style-type:none;padding:0}.rich-text--wrapper-markdown li.task-list-item>ul[data-v-e55203a2],.rich-text--wrapper-markdown li.task-list-item>ol[data-v-e55203a2],.rich-text--wrapper-markdown li.task-list-item>li[data-v-e55203a2],.rich-text--wrapper-markdown li.task-list-item>blockquote[data-v-e55203a2],.rich-text--wrapper-markdown li.task-list-item>pre[data-v-e55203a2]{margin-inline-start:15px;margin-block-end:0}.rich-text--wrapper-markdown pre[data-v-e55203a2]{direction:ltr}.rich-text--wrapper-markdown table[data-v-e55203a2]{border-collapse:collapse;border:2px solid var(--color-border-maxcontrast)}.rich-text--wrapper-markdown table th[data-v-e55203a2],.rich-text--wrapper-markdown table td[data-v-e55203a2]{padding:var(--default-grid-baseline);border:1px solid var(--color-border-maxcontrast)}.rich-text--wrapper-markdown table th[data-v-e55203a2]:first-child,.rich-text--wrapper-markdown table td[data-v-e55203a2]:first-child{border-inline-start:0}.rich-text--wrapper-markdown table th[data-v-e55203a2]:last-child,.rich-text--wrapper-markdown table td[data-v-e55203a2]:last-child{border-inline-end:0}.rich-text--wrapper-markdown table tr:first-child th[data-v-e55203a2]{border-top:0}.rich-text--wrapper-markdown table tr:last-child td[data-v-e55203a2]{border-block-end:0}.rich-text--wrapper-markdown .rich-text__code-block[data-v-e55203a2]:has(.hljs){color:var(--hljs-color);background:var(--hljs-background-color)}.rich-text--wrapper-markdown .hljs-doctag[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-keyword[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-meta .hljs-keyword[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-template-tag[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-template-variable[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-type[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-variable.language_[data-v-e55203a2]{color:var(--hljs-syntax-keyword-color)}.rich-text--wrapper-markdown .hljs-title[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-title.class_[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-title.class_.inherited__[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-title.function_[data-v-e55203a2]{color:var(--hljs-syntax-entity-color)}.rich-text--wrapper-markdown .hljs-attr[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-attribute[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-literal[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-meta[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-number[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-operator[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-variable[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-selector-attr[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-selector-class[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-selector-id[data-v-e55203a2]{color:var(--hljs-syntax-constant-color)}.rich-text--wrapper-markdown .hljs-regexp[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-string[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-meta .hljs-string[data-v-e55203a2]{color:var(--hljs-syntax-string-color)}.rich-text--wrapper-markdown .hljs-built_in[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-symbol[data-v-e55203a2]{color:var(--hljs-syntax-variable-color)}.rich-text--wrapper-markdown .hljs-comment[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-code[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-formula[data-v-e55203a2]{color:var(--hljs-syntax-comment-color)}.rich-text--wrapper-markdown .hljs-name[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-quote[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-selector-tag[data-v-e55203a2],.rich-text--wrapper-markdown .hljs-selector-pseudo[data-v-e55203a2]{color:var(--hljs-syntax-entity-tag-color)}.rich-text--wrapper-markdown .hljs-subst[data-v-e55203a2]{color:var(--hljs-syntax-storage-modifier-import-color)}.rich-text--wrapper-markdown .hljs-section[data-v-e55203a2]{color:var(--hljs-syntax-markup-heading-color);font-weight:var(--font-weight-heading, bold)}.rich-text--wrapper-markdown .hljs-bullet[data-v-e55203a2]{color:var(--hljs-syntax-markup-list-color)}.rich-text--wrapper-markdown .hljs-emphasis[data-v-e55203a2]{color:var(--hljs-syntax-markup-italic-color);font-style:italic}.rich-text--wrapper-markdown .hljs-strong[data-v-e55203a2]{color:var(--hljs-syntax-markup-bold-color);font-weight:700}.rich-text--wrapper-markdown .hljs-addition[data-v-e55203a2]{color:var(--hljs-syntax-markup-inserted-color);background-color:var(--hljs-syntax-markup-inserted-background-color)}.rich-text--wrapper-markdown .hljs-deletion[data-v-e55203a2]{color:var(--hljs-syntax-markup-deleted-color);background-color:var(--hljs-syntax-markup-deleted-background-color)}@media (prefers-color-scheme: light){.rich-text--wrapper-markdown[data-v-e55203a2]{--hljs-color: var(--color-main-text, #24292e);--hljs-background-color: var(--color-background-dark, #ffffff);--hljs-syntax-keyword-color: #d73a49;--hljs-syntax-entity-color: #6f42c1;--hljs-syntax-constant-color: #005cc5;--hljs-syntax-string-color: #032f62;--hljs-syntax-variable-color: #e36209;--hljs-syntax-comment-color: #6a737d;--hljs-syntax-entity-tag-color: #22863a;--hljs-syntax-storage-modifier-import-color: #24292e;--hljs-syntax-markup-heading-color: #005cc5;--hljs-syntax-markup-list-color: #735c0f;--hljs-syntax-markup-italic-color: #24292e;--hljs-syntax-markup-bold-color: #24292e;--hljs-syntax-markup-inserted-color: #22863a;--hljs-syntax-markup-inserted-background-color: #f0fff4;--hljs-syntax-markup-deleted-color: #b31d28;--hljs-syntax-markup-deleted-background-color: #ffeef0}[data-theme-dark] .rich-text--wrapper-markdown[data-v-e55203a2]{--hljs-color: var(--color-main-text, #c9d1d9);--hljs-background-color: var(--color-background-dark, #0d1117);--hljs-syntax-keyword-color: #ff7b72;--hljs-syntax-entity-color: #d2a8ff;--hljs-syntax-constant-color: #79c0ff;--hljs-syntax-string-color: #a5d6ff;--hljs-syntax-variable-color: #ffa657;--hljs-syntax-comment-color: #8b949e;--hljs-syntax-entity-tag-color: #7ee787;--hljs-syntax-storage-modifier-import-color: #c9d1d9;--hljs-syntax-markup-heading-color: #1f6feb;--hljs-syntax-markup-list-color: #f2cc60;--hljs-syntax-markup-italic-color: #c9d1d9;--hljs-syntax-markup-bold-color: #c9d1d9;--hljs-syntax-markup-inserted-color: #aff5b4;--hljs-syntax-markup-inserted-background-color: #033a16;--hljs-syntax-markup-deleted-color: #ffdcd7;--hljs-syntax-markup-deleted-background-color: #67060c}}@media (prefers-color-scheme: dark){.rich-text--wrapper-markdown[data-v-e55203a2]{--hljs-color: var(--color-main-text, #c9d1d9);--hljs-background-color: var(--color-background-dark, #0d1117);--hljs-syntax-keyword-color: #ff7b72;--hljs-syntax-entity-color: #d2a8ff;--hljs-syntax-constant-color: #79c0ff;--hljs-syntax-string-color: #a5d6ff;--hljs-syntax-variable-color: #ffa657;--hljs-syntax-comment-color: #8b949e;--hljs-syntax-entity-tag-color: #7ee787;--hljs-syntax-storage-modifier-import-color: #c9d1d9;--hljs-syntax-markup-heading-color: #1f6feb;--hljs-syntax-markup-list-color: #f2cc60;--hljs-syntax-markup-italic-color: #c9d1d9;--hljs-syntax-markup-bold-color: #c9d1d9;--hljs-syntax-markup-inserted-color: #aff5b4;--hljs-syntax-markup-inserted-background-color: #033a16;--hljs-syntax-markup-deleted-color: #ffdcd7;--hljs-syntax-markup-deleted-background-color: #67060c}[data-theme-light] .rich-text--wrapper-markdown[data-v-e55203a2]{--hljs-color: var(--color-main-text, #24292e);--hljs-background-color: var(--color-background-dark, #ffffff);--hljs-syntax-keyword-color: #d73a49;--hljs-syntax-entity-color: #6f42c1;--hljs-syntax-constant-color: #005cc5;--hljs-syntax-string-color: #032f62;--hljs-syntax-variable-color: #e36209;--hljs-syntax-comment-color: #6a737d;--hljs-syntax-entity-tag-color: #22863a;--hljs-syntax-storage-modifier-import-color: #24292e;--hljs-syntax-markup-heading-color: #005cc5;--hljs-syntax-markup-list-color: #735c0f;--hljs-syntax-markup-italic-color: #24292e;--hljs-syntax-markup-bold-color: #24292e;--hljs-syntax-markup-inserted-color: #22863a;--hljs-syntax-markup-inserted-background-color: #f0fff4;--hljs-syntax-markup-deleted-color: #b31d28;--hljs-syntax-markup-deleted-background-color: #ffeef0}}a[data-v-e55203a2]:not(.rich-text--component){text-decoration:underline}.rich-text__code-block[data-v-e55203a2]{position:relative;padding-inline-end:calc(var(--clickable-area-small) + var(--default-grid-baseline))}.rich-text__code-block pre[data-v-e55203a2]{width:100%;overflow-x:auto}.rich-text__code-block .rich-text__code-block-button[data-v-e55203a2]{position:absolute;top:var(--default-grid-baseline);inset-inline-end:var(--default-grid-baseline);opacity:0}.rich-text__code-block:hover .rich-text__code-block-button[data-v-e55203a2],.rich-text__code-block:focus-within .rich-text__code-block-button[data-v-e55203a2],.rich-text__code-block .rich-text__code-block-button[data-v-e55203a2]:focus{opacity:1}.nc-select-users[data-v-7f7ecbfe] .vs__selected{padding-inline:0 5px!important}.material-design-icon[data-v-9938ac79]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.input-wrapper[data-v-9938ac79]{display:flex;align-items:center;flex-wrap:wrap;width:100%;max-width:400px}.input-wrapper .action-input__label[data-v-9938ac79]{margin-right:12px}.input-wrapper[data-v-9938ac79]:disabled{cursor:default}.input-wrapper .hint[data-v-9938ac79]{color:var(--color-text-maxcontrast);margin-left:8px}.material-design-icon[data-v-9fdd9dcb]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.settings-section[data-v-9fdd9dcb]{display:block;margin-bottom:auto;padding:30px}.settings-section[data-v-9fdd9dcb]:not(:last-child){border-bottom:1px solid var(--color-border)}.settings-section--limit-width>*[data-v-9fdd9dcb]{max-width:900px}.settings-section__name[data-v-9fdd9dcb]{display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:var(--font-weight-heading, bold);max-width:900px;margin-top:0}.settings-section__info[data-v-9fdd9dcb]{display:flex;align-items:center;justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--default-clickable-area) - 16px) / 2 * -1);margin-inline-start:0;color:var(--color-text-maxcontrast)}.settings-section__info[data-v-9fdd9dcb]:hover,.settings-section__info[data-v-9fdd9dcb]:focus,.settings-section__info[data-v-9fdd9dcb]:active{color:var(--color-main-text)}.settings-section__desc[data-v-9fdd9dcb]{margin-top:-.2em;margin-bottom:1em;color:var(--color-text-maxcontrast);max-width:900px}.material-design-icon[data-v-9d59765b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.select-group-error[data-v-9d59765b]{color:var(--color-text-error, var(--color-error));font-size:13px;padding-inline-start:var(--border-radius-large)}.material-design-icon[data-v-70810bb3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! - * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */.textarea[data-v-70810bb3]{--input-border-color: var(--color-border-maxcontrast);--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));position:relative;width:100%;border-radius:var(--border-radius-large);margin-block-start:6px;resize:vertical}.textarea--disabled[data-v-70810bb3]{opacity:.7;filter:saturate(.7)}.textarea__main-wrapper[data-v-70810bb3]{padding:var(--border-width-input-focused, 2px);position:relative}.textarea__input[data-v-70810bb3]{margin:0;padding-block:var(--border-radius-element);padding-inline:10px;width:100%;font-size:var(--default-font-size);text-overflow:ellipsis;cursor:pointer;min-height:calc(var(--default-clickable-area) * 2);min-width:calc(var(--default-clickable-area) * 2);max-width:100%;background-color:var(--color-main-background);color:var(--color-main-text);--input-border-box-shadow-light: 0 -1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow-dark: 0 1px var(--input-border-color), 0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);--input-border-box-shadow: var(--input-border-box-shadow-light);border:none;border-radius:var(--border-radius-element);box-shadow:var(--input-border-box-shadow)}.textarea__input[data-v-70810bb3]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}@media (prefers-color-scheme: dark){.textarea__input .textarea__input[data-v-70810bb3]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .textarea__input[data-v-70810bb3]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .textarea__input[data-v-70810bb3]{--input-border-box-shadow: var(--input-border-box-shadow-light)}.textarea--legacy .textarea__input[data-v-70810bb3]{box-shadow:0 0 0 1px var(--input-border-color)}.textarea--legacy .textarea__input[data-v-70810bb3]:hover:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color)}.textarea__input[data-v-70810bb3]:focus-within:not([disabled]),.textarea__input[data-v-70810bb3]:active:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color),0 0 0 4px var(--color-main-background)!important}.textarea__input[data-v-70810bb3]:active:not([disabled]),.textarea__input[data-v-70810bb3]:focus:not([disabled]){--input-border-width-offset: 0px;--input-border-color: var(--color-main-text)}.textarea__input[data-v-70810bb3]:not(:focus,.textarea__input--label-outside)::placeholder{opacity:0}.textarea__input[data-v-70810bb3]:focus{cursor:text}.textarea__input[data-v-70810bb3]:disabled{cursor:default}.textarea__input[data-v-70810bb3]:focus-visible{box-shadow:unset!important}.textarea__input--success[data-v-70810bb3]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.textarea__input--success[data-v-70810bb3]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.textarea__input--error[data-v-70810bb3]{--input-border-color: var(--color-border-error, var(--color-error)) !important}.textarea__input--error[data-v-70810bb3]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.textarea__label[data-v-70810bb3]{position:absolute;margin-inline:12px 0;max-width:fit-content;inset-block-start:11px;inset-inline:0;color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.textarea__input:focus+.textarea__label[data-v-70810bb3],.textarea__input:not(:placeholder-shown)+.textarea__label[data-v-70810bb3]{inset-block-start:-10px;line-height:1.5;font-size:13px;font-weight:var(--font-weight-element, 500);color:var(--color-main-text);background-color:var(--color-main-background);padding-inline:4px;margin-inline-start:8px;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.textarea__helper-text-message[data-v-70810bb3]{padding-block:4px;display:flex;align-items:center}.textarea__helper-text-message__icon[data-v-70810bb3]{margin-inline-end:8px}.textarea__helper-text-message--error[data-v-70810bb3]{color:var(--color-error-text)}.textarea__helper-text-message--success[data-v-70810bb3]{color:var(--color-success-text)}.material-design-icon[data-v-7942d6b6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.user-bubble__wrapper[data-v-7942d6b6]{display:inline-block;vertical-align:middle;min-width:0;max-width:100%}.user-bubble__content[data-v-7942d6b6]{display:inline-flex;max-width:100%;background-color:var(--color-background-dark)}.user-bubble__content--primary[data-v-7942d6b6]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.user-bubble__content[data-v-7942d6b6]>:last-child{padding-inline-end:8px}.user-bubble__avatar[data-v-7942d6b6]{align-self:center}.user-bubble__name[data-v-7942d6b6]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-bubble__name[data-v-7942d6b6],.user-bubble__secondary[data-v-7942d6b6]{padding-block:0;padding-inline:4px 0}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-tooltip.v-popper__popper{position:absolute;z-index:100000;top:0;inset-inline:auto;display:block;margin:0;padding:0;text-align:start;opacity:0;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-10px;border-bottom-width:0;border-top-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-10px;border-top-width:0;border-bottom-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{inset-inline-end:100%;border-inline-start-width:0;border-inline-end-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{inset-inline-start:100%;border-inline-end-width:0;border-inline-start-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity .15s,visibility .15s;opacity:0}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity .15s;opacity:1}.v-popper--theme-tooltip .v-popper__inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.v-popper--theme-tooltip .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:transparent;border-width:10px}.viewer__image-editor[data-v-5034d6ec]{position:absolute;z-index:10100;top:calc(var(--header-height) * -1);bottom:calc(var(--header-height) * -1);left:0;width:100%;height:100dvh}.SfxModal-Wrapper{z-index:10102!important}#SfxPopper{z-index:10102;position:relative}.viewer__image-editor *,.SfxModal-Wrapper *,.SfxPopper-wrapper *{font-size:var(--default-font-size)!important}.viewer__image-editor label,.viewer__image-editor button,.SfxModal-Wrapper label,.SfxModal-Wrapper button,.SfxPopper-wrapper label,.SfxPopper-wrapper button{color:var(--color-main-text);line-height:var(--default-line-height, 1.5)!important}.viewer__image-editor label>span,.viewer__image-editor button>span,.SfxModal-Wrapper label>span,.SfxModal-Wrapper button>span,.SfxPopper-wrapper label>span,.SfxPopper-wrapper button>span{font-size:var(--default-font-size)!important}.viewer__image-editor button,.SfxModal-Wrapper button,.SfxPopper-wrapper button{display:flex;align-items:center;justify-content:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);padding:6px 12px}.SfxInput-root{height:auto!important;padding:0!important}.SfxInput-root .SfxInput-Base{margin:0!important}.SfxSelect-root{padding:8px!important}.SfxButton-root{min-height:var(--default-clickable-area)!important;margin:0!important;border:transparent!important}.SfxButton-root[color=error]{color:#fff!important;background-color:var(--color-error)!important}.SfxButton-root[color=error]:hover,.SfxButton-root[color=error]:focus{border-color:#fff!important;background-color:var(--color-error-hover)!important}.SfxButton-root[color=primary]{color:var(--color-primary-element-text)!important;background-color:var(--color-primary-element)!important}.SfxButton-root[color=primary]:hover,.SfxButton-root[color=primary]:focus{background-color:var(--color-primary-element-hover)!important}.SfxMenuItem-root{height:var(--default-clickable-area);padding-left:8px!important}.SfxMenuItem-root>div{margin-right:0;padding:6px;cursor:pointer}.SfxMenuItem-root[value=jpeg]{display:none}.SfxModal-Container{min-height:300px;padding:22px}.SfxModal-Container .SfxModal-root,.SfxModal-Container .SfxModalTitle-root{flex:1 1 100%;justify-content:center;color:var(--color-main-text)}.SfxModal-Container .SfxModalTitle-Icon{margin-bottom:22px!important;background:none!important}.SfxModal-Container .SfxModalTitle-Icon svg{width:64px;height:64px;opacity:.4;--color-primary: var(--color-main-text);--color-error: var(--color-main-text)}.SfxModal-Container .SfxModalTitle-Close{display:none!important}.SfxModal-Container .SfxModalActions-root{justify-content:space-evenly!important}.FIE_topbar-center-options>button,.FIE_topbar-center-options>label{margin-left:6px!important}.FIE_tabs_toggle_btn{display:none!important}.FIE_tabs{padding:6px!important;overflow:hidden;overflow-y:auto}.FIE_tab{width:80px!important;height:80px!important;padding:8px;border-radius:var(--border-radius-large)!important}.FIE_tab svg{width:16px;height:16px}.FIE_tab-label{margin-top:8px!important;overflow:hidden;text-overflow:ellipsis;max-width:100%;white-space:nowrap;display:block!important}.FIE_tab:hover,.FIE_tab:focus{background-color:var(--color-background-hover)!important}.FIE_tab[aria-selected=true]{color:var(--color-main-text);background-color:var(--color-background-dark);box-shadow:0 0 0 2px var(--color-primary-element)}.FIE_tools-bar-wrapper{max-height:max-content!important}.FIE_tools-bar>div[class$=-tool-button],.FIE_tools-bar>div[class$=-tool]{display:flex;align-items:center;justify-content:center;min-width:var(--default-clickable-area);height:var(--default-clickable-area);padding:6px 16px;border-radius:var(--border-radius-pill)}.FIE_crop-presets-opener-button{min-width:0!important;padding:5px 5px 5px 10px!important;border:none!important;background-color:transparent!important}.FIE_topbar-history-buttons button,.FIE_topbar-close-button,.FIE_resize-ratio-locker{border:none!important;background-color:transparent!important}.FIE_topbar-history-buttons button:hover,.FIE_topbar-history-buttons button:focus,.FIE_topbar-close-button:hover,.FIE_topbar-close-button:focus,.FIE_resize-ratio-locker:hover,.FIE_resize-ratio-locker:focus{background-color:var(--color-background-hover)!important}.FIE_topbar-history-buttons button svg,.FIE_topbar-close-button svg,.FIE_resize-ratio-locker svg{width:16px;height:16px}.FIE_topbar-history-buttons button.FIE_topbar-reset-button:before{content:attr(title);font-weight:400}.FIE_topbar-history-buttons button.FIE_topbar-reset-button svg{display:none}.FIE_topbar-save-wrapper{width:auto!important}.FIE_topbar-save-button{color:var(--color-primary-text)!important;border:none!important;background-color:var(--color-primary-element)!important}.FIE_topbar-save-button:hover,.FIE_topbar-save-button:focus{background-color:var(--color-primary-element-hover)!important}.FIE_resize-tool-options .FIE_resize-width-option,.FIE_resize-tool-options .FIE_resize-height-option{flex:1 1;min-width:0}.FIE_resize-ratio-locker{margin-right:8px!important}.FIE_resize-ratio-locker svg{width:20px;height:20px}.FIE_resize-ratio-locker svg path{stroke-width:1;stroke:var(--color-main-text);fill:var(--color-main-text)}.FIE_canvas-container{background-color:var(--color-main-background)!important}.FIE_spinner:after,.FIE_spinner-label{display:none!important}.FIE_spinner-wrapper{background-color:transparent!important}.FIE_spinner:before{position:absolute;z-index:2;top:50%;left:50%;width:28px;height:28px;margin:-16px 0 0 -16px;content:"";-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-animation:rotate .8s infinite linear;animation:rotate .8s infinite linear;border:2px solid var(--color-loading-light);border-top-color:var(--color-loading-dark);border-radius:100%;filter:var(--background-invert-if-dark)}.image_container[data-v-38b7dcaa]{display:flex;align-items:center;height:100%;justify-content:center}img[data-v-38b7dcaa],video[data-v-38b7dcaa]{align-self:center;justify-self:center;background-color:#000;transition:none!important;touch-action:none}img[data-v-38b7dcaa]:hover,video[data-v-38b7dcaa]:hover{background-image:linear-gradient(45deg,#efefef 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#efefef 75%),linear-gradient(45deg,transparent 75%,#efefef 75%),linear-gradient(45deg,#efefef 25%,#fff 25%);background-size:16px 16px;background-position:0 0,0 0,-8px -8px,8px 8px}img.loaded[data-v-38b7dcaa],video.loaded[data-v-38b7dcaa]{background-color:#fff}img.zoomed[data-v-38b7dcaa],video.zoomed[data-v-38b7dcaa]{z-index:10010;cursor:move}img.dragging[data-v-38b7dcaa],video.dragging[data-v-38b7dcaa]{transition:none!important;cursor:move}.live-photo_play_button[data-v-38b7dcaa]{position:absolute;top:0;margin:16px!important;display:flex;align-items:center;border:none;gap:4px;border-radius:var(--border-radius);padding:4px 8px;background-color:var(--color-main-background-blur)}@keyframes plyr-progress{to{background-position:25px 0;background-position:var(--plyr-progress-loading-size,25px) 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{0%{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:inherit;font-family:var(--plyr-font-family,inherit);font-variant-numeric:tabular-nums;font-weight:400;font-weight:var(--plyr-font-weight-regular,400);line-height:1.7;line-height:var(--plyr-line-height,1.7);max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui :after,.plyr--full-ui :before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5464;background:var(--plyr-badge-background,#4a5464);border-radius:2px;border-radius:var(--plyr-badge-border-radius,2px);color:#fff;color:var(--plyr-badge-text-color,#fff);font-size:9px;font-size:var(--plyr-font-size-badge,9px);line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;display:none;font-size:13px;font-size:var(--plyr-font-size-small,13px);left:0;padding:10px;padding:var(--plyr-control-spacing,10px);position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:15px;font-size:var(--plyr-font-size-base,15px);padding:20px;padding:calc(var(--plyr-control-spacing, 10px)*2)}}@media (min-width:768px){.plyr__captions{font-size:18px;font-size:var(--plyr-font-size-large,18px)}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px);transform:translateY(calc(var(--plyr-control-spacing, 10px)*-4))}.plyr__caption{background:#000c;background:var(--plyr-captions-background,#000c);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#fff;color:var(--plyr-captions-text-color,#fff);line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__caption div{display:inline}.plyr__control{background:#0000;border:0;border-radius:4px;border-radius:var(--plyr-control-radius,4px);color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;padding:calc(var(--plyr-control-spacing, 10px)*.7);position:relative;transition:all .3s ease}.plyr__control svg{fill:currentColor;display:block;height:18px;height:var(--plyr-control-icon-size,18px);pointer-events:none;width:18px;width:var(--plyr-control-icon-size,18px)}.plyr__control:focus{outline:0}.plyr__control:focus-visible{outline:2px dashed #00b2ff;outline:2px dashed var(--plyr-focus-visible-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));outline-offset:2px}a.plyr__control{text-decoration:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed,a.plyr__control:after,a.plyr__control:before{display:none}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px;margin-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px;padding-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px;padding:0 calc(var(--plyr-control-spacing, 10px)/2)}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip],.plyr__controls:empty{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:#ffffffe6;background:var(--plyr-menu-background,#ffffffe6);border-radius:8px;border-radius:var(--plyr-menu-radius,8px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-menu-shadow,0 1px 2px #00000026);color:#4a5464;color:var(--plyr-menu-color,#4a5464);font-size:15px;font-size:var(--plyr-font-size-base,15px);margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container:after{border:4px solid #0000;border-top-color:#ffffffe6;border:var(--plyr-menu-arrow-size,4px) solid #0000;border-top-color:var(--plyr-menu-background,#ffffffe6);content:"";height:0;position:absolute;right:14px;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7 - var(--plyr-menu-arrow-size, 4px)/2);top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px;padding:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5464;color:var(--plyr-menu-color,#4a5464);display:flex;font-size:13px;font-size:var(--plyr-font-size-menu,var(--plyr-font-size-small,13px));padding:4.66667px 10.5px;padding:calc(var(--plyr-control-spacing, 10px)*.7/1.5) calc(var(--plyr-control-spacing, 10px)*.7*1.5);-webkit-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control:after{border:4px solid #0000;border:var(--plyr-menu-item-arrow-size,4px) solid #0000;content:"";position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px;padding-right:calc(var(--plyr-control-spacing, 10px)*.7*4)}.plyr__menu__container .plyr__control--forward:after{border-left-color:#728197;border-left-color:var(--plyr-menu-arrow-color,#728197);right:6.5px;right:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--forward:focus-visible:after,.plyr__menu__container .plyr__control--forward:hover:after{border-left-color:initial}.plyr__menu__container .plyr__control--back{font-weight:400;font-weight:var(--plyr-font-weight-regular,400);margin:7px;margin:calc(var(--plyr-control-spacing, 10px)*.7);margin-bottom:3.5px;margin-bottom:calc(var(--plyr-control-spacing, 10px)*.7/2);padding-left:28px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*4);position:relative;width:calc(100% - 14px);width:calc(100% - var(--plyr-control-spacing, 10px)*.7*2)}.plyr__menu__container .plyr__control--back:after{border-right-color:#728197;border-right-color:var(--plyr-menu-arrow-color,#728197);left:6.5px;left:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--back:before{background:#dcdfe5;background:var(--plyr-menu-back-border-color,#dcdfe5);box-shadow:0 1px #fff;box-shadow:0 1px 0 var(--plyr-menu-back-border-shadow-color,#fff);content:"";height:1px;left:0;margin-top:3.5px;margin-top:calc(var(--plyr-control-spacing, 10px)*.7/2);overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back:focus-visible:after,.plyr__menu__container .plyr__control--back:hover:after{border-right-color:initial}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container .plyr__control[role=menuitemradio]:after,.plyr__menu__container .plyr__control[role=menuitemradio]:before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]:before{background:#0000001a;content:"";display:block;flex-shrink:0;height:16px;margin-right:10px;margin-right:var(--plyr-control-spacing,10px);transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]:after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:before{background:#00b2ff;background:var(--plyr-control-toggle-checked-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)))}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio]:focus-visible:before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover:before{background:#23282f1a}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-5px;margin-right:calc(var(--plyr-control-spacing, 10px)*.7*-1 - -2px);overflow:hidden;padding-left:24.5px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*3.5);pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-radius:26px;border-radius:calc(var(--plyr-range-thumb-height, 13px)*2);color:#00b2ff;color:var(--plyr-range-fill-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));display:block;height:19px;height:calc(var(--plyr-range-thumb-active-shadow-width, 3px)*2 + var(--plyr-range-thumb-height, 13px));margin:0;min-width:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:#0000;background-image:linear-gradient(90deg,currentColor 0,#0000 0);background-image:linear-gradient(to right,currentColor var(--value,0),#0000 var(--value,0));border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-webkit-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33);height:13px;height:var(--plyr-range-thumb-height,13px);margin-top:-4px;margin-top:calc((var(--plyr-range-thumb-height, 13px) - var(--plyr-range-track-height, 5px))/2*-1);position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-track{background:#0000;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33);height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px)}.plyr--full-ui input[type=range]::-ms-track{color:#0000}.plyr--full-ui input[type=range]::-ms-fill-upper,.plyr--full-ui input[type=range]::-ms-track{background:#0000;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:#0000;background:currentColor;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33);height:13px;height:var(--plyr-range-thumb-height,13px);margin-top:0;position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]:focus-visible::-webkit-slider-runnable-track{outline:2px dashed #00b2ff;outline:2px dashed var(--plyr-focus-visible-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));outline-offset:2px}.plyr--full-ui input[type=range]:focus-visible::-moz-range-track{outline:2px dashed #00b2ff;outline:2px dashed var(--plyr-focus-visible-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));outline-offset:2px}.plyr--full-ui input[type=range]:focus-visible::-ms-track{outline:2px dashed #00b2ff;outline:2px dashed var(--plyr-focus-visible-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));outline-offset:2px}.plyr__poster{background-color:#000;background-color:var(--plyr-video-background,var(--plyr-video-background,#000));background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr--youtube.plyr--paused.plyr__poster-enabled:not(.plyr--stopped) .plyr__poster{display:none}.plyr__time{font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__time+.plyr__time:before{content:"⁄";margin-right:10px;margin-right:var(--plyr-control-spacing,10px)}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr__tooltip{background:#fff;background:var(--plyr-tooltip-background,#fff);border-radius:5px;border-radius:var(--plyr-tooltip-radius,5px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px #00000026);color:#4a5464;color:var(--plyr-tooltip-color,#4a5464);font-size:13px;font-size:var(--plyr-font-size-small,13px);font-weight:400;font-weight:var(--plyr-font-weight-regular,400);left:50%;line-height:1.3;margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:5px 7.5px;padding:calc(var(--plyr-control-spacing, 10px)/2) calc(var(--plyr-control-spacing, 10px)/2*1.5);pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;white-space:nowrap;z-index:2}.plyr__tooltip:before{border-left:4px solid #0000;border-left:var(--plyr-tooltip-arrow-size,4px) solid #0000;border-right:4px solid #0000;border-right:var(--plyr-tooltip-arrow-size,4px) solid #0000;border-top:4px solid #fff;border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,#fff);bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:50%;position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr .plyr__control:focus-visible .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translateY(10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip:before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip:before{left:16px;left:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7)}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translateY(10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip:before{left:auto;right:16px;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7);transform:translate(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control:focus-visible .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child:focus-visible .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child:focus-visible .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0) scale(1)}.plyr__progress{left:6.5px;left:calc(var(--plyr-range-thumb-height, 13px)*.5);margin-right:13px;margin-right:var(--plyr-range-thumb-height,13px);position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-left:calc(var(--plyr-range-thumb-height, 13px)*-.5);margin-right:-6.5px;margin-right:calc(var(--plyr-range-thumb-height, 13px)*-.5);width:calc(100% + 13px);width:calc(100% + var(--plyr-range-thumb-height, 13px))}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{left:0;max-width:120px;overflow-wrap:break-word}.plyr__progress__buffer{-webkit-appearance:none;background:#0000;border:0;border-radius:100px;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin-top:-2.5px;margin-top:calc((var(--plyr-range-track-height, 5px)/2)*-1);padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:#0000}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,#23282f99 25%,#0000 0 50%,#23282f99 0 75%,#0000 0,#0000);background-image:linear-gradient(-45deg,var(--plyr-progress-loading-background,#23282f99) 25%,#0000 25%,#0000 50%,var(--plyr-progress-loading-background,#23282f99) 50%,var(--plyr-progress-loading-background,#23282f99) 75%,#0000 75%,#0000);background-repeat:repeat-x;background-size:25px 25px;background-size:var(--plyr-progress-loading-size,25px) var(--plyr-progress-loading-size,25px);color:#0000}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:#ffffff40;background-color:var(--plyr-video-progress-buffered-background,#ffffff40)}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:#c1c8d199;background-color:var(--plyr-audio-progress-buffered-background,#c1c8d199)}.plyr__progress__marker{background-color:#fff;background-color:var(--plyr-progress-marker-background,#fff);border-radius:1px;height:5px;height:var(--plyr-range-track-height,5px);position:absolute;top:50%;transform:translate(-50%,-50%);width:3px;width:var(--plyr-progress-marker-width,3px);z-index:3}.plyr__volume{align-items:center;display:flex;position:relative}.plyr__volume input[type=range]{margin-left:5px;margin-left:calc(var(--plyr-control-spacing, 10px)/2);margin-right:5px;margin-right:calc(var(--plyr-control-spacing, 10px)/2);max-width:90px;min-width:60px;position:relative;z-index:2}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:#fff;background:var(--plyr-audio-controls-background,#fff);border-radius:inherit;color:#4a5464;color:var(--plyr-audio-control-color,#4a5464);padding:10px;padding:var(--plyr-control-spacing,10px)}.plyr--audio .plyr__control:focus-visible,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-audio-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-audio-control-color-hover,#fff)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,#c1c8d199))}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,#c1c8d199))}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,#c1c8d199))}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#23282f1a)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#23282f1a)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#23282f1a)}.plyr--audio .plyr__progress__buffer{color:#c1c8d199;color:var(--plyr-audio-progress-buffered-background,#c1c8d199)}.plyr--video{overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));border-radius:inherit;height:100%;margin:auto;overflow:hidden;position:relative;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{aspect-ratio:16/9}@supports not (aspect-ratio:16/9){.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%;position:relative}}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:linear-gradient(#0000,#000000bf);background:var(--plyr-video-controls-background,linear-gradient(#0000,#000000bf));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;color:var(--plyr-video-control-color,#fff);left:0;padding:5px;padding:calc(var(--plyr-control-spacing, 10px)/2);padding-top:20px;padding-top:calc(var(--plyr-control-spacing, 10px)*2);position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:10px;padding:var(--plyr-control-spacing,10px);padding-top:35px;padding-top:calc(var(--plyr-control-spacing, 10px)*3.5)}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control:focus-visible,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-video-control-color-hover,#fff)}.plyr__control--overlaid{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));border:0;border-radius:100%;color:#fff;color:var(--plyr-video-control-color,#fff);display:none;left:50%;opacity:.9;padding:15px;padding:calc(var(--plyr-control-spacing, 10px)*1.5);position:absolute;top:50%;transform:translate(-50%,-50%);transition:.3s;z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{opacity:1}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,#ffffff40))}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,#ffffff40))}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,#ffffff40))}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#ffffff80)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#ffffff80)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#ffffff80)}.plyr--video .plyr__progress__buffer{color:#ffffff40;color:var(--plyr-video-progress-buffered-background,#ffffff40)}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen video{height:100%}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;inset:0;margin:0;position:fixed;width:100%;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr__ads{border-radius:inherit;cursor:pointer;inset:0;overflow:hidden;position:absolute;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads:after{background:#23282f;border-radius:2px;bottom:10px;bottom:var(--plyr-control-spacing,10px);color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;right:var(--plyr-control-spacing,10px);z-index:3}.plyr__ads:empty:after{display:none}.plyr__cues{background:currentColor;display:block;height:5px;height:var(--plyr-range-track-height,5px);left:0;opacity:.8;position:absolute;top:50%;transform:translateY(-50%);width:3px;z-index:3}.plyr__preview-thumb{background-color:#fff;background-color:var(--plyr-tooltip-background,#fff);border-radius:8px;border-radius:var(--plyr-menu-radius,8px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px #00000026);margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:3px;pointer-events:none;position:absolute;transform:translateY(10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0) scale(1)}.plyr__preview-thumb:before{border-left:4px solid #0000;border-left:var(--plyr-tooltip-arrow-size,4px) solid #0000;border-right:4px solid #0000;border-right:var(--plyr-tooltip-arrow-size,4px) solid #0000;border-top:4px solid #fff;border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,#fff);bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:calc(50% + var(--preview-arrow-offset));position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c8d1;border-radius:7px;border-radius:calc(var(--plyr-menu-radius, 8px) - 1px);overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img,.plyr__preview-thumb__image-container:after{height:100%;left:0;position:absolute;top:0;width:100%}.plyr__preview-thumb__image-container:after{border-radius:inherit;box-shadow:inset 0 0 0 1px #00000026;content:"";pointer-events:none}.plyr__preview-thumb__image-container img{max-height:none;max-width:none}.plyr__preview-thumb__time-container{background:linear-gradient(#0000,#000000bf);background:var(--plyr-video-controls-background,linear-gradient(#0000,#000000bf));border-bottom-left-radius:7px;border-bottom-left-radius:calc(var(--plyr-menu-radius, 8px) - 1px);border-bottom-right-radius:7px;border-bottom-right-radius:calc(var(--plyr-menu-radius, 8px) - 1px);bottom:0;left:0;line-height:1.1;padding:20px 6px 6px;position:absolute;right:0;z-index:3}.plyr__preview-thumb__time-container span{color:#fff;font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__preview-scrubbing{filter:blur(1px);height:100%;inset:0;margin:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);border:0!important;height:1px!important;overflow:hidden;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}video[data-v-3bb3d003]{z-index:20050;align-self:center;max-width:100%;max-height:100%!important;background-color:#000;justify-self:center}[data-v-3bb3d003] .plyr:-webkit-full-screen video{width:100%!important;height:100%!important}[data-v-3bb3d003] .plyr:fullscreen video{width:100%!important;height:100%!important}[data-v-3bb3d003] .plyr__progress__container{flex:1 1}[data-v-3bb3d003] .plyr{--plyr-color-main: var(--color-primary-element);--plyr-control-icon-size: 18px;--plyr-menu-background: var(--color-main-background);--plyr-menu-color: var(--color-main-text);--plyr-audio-controls-background: var(--color-main-background);--plyr-audio-control-color: var(--color-main-text);--plyr-button-size: 44px;--plyr-range-fill-background: var(--color-primary-element)}[data-v-3bb3d003] .plyr .plyr__controls{flex-wrap:wrap}[data-v-3bb3d003] .plyr .plyr__controls .plyr__volume,[data-v-3bb3d003] .plyr .plyr__controls .plyr__progress__container{max-width:100%;flex:1 1}[data-v-3bb3d003] .plyr .plyr__controls .plyr__progress__container{flex:4 1}[data-v-3bb3d003] .plyr button{width:var(--plyr-button-size);height:var(--plyr-button-size);padding:calc((var(--plyr-button-size) - var(--plyr-control-icon-size)) / 2);cursor:pointer;border:none;background-color:transparent;line-height:inherit}[data-v-3bb3d003] .plyr button:hover,[data-v-3bb3d003] .plyr button:focus{color:var(--color-main-text);background-color:var(--color-background-hover)}[data-v-3bb3d003] .plyr button.plyr__control--overlaid{--plyr-button-size: 50px;width:var(--plyr-button-size);height:var(--plyr-button-size);color:var(--color-primary-element-text);background-color:var(--color-primary-element)}[data-v-3bb3d003] .plyr button.plyr__control--overlaid:hover,[data-v-3bb3d003] .plyr button.plyr__control--overlaid:focus{background-color:var(--color-primary-element-hover)}[data-v-3bb3d003] .plyr .plyr__menu__container button{min-width:120px;width:max-content;margin:0;color:var(--color-main-text)}[data-v-3bb3d003] .plyr .plyr__menu__container button:hover,[data-v-3bb3d003] .plyr .plyr__menu__container button:focus{color:var(--color-main-text);background-color:var(--color-background-hover)}[data-v-3bb3d003] .plyr .plyr__menu__container button.plyr__control--forward{padding-right:28px;padding-right:calc(var(--plyr-control-spacing, 10px) * .7 * 4)}[data-v-3bb3d003] .plyr .plyr__menu__container button.plyr__control--back{margin:calc(var(--plyr-control-spacing, 10px) * .7);padding-left:28px;padding-left:calc(var(--plyr-control-spacing, 10px) * .7 * 4)}[data-v-3bb3d003] .plyr .plyr__progress__buffer{width:calc(100% + var(--plyr-range-thumb-height, 13px));height:var(--plyr-range-track-height, 5px);background:transparent}@media only screen and (max-width: 480px){[data-v-3bb3d003] .plyr .plyr__volume{display:none}}[data-v-3bb3d003] .plyr button{color:#fff}[data-v-3bb3d003] .plyr button:hover,[data-v-3bb3d003] .plyr button:focus{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}main.viewer__hidden-fullscreen{height:100vh!important;width:100vw!important;margin:0!important}footer.viewer__hidden-fullscreen{display:none!important}audio[data-v-e9b8b546]{z-index:20050;align-self:center;max-width:100%;max-height:100%;background-color:#000;justify-self:center}[data-v-e9b8b546] .plyr__progress__container{flex:1 1}[data-v-e9b8b546] .plyr{--plyr-color-main: var(--color-primary-element);--plyr-control-icon-size: 18px;--plyr-menu-background: var(--color-main-background);--plyr-menu-color: var(--color-main-text);--plyr-audio-controls-background: var(--color-main-background);--plyr-audio-control-color: var(--color-main-text);--plyr-button-size: 44px;--plyr-range-fill-background: var(--color-primary-element)}[data-v-e9b8b546] .plyr .plyr__controls{flex-wrap:wrap}[data-v-e9b8b546] .plyr .plyr__controls .plyr__volume,[data-v-e9b8b546] .plyr .plyr__controls .plyr__progress__container{max-width:100%;flex:1 1}[data-v-e9b8b546] .plyr .plyr__controls .plyr__progress__container{flex:4 1}[data-v-e9b8b546] .plyr button{width:var(--plyr-button-size);height:var(--plyr-button-size);padding:calc((var(--plyr-button-size) - var(--plyr-control-icon-size)) / 2);cursor:pointer;border:none;background-color:transparent;line-height:inherit}[data-v-e9b8b546] .plyr button:hover,[data-v-e9b8b546] .plyr button:focus{color:var(--color-main-text);background-color:var(--color-background-hover)}[data-v-e9b8b546] .plyr button.plyr__control--overlaid{--plyr-button-size: 50px;width:var(--plyr-button-size);height:var(--plyr-button-size);color:var(--color-primary-element-text);background-color:var(--color-primary-element)}[data-v-e9b8b546] .plyr button.plyr__control--overlaid:hover,[data-v-e9b8b546] .plyr button.plyr__control--overlaid:focus{background-color:var(--color-primary-element-hover)}[data-v-e9b8b546] .plyr .plyr__menu__container button{min-width:120px;width:max-content;margin:0;color:var(--color-main-text)}[data-v-e9b8b546] .plyr .plyr__menu__container button:hover,[data-v-e9b8b546] .plyr .plyr__menu__container button:focus{color:var(--color-main-text);background-color:var(--color-background-hover)}[data-v-e9b8b546] .plyr .plyr__menu__container button.plyr__control--forward{padding-right:28px;padding-right:calc(var(--plyr-control-spacing, 10px) * .7 * 4)}[data-v-e9b8b546] .plyr .plyr__menu__container button.plyr__control--back{margin:calc(var(--plyr-control-spacing, 10px) * .7);padding-left:28px;padding-left:calc(var(--plyr-control-spacing, 10px) * .7 * 4)}[data-v-e9b8b546] .plyr .plyr__progress__buffer{width:calc(100% + var(--plyr-range-thumb-height, 13px));height:var(--plyr-range-track-height, 5px);background:transparent}@media only screen and (max-width: 480px){[data-v-e9b8b546] .plyr .plyr__volume{display:none}}[data-v-e9b8b546] .plyr__menu__container{max-height:calc(40vh - var(--plyr-button-size, 44px) / 2 - 20px);overflow-y:auto}@media only screen and (max-width: 500px){[data-v-e9b8b546] .plyr--audio{top:calc(17.5vw + 30px)}} diff --git a/css/init-go_r03Vq.chunk.css b/css/init-go_r03Vq.chunk.css new file mode 100644 index 000000000..8c7f03fc9 --- /dev/null +++ b/css/init-go_r03Vq.chunk.css @@ -0,0 +1,4 @@ +@charset "UTF-8";.material-design-icon[data-v-330b5e3e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-330b5e3e]:hover,li.action.active[data-v-330b5e3e]{border-radius:6px;padding:0}li.action[data-v-330b5e3e]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-330b5e3e]{pointer-events:none;opacity:.5}.action--disabled[data-v-330b5e3e]:hover,.action--disabled[data-v-330b5e3e]:focus{cursor:default;opacity:.5}.action--disabled[data-v-330b5e3e] *{opacity:1!important}.action-button[data-v-330b5e3e]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:400;font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-button>span[data-v-330b5e3e]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-330b5e3e]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-330b5e3e] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-button[data-v-330b5e3e] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button__longtext-wrapper[data-v-330b5e3e],.action-button__longtext[data-v-330b5e3e]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-330b5e3e]{cursor:pointer;white-space:pre-wrap!important}.action-button__name[data-v-330b5e3e]{font-weight:700;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-button__description[data-v-330b5e3e]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-button__menu-icon[data-v-330b5e3e],.action-button__pressed-icon[data-v-330b5e3e]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action-button[data-v-330b5e3e] *{cursor:pointer}.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}.material-design-icon[data-v-f57c2142]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-button-group-base>div[data-v-f57c2142]{text-align:center;color:var(--color-text-maxcontrast)}.nc-button-group-base ul.nc-button-group-content[data-v-f57c2142]{display:flex;gap:4px;justify-content:space-between}.nc-button-group-base ul.nc-button-group-content li[data-v-f57c2142-s]{flex:1 1}.nc-button-group-base ul.nc-button-group-content[data-v-f57c2142] .action-button{padding:0!important;width:100%;display:flex;justify-content:center}.nc-button-group-base ul.nc-button-group-content[data-v-f57c2142] .action-button.action-button--active{background-color:var(--color-primary-element);border-radius:var(--border-radius-element);color:var(--color-primary-element-text)}.nc-button-group-base ul.nc-button-group-content[data-v-f57c2142] .action-button.action-button--active:hover,.nc-button-group-base ul.nc-button-group-content[data-v-f57c2142] .action-button.action-button--active:focus,.nc-button-group-base ul.nc-button-group-content[data-v-f57c2142] .action-button.action-button--active:focus-within{background-color:var(--color-primary-element-hover)}.nc-button-group-base ul.nc-button-group-content[data-v-f57c2142] .action-button .action-button__pressed-icon{display:none}.material-design-icon[data-v-1009e96c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-1009e96c]{color:var(--color-text-maxcontrast);line-height:var(--default-clickable-area);white-space:nowrap;text-overflow:ellipsis;box-shadow:none!important;-webkit-user-select:none;user-select:none;pointer-events:none;margin-inline-start:12px;padding-inline-end:14px;height:var(--default-clickable-area);display:flex;align-items:center}.material-design-icon[data-v-6099342c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-6099342c]:hover,li.action.active[data-v-6099342c]{border-radius:6px;padding:0}li.action[data-v-6099342c]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-6099342c]{pointer-events:none;opacity:.5}.action--disabled[data-v-6099342c]:hover,.action--disabled[data-v-6099342c]:focus{cursor:default;opacity:.5}.action--disabled[data-v-6099342c] *{opacity:1!important}.action-checkbox[data-v-6099342c]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:400;line-height:var(--default-clickable-area)}.action-checkbox__checkbox[data-v-6099342c]{position:absolute;inset-inline-start:0!important;z-index:-1;opacity:0}.action-checkbox__label[data-v-6099342c]{display:flex;align-items:center;width:100%;padding:0!important;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)!important}.action-checkbox__label[data-v-6099342c]:before{margin-block:0!important;margin-inline:calc((var(--default-clickable-area) - 14px) / 2)!important}.action-checkbox--disabled[data-v-6099342c],.action-checkbox--disabled .action-checkbox__label[data-v-6099342c]{cursor:pointer}.material-design-icon[data-v-0fc02b30]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-0fc02b30]:not(.button-vue),input[data-v-0fc02b30]:not([type=range]),textarea[data-v-0fc02b30]{margin:0;padding:7px 6px;cursor:text;color:var(--color-main-text);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-element);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-0fc02b30]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-0fc02b30]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-0fc02b30],input[data-v-0fc02b30]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-0fc02b30]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-0fc02b30],textarea[data-v-0fc02b30]:not(:disabled):not(.primary):hover,textarea[data-v-0fc02b30]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-0fc02b30]{border-color:var(--color-primary-element);outline:none}button[data-v-0fc02b30]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-0fc02b30]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-0fc02b30]:not(:disabled):not(.primary):active{color:var(--color-main-text);outline:none;background-color:var(--color-main-background)}button[data-v-0fc02b30]:not(.button-vue):disabled,input[data-v-0fc02b30]:not([type=range]):disabled,textarea[data-v-0fc02b30]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-0fc02b30]:not(.button-vue):required,input[data-v-0fc02b30]:not([type=range]):required,textarea[data-v-0fc02b30]:required{box-shadow:none}button[data-v-0fc02b30]:not(.button-vue):invalid,input[data-v-0fc02b30]:not([type=range]):invalid,textarea[data-v-0fc02b30]:invalid{border-color:var(--color-border-error, var(--color-error));box-shadow:none!important}button:not(.button-vue).primary[data-v-0fc02b30],input:not([type=range]).primary[data-v-0fc02b30],textarea.primary[data-v-0fc02b30]{cursor:pointer;color:var(--color-primary-element-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-0fc02b30]:not(:disabled):hover,button:not(.button-vue).primary[data-v-0fc02b30]:not(:disabled):focus,button:not(.button-vue).primary[data-v-0fc02b30]:not(:disabled):active,input:not([type=range]).primary[data-v-0fc02b30]:not(:disabled):hover,input:not([type=range]).primary[data-v-0fc02b30]:not(:disabled):focus,input:not([type=range]).primary[data-v-0fc02b30]:not(:disabled):active,textarea.primary[data-v-0fc02b30]:not(:disabled):hover,textarea.primary[data-v-0fc02b30]:not(:disabled):focus,textarea.primary[data-v-0fc02b30]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-0fc02b30]:not(:disabled):active,input:not([type=range]).primary[data-v-0fc02b30]:not(:disabled):active,textarea.primary[data-v-0fc02b30]:not(:disabled):active{color:var(--color-primary-element-text-dark)}button:not(.button-vue).primary[data-v-0fc02b30]:disabled,input:not([type=range]).primary[data-v-0fc02b30]:disabled,textarea.primary[data-v-0fc02b30]:disabled{cursor:default;color:var(--color-primary-element-text-dark);background-color:var(--color-primary-element)}li.action[data-v-0fc02b30]:hover,li.action.active[data-v-0fc02b30]{border-radius:6px;padding:0}li.action[data-v-0fc02b30]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-0fc02b30]{pointer-events:none;opacity:.5}.action--disabled[data-v-0fc02b30]:hover,.action--disabled[data-v-0fc02b30]:focus{cursor:default;opacity:.5}.action--disabled[data-v-0fc02b30] *{opacity:1!important}.action-input[data-v-0fc02b30]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:400}.action-input__icon-wrapper[data-v-0fc02b30]{display:flex;align-self:center;align-items:center;justify-content:center}.action-input__icon-wrapper[data-v-0fc02b30] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-input__icon-wrapper[data-v-0fc02b30] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-input>span[data-v-0fc02b30]{cursor:pointer;white-space:nowrap}.action-input__icon[data-v-0fc02b30]{min-width:0;min-height:0;padding:calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px}.action-input__form[data-v-0fc02b30]{display:flex;align-items:center;flex:1 1 auto;margin:4px 0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.action-input__container[data-v-0fc02b30]{position:relative;width:100%}.action-input__input-container[data-v-0fc02b30]{display:flex}.action-input__input-container .colorpicker__trigger[data-v-0fc02b30],.action-input__input-container .colorpicker__preview[data-v-0fc02b30]{width:100%}.action-input__input-container .colorpicker__preview[data-v-0fc02b30]{width:100%;height:36px;border-radius:var(--border-radius-element);border:2px solid var(--color-border-maxcontrast);box-shadow:none!important}.action-input__text-label[data-v-0fc02b30]{padding:4px 0;display:block}.action-input__text-label--hidden[data-v-0fc02b30]{position:absolute;inset-inline-start:0;width:1px;height:1px;overflow:hidden;z-index:-1;opacity:0}.action-input__datetimepicker[data-v-0fc02b30]{width:100%}.action-input__datetimepicker[data-v-0fc02b30] .mx-input{margin:0}.action-input__multi[data-v-0fc02b30]{width:100%}li:last-child>.action-input[data-v-0fc02b30]{padding-bottom:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}li:first-child>.action-input[data-v-0fc02b30]:not(.action-input--visible-label){padding-top:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}.material-design-icon[data-v-b97e1f7a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.native-datetime-picker[data-v-b97e1f7a]{display:flex;flex-direction:column}.native-datetime-picker .native-datetime-picker__label[data-v-b97e1f7a]{margin-block-end:2px}.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]{--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));width:100%;flex:0 0 auto;margin:0;padding-inline-start:calc(var(--border-radius-element) + var(--input-border-width-offset));padding-inline-end:calc(var(--default-grid-baseline) + var(--input-border-width-offset));border:var(--border-width-input, 2px) solid var(--color-border-maxcontrast)}.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]:active:not([disabled]),.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]:hover:not([disabled]),.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]:focus:not([disabled]),.native-datetime-picker .native-datetime-picker__input[data-v-b97e1f7a]:focus-within:not([disabled]){border-color:var(--color-main-text);border-width:var(--border-width-input-focused, 2px);box-shadow:0 0 0 2px var(--color-main-background)!important;--input-border-width-offset: 0px}[data-theme-light] .native-datetime-picker__input[data-v-b97e1f7a],[data-themes*=light] .native-datetime-picker__input[data-v-b97e1f7a]{color-scheme:light}[data-theme-dark] .native-datetime-picker__input[data-v-b97e1f7a],[data-themes*=dark] .native-datetime-picker__input[data-v-b97e1f7a]{color-scheme:dark}@media (prefers-color-scheme: light){[data-theme-default] .native-datetime-picker__input[data-v-b97e1f7a],[data-themes*=default] .native-datetime-picker__input[data-v-b97e1f7a]{color-scheme:light}}@media (prefers-color-scheme: dark){[data-theme-default] .native-datetime-picker__input[data-v-b97e1f7a],[data-themes*=default] .native-datetime-picker__input[data-v-b97e1f7a]{color-scheme:dark}}.material-design-icon[data-v-b2684de6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}[data-v-b2684de6] .password-field__input--secure-text{-webkit-text-security:disc}.material-design-icon[data-v-3487c05a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.input-field[data-v-3487c05a]{--input-border-color: var(--color-border-maxcontrast);--input-border-radius: var(--border-radius-element);--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));--input-padding-start: var(--border-radius-element);--input-padding-end: var(--border-radius-element);position:relative;width:100%;margin-block-start:6px}.input-field--disabled[data-v-3487c05a]{opacity:.4;filter:saturate(.4)}.input-field--label-outside[data-v-3487c05a]{margin-block-start:0}.input-field--leading-icon[data-v-3487c05a]{--input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--trailing-icon[data-v-3487c05a]{--input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--pill[data-v-3487c05a]{--input-border-radius: var(--border-radius-pill)}.input-field__main-wrapper[data-v-3487c05a]{height:var(--default-clickable-area);padding:var(--border-width-input, 2px);position:relative}.input-field__main-wrapper[data-v-3487c05a]:not(:has([disabled])):has(input:focus),.input-field__main-wrapper[data-v-3487c05a]:not(:has([disabled])):has(input:active){padding:0}.input-field__input[data-v-3487c05a]{background-color:var(--color-main-background);color:var(--color-main-text);border:none;border-radius:var(--input-border-radius);box-shadow:0 -1px var(--input-border-color),0 0 0 1px color-mix(in srgb,var(--input-border-color),65% transparent);cursor:pointer;-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important;font-size:var(--default-font-size);text-overflow:ellipsis;height:100%!important;min-height:unset;width:100%;padding-block:var(--input-border-width-offset);padding-inline:calc(var(--input-padding-start) + var(--input-border-width-offset)) calc(var(--input-padding-end) + var(--input-border-width-offset))}.input-field__input[data-v-3487c05a]::placeholder{color:var(--color-text-maxcontrast)}.input-field__input[data-v-3487c05a]::-webkit-search-cancel-button{display:none}.input-field__input[data-v-3487c05a]::-webkit-search-decoration,.input-field__input[data-v-3487c05a]::-webkit-search-results-button,.input-field__input[data-v-3487c05a]::-webkit-search-results-decoration,.input-field__input[data-v-3487c05a]::-ms-clear{display:none}.input-field__input[data-v-3487c05a]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}.input-field__input[data-v-3487c05a]:active:not([disabled]),.input-field__input[data-v-3487c05a]:focus:not([disabled]){--input-border-color: var(--color-main-text);--input-border-width-offset: 0px;border:var(--border-width-input-focused, 2px) solid var(--input-border-color);box-shadow:0 0 0 2px var(--color-main-background)!important}.input-field__input:focus+.input-field__label[data-v-3487c05a],.input-field__input:hover:not(:placeholder-shown)+.input-field__label[data-v-3487c05a]{color:var(--color-main-text)}.input-field__input[data-v-3487c05a]:focus{cursor:text}.input-field__input[data-v-3487c05a]:disabled{cursor:default}.input-field__input[data-v-3487c05a]:focus-visible{box-shadow:unset!important}.input-field:not(.input-field--label-outside) .input-field__input[data-v-3487c05a]:not(:focus)::placeholder{opacity:0}.input-field__label[data-v-3487c05a]{--input-label-font-size: var(--default-font-size);font-size:var(--input-label-font-size);position:absolute;margin-inline:var(--input-padding-start) var(--input-padding-end);max-width:fit-content;inset-block-start:calc((var(--default-clickable-area) - 1lh) / 2);inset-inline:var(--border-width-input-focused, 2px);color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.input-field__input:focus+.input-field__label[data-v-3487c05a],.input-field__input:not(:placeholder-shown)+.input-field__label[data-v-3487c05a]{--input-label-font-size: 13px;line-height:1.5;inset-block-start:calc(-1.5 * var(--input-label-font-size) / 2);font-weight:500;border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:var(--default-grid-baseline);margin-inline:calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.input-field__icon[data-v-3487c05a]{position:absolute;height:var(--default-clickable-area);width:var(--default-clickable-area);display:flex;align-items:center;justify-content:center;opacity:.7;inset-block-end:0}.input-field__icon--leading[data-v-3487c05a]{inset-inline-start:0px}.input-field__icon--trailing[data-v-3487c05a]{inset-inline-end:0px}.input-field__trailing-button[data-v-3487c05a]{--button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;--button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px))}.input-field__trailing-button.button-vue[data-v-3487c05a]{position:absolute;top:var(--border-width-input-focused, 2px);inset-inline-end:var(--border-width-input-focused, 2px)}.input-field__trailing-button.button-vue[data-v-3487c05a]:focus-visible{box-shadow:none!important}.input-field__helper-text-message[data-v-3487c05a]{padding-block:4px;padding-inline:var(--border-radius-element);display:flex;align-items:center;color:var(--color-text-maxcontrast)}.input-field__helper-text-message__icon[data-v-3487c05a]{margin-inline-end:8px}.input-field--error .input-field__helper-text-message[data-v-3487c05a],.input-field--error .input-field__icon--trailing[data-v-3487c05a]{color:var(--color-text-error, var(--color-error))}.input-field--error .input-field__input[data-v-3487c05a],.input-field__input[data-v-3487c05a]:user-invalid{--input-border-color: var(--color-border-error, var(--color-error)) !important}.input-field--error .input-field__input[data-v-3487c05a]:focus-visible,.input-field__input[data-v-3487c05a]:user-invalid:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field--success .input-field__input[data-v-3487c05a]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.input-field--success .input-field__input[data-v-3487c05a]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.input-field--success .input-field__helper-text-message__icon[data-v-3487c05a]{color:var(--color-border-success, var(--color-success))}.input-field--legacy .input-field__input[data-v-3487c05a]{box-shadow:0 0 0 1px var(--input-border-color) inset}.input-field--legacy .input-field__main-wrapper[data-v-3487c05a]:hover:not(:has([disabled])){padding:0}.input-field--legacy .input-field__main-wrapper:hover:not(:has([disabled])) .input-field__input[data-v-3487c05a]{--input-border-color: var(--color-main-text);--input-border-width-offset: 0px;border:var(--border-width-input-focused, 2px) solid var(--input-border-color);box-shadow:0 0 0 2px var(--color-main-background)!important}.material-design-icon[data-v-e4697e39]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-e4697e39]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:700}.button-vue--size-small[data-v-e4697e39]{--button-size: var(--clickable-area-small);--button-radius: var(--border-radius-small)}.button-vue--size-large[data-v-e4697e39]{--button-size: var(--clickable-area-large)}.button-vue[data-v-e4697e39] *{cursor:pointer}.button-vue[data-v-e4697e39]:focus{outline:none}.button-vue[data-v-e4697e39]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-e4697e39]:disabled *{cursor:default}.button-vue[data-v-e4697e39]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-e4697e39]:active{background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-e4697e39]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-e4697e39]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-e4697e39]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-e4697e39]{flex-direction:row-reverse}.button-vue--reverse[data-v-e4697e39]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-e4697e39]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-e4697e39]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-e4697e39]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-e4697e39] svg{height:16px;width:16px}.button-vue__text[data-v-e4697e39]{font-weight:700;margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-e4697e39]:empty{display:none}.button-vue[data-v-e4697e39]:has(.button-vue__text:empty){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-e4697e39]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-e4697e39]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-e4697e39]{width:100%}.button-vue[data-v-e4697e39]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-e4697e39]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-e4697e39]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-e4697e39]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-e4697e39]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-e4697e39]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-e4697e39]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-e4697e39]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-e4697e39]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary-no-background[data-v-e4697e39]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-e4697e39]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-e4697e39]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-e4697e39]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-e4697e39]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-e4697e39]:active{background-color:var(--color-success)}.button-vue--warning[data-v-e4697e39]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-e4697e39]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-e4697e39]:active{background-color:var(--color-warning)}.button-vue--error[data-v-e4697e39]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-e4697e39]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-e4697e39]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-e4697e39]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-e4697e39],.button-vue--legacy.button-vue--success[data-v-e4697e39],.button-vue--legacy.button-vue--warning[data-v-e4697e39]{color:#fff}.material-design-icon[data-v-9e538838]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-9e538838]:hover,li.action.active[data-v-9e538838]{border-radius:6px;padding:0}li.action[data-v-9e538838]:hover{background-color:var(--color-background-hover)}.action-link[data-v-9e538838]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:400;font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-link>span[data-v-9e538838]{cursor:pointer;white-space:nowrap}.action-link__icon[data-v-9e538838]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-link[data-v-9e538838] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-link[data-v-9e538838] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-link__longtext-wrapper[data-v-9e538838],.action-link__longtext[data-v-9e538838]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-link__longtext[data-v-9e538838]{cursor:pointer;white-space:pre-wrap!important}.action-link__name[data-v-9e538838]{font-weight:700;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-link__description[data-v-9e538838]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-link__menu-icon[data-v-9e538838]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.material-design-icon[data-v-9e878692]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-9e878692]:hover,li.action.active[data-v-9e878692]{border-radius:6px;padding:0}li.action[data-v-9e878692]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-9e878692]{pointer-events:none;opacity:.5}.action--disabled[data-v-9e878692]:hover,.action--disabled[data-v-9e878692]:focus{cursor:default;opacity:.5}.action--disabled[data-v-9e878692] *{opacity:1!important}.action-radio[data-v-9e878692]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:400;line-height:var(--default-clickable-area)}.action-radio__radio[data-v-9e878692]{position:absolute;inset-inline-start:0!important;z-index:-1;opacity:0}.action-radio__label[data-v-9e878692]{display:flex;align-items:center;width:100%;padding:0!important;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)!important}.action-radio__label[data-v-9e878692]:before{margin:calc((var(--default-clickable-area) - 14px) / 2)!important}.action-radio--disabled[data-v-9e878692],.action-radio--disabled .action-radio__label[data-v-9e878692]{cursor:pointer}.material-design-icon[data-v-87267750]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-87267750]:hover,li.action.active[data-v-87267750]{border-radius:6px;padding:0}li.action[data-v-87267750]:hover{background-color:var(--color-background-hover)}.action-router[data-v-87267750]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:400;font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-router>span[data-v-87267750]{cursor:pointer;white-space:nowrap}.action-router__icon[data-v-87267750]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-router[data-v-87267750] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-router[data-v-87267750] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-router__longtext-wrapper[data-v-87267750],.action-router__longtext[data-v-87267750]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-router__longtext[data-v-87267750]{cursor:pointer;white-space:pre-wrap!important}.action-router__name[data-v-87267750]{font-weight:700;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-router__description[data-v-87267750]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-router__menu-icon[data-v-87267750]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action--disabled[data-v-87267750]{pointer-events:none;opacity:.5}.action--disabled[data-v-87267750]:hover,.action--disabled[data-v-87267750]:focus{cursor:default;opacity:.5}.action--disabled[data-v-87267750] *{opacity:1!important}.material-design-icon[data-v-6c109b7a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-6c109b7a]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-6c109b7a]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-6c109b7a]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-6c109b7a]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-6c109b7a]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-6c109b7a]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-6c109b7a]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-6c109b7a]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-6c109b7a]{background-color:var(--open-background-color)}.action-item__menutoggle__icon[data-v-6c109b7a]{width:20px;height:20px;object-fit:contain}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-element)}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-element);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_wpltc_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9,._ncPopover_wpltc_20.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-element)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-element);overflow:hidden;background:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:transparent;border-width:10px}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-9px;border-bottom-width:0;border-top-color:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-9px;border-top-width:0;border-bottom-color:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-9px;border-left-width:0;border-right-color:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-9px;border-right-width:0;border-left-color:var(--color-main-background)}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_wpltc_20.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}.material-design-icon[data-v-3e2324b7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-separator[data-v-3e2324b7]{height:0;margin:5px 10px 5px 15px;border-bottom:1px solid var(--color-border-dark);cursor:default}.material-design-icon[data-v-fa684b48]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-fa684b48]:hover,li.action.active[data-v-fa684b48]{border-radius:6px;padding:0}li.action[data-v-fa684b48]:hover{background-color:var(--color-background-hover)}.action-text[data-v-fa684b48]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2);box-sizing:border-box;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:400;font-size:var(--default-font-size);line-height:var(--default-clickable-area)}.action-text>span[data-v-fa684b48]{cursor:pointer;white-space:nowrap}.action-text__icon[data-v-fa684b48]{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px;background-repeat:no-repeat}.action-text[data-v-fa684b48] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-text[data-v-fa684b48] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text__longtext-wrapper[data-v-fa684b48],.action-text__longtext[data-v-fa684b48]{max-width:220px;line-height:1.6em;padding:calc((var(--default-clickable-area) - 1.6em) / 2) 0;cursor:pointer;text-align:start;overflow:hidden;text-overflow:ellipsis}.action-text__longtext[data-v-fa684b48]{cursor:pointer;white-space:pre-wrap!important}.action-text__name[data-v-fa684b48]{font-weight:700;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:block}.action-text__description[data-v-fa684b48]{display:block;white-space:pre-wrap;font-size:var(--font-size-small);line-height:var(--default-line-height);color:var(--color-text-maxcontrast);cursor:pointer}.action-text__menu-icon[data-v-fa684b48]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action--disabled[data-v-fa684b48]{pointer-events:none;opacity:.5}.action--disabled[data-v-fa684b48]:hover,.action--disabled[data-v-fa684b48]:focus{cursor:default;opacity:.5}.action--disabled[data-v-fa684b48] *{opacity:1!important}.action-text[data-v-fa684b48],.action-text span[data-v-fa684b48]{cursor:default}.material-design-icon[data-v-c537247a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}button[data-v-c537247a]:not(.button-vue),input[data-v-c537247a]:not([type=range]),textarea[data-v-c537247a]{margin:0;padding:7px 6px;cursor:text;color:var(--color-main-text);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-element);outline:none;background-color:var(--color-main-background);font-size:13px}button[data-v-c537247a]:not(.button-vue):not(:disabled):not(.primary):hover,button[data-v-c537247a]:not(.button-vue):not(:disabled):not(.primary):focus,button:not(.button-vue):not(:disabled):not(.primary).active[data-v-c537247a],input[data-v-c537247a]:not([type=range]):not(:disabled):not(.primary):hover,input[data-v-c537247a]:not([type=range]):not(:disabled):not(.primary):focus,input:not([type=range]):not(:disabled):not(.primary).active[data-v-c537247a],textarea[data-v-c537247a]:not(:disabled):not(.primary):hover,textarea[data-v-c537247a]:not(:disabled):not(.primary):focus,textarea:not(:disabled):not(.primary).active[data-v-c537247a]{border-color:var(--color-primary-element);outline:none}button[data-v-c537247a]:not(.button-vue):not(:disabled):not(.primary):active,input[data-v-c537247a]:not([type=range]):not(:disabled):not(.primary):active,textarea[data-v-c537247a]:not(:disabled):not(.primary):active{color:var(--color-main-text);outline:none;background-color:var(--color-main-background)}button[data-v-c537247a]:not(.button-vue):disabled,input[data-v-c537247a]:not([type=range]):disabled,textarea[data-v-c537247a]:disabled{cursor:default;opacity:.5;color:var(--color-text-maxcontrast);background-color:var(--color-background-dark)}button[data-v-c537247a]:not(.button-vue):required,input[data-v-c537247a]:not([type=range]):required,textarea[data-v-c537247a]:required{box-shadow:none}button[data-v-c537247a]:not(.button-vue):invalid,input[data-v-c537247a]:not([type=range]):invalid,textarea[data-v-c537247a]:invalid{border-color:var(--color-border-error, var(--color-error));box-shadow:none!important}button:not(.button-vue).primary[data-v-c537247a],input:not([type=range]).primary[data-v-c537247a],textarea.primary[data-v-c537247a]{cursor:pointer;color:var(--color-primary-element-text);border-color:var(--color-primary-element);background-color:var(--color-primary-element)}button:not(.button-vue).primary[data-v-c537247a]:not(:disabled):hover,button:not(.button-vue).primary[data-v-c537247a]:not(:disabled):focus,button:not(.button-vue).primary[data-v-c537247a]:not(:disabled):active,input:not([type=range]).primary[data-v-c537247a]:not(:disabled):hover,input:not([type=range]).primary[data-v-c537247a]:not(:disabled):focus,input:not([type=range]).primary[data-v-c537247a]:not(:disabled):active,textarea.primary[data-v-c537247a]:not(:disabled):hover,textarea.primary[data-v-c537247a]:not(:disabled):focus,textarea.primary[data-v-c537247a]:not(:disabled):active{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}button:not(.button-vue).primary[data-v-c537247a]:not(:disabled):active,input:not([type=range]).primary[data-v-c537247a]:not(:disabled):active,textarea.primary[data-v-c537247a]:not(:disabled):active{color:var(--color-primary-element-text-dark)}button:not(.button-vue).primary[data-v-c537247a]:disabled,input:not([type=range]).primary[data-v-c537247a]:disabled,textarea.primary[data-v-c537247a]:disabled{cursor:default;color:var(--color-primary-element-text-dark);background-color:var(--color-primary-element)}li.action[data-v-c537247a]:hover,li.action.active[data-v-c537247a]{border-radius:6px;padding:0}li.action[data-v-c537247a]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-c537247a]{pointer-events:none;opacity:.5}.action--disabled[data-v-c537247a]:hover,.action--disabled[data-v-c537247a]:focus{cursor:default;opacity:.5}.action--disabled[data-v-c537247a] *{opacity:1!important}.action-text-editable[data-v-c537247a]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;cursor:pointer;white-space:nowrap;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:400;line-height:var(--default-clickable-area)}.action-text-editable>span[data-v-c537247a]{cursor:pointer;white-space:nowrap}.action-text-editable__icon[data-v-c537247a]{min-width:0;min-height:0;padding:calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px}.action-text-editable[data-v-c537247a] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-text-editable[data-v-c537247a] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-text-editable__form[data-v-c537247a]{display:flex;flex:1 1 auto;flex-direction:column;position:relative;margin:4px 0;padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.action-text-editable__submit[data-v-c537247a]{position:absolute;inset-inline-start:0;top:auto;width:1px;height:1px;overflow:hidden;z-index:-1;opacity:0}.action-text-editable__label[data-v-c537247a]{display:flex;align-items:center;justify-content:center;position:absolute;inset-inline-end:calc((var(--default-clickable-area) - 16px) / 2 + 1px);bottom:1px;width:calc(var(--default-clickable-area) - 8px);height:calc(var(--default-clickable-area) - 8px);box-sizing:border-box;margin:0;padding:7px 6px;border:0;border-radius:50%;background-color:var(--color-main-background);background-clip:padding-box}.action-text-editable__label[data-v-c537247a],.action-text-editable__label[data-v-c537247a] *{cursor:pointer}.action-text-editable__textarea[data-v-c537247a]{flex:1 1 auto;color:inherit;border-color:var(--color-border-maxcontrast);min-height:calc(var(--default-clickable-area) * 2 - 8px);max-height:calc(var(--default-clickable-area) * 3 - 8px);min-width:calc(var(--default-clickable-area) * 4);width:100%!important;margin:0}.action-text-editable__textarea[data-v-c537247a]:disabled{cursor:default}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid+.action-text-editable__label[data-v-c537247a]{background-color:var(--color-error)}.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-c537247a]:active,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-c537247a]:hover,.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled)+.action-text-editable__label[data-v-c537247a]:focus{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.action-text-editable__textarea:active:not(:disabled)+.action-text-editable__label[data-v-c537247a],.action-text-editable__textarea:hover:not(:disabled)+.action-text-editable__label[data-v-c537247a],.action-text-editable__textarea:focus:not(:disabled)+.action-text-editable__label[data-v-c537247a]{z-index:2;border-color:var(--color-primary-element);border-inline-start-color:transparent}li:last-child>.action-text-editable[data-v-c537247a]{margin-bottom:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}li:first-child>.action-text-editable[data-v-c537247a]{margin-top:calc((var(--default-clickable-area) - 16px) / 2 - 4px)}.material-design-icon[data-v-a28923a1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-details-toggle[data-v-a28923a1]{position:sticky;width:var(--default-clickable-area);height:var(--default-clickable-area);padding:calc((var(--default-clickable-area) - 16px) / 2);cursor:pointer;opacity:.6;transform:rotate(180deg);background-color:var(--color-main-background);z-index:2000;top:var(--app-navigation-padding);inset-inline-start:calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2)}.app-details-toggle--mobile[data-v-a28923a1]{inset-inline-start:var(--app-navigation-padding)}.app-details-toggle[data-v-a28923a1]:active,.app-details-toggle[data-v-a28923a1]:hover,.app-details-toggle[data-v-a28923a1]:focus{opacity:1}.material-design-icon[data-v-a2641cc2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-a2641cc2]{position:initial;z-index:1000;flex-basis:100vw;height:100%;margin:0!important;background-color:var(--color-main-background);min-width:0}.app-content[data-v-a2641cc2]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-a2641cc2]{position:relative;width:100%;height:100%}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-a2641cc2] .app-content-list{display:flex}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-a2641cc2] .app-content-details,.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-a2641cc2] .app-content-list{display:none}.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-a2641cc2] .app-content-details{display:block}[data-v-a2641cc2] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane{background-color:transparent;transition:none}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky}@media only screen and (width < 1024px){[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width < 1024px){[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--color-main-background)}[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-a2641cc2] .splitpanes.default-theme .splitpanes__splitter:after{background-color:var(--color-border)}[data-v-a2641cc2] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter{border-inline-start:1px solid var(--color-border)}[data-v-a2641cc2] .splitpanes.default-theme.splitpanes--horizontal .splitpanes__splitter{border-top:1px solid var(--color-border)}.app-content-wrapper--show-list[data-v-a2641cc2] .app-content-list{max-width:none}.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging .splitpanes__pane,*:has(.splitpanes--dragging){-webkit-user-select:none;user-select:none;pointer-events:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out;will-change:width}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out;will-change:height}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.default-theme.splitpanes .splitpanes__pane{background-color:#f2f2f2}.default-theme.splitpanes .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.default-theme.splitpanes .splitpanes__splitter:before,.default-theme.splitpanes .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.default-theme.splitpanes .splitpanes__splitter:hover:before,.default-theme.splitpanes .splitpanes__splitter:hover:after{background-color:#00000040}.default-theme.splitpanes .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.material-design-icon[data-v-5a15295d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-toggle-wrapper[data-v-5a15295d]{position:absolute;top:var(--app-navigation-padding);inset-inline-end:calc(0px - var(--app-navigation-padding));margin-inline-end:calc(-1 * var(--default-clickable-area))}button.app-navigation-toggle[data-v-5a15295d]{background-color:var(--color-main-background)}.app-navigation,.app-content{--app-navigation-padding: calc(var(--default-grid-baseline, 4px) * 2)}.material-design-icon[data-v-d5ce90cd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-d5ce90cd]{--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));transition:transform var(--animation-quick),margin var(--animation-quick);width:300px;--app-navigation-max-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));max-width:var(--app-navigation-max-width);position:relative;top:0;inset-inline-start:0;padding:0;z-index:1800;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-grow:0;flex-shrink:0;background-color:var(--color-main-background-blur, var(--color-main-background));-webkit-backdrop-filter:var(--filter-background-blur, none);backdrop-filter:var(--filter-background-blur, none)}.app-navigation--closed[data-v-d5ce90cd]{margin-inline-start:calc(-1*min(300px,var(--app-navigation-max-width)))}.app-navigation__search[data-v-d5ce90cd]{width:100%}.app-navigation__body[data-v-d5ce90cd]{overflow-y:scroll}.app-navigation__content>ul[data-v-d5ce90cd]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.app-navigation .app-navigation__list[data-v-d5ce90cd]{height:100%}.app-navigation__body--no-list[data-v-d5ce90cd]{flex:1 1 auto;overflow:auto;height:100%}.app-navigation__content[data-v-d5ce90cd]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-d5ce90cd]{border-inline-end:1px solid var(--color-border)}@media only screen and (max-width: 1024px){.app-navigation[data-v-d5ce90cd]{position:absolute;border-inline-end:1px solid var(--color-border)}}@media only screen and (max-width: 512px){.app-navigation[data-v-d5ce90cd]{z-index:1400}}.material-design-icon[data-v-d72957ed]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-list[data-v-d72957ed]{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:var(--default-grid-baseline, 4px);padding:var(--app-navigation-padding)}.material-design-icon[data-v-21e6b451]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-21e6b451]{display:flex;justify-content:space-between}.app-navigation-caption--heading[data-v-21e6b451]{padding:var(--app-navigation-padding)}.app-navigation-caption--heading[data-v-21e6b451]:not(:first-child):not(:last-child){padding:0 var(--app-navigation-padding)}.app-navigation-caption__name[data-v-21e6b451]{font-weight:700;color:var(--color-main-text);font-size:var(--default-font-size);line-height:var(--default-clickable-area);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:none!important;flex-shrink:0;padding-block:0;padding-inline:calc(var(--default-grid-baseline, 4px) * 2) 0;margin-top:0;margin-bottom:var(--default-grid-baseline)}.app-navigation-caption__actions[data-v-21e6b451]{flex:0 0 var(--default-clickable-area)}.app-navigation-caption[data-v-21e6b451]:not(:first-child){margin-top:calc(var(--default-clickable-area) / 2)}.material-design-icon[data-v-04a313f4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry__icon-bullet[data-v-04a313f4]{display:block;padding:calc((var(--default-clickable-area) - 16px) / 2 + 1px)}.app-navigation-entry__icon-bullet div[data-v-04a313f4]{width:14px;height:14px;cursor:pointer;transition:background .1s ease-in-out;border:none;border-radius:50%}.material-design-icon[data-v-e6236e50]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-e6236e50]{position:relative;inset-inline-end:0}.icon-collapse[data-v-e6236e50]:hover{background-color:var(--color-background-dark)!important}.icon-collapse--active[data-v-e6236e50]:hover{background-color:var(--color-primary-element)!important}.material-design-icon[data-v-d600f829]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-d600f829]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%;min-height:var(--default-clickable-area);transition:background-color var(--animation-quick) ease-in-out;transition:background-color .2s ease-in-out;border-radius:var(--border-radius-element)}.app-navigation-entry-wrapper[data-v-d600f829]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-d600f829]{display:none}.app-navigation-entry.active[data-v-d600f829]{background-color:var(--color-primary-element)!important}.app-navigation-entry.active[data-v-d600f829]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.active .app-navigation-entry-link[data-v-d600f829],.app-navigation-entry.active .app-navigation-entry-button[data-v-d600f829]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-d600f829]:focus-within,.app-navigation-entry[data-v-d600f829]:hover{background-color:var(--color-background-hover)}.app-navigation-entry.active .app-navigation-entry__children[data-v-d600f829],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-d600f829],.app-navigation-entry:hover .app-navigation-entry__children[data-v-d600f829]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-d600f829],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-d600f829],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-d600f829],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-d600f829],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-d600f829]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-d600f829]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.active .app-navigation-entry__actions[data-v-d600f829]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-d600f829]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-d600f829],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-d600f829]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-d600f829],.app-navigation-entry .app-navigation-entry-button[data-v-d600f829]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px 16px;line-height:var(--default-clickable-area)}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-d600f829],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-d600f829]{display:flex;align-items:center;flex:0 0 var(--default-clickable-area);justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);background-size:16px 16px;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-d600f829],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-d600f829]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-d600f829],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-d600f829]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-d600f829]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-d600f829]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text);border-radius:var(--border-radius-element)}.app-navigation-entry__children[data-v-d600f829]{--app-navigation-item-child-offset: 10px;position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px);padding-inline-start:var(--app-navigation-item-child-offset)}.app-navigation-entry__children .app-navigation-entry[data-v-d600f829]{display:inline-flex;flex-wrap:wrap}.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-d600f829]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-d600f829]{display:inline-flex;flex:1 1 0;padding-inline-start:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-d600f829]{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:var(--default-clickable-area)}.app-navigation-entry__utils[data-v-d600f829]{display:flex;min-width:var(--default-clickable-area);align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-d600f829]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-d600f829]{margin-inline-end:calc(var(--default-grid-baseline) * 2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-d600f829]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-d600f829]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-d600f829]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-d600f829]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-d600f829]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-d600f829]:active{background-color:var(--color-primary-element-light-hover)!important}.material-design-icon[data-v-dd457d48]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm[data-v-dd457d48]{flex:1 0 100%;width:100%}.app-navigation-input-confirm form[data-v-dd457d48]{display:flex}.app-navigation-input-confirm__input[data-v-dd457d48]{height:34px;flex:1 1 100%;font-size:100%!important;margin:5px!important;margin-inline-start:-8px!important;padding:7px!important}.app-navigation-input-confirm__input[data-v-dd457d48]:active,.app-navigation-input-confirm__input[data-v-dd457d48]:focus,.app-navigation-input-confirm__input[data-v-dd457d48]:hover{outline:none;background-color:var(--color-main-background);color:var(--color-main-text);border-color:var(--color-primary-element)}.material-design-icon[data-v-cf399190]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon[data-v-cf399190]{overflow:hidden}.loading-icon svg[data-v-cf399190]{animation:rotate var(--animation-duration, .8s) linear infinite}.material-design-icon[data-v-0ba6c9df]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-new[data-v-0ba6c9df]{display:block;padding:calc(var(--default-grid-baseline, 4px) * 2)}.app-navigation-new button[data-v-0ba6c9df]{width:100%}.material-design-icon[data-v-ee07f8f8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-ee07f8f8]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%;min-height:var(--default-clickable-area);transition:background-color var(--animation-quick) ease-in-out;transition:background-color .2s ease-in-out;border-radius:var(--border-radius-element)}.app-navigation-entry-wrapper[data-v-ee07f8f8]{position:relative;display:flex;flex-shrink:0;flex-wrap:wrap;width:100%}.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened)>ul[data-v-ee07f8f8]{display:none}.app-navigation-entry.active[data-v-ee07f8f8]{background-color:var(--color-primary-element)!important}.app-navigation-entry.active[data-v-ee07f8f8]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.active .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry.active .app-navigation-entry-button[data-v-ee07f8f8]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-ee07f8f8]:focus-within,.app-navigation-entry[data-v-ee07f8f8]:hover{background-color:var(--color-background-hover)}.app-navigation-entry.active .app-navigation-entry__children[data-v-ee07f8f8],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-ee07f8f8],.app-navigation-entry:hover .app-navigation-entry__children[data-v-ee07f8f8]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-ee07f8f8]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-ee07f8f8]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.active .app-navigation-entry__actions[data-v-ee07f8f8]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-ee07f8f8]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-ee07f8f8]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button[data-v-ee07f8f8]{z-index:100;display:flex;overflow:hidden;flex:1 1 0;min-height:var(--default-clickable-area);padding:0;white-space:nowrap;color:var(--color-main-text);background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center;background-size:16px 16px;line-height:var(--default-clickable-area)}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-ee07f8f8]{display:flex;align-items:center;flex:0 0 var(--default-clickable-area);justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);background-size:16px 16px;background-repeat:no-repeat;background-position:calc((var(--default-clickable-area) - 16px) / 2) center}.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-ee07f8f8]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis}.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-ee07f8f8],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-ee07f8f8]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-ee07f8f8]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-ee07f8f8]:focus-visible{box-shadow:0 0 0 4px var(--color-main-background);outline:2px solid var(--color-main-text);border-radius:var(--border-radius-element)}.app-navigation-entry__children[data-v-ee07f8f8]{--app-navigation-item-child-offset: 10px;position:relative;display:flex;flex:0 1 auto;flex-direction:column;width:100%;gap:var(--default-grid-baseline, 4px);padding-inline-start:var(--app-navigation-item-child-offset)}.app-navigation-entry__children .app-navigation-entry[data-v-ee07f8f8]{display:inline-flex;flex-wrap:wrap}.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-ee07f8f8]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-ee07f8f8]{display:inline-flex;flex:1 1 0;padding-inline-start:calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2)!important}.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-ee07f8f8]{position:relative;overflow:hidden;flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;line-height:var(--default-clickable-area)}.app-navigation-entry__utils[data-v-ee07f8f8]{display:flex;min-width:var(--default-clickable-area);align-items:center;flex:0 1 auto;justify-content:flex-end}.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-ee07f8f8]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-ee07f8f8]{margin-inline-end:calc(var(--default-grid-baseline) * 2);display:flex;align-items:center;flex:0 1 auto}.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-ee07f8f8]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-ee07f8f8]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-ee07f8f8]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-ee07f8f8]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-ee07f8f8]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-ee07f8f8]:active{background-color:var(--color-primary-element-light-hover)!important}.app-navigation-new-item__name[data-v-ee07f8f8]{overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;padding-inline-start:7px;font-size:14px}.newItemContainer[data-v-ee07f8f8]{width:calc(100% - var(--default-clickable-area));margin:auto}.material-design-icon[data-v-f37737bd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-search[data-v-f37737bd]{display:flex;gap:var(--app-navigation-padding);padding:var(--app-navigation-padding)}.app-navigation-search--has-actions .app-navigation-search__input[data-v-f37737bd]{flex-grow:1;z-index:3}.app-navigation-search__actions[data-v-f37737bd]{display:flex;gap:var(--default-grid-baseline);margin-inline-start:0;max-width:calc(2 * var(--default-clickable-area) + var(--default-grid-baseline));max-height:var(--default-clickable-area);transition:margin-inline-start var(--animation-quick)}.app-navigation-search__actions--hidden[data-v-f37737bd]{margin-inline-start:calc(-1 * var(--default-clickable-area))}._container_fpy51_2{margin-top:auto;padding:var(--default-grid-baseline)}._header_fpy51_7{margin-block:0 var(--default-grid-baseline);margin-inline:var(--default-grid-baseline)}._button_fpy51_13{padding-inline:0 calc((var(--default-clickable-area) - 16px) / 2)!important;.button-vue__text{font-weight:400}}._content_fpy51_21{display:block;padding:10px;margin-bottom:calc(-1 * var(--default-grid-baseline));max-height:300px;overflow-y:auto}._animationActive_fpy51_33{transition-duration:var(--animation-slow);transition-property:max-height,padding;overflow-y:hidden!important}._animationStop_fpy51_39{max-height:0!important;padding:0 10px!important}.app-navigation-spacer[data-v-277fa710]{flex-shrink:0;height:22px}._material-design-icon_pq4io_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._appSettingsDialogVersion_pq4io_20{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));color:var(--color-text-maxcontrast);margin-block-end:calc(8 * var(--default-grid-baseline));margin-inline:var(--form-element-label-offset)}._appSettingsDialogVersion__legacy_pq4io_27{margin-inline:0}.material-design-icon[data-v-aed04601]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings[data-v-aed04601] .app-settings__navigation{min-width:200px;margin-inline-end:calc(4 * var(--default-grid-baseline));overflow-x:hidden;overflow-y:auto;position:relative}.app-settings[data-v-aed04601] .app-settings__content{padding-inline:calc(4 * var(--default-grid-baseline))}.navigation-list[data-v-aed04601]{height:100%;overflow-y:auto;padding:calc(3 * var(--default-grid-baseline))}.navigation-list__link[data-v-aed04601]{display:flex;align-content:center;font-size:16px;height:var(--default-clickable-area);margin:4px 0;line-height:var(--default-clickable-area);border-radius:var(--border-radius-element);font-weight:700;padding:0 calc(4 * var(--default-grid-baseline));cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:transparent;border:none}.navigation-list__link[data-v-aed04601]:hover,.navigation-list__link[data-v-aed04601]:focus{background-color:var(--color-background-hover)}.navigation-list__link--active[data-v-aed04601]{background-color:var(--color-primary-element-light)!important}.navigation-list__link--icon[data-v-aed04601]{padding-inline-start:calc(2 * var(--default-grid-baseline));gap:var(--default-grid-baseline)}.navigation-list__link-icon[data-v-aed04601]{display:flex;justify-content:center;align-content:center;width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));max-width:calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}@media only screen and (max-width: 512px){.app-settings[data-v-aed04601] .dialog__name{padding-inline-start:16px}}@media only screen and (max-width: 512px){.dialog__modal .modal-wrapper--small .modal-container{width:fit-content;height:unset;max-height:90%;position:relative;top:unset;border-radius:var(--border-radius-element)}}.material-design-icon[data-v-ca0b8eba]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dialog[data-v-ca0b8eba]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.dialog__modal[data-v-ca0b8eba] .modal-wrapper .modal-container{display:flex!important;padding-block:4px 0;padding-inline:12px 0}.dialog__modal[data-v-ca0b8eba] .modal-wrapper .modal-container__content{display:flex;flex-direction:column;overflow:hidden}.dialog__wrapper[data-v-ca0b8eba]{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.dialog__wrapper--collapsed[data-v-ca0b8eba]{flex-direction:column}.dialog__navigation[data-v-ca0b8eba]{display:flex;flex-shrink:0}.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-ca0b8eba]{flex-direction:column;overflow:hidden auto;height:100%;min-width:200px;margin-inline-end:20px}.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-ca0b8eba]{flex-direction:row;justify-content:space-between;overflow:auto hidden;width:100%;min-width:100%}.dialog__name[data-v-ca0b8eba]{font-size:21px;text-align:center;height:fit-content;min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);overflow-wrap:break-word;margin-block:0 12px}.dialog__content[data-v-ca0b8eba]{flex:1;min-height:0;overflow:auto;padding-inline-end:12px}.dialog__text[data-v-ca0b8eba]{padding-block-end:6px}.dialog__actions[data-v-ca0b8eba]{display:flex;gap:6px;align-content:center;justify-content:end;width:100%;max-width:100%;padding-inline:0 12px;margin-inline:0;margin-block:0}.dialog__actions[data-v-ca0b8eba]:not(:empty){margin-block:6px 12px}@media only screen and (max-width: 512px){.dialog__name[data-v-ca0b8eba]{text-align:start;margin-inline-end:var(--default-clickable-area)}}.material-design-icon[data-v-70dc2566]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-70dc2566]{position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color),.5)}.modal-mask[data-v-70dc2566],.modal-mask[data-v-70dc2566] *{box-sizing:border-box}.modal-mask--opaque[data-v-70dc2566]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-70dc2566]{--backdrop-color: 255, 255, 255}.modal-header[data-v-70dc2566]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:center;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-70dc2566]{overflow-x:hidden;width:100%;padding:0 calc(var(--default-clickable-area) * 3) 0 12px;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width: 1024px){.modal-header__name[data-v-70dc2566]{padding-inline-start:calc(var(--default-clickable-area) * 3);text-align:center}}.modal-header .icons-menu[data-v-70dc2566]{position:absolute;inset-inline-end:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .header-close[data-v-70dc2566]{display:flex;align-items:center;justify-content:center;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-70dc2566]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-70dc2566],.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-70dc2566],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-70dc2566],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-70dc2566]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__play[data-v-70dc2566],.modal-header .icons-menu .play-pause-icons__pause[data-v-70dc2566]{width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-70dc2566] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-70dc2566] .action-item--single{width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-70dc2566] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-header .icons-menu[data-v-70dc2566] .action-item__menutoggle{padding:0}.modal-header .icons-menu[data-v-70dc2566] .action-item__menutoggle span,.modal-header .icons-menu[data-v-70dc2566] .action-item__menutoggle svg{width:var(--icon-size);height:var(--icon-size)}.modal-wrapper[data-v-70dc2566]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper .prev[data-v-70dc2566],.modal-wrapper .next[data-v-70dc2566]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-70dc2566]:focus-visible,.modal-wrapper .next[data-v-70dc2566]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-70dc2566]{inset-inline-start:2px}.modal-wrapper .next[data-v-70dc2566]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-70dc2566]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container);background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003}.modal-wrapper .modal-container__close[data-v-70dc2566]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-70dc2566]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-70dc2566]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height))}.modal-wrapper--normal>.modal-container[data-v-70dc2566]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height))}.modal-wrapper--large>.modal-container[data-v-70dc2566]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height))}.modal-wrapper--full>.modal-container[data-v-70dc2566]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}@media only screen and ((max-width: 512px) or (max-height: 400px)){.modal-wrapper .modal-container[data-v-70dc2566]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}}.fade-enter-active[data-v-70dc2566],.fade-leave-active[data-v-70dc2566]{transition:opacity .25s}.fade-enter-from[data-v-70dc2566],.fade-leave-to[data-v-70dc2566]{opacity:0}.fade-visibility-enter-from[data-v-70dc2566],.fade-visibility-leave-to[data-v-70dc2566]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-70dc2566],.modal-in-leave-active[data-v-70dc2566],.modal-out-enter-active[data-v-70dc2566],.modal-out-leave-active[data-v-70dc2566]{transition:opacity .25s}.modal-in-enter-from[data-v-70dc2566],.modal-in-leave-to[data-v-70dc2566],.modal-out-enter-from[data-v-70dc2566],.modal-out-leave-to[data-v-70dc2566]{opacity:0}.modal-in-enter .modal-container[data-v-70dc2566],.modal-in-leave-to .modal-container[data-v-70dc2566]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-70dc2566],.modal-out-leave-to .modal-container[data-v-70dc2566]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-70dc2566]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-70dc2566]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-70dc2566 linear var(--slideshow-duration) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .icon-pause[data-v-70dc2566]{animation:breath-70dc2566 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-70dc2566]{animation-play-state:paused!important}@keyframes progressring-70dc2566{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-70dc2566{0%{opacity:1}50%{opacity:0}to{opacity:1}}.material-design-icon[data-v-4095bb7f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-settings-section[data-v-4095bb7f]{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--app-settings-section-text-offset: var(--form-element-label-offset);--app-settings-section-content-gap: calc(6 * var(--default-grid-baseline));margin-block-end:calc(8 * var(--default-grid-baseline))}.app-settings-section__name[data-v-4095bb7f]{margin:0;padding-inline:var(--app-settings-section-text-offset);padding-block:0;font-size:20px;font-weight:700}.app-settings-section__description[data-v-4095bb7f]{padding-inline:var(--app-settings-section-text-offset);color:var(--color-text-maxcontrast)}.app-settings-section__content[data-v-4095bb7f]{margin-block-start:calc(2 * var(--default-grid-baseline));display:flex;flex-direction:column;justify-content:stretch;gap:var(--app-settings-section-content-gap)}.app-settings-section__legacy[data-v-4095bb7f]{--app-settings-section-text-offset: 0;--app-settings-section-content-gap: 0}._appSettingsSectionShortcuts_1trvh_2{display:flex;flex-direction:column;gap:calc(4 * var(--default-grid-baseline))}._material-design-icon_1y2dv_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._sidebarTabsButton_1y2dv_20{border:none;border-bottom:var(--default-grid-baseline) solid transparent!important;border-radius:var(--border-radius-small);background-color:var(--color-main-background);color:var(--color-main-text);font-size:var(--default-font-size);cursor:pointer;display:flex;flex-direction:column;gap:var(--default-grid-baseline);padding:var(--border-radius-small);transition:background-color var(--animation-quick),border-bottom-color var(--animation-quick);min-width:var(--default-clickable-area)}._sidebarTabsButton_1y2dv_20:hover{background-color:var(--color-background-hover)!important}._sidebarTabsButton_1y2dv_20:active,._sidebarTabsButton_1y2dv_20:focus{background-color:var(--color-main-background)!important}._sidebarTabsButton_1y2dv_20 *{cursor:pointer}._sidebarTabsButton_selected_1y2dv_45{border-bottom-color:var(--color-primary-element)!important;border-bottom-left-radius:0;border-bottom-right-radius:0;cursor:default}._sidebarTabsButton_selected_1y2dv_45:hover{background-color:var(--color-primary-element-light-hover)!important;color:var(--color-primary-element-light-text)!important}._sidebarTabsButton_selected_1y2dv_45 *{cursor:default}._sidebarTabsButton__name_1y2dv_59{font-weight:400;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}._sidebarTabsButton_selected_1y2dv_45 ._sidebarTabsButton__name_1y2dv_59{font-weight:700}._sidebarTabsButton__icon_1y2dv_70{display:inline-flex;align-items:center;justify-content:center}._sidebarTabsButton__legacyIcon_1y2dv_76{background-size:20px;display:flex;align-items:center;justify-content:center}.material-design-icon[data-v-1e2d5bfb]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-tabs[data-v-1e2d5bfb]{display:flex;flex-direction:column;min-height:0;flex:1 1 100%}.app-sidebar-tabs__nav[data-v-1e2d5bfb]{display:flex;justify-content:stretch;margin:10px 8px 0;border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__tab[data-v-1e2d5bfb]{flex:1 1 1px}.app-sidebar-tabs__content[data-v-1e2d5bfb]{position:relative;min-height:256px;height:100%}.app-sidebar-tabs__content--multiple[data-v-1e2d5bfb]>:not(section){display:none}@property --app-sidebar-offset{syntax: ""; initial-value: 0; inherits: true;}body{--app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);--app-sidebar-offset: 0;transition:--app-sidebar-offset 0ms!important}body:has(.app-sidebar.slide-right-enter-active),body:has(.app-sidebar.slide-right-leave-active){transition:--app-sidebar-offset var(--animation-quick)}body:has(.app-sidebar__toggle){--app-sidebar-offset: calc(var(--app-sidebar-padding) + var(--default-clickable-area))}.material-design-icon[data-v-104e67d6]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar[data-v-104e67d6]{--app-sidebar-width: clamp(300px, 27vw, 500px);--app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);width:var(--app-sidebar-width);z-index:1500;top:0;inset-inline-end:0;display:flex;overflow-x:hidden;overflow-y:auto;flex-direction:column;flex-shrink:0;height:100%;border-inline-start:1px solid var(--color-border);background:var(--color-main-background);position:relative}.app-sidebar__toggle[data-v-104e67d6]{position:absolute!important;inset-block-start:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-padding);z-index:1001}.app-sidebar .app-sidebar-header[data-v-104e67d6]{--app-sidebar-close-button-offset: calc(var(--default-clickable-area) + var(--app-sidebar-padding))}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-104e67d6]{position:absolute;z-index:100;top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-padding);width:var(--default-clickable-area);height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-104e67d6]{flex-direction:row}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-104e67d6]{--figure-size: calc($desc-height + var(--app-sidebar-padding));z-index:2;width:var(--figure-size);height:var(--figure-size);margin:calc(var(--app-sidebar-padding) / 2);border-radius:3px;flex:0 0 auto}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-104e67d6]{padding-inline-start:0;flex:1 1 auto;min-width:0;padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset));padding-top:var(--app-sidebar-padding)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-104e67d6]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-104e67d6]{z-index:3;position:absolute;top:calc(var(--app-sidebar-padding) / 2);inset-inline-start:calc(-1 * var(--default-clickable-area));gap:0}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-104e67d6]{top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-close-button-offset);position:absolute}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-104e67d6]{position:absolute;top:var(--app-sidebar-padding);inset-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-104e67d6]{padding-inline-end:calc(var(--default-clickable-area) + var(--app-sidebar-close-button-offset))}.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-104e67d6]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-104e67d6]{display:flex;flex-direction:column}.app-sidebar .app-sidebar-header__figure[data-v-104e67d6]{width:100%;height:250px;max-height:250px;background-repeat:no-repeat;background-position:center;background-size:contain}.app-sidebar .app-sidebar-header__figure--with-action[data-v-104e67d6]{cursor:pointer}.app-sidebar .app-sidebar-header__desc[data-v-104e67d6]{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding-inline:var(--app-sidebar-padding);padding-block:var(--app-sidebar-padding) calc(var(--app-sidebar-padding) / 2);gap:0 4px}.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-104e67d6]{padding-inline-start:6px}.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__mainname-form[data-v-104e67d6],.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__mainname-form[data-v-104e67d6]{margin-top:-2px;margin-bottom:-2px}.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__subname[data-v-104e67d6]{margin-top:-2px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-104e67d6]{display:flex;height:var(--default-clickable-area);width:var(--default-clickable-area);justify-content:center;flex:0 0 auto}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-104e67d6]{box-shadow:none}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-104e67d6]:not([aria-pressed=true]):hover{box-shadow:none;background-color:var(--color-background-hover)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container[data-v-104e67d6]{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-width:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container[data-v-104e67d6]{display:flex;align-items:center;min-height:var(--default-clickable-area)}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-104e67d6]{padding:0;min-height:30px;font-size:20px;line-height:30px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-104e67d6] .linkified{cursor:pointer;text-decoration:underline;margin:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form[data-v-104e67d6]{display:flex;flex:1 1 auto;align-items:center}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form input.app-sidebar-header__mainname-input[data-v-104e67d6]{flex:1 1 auto;margin:0;padding:7px;font-size:20px;font-weight:700}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__menu[data-v-104e67d6]{margin-inline-start:5px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname[data-v-104e67d6],.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-104e67d6]{overflow:hidden;width:100%;margin:0;white-space:nowrap;text-overflow:ellipsis}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-104e67d6]{color:var(--color-text-maxcontrast);font-size:var(--default-font-size);padding:0}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-104e67d6] *{vertical-align:text-bottom}.app-sidebar .app-sidebar-header .app-sidebar-header__mainname--hidden[data-v-104e67d6]{position:absolute;top:0;inset-inline-start:0;margin:0;width:1px;height:1px;overflow:hidden}.app-sidebar .app-sidebar-header__description[data-v-104e67d6]{display:flex;align-items:center;margin:0 10px}@media only screen and (max-width: 512px){.app-sidebar[data-v-104e67d6]{position:absolute;--app-sidebar-width: 100vw}}.slide-right-leave-active[data-v-104e67d6],.slide-right-enter-active[data-v-104e67d6]{transition-duration:var(--animation-quick);transition-property:margin-inline-end}.slide-right-enter-to[data-v-104e67d6],.slide-right-leave[data-v-104e67d6]{margin-inline-end:0}.slide-right-enter-from[data-v-104e67d6],.slide-right-leave-to[data-v-104e67d6]{margin-inline-end:calc(-1 * var(--app-sidebar-width))}.material-design-icon[data-v-b101d636]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.empty-content[data-v-b101d636]{display:flex;align-items:center;flex-direction:column;justify-content:center;flex-grow:1;padding:var(--default-grid-baseline)}.modal-wrapper .empty-content[data-v-b101d636]{margin-top:5vh;margin-bottom:5vh}.empty-content__icon[data-v-b101d636]{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 15px;opacity:.4;background-repeat:no-repeat;background-position:center;background-size:64px}.empty-content__icon[data-v-b101d636] svg{width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important}.empty-content__name[data-v-b101d636]{margin-bottom:10px;text-align:center;font-weight:700;font-size:20px;line-height:30px}.empty-content__description[data-v-b101d636]{color:var(--color-text-maxcontrast);text-align:center;text-wrap-style:balance}.empty-content__action[data-v-b101d636]{margin-top:8px}.modal-wrapper .empty-content__action[data-v-b101d636]{margin-top:20px;display:flex}.material-design-icon[data-v-dba10798]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar__tab[data-v-dba10798]{display:none;padding:10px;min-height:100%;max-height:100%;height:100%;overflow:auto}.app-sidebar__tab[data-v-dba10798]:focus{border-color:var(--color-primary-element);box-shadow:0 0 .2em var(--color-primary-element);outline:0}.app-sidebar__tab--active[data-v-dba10798]{display:block}._material-design-icon_1xe1x_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantButton_1xe1x_20{--assistant-button-color: var(--color-element-assistant, linear-gradient(238deg, #A569D3 12%, #00679E 39%, #422083 86%));--assistant-button-background-color: var(--color-background-assistant, #F6F5FF);background-image:var(--color-border-assistant, linear-gradient(125deg, #7398FE 50%, #6104A4 125%));border-radius:var(--border-radius-element);height:var(--default-clickable-area);width:fit-content;padding-inline:1px;padding-block:1px 2px}._assistantButton_disabled_1xe1x_30{filter:saturate(.5);opacity:.5}._assistantButton_primary_1xe1x_34{--assistant-button-color: white;--assistant-button-background-color: var(--color-element-assistant,linear-gradient(238deg, #A569D3 12%, #00679E 39%, #422083 86%))}._assistantButton_primary_1xe1x_34 ._assistantButton__icon_1xe1x_38,._assistantButton_primary_1xe1x_34 ._assistantButton__text_1xe1x_39{color:#fff!important}._assistantButton__button_1xe1x_42{--button-size: calc(var(--default-clickable-area) - 3px) !important;background-color:var(--assistant-button-background-color)!important;background-image:var(--assistant-button-background-color)!important;border:none!important}._assistantButton__button_1xe1x_42:hover{filter:brightness(120%)}._assistantButton__text_1xe1x_39{background-image:var(--assistant-button-color);color:transparent!important;background-clip:text}._material-design-icon_1ndue_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantIcon_1ndue_20{display:inline-flex;align-items:center;justify-content:center}._assistantIcon_1ndue_20:not(._assistantIcon_inline_1ndue_25){display:flex;min-height:var(--default-clickable-area);min-width:var(--default-clickable-area)}._assistantIcon__svg_1ndue_30{display:inline-block;width:var(--6629513e);height:var(--6629513e);max-width:var(--6629513e);max-height:var(--6629513e)}._material-design-icon_ri18g_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._assistantContent_ri18g_20{background-image:var(--color-border-assistant, linear-gradient(125deg, #7398FE 50%, #6104A4 125%));border-radius:var(--border-radius-container);padding:2px}._assistantContent__inner_ri18g_25{background-color:var(--color-background-assistant, #F6F5FF);border-radius:calc(var(--border-radius-container) - 1px);color:var(--color-main-text);padding:calc(var(--border-radius-container) - 1px);height:100%;width:100%}.material-design-icon[data-v-d7dc2a1f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.avatardiv[data-v-d7dc2a1f]{position:relative;display:inline-block;width:var(--avatar-size);height:var(--avatar-size)}.avatardiv--unknown[data-v-d7dc2a1f]{position:relative;background-color:var(--color-main-background);white-space:normal}.avatardiv[data-v-d7dc2a1f]:not(.avatardiv--unknown){background-color:var(--color-main-background)!important;box-shadow:0 0 5px #0000000d inset}.avatardiv--with-menu[data-v-d7dc2a1f]{cursor:pointer}.avatardiv--with-menu .action-item[data-v-d7dc2a1f]{position:absolute;top:0;inset-inline-start:0}.avatardiv--with-menu[data-v-d7dc2a1f] .action-item__menutoggle{cursor:pointer;opacity:0}.avatardiv--with-menu[data-v-d7dc2a1f]:focus-within .action-item__menutoggle,.avatardiv--with-menu[data-v-d7dc2a1f]:hover .action-item__menutoggle,.avatardiv--with-menu.avatardiv--with-menu-loading[data-v-d7dc2a1f] .action-item__menutoggle{opacity:1}.avatardiv--with-menu:focus-within img[data-v-d7dc2a1f],.avatardiv--with-menu:hover img[data-v-d7dc2a1f],.avatardiv--with-menu.avatardiv--with-menu-loading img[data-v-d7dc2a1f]{opacity:.3}.avatardiv--with-menu[data-v-d7dc2a1f] .action-item__menutoggle,.avatardiv--with-menu img[data-v-d7dc2a1f]{transition:opacity var(--animation-quick)}.avatardiv--with-menu[data-v-d7dc2a1f] .button-vue,.avatardiv--with-menu[data-v-d7dc2a1f] .button-vue__icon{height:var(--avatar-size);min-height:var(--avatar-size);width:var(--avatar-size)!important;min-width:var(--avatar-size)}.avatardiv--with-menu[data-v-d7dc2a1f]>.button-vue,.avatardiv--with-menu[data-v-d7dc2a1f]>.action-item .button-vue{--button-radius: calc(var(--avatar-size) / 2)}.avatardiv .avatardiv__initials-wrapper[data-v-d7dc2a1f]{display:block;height:var(--avatar-size);width:var(--avatar-size);background-color:var(--color-main-background);border-radius:calc(var(--avatar-size) / 2)}.avatardiv .avatardiv__initials-wrapper .avatardiv__initials[data-v-d7dc2a1f]{position:absolute;top:0;inset-inline-start:0;display:block;width:100%;text-align:center;font-weight:400}.avatardiv img[data-v-d7dc2a1f]{width:100%;height:100%;object-fit:cover}.avatardiv .material-design-icon[data-v-d7dc2a1f]{width:var(--avatar-size);height:var(--avatar-size)}.avatardiv .avatardiv__user-status[data-v-d7dc2a1f]{--avatar-status-size-orbital: calc(var(--avatar-size) * (1 - 1 / sqrt(2)));--avatar-status-size-min: var(--font-size-small);--avatar-status-size: max(var(--avatar-status-size-orbital), var(--avatar-status-size-min));box-sizing:border-box;position:absolute;inset-inline-end:0;inset-block-end:0;height:var(--avatar-status-size);width:var(--avatar-status-size);line-height:1;font-size:calc(var(--avatar-status-size) / 1.2);background-color:var(--color-main-background);background-repeat:no-repeat;background-size:var(--avatar-status-size);background-position:center;border-radius:50%;display:flex;align-items:center;justify-content:center}.acli:hover .avatardiv .avatardiv__user-status[data-v-d7dc2a1f]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-d7dc2a1f]{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}.avatardiv .avatardiv__user-status--icon[data-v-d7dc2a1f]{border:none;background-color:transparent}.avatardiv .popovermenu-wrapper[data-v-d7dc2a1f]{position:relative;display:inline-block}.avatar-class-icon[data-v-d7dc2a1f]{display:block;border-radius:calc(var(--avatar-size) / 2);background-color:var(--color-background-darker);height:100%}.material-design-icon[data-v-45238efd]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mention-bubble--primary .mention-bubble__content[data-v-45238efd]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-45238efd]{position:relative;max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-45238efd]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-inline:2px 6px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-45238efd]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-45238efd]{color:inherit;background-size:cover}.mention-bubble__title[data-v-45238efd]{overflow:hidden;margin-inline-start:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-45238efd]:before{content:attr(title)}.mention-bubble__select[data-v-45238efd]{position:absolute;z-index:-1;inset-inline-start:-100vw;width:1px;height:1px;overflow:hidden}.material-design-icon[data-v-881a79fb]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.user-status-icon[data-v-881a79fb]{--user-status-color-online: #2D7B41;--user-status-color-busy: #DB0606;--user-status-color-away: #C88800;--user-status-color-offline: #6B6B6B;display:flex;justify-content:center;align-items:center}.user-status-icon--invisible[data-v-881a79fb]{filter:var(--background-invert-if-dark)}.user-status-icon[data-v-881a79fb] svg{width:100%;height:100%}._fadeTransition_13rtj_2{transition:all var(--animation-quick) ease}._fadeTransitionActive_13rtj_6{opacity:0;position:absolute}.material-design-icon[data-v-28ef52a4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-crumb[data-v-28ef52a4]{background-image:none;display:inline-flex;height:var(--default-clickable-area);padding:0}.vue-crumb[data-v-28ef52a4]:last-child{min-width:0}.vue-crumb:last-child .vue-crumb__separator[data-v-28ef52a4]{display:none}.vue-crumb--hidden[data-v-28ef52a4]{display:none}.vue-crumb__separator[data-v-28ef52a4]{padding:0;color:var(--color-text-maxcontrast)}.vue-crumb.vue-crumb--hovered[data-v-28ef52a4] .button-vue{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb[data-v-28ef52a4]:not(:last-child) .button-vue{color:var(--color-text-maxcontrast)}.vue-crumb[data-v-28ef52a4]:not(:last-child) .button-vue:hover,.vue-crumb[data-v-28ef52a4]:not(:last-child) .button-vue:focus{background-color:var(--color-background-dark);color:var(--color-main-text)}.vue-crumb[data-v-28ef52a4]:not(:last-child) .button-vue__text{font-weight:400}.vue-crumb[data-v-28ef52a4] .button-vue__text{margin:0}.vue-crumb[data-v-28ef52a4]:not(.dropdown) .action-item{max-width:100%}.vue-crumb[data-v-28ef52a4]:not(.dropdown) .action-item .button-vue{padding:0 4px 0 16px;max-width:100%}.vue-crumb[data-v-28ef52a4]:not(.dropdown) .action-item .button-vue__wrapper{flex-direction:row-reverse}.vue-crumb[data-v-28ef52a4]:not(.dropdown) .action-item.action-item--open .action-item__menutoggle{background-color:var(--color-background-dark);color:var(--color-main-text)}.material-design-icon[data-v-af2b1226]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.breadcrumb[data-v-af2b1226]{width:100%;flex-grow:1;display:inline-flex;align-items:center}.breadcrumb--collapsed[data-v-af2b1226] .vue-crumb:last-child{min-width:100px}.breadcrumb nav[data-v-af2b1226]{flex-shrink:1;min-width:0}.breadcrumb .breadcrumb__crumbs[data-v-af2b1226]{max-width:100%}.breadcrumb .breadcrumb__crumbs[data-v-af2b1226],.breadcrumb .breadcrumb__actions[data-v-af2b1226]{display:inline-flex}.material-design-icon[data-v-a1ac280f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-content[data-v-a1ac280f]{display:flex;align-items:center;flex-direction:row;gap:var(--default-grid-baseline);-webkit-user-select:none;user-select:none;min-height:var(--default-clickable-area);border-radius:var(--checkbox-radio-switch--border-radius);padding:var(--default-grid-baseline) calc((var(--default-clickable-area) - var(--icon-height)) / 2);width:100%;max-width:fit-content}.checkbox-content__wrapper[data-v-a1ac280f]{flex:1 0 0;max-width:100%}.checkbox-content__text[data-v-a1ac280f]:empty{display:none}.checkbox-content-checkbox:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-a1ac280f],.checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-a1ac280f],.checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-a1ac280f]{margin-block:calc((var(--default-clickable-area) - 2 * var(--default-grid-baseline) - var(--icon-height)) / 2) auto}.checkbox-content-checkbox:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-a1ac280f],.checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-a1ac280f],.checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-a1ac280f]{display:flex;align-items:center;margin-block-end:0;align-self:start}.checkbox-content__icon[data-v-a1ac280f]>*{width:var(--icon-size);height:var(--icon-height);color:var(--color-primary-element)}.checkbox-content__description[data-v-a1ac280f]{display:block;color:var(--color-text-maxcontrast)}.checkbox-content--button-variant .checkbox-content__icon[data-v-a1ac280f]:not(.checkbox-content__icon--checked)>*{color:var(--color-primary-element)}.checkbox-content--button-variant .checkbox-content__icon--checked[data-v-a1ac280f]>*{color:var(--color-primary-element-text)}.checkbox-content--has-text[data-v-a1ac280f]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.checkbox-content[data-v-a1ac280f],.checkbox-content[data-v-a1ac280f] *{cursor:pointer;flex-shrink:0}.material-design-icon[data-v-0dcb138a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-radio-switch[data-v-0dcb138a]{--icon-size: var(--65a7082e);--icon-height: var(--20f7d30f);--checkbox-radio-switch--border-radius: var(--border-radius-element);--checkbox-radio-switch--border-radius-outer: calc(var(--checkbox-radio-switch--border-radius) + 2px);display:flex;align-items:center;color:var(--color-main-text);background-color:transparent;font-size:var(--default-font-size);line-height:var(--default-line-height);padding:0;position:relative}.checkbox-radio-switch__input[data-v-0dcb138a]{position:absolute;z-index:-1;opacity:0!important;width:var(--icon-size);height:var(--icon-size)}.checkbox-radio-switch__input:focus-visible+.checkbox-radio-switch__content[data-v-0dcb138a],.checkbox-radio-switch__input[data-v-0dcb138a]:focus-visible{outline:2px solid var(--color-main-text);border-color:var(--color-main-background);outline-offset:-2px}.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-0dcb138a]{opacity:.5}.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-0dcb138a] .checkbox-radio-switch__icon>*{color:var(--color-main-text)}.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-0dcb138a],.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-0dcb138a] *:not(a){cursor:default!important}.checkbox-radio-switch:not(.checkbox-radio-switch--disabled,.checkbox-radio-switch--checked):focus-within .checkbox-radio-switch__content[data-v-0dcb138a],.checkbox-radio-switch:not(.checkbox-radio-switch--disabled,.checkbox-radio-switch--checked) .checkbox-radio-switch__content[data-v-0dcb138a]:hover{background-color:var(--color-background-hover)}.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-0dcb138a],.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-0dcb138a]:hover{background-color:var(--color-primary-element-hover)}.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-0dcb138a],.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-0dcb138a]:hover{background-color:var(--color-primary-element-light-hover)}.checkbox-radio-switch-switch[data-v-0dcb138a]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon>*{color:var(--color-text-maxcontrast)}.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked[data-v-0dcb138a] .checkbox-radio-switch__icon>*{color:var(--color-primary-element-light)}.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-0dcb138a]{background-color:var(--color-main-background);border:2px solid var(--color-border-maxcontrast);overflow:hidden}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-0dcb138a]{font-weight:700}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content[data-v-0dcb138a]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.checkbox-radio-switch--button-variant[data-v-0dcb138a] .checkbox-radio-switch__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.checkbox-radio-switch--button-variant[data-v-0dcb138a]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon>*{color:var(--color-main-text)}.checkbox-radio-switch--button-variant[data-v-0dcb138a] .checkbox-radio-switch__icon:empty{display:none}.checkbox-radio-switch--button-variant[data-v-0dcb138a]:not(.checkbox-radio-switch--button-variant-v-grouped):not(.checkbox-radio-switch--button-variant-h-grouped),.checkbox-radio-switch--button-variant .checkbox-radio-switch__content[data-v-0dcb138a]{border-radius:var(--checkbox-radio-switch--border-radius)}.checkbox-radio-switch--button-variant-v-grouped .checkbox-radio-switch__content[data-v-0dcb138a]{flex-basis:100%;max-width:unset}.checkbox-radio-switch--button-variant-v-grouped[data-v-0dcb138a]:first-of-type{border-start-start-radius:var(--checkbox-radio-switch--border-radius-outer);border-start-end-radius:var(--checkbox-radio-switch--border-radius-outer)}.checkbox-radio-switch--button-variant-v-grouped[data-v-0dcb138a]:last-of-type{border-end-start-radius:var(--checkbox-radio-switch--border-radius-outer);border-end-end-radius:var(--checkbox-radio-switch--border-radius-outer)}.checkbox-radio-switch--button-variant-v-grouped[data-v-0dcb138a]:not(:last-of-type){border-bottom:0!important}.checkbox-radio-switch--button-variant-v-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-0dcb138a]{margin-bottom:2px}.checkbox-radio-switch--button-variant-v-grouped[data-v-0dcb138a]:not(:first-of-type){border-top:0!important}.checkbox-radio-switch--button-variant-h-grouped[data-v-0dcb138a]:first-of-type{border-start-start-radius:var(--checkbox-radio-switch--border-radius-outer);border-end-start-radius:var(--checkbox-radio-switch--border-radius-outer)}.checkbox-radio-switch--button-variant-h-grouped[data-v-0dcb138a]:last-of-type{border-start-end-radius:var(--checkbox-radio-switch--border-radius-outer);border-end-end-radius:var(--checkbox-radio-switch--border-radius-outer)}.checkbox-radio-switch--button-variant-h-grouped[data-v-0dcb138a]:not(:last-of-type){border-inline-end:0!important}.checkbox-radio-switch--button-variant-h-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-0dcb138a]{margin-inline-end:2px}.checkbox-radio-switch--button-variant-h-grouped[data-v-0dcb138a]:not(:first-of-type){border-inline-start:0!important}.checkbox-radio-switch--button-variant-h-grouped[data-v-0dcb138a] .checkbox-radio-switch__text{text-align:center;display:flex;align-items:center}.checkbox-radio-switch--button-variant-h-grouped .checkbox-radio-switch__content[data-v-0dcb138a]{flex-direction:column;justify-content:center;width:100%;margin:0;gap:0}.material-design-icon[data-v-2aa1d7ea]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-chip[data-v-2aa1d7ea]{--chip-size: 24px;--chip-radius: calc(var(--chip-size) / 2);height:var(--chip-size);max-width:fit-content;display:flex;flex-direction:row;align-items:center;border-radius:var(--chip-radius);background-color:var(--color-background-hover)}.nc-chip--primary[data-v-2aa1d7ea]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.nc-chip--secondary[data-v-2aa1d7ea]{background-color:var(--color-primary-element-light);color:var(--color-primary-element-light-text)}.nc-chip--error[data-v-2aa1d7ea]{background-color:var(--color-error);color:var(--color-error-text)}.nc-chip--warning[data-v-2aa1d7ea]{background-color:var(--color-warning);color:var(--color-warning-text)}.nc-chip--success[data-v-2aa1d7ea]{background-color:var(--color-success);color:var(--color-success-text)}.nc-chip--no-actions .nc-chip__text[data-v-2aa1d7ea]{padding-inline-end:calc(2 * var(--default-grid-baseline))}.nc-chip--no-icon .nc-chip__text[data-v-2aa1d7ea]{padding-inline-start:calc(2 * var(--default-grid-baseline))}.nc-chip__text[data-v-2aa1d7ea]{flex:1 auto;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.nc-chip__icon[data-v-2aa1d7ea]{flex:0 0 var(--chip-size);margin-inline-end:var(--default-grid-baseline);line-height:1;display:flex;align-items:center;justify-content:center;overflow:hidden;height:var(--chip-size);width:var(--chip-size)}.nc-chip__actions[data-v-2aa1d7ea]{flex:0 0 var(--chip-size);--default-clickable-area: var(--chip-size);--border-radius-element: var(--chip-radius)}.material-design-icon[data-v-52d18b4a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.fade-enter-active[data-v-52d18b4a],.fade-leave-active[data-v-52d18b4a]{transition:opacity .3s ease}.fade-enter[data-v-52d18b4a],.fade-leave-to[data-v-52d18b4a]{opacity:0}.linked-icons[data-v-52d18b4a]{display:flex}.linked-icons img[data-v-52d18b4a]{padding:12px;height:var(--default-clickable-area);display:block;background-repeat:no-repeat;background-position:center;opacity:.7}.linked-icons img[data-v-52d18b4a]:hover{opacity:1}.popovermenu[data-v-52d18b4a]{display:none}.popovermenu.open[data-v-52d18b4a]{display:block}li.collection-list-item[data-v-52d18b4a]{flex-wrap:wrap;height:auto;cursor:pointer;margin-bottom:0!important}li.collection-list-item .collection-avatar[data-v-52d18b4a]{margin-top:0}li.collection-list-item form[data-v-52d18b4a],li.collection-list-item .collection-item-name[data-v-52d18b4a]{flex-basis:10%;flex-grow:1;display:flex}li.collection-list-item .collection-item-name[data-v-52d18b4a]{padding:12px 9px}li.collection-list-item input[data-v-52d18b4a]{margin-top:4px;border-color:var(--color-border-maxcontrast)}li.collection-list-item input[type=text][data-v-52d18b4a]{flex-grow:1}li.collection-list-item .error[data-v-52d18b4a],li.collection-list-item .resource-list-details[data-v-52d18b4a]{flex-basis:100%;width:100%}li.collection-list-item .resource-list-details li[data-v-52d18b4a]{display:flex;margin-inline-start:var(--default-clickable-area);border-radius:3px;cursor:pointer}li.collection-list-item .resource-list-details li[data-v-52d18b4a]:hover{background-color:var(--color-background-dark)}li.collection-list-item .resource-list-details li a[data-v-52d18b4a]{flex-grow:1;padding:3px;max-width:calc(100% - 30px);display:flex}li.collection-list-item .resource-list-details span[data-v-52d18b4a]{display:inline-block;vertical-align:top;margin-inline-end:10px}li.collection-list-item .resource-list-details span.resource-name[data-v-52d18b4a]{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top;white-space:nowrap;flex-grow:1;padding:4px}li.collection-list-item .resource-list-details img[data-v-52d18b4a]{width:24px;height:24px}li.collection-list-item .resource-list-details .icon-close[data-v-52d18b4a]{opacity:.7}li.collection-list-item .resource-list-details .icon-close[data-v-52d18b4a]:hover,li.collection-list-item .resource-list-details .icon-close[data-v-52d18b4a]:focus{opacity:1}.should-shake[data-v-52d18b4a]{animation:shake-52d18b4a .6s 1 linear}@keyframes shake-52d18b4a{0%{transform:translate(15px)}20%{transform:translate(-15px)}40%{transform:translate(7px)}60%{transform:translate(-7px)}80%{transform:translate(3px)}to{transform:translate(0)}}.material-design-icon[data-v-d175e795]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.collection-list[data-v-d175e795] *{box-sizing:border-box}.collection-list>li[data-v-d175e795]{display:flex;align-items:center;gap:12px}.collection-list>li>.avatar[data-v-d175e795]{margin-top:0}#collection-select-container[data-v-d175e795]{display:flex;flex-direction:column}.v-select span.avatar[data-v-d175e795]{display:block;padding:16px;opacity:.7;background-repeat:no-repeat;background-position:center}.v-select span.avatar[data-v-d175e795]:hover{opacity:1}p.hint[data-v-d175e795]{z-index:1;margin-top:-16px;padding:8px;color:var(--color-text-maxcontrast);line-height:normal}div.avatar[data-v-d175e795]{width:32px;height:32px;margin:30px 0 0;padding:8px;background-color:var(--color-background-dark)}.icon-projects[data-v-d175e795]{display:block;padding:8px;background-repeat:no-repeat;background-position:center}.option__wrapper[data-v-d175e795]{display:flex}.option__wrapper .avatar[data-v-d175e795]{display:block;width:32px;height:32px;background-color:var(--color-background-darker)!important}.option__wrapper .option__title[data-v-d175e795]{padding:4px}.fade-enter-active[data-v-d175e795],.fade-leave-active[data-v-d175e795]{transition:opacity .5s}.fade-enter[data-v-d175e795],.fade-leave-to[data-v-d175e795]{opacity:0}body{--vs-search-input-color: var(--color-main-text);--vs-search-input-bg: var(--color-main-background);--vs-search-input-placeholder-color: var(--color-text-maxcontrast);--vs-font-size: var(--default-font-size);--vs-line-height: var(--default-line-height);--vs-state-disabled-bg: var(--color-background-hover);--vs-state-disabled-color: var(--color-text-maxcontrast);--vs-state-disabled-controls-color: var(--color-text-maxcontrast);--vs-state-disabled-cursor: not-allowed;--vs-disabled-bg: var(--color-background-hover);--vs-disabled-color: var(--color-text-maxcontrast);--vs-disabled-cursor: not-allowed;--vs-border-color: var(--color-border-maxcontrast);--vs-border-width: var(--border-width-input, 2px) !important;--vs-border-style: solid;--vs-border-radius: var(--border-radius-element);--vs-controls-color: var(--color-main-text);--vs-selected-bg: var(--color-background-hover);--vs-selected-color: var(--color-main-text);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: var(--color-main-background);--vs-dropdown-color: var(--color-main-text);--vs-dropdown-z-index: 9999;--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);--vs-dropdown-option-padding: 8px 20px;--vs-dropdown-option--active-bg: var(--color-background-hover);--vs-dropdown-option--active-color: var(--color-main-text);--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);--vs-dropdown-option--deselect-bg: var(--color-error);--vs-dropdown-option--deselect-color: #fff;--vs-transition-duration: 0ms;--vs-actions-padding: 0 8px 0 4px}.v-select.select{min-height:var(--default-clickable-area);min-width:260px;margin:0 0 var(--default-grid-baseline)}.v-select.select.vs--open{--vs-border-width: var(--border-width-input-focused, 2px)}.v-select.select .select__label{display:block;margin-bottom:2px}.v-select.select .vs__selected{height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));margin:calc(var(--default-grid-baseline) / 2);padding-block:0;padding-inline:12px 8px;border-radius:16px!important;background:var(--color-primary-element-light);border:none}.v-select.select.vs--open .vs__selected:first-of-type{margin-inline-start:calc(var(--default-grid-baseline) / 2 - (var(--border-width-input-focused, 2px) - var(--border-width-input, 2px)))!important}.v-select.select .vs__search{text-overflow:ellipsis;color:var(--color-main-text);min-height:unset!important;height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width))!important}.v-select.select .vs__search::placeholder{color:var(--color-text-maxcontrast)}.v-select.select .vs__search,.v-select.select .vs__search:focus{margin:0}.v-select.select .vs__dropdown-toggle{position:relative;max-height:100px;padding:0;overflow-y:auto}.v-select.select .vs__actions{position:sticky;top:0}.v-select.select .vs__clear{margin-inline-end:2px}.v-select.select.vs--open .vs__dropdown-toggle{border-width:var(--border-width-input-focused);outline:2px solid var(--color-main-background);border-color:var(--color-main-text);border-bottom-color:transparent}.v-select.select:not(.vs--disabled,.vs--open) .vs__dropdown-toggle:hover{outline:2px solid var(--color-main-background);border-color:var(--color-main-text)}.v-select.select.vs--disabled .vs__search,.v-select.select.vs--disabled .vs__selected{color:var(--color-text-maxcontrast)}.v-select.select.vs--disabled .vs__clear,.v-select.select.vs--disabled .vs__deselect{display:none}.v-select.select--no-wrap .vs__selected-options{flex-wrap:nowrap;overflow:auto;min-width:unset}.v-select.select--no-wrap .vs__selected-options .vs__selected{min-width:unset}.v-select.select--drop-up.vs--open .vs__dropdown-toggle{border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-color:transparent;border-bottom-color:var(--color-main-text)}.v-select.select .vs__selected-options{min-height:calc(var(--default-clickable-area) - 2 * var(--vs-border-width))}.v-select.select .vs__selected-options .vs__selected~.vs__search[readonly]{position:absolute}.v-select.select .vs__selected-options{padding:0 5px}.v-select.select.vs--single.vs--loading .vs__selected,.v-select.select.vs--single.vs--open .vs__selected{max-width:100%;opacity:1;color:var(--color-text-maxcontrast)}.v-select.select.vs--single .vs__selected-options{flex-wrap:nowrap}.v-select.select.vs--single .vs__selected{background:unset!important}.vs__dropdown-menu{border-width:var(--border-width-input-focused)!important;border-color:var(--color-main-text)!important;outline:none!important;box-shadow:-2px 0 0 var(--color-main-background),0 2px 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important;padding:4px!important}.vs__dropdown-menu--floating{width:max-content;position:absolute;top:0;inset-inline-start:0}.vs__dropdown-menu--floating-placement-top{border-radius:var(--vs-border-radius) var(--vs-border-radius) 0 0!important;border-top-style:var(--vs-border-style)!important;border-bottom-style:none!important;box-shadow:0 -2px 0 var(--color-main-background),-2px 0 0 var(--color-main-background),2px 0 0 var(--color-main-background),!important}.vs__dropdown-menu .vs__dropdown-option{border-radius:6px!important}.vs__dropdown-menu .vs__no-options{color:var(--color-text-maxcontrast)!important}.material-design-icon[data-v-a612f185]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.name-parts[data-v-a612f185]{display:flex;max-width:100%;cursor:inherit}.name-parts__first[data-v-a612f185]{overflow:hidden;text-overflow:ellipsis}.name-parts__first[data-v-a612f185],.name-parts__last[data-v-a612f185]{white-space:pre;cursor:inherit}.name-parts__first strong[data-v-a612f185],.name-parts__last strong[data-v-a612f185]{font-weight:700}:root{--vs-colors--lightest: rgba(60, 60, 60, .26);--vs-colors--light: rgba(60, 60, 60, .5);--vs-colors--dark: #333;--vs-colors--darkest: rgba(0, 0, 0, .15);--vs-search-input-color: inherit;--vs-search-input-placeholder-color: inherit;--vs-font-size: 1rem;--vs-line-height: 1.4;--vs-state-disabled-bg: rgb(248, 248, 248);--vs-state-disabled-color: var(--vs-colors--light);--vs-state-disabled-controls-color: var(--vs-colors--light);--vs-state-disabled-cursor: not-allowed;--vs-border-color: var(--vs-colors--lightest);--vs-border-width: 1px;--vs-border-style: solid;--vs-border-radius: 4px;--vs-actions-padding: 4px 6px 0 3px;--vs-controls-color: var(--vs-colors--light);--vs-controls-size: 1;--vs-controls--deselect-text-shadow: 0 1px 0 #fff;--vs-selected-bg: #f0f0f0;--vs-selected-color: var(--vs-colors--dark);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: #fff;--vs-dropdown-color: inherit;--vs-dropdown-z-index: 1000;--vs-dropdown-min-width: 160px;--vs-dropdown-max-height: 350px;--vs-dropdown-box-shadow: 0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg: #000;--vs-dropdown-option-color: var(--vs-dropdown-color);--vs-dropdown-option-padding: 3px 20px;--vs-dropdown-option--active-bg: #5897fb;--vs-dropdown-option--active-color: #fff;--vs-dropdown-option--deselect-bg: #fb5858;--vs-dropdown-option--deselect-color: #fff;--vs-transition-timing-function: cubic-bezier(1, -.115, .975, .855);--vs-transition-duration: .15s}.v-select{position:relative;font-family:inherit}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function: cubic-bezier(1, .5, .8, 1);--vs-transition-duration: .15s}@-webkit-keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg: var(--vs-state-disabled-bg);--vs-disabled-color: var(--vs-state-disabled-color);--vs-disabled-cursor: var(--vs-state-disabled-cursor)}.vs--disabled .vs__dropdown-toggle,.vs--disabled .vs__clear,.vs--disabled .vs__search,.vs--disabled .vs__selected,.vs--disabled .vs__open-indicator{cursor:var(--vs-disabled-cursor);background-color:var(--vs-disabled-bg)}.v-select[dir=rtl] .vs__actions{padding:0 3px 0 6px}.v-select[dir=rtl] .vs__clear{margin-left:6px;margin-right:0}.v-select[dir=rtl] .vs__deselect{margin-left:0;margin-right:2px}.v-select[dir=rtl] .vs__dropdown-menu{text-align:right}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;padding:0 0 4px;background:none;border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;padding:0 2px;position:relative}.vs__actions{display:flex;align-items:center;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{fill:var(--vs-controls-color);padding:0;border:0;background-color:transparent;cursor:pointer;margin-right:8px}.vs__dropdown-menu{display:block;box-sizing:border-box;position:absolute;top:calc(100% - var(--vs-border-width));left:0;z-index:var(--vs-dropdown-z-index);padding:5px 0;margin:0;width:100%;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;box-shadow:var(--vs-dropdown-box-shadow);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-top-style:none;border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);text-align:left;list-style:none;background:var(--vs-dropdown-bg);color:var(--vs-dropdown-color)}.vs__no-options{text-align:center}.vs__dropdown-option{line-height:1.42857143;display:block;padding:var(--vs-dropdown-option-padding);clear:both;color:var(--vs-dropdown-option-color);white-space:nowrap;cursor:pointer}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{display:flex;align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);line-height:var(--vs-line-height);margin:4px 2px 0;padding:0 .25em;z-index:0}.vs__deselect{display:inline-flex;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-left:4px;padding:0;border:0;cursor:pointer;background:none;fill:var(--vs-controls-color);text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single .vs__selected{background-color:transparent;border-color:transparent}.vs--single.vs--open .vs__selected,.vs--single.vs--loading .vs__selected{position:absolute;opacity:.4}.vs--single.vs--searching .vs__selected{display:none}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration,.vs__search::-ms-clear{display:none}.vs__search,.vs__search:focus{color:var(--vs-search-input-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:var(--vs-line-height);font-size:var(--vs-font-size);border:1px solid transparent;border-left:none;outline:none;margin:4px 0 0;padding:0 7px;background:none;box-shadow:none;width:0;max-width:100%;flex-grow:1;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable .vs__search{opacity:1}.vs--unsearchable:not(.vs--disabled) .vs__search{cursor:pointer}.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search{opacity:.2}.vs__spinner{align-self:center;opacity:0;font-size:5px;text-indent:-9999em;overflow:hidden;border-top:.9em solid rgba(100,100,100,.1);border-right:.9em solid rgba(100,100,100,.1);border-bottom:.9em solid rgba(100,100,100,.1);border-left:.9em solid rgba(60,60,60,.45);transform:translateZ(0) scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));-webkit-animation:vSelectSpinner 1.1s infinite linear;animation:vSelectSpinner 1.1s infinite linear;transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;width:5em;height:5em;transform:scale(var(--vs-controls--spinner-size, var(--vs-controls-size)))}.vs--loading .vs__spinner{opacity:1}.material-design-icon[data-v-3d24879b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.color-picker[data-v-3d24879b]{display:flex;overflow:hidden;align-content:flex-end;flex-direction:column;justify-content:space-between;padding:var(--border-radius-element);min-width:calc(4 * var(--default-clickable-area) + 2 * var(--border-radius-element))}.color-picker--clearable[data-v-3d24879b]{min-width:calc(5 * var(--default-clickable-area) + 2 * var(--border-radius-element))}.color-picker--advanced-fields[data-v-3d24879b]{min-width:264px}.color-picker__clear[data-v-3d24879b]{color:var(--color-main-text)}.color-picker__clear[data-v-3d24879b]:hover:not(:has(:checked)){color:var(--color-text-maxcontrast)}.color-picker__simple[data-v-3d24879b]{display:grid;grid-template-columns:repeat(auto-fit,var(--default-clickable-area));grid-auto-rows:var(--default-clickable-area)}.color-picker__simple-color-circle[data-v-3d24879b]{display:flex;align-items:center;justify-content:center;width:calc(var(--default-clickable-area) - 10px);height:calc(var(--default-clickable-area) - 10px);min-height:calc(var(--default-clickable-area) - 10px);margin:auto;padding:0;color:#fff;border:1px solid rgba(0,0,0,.25);border-radius:50%;font-size:16px}.color-picker__simple-color-circle[data-v-3d24879b]:focus-within{outline:2px solid var(--color-main-text)}.color-picker__simple-color-circle[data-v-3d24879b]:hover{opacity:.6}.color-picker__simple-color-circle--active[data-v-3d24879b]{width:calc(var(--default-clickable-area) - 6px);height:calc(var(--default-clickable-area) - 6px);min-height:calc(var(--default-clickable-area) - 6px);transition:all .1s ease-in-out;opacity:1!important}.color-picker__advanced[data-v-3d24879b]{box-shadow:none!important}.color-picker__navigation[data-v-3d24879b]{display:flex;flex-direction:row;gap:var(--default-grid-baseline);justify-content:space-between;margin-top:calc(2 * var(--default-grid-baseline))}[data-v-3d24879b] .vc-chrome{width:unset;background-color:var(--color-main-background)}[data-v-3d24879b] .vc-chrome-color-wrap{width:30px;height:30px}[data-v-3d24879b] .vc-chrome-active-color{border-radius:17px}[data-v-3d24879b] .vc-chrome-body{padding:14px 0 0;background-color:var(--color-main-background)}[data-v-3d24879b] .vc-chrome-body .vc-input__input{--input-border-radius: var(--border-radius-element);--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));width:100%;height:var(--default-clickable-area);margin:0;padding-inline:calc(var(--border-radius-element) + var(--input-border-width-offset));padding-block:var(--input-border-width-offset);border:var(--border-width-input, 2px) solid var(--color-border-maxcontrast);border-radius:var(--input-border-radius);font-size:var(--default-font-size);color:var(--color-main-text);box-shadow:none}[data-v-3d24879b] .vc-chrome-body .vc-input__input:active:not([disabled]),[data-v-3d24879b] .vc-chrome-body .vc-input__input:hover:not([disabled]),[data-v-3d24879b] .vc-chrome-body .vc-input__input:focus:not([disabled]){--input-border-width-offset: 0px;border-color:var(--color-main-text);border-width:var(--border-width-input-focused, 2px);box-shadow:0 0 0 2px var(--color-main-background)!important}[data-v-3d24879b] .vc-chrome-body .vc-input__input:active:not([disabled])+.vc-input__label,[data-v-3d24879b] .vc-chrome-body .vc-input__input:hover:not([disabled])+.vc-input__label,[data-v-3d24879b] .vc-chrome-body .vc-input__input:focus:not([disabled])+.vc-input__label{color:var(--color-main-text)}[data-v-3d24879b] .vc-chrome-body .vc-input__label{position:absolute;inset-inline:var(--border-width-input-focused, 2px);inset-block-start:calc(-1.5 * var(--font-size-small, 13px) / 2);max-width:fit-content;margin-inline:calc(var(--border-radius-element) - var(--default-grid-baseline));margin-block:0;padding-inline:var(--default-grid-baseline);font-family:var(--font-face);font-size:var(--font-size-small, 13px);line-height:1.5;font-weight:500;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);pointer-events:none}[data-v-3d24879b] .vc-chrome-toggle-btn{display:flex;justify-content:center;align-items:center;width:var(--default-clickable-area);height:var(--default-clickable-area);margin-inline-start:6px;filter:var(--background-invert-if-dark)}[data-v-3d24879b] .vc-chrome-toggle-icon{width:24px;height:24px;margin:0}[data-v-3d24879b] .vc-chrome-toggle-icon-highlight{width:var(--default-clickable-area);height:var(--default-clickable-area);inset:0}[data-v-3d24879b] .vc-chrome-saturation-wrap{border-radius:3px}[data-v-3d24879b] .vc-chrome-saturation-circle{width:20px;height:20px}.slide-enter-from[data-v-3d24879b]{transform:translate(-50%);opacity:0}.slide-enter-to[data-v-3d24879b],.slide-leave-from[data-v-3d24879b]{transform:translate(0);opacity:1}.slide-leave-to[data-v-3d24879b]{transform:translate(-50%);opacity:0}.slide-enter-active[data-v-3d24879b],.slide-leave-active[data-v-3d24879b]{transition:all 50ms ease-in-out}#skip-actions.vue-skip-actions:focus-within{top:0!important;inset-inline-start:0!important;width:100vw;height:100vh;padding:var(--body-container-margin)!important;-webkit-backdrop-filter:brightness(50%);backdrop-filter:brightness(50%)}.material-design-icon[data-v-d9b0d7e8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-skip-actions__container[data-v-d9b0d7e8]{background-color:var(--color-main-background);border-radius:var(--border-radius-element);padding:22px}.vue-skip-actions__headline[data-v-d9b0d7e8]{font-weight:700;font-size:20px;line-height:30px;margin-bottom:12px}.vue-skip-actions__buttons[data-v-d9b0d7e8]{display:flex;flex-wrap:wrap;gap:12px}.vue-skip-actions__buttons[data-v-d9b0d7e8]>*{flex:1 0 fit-content}.vue-skip-actions__image[data-v-d9b0d7e8]{margin-top:12px}.vue-skip-actions__image[data-v-d9b0d7e8]:dir(rtl){transform:rotateY(180deg)}.content[data-v-d9b0d7e8]{display:flex;width:calc(100% - var(--body-container-margin) * 2);border-radius:var(--body-container-radius);height:var(--body-height);overflow:hidden;padding:0}.content[data-v-d9b0d7e8]:not(.with-sidebar--full){position:fixed}.content[data-v-d9b0d7e8],.content[data-v-d9b0d7e8] *{box-sizing:border-box}.material-design-icon[data-v-36ffc13f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.counter-bubble__counter[data-v-36ffc13f]{--counter-bubble-height: 22px;font-size:var(--font-size-small, 13px);overflow:hidden;width:fit-content;min-width:var(--counter-bubble-height);text-align:center;line-height:var(--counter-bubble-height);padding:0 calc(1.5 * var(--default-grid-baseline));border-radius:.5lh;background-color:var(--color-primary-element-light);font-weight:700;color:var(--color-primary-element-light-text)}.counter-bubble__counter .active[data-v-36ffc13f]{color:var(--color-main-background);background-color:var(--color-primary-element-light)}.counter-bubble__counter--highlighted[data-v-36ffc13f]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.counter-bubble__counter--highlighted.active[data-v-36ffc13f]{color:var(--color-primary-element);background-color:var(--color-main-background)}.counter-bubble__counter--outlined[data-v-36ffc13f]{color:var(--color-primary-element);background:transparent;box-shadow:inset 0 0 0 2px}.counter-bubble__counter--outlined.active[data-v-36ffc13f]{color:var(--color-main-background);box-shadow:inset 0 0 0 2px}.material-design-icon[data-v-6b5fc397]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dashboard-widget[data-v-6b5fc397] .empty-content{text-align:center;padding-top:5vh}.dashboard-widget[data-v-6b5fc397] .empty-content.half-screen{padding-top:0;margin-bottom:1vh}.more[data-v-6b5fc397]{display:block;text-align:center;color:var(--color-text-maxcontrast);line-height:60px;cursor:pointer}.more[data-v-6b5fc397]:hover,.more[data-v-6b5fc397]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-element);color:var(--color-main-text)}.item-list__entry[data-v-6b5fc397]{display:flex;align-items:flex-start;padding:8px}.item-list__entry .item-avatar[data-v-6b5fc397]{position:relative;margin-block:auto;background-color:var(--color-background-dark)!important}.item-list__entry .item__details[data-v-6b5fc397]{padding-inline-start:8px;max-height:var(--default-clickable-area);flex-grow:1;overflow:hidden;display:flex;flex-direction:column}.item-list__entry .item__details h3[data-v-6b5fc397],.item-list__entry .item__details .message[data-v-6b5fc397]{white-space:nowrap;background-color:var(--color-background-dark)}.item-list__entry .item__details h3[data-v-6b5fc397]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-6b5fc397]{width:80%;height:15px;margin-top:5px}.material-design-icon[data-v-c033ba26]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.item-list__entry[data-v-c033ba26]{display:flex;align-items:center;position:relative;padding:8px}.item-list__entry[data-v-c033ba26]:hover,.item-list__entry[data-v-c033ba26]:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-element)}.item-list__entry .item-avatar[data-v-c033ba26]{position:relative;margin-top:auto;margin-bottom:auto}.item-list__entry .item__details[data-v-c033ba26]{padding-inline-start:8px;max-height:fit-content;flex-grow:1;overflow:hidden;display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area)}.item-list__entry .item__details h3[data-v-c033ba26],.item-list__entry .item__details .message[data-v-c033ba26]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-list__entry .item__details .message span[data-v-c033ba26]{width:10px;display:inline-block;margin-bottom:-3px}.item-list__entry .item__details h3[data-v-c033ba26]{font-size:100%;margin:0}.item-list__entry .item__details .message[data-v-c033ba26]{width:100%;color:var(--color-text-maxcontrast)}.item-list__entry .item-icon[data-v-c033ba26]{position:relative;width:14px;height:14px;margin-top:25px;margin-inline:-10px -2px}.item-list__entry button.primary[data-v-c033ba26]{padding:21px;margin:0}.material-design-icon[data-v-02e90461]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-date-time-picker__wrapper[data-v-02e90461]{--dp-common-transition: all var(--animation-quick) ease-in;--dp-menu-padding: 6px 8px;--dp-animation-duration: var(--animation-quick);--dp-menu-appear-transition-timing: cubic-bezier(.4, 0, 1, 1);--dp-transition-timing: ease-out;--dp-action-row-transtion: all .2s ease-in;--dp-font-family: var(--font-face);--dp-border-radius: var(--border-radius-element);--dp-cell-border-radius: var(--border-radius-small);--dp-transition-length: 22px;--dp-transition-timing-general: var(--animation-quick);--dp-button-height: var(--default-clickable-area);--dp-month-year-row-height: var(--default-clickable-area);--dp-month-year-row-button-size: var(--clickable-area-small);--dp-button-icon-height: 20px;--dp-calendar-wrap-padding: 0 5px;--dp-cell-size: var(--default-clickable-area);--dp-cell-padding: 5px;--dp-common-padding: 10px;--dp-input-icon-padding: var(--default-clickable-area);--dp-input-padding: 6px 12px;--dp-menu-min-width: 260px;--dp-action-buttons-padding: 1px 6px;--dp-row-margin: 5px 0;--dp-calendar-header-cell-padding: .5rem;--dp-multi-calendars-spacing: 10px;--dp-overlay-col-padding: 3px;--dp-time-inc-dec-button-size: var(--default-clickable-area);--dp-font-size: 1rem;--dp-preview-font-size: var(--font-size-small);--dp-time-font-size: 2rem;--dp-action-button-height: var(--clickable-area-small);--dp-action-row-padding: 8px;--dp-direction: ltr}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_wrap{position:relative;width:100%;box-sizing:unset}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_wrap:focus{border-color:var(--dp-border-color-hover);outline:none}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_valid{box-shadow:0 0 var(--dp-border-radius) var(--dp-success-color);border-color:var(--dp-success-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_valid:hover{border-color:var(--dp-success-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_invalid{box-shadow:0 0 var(--dp-border-radius) var(--dp-danger-color);border-color:var(--dp-danger-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_invalid:hover{border-color:var(--dp-danger-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input{background-color:var(--dp-background-color);border-radius:var(--dp-border-radius);font-family:var(--dp-font-family);border:1px solid var(--dp-border-color);outline:none;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%;font-size:var(--dp-font-size);line-height:calc(var(--dp-font-size) * 1.5);padding:var(--dp-input-padding);color:var(--dp-text-color);box-sizing:border-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input::placeholder{opacity:.7}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input:hover:not(.dp__input_focus){border-color:var(--dp-border-color-hover)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_not_clearable{padding-inline-end:var(--dp-input-not-clearable-padding)!important}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_reg{caret-color:#0000}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_focus{border-color:var(--dp-border-color-focus)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__disabled{background:var(--dp-disabled-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__disabled::placeholder{color:var(--dp-disabled-color-text)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_icons{display:inline-block;width:var(--dp-font-size);height:var(--dp-font-size);stroke-width:0;font-size:var(--dp-font-size);line-height:calc(var(--dp-font-size) * 1.5);padding:6px 12px;color:var(--dp-icon-color);box-sizing:content-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_icon{cursor:pointer;position:absolute;top:50%;inset-inline-start:0;transform:translateY(-50%);color:var(--dp-icon-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--clear-btn{position:absolute;top:50%;inset-inline-end:0;transform:translateY(-50%);cursor:pointer;color:var(--dp-icon-color);background:#0000;border:none;display:inline-flex;align-items:center;padding:0;margin:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__input_icon_pad{padding-inline-start:var(--dp-input-icon-padding)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu{background:var(--dp-background-color);border-radius:var(--dp-border-radius);min-width:var(--dp-menu-min-width);font-family:var(--dp-font-family);font-size:var(--dp-font-size);-webkit-user-select:none;user-select:none;border:1px solid var(--dp-menu-border-color);box-sizing:border-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu:after{box-sizing:border-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu:before{box-sizing:border-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu:focus{border:1px solid var(--dp-menu-border-color);outline:none}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--menu-wrapper{position:absolute;z-index:99999}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu_inner{padding:var(--dp-menu-padding)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--menu--inner-stretched{padding:6px 0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu_index{z-index:99999}.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-loading,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu_readonly,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu_disabled{position:absolute;inset:0;z-index:999999}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu_disabled{background:#ffffff80;cursor:not-allowed}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu_readonly{background:#0000;cursor:default}.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-loading{background:#ffffff80;cursor:default}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--menu-load-container{display:flex;height:100%;width:100%;justify-content:center;align-items:center}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--menu-loader{width:48px;height:48px;border:var(--dp-loader);border-bottom-color:#0000;border-radius:50%;display:inline-block;box-sizing:border-box;animation:dp-load-rotation-02e90461 1s linear infinite;position:absolute}@keyframes dp-load-rotation-02e90461{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__arrow_top{left:var(--dp-arrow-left);top:0;height:12px;width:12px;background-color:var(--dp-background-color);position:absolute;border-inline-end:1px solid var(--dp-menu-border-color);border-top:1px solid var(--dp-menu-border-color);transform:translate(-50%,-50%) rotate(-45deg)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__arrow_bottom{left:var(--dp-arrow-left);bottom:0;height:12px;width:12px;background-color:var(--dp-background-color);position:absolute;border-inline-end:1px solid var(--dp-menu-border-color);border-bottom:1px solid var(--dp-menu-border-color);transform:translate(-50%,50%) rotate(45deg)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_extra{text-align:center;padding:2px 0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-dates{padding:5px;border-inline-end:1px solid var(--dp-border-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-dates[data-dp-mobile],.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-dates-collapsed{display:flex;align-self:center;border:none;overflow-x:auto;max-width:calc(var(--dp-menu-width) - var(--dp-action-row-padding) * 2)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__sidebar_left{padding:5px;border-inline-end:1px solid var(--dp-border-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__sidebar_right{padding:5px;margin-inline-end:1px solid var(--dp-border-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-range{display:block;width:100%;padding:5px;text-align:left;white-space:nowrap;color:var(--dp-text-color);border-radius:var(--dp-border-radius);transition:var(--dp-common-transition)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-range:hover{background-color:var(--dp-hover-color);color:var(--dp-hover-text-color);cursor:pointer}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-range[data-dp-mobile]{border:1px solid var(--dp-border-color);margin:0 3px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-range[data-dp-mobile]:first-child{margin-left:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-range[data-dp-mobile]:last-child{margin-right:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-range-collapsed{border:1px solid var(--dp-border-color);margin:0 3px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-range-collapsed:first-child{margin-left:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--preset-range-collapsed:last-child{margin-right:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu_content_wrapper{display:flex}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__menu_content_wrapper[data-dp-mobile],.vue-date-time-picker__wrapper[data-v-02e90461] .dp--menu-content-wrapper-collapsed{flex-direction:column-reverse}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__calendar_header{position:relative;display:flex;justify-content:center;align-items:center;color:var(--dp-text-color);white-space:nowrap;font-weight:700}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__calendar_header_item{text-align:center;flex-grow:1;height:var(--dp-cell-size);padding:var(--dp-cell-padding);width:var(--dp-cell-size);box-sizing:border-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__calendar_row{display:flex;justify-content:center;align-items:center;margin:var(--dp-row-margin)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__calendar_item{text-align:center;flex-grow:1;box-sizing:border-box;color:var(--dp-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__calendar{position:relative}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__calendar_header_cell{border-bottom:thin solid var(--dp-border-color);padding:var(--dp-calendar-header-cell-padding)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_inner{display:flex;align-items:center;text-align:center;justify-content:center;border-radius:var(--dp-cell-border-radius);height:var(--dp-cell-size);padding:var(--dp-cell-padding);width:var(--dp-cell-size);border:1px solid rgba(0,0,0,0);box-sizing:border-box;position:relative}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_inner:hover{transition:all .2s}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_auto_range_start,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__date_hover_start:hover,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__range_start{border-end-end-radius:0;border-start-end-radius:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_auto_range_end,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__date_hover_end:hover,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__range_end{border-end-start-radius:0;border-start-start-radius:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__range_end,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__range_start,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__active_date{background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__date_hover_end:hover,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__date_hover_start:hover,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__date_hover:hover{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_offset{color:var(--dp-secondary-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_disabled{color:var(--dp-secondary-color);cursor:not-allowed}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__range_between{background:var(--dp-range-between-dates-background-color);color:var(--dp-range-between-dates-text-color);border-radius:0;border:1px solid var(--dp-range-between-border-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__range_between_week{background:var(--dp-primary-color);color:var(--dp-primary-text-color);border-radius:0;border-top:1px solid var(--dp-primary-color);border-bottom:1px solid var(--dp-primary-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__today{border:1px solid var(--dp-primary-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__week_num{color:var(--dp-secondary-color);text-align:center}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_auto_range{border-radius:0;border-top:1px dashed var(--dp-primary-color);border-bottom:1px dashed var(--dp-primary-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_auto_range_start{border-start-start-radius:var(--dp-cell-border-radius);border-end-start-radius:var(--dp-cell-border-radius);border-inline-start:1px dashed var(--dp-primary-color);border-top:1px dashed var(--dp-primary-color);border-bottom:1px dashed var(--dp-primary-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_auto_range_end{border-start-end-radius:var(--dp-cell-border-radius);border-end-end-radius:var(--dp-cell-border-radius);border-top:1px dashed var(--dp-primary-color);border-bottom:1px dashed var(--dp-primary-color);border-inline-end:1px dashed var(--dp-primary-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__calendar_header_separator{width:100%;height:1px;background:var(--dp-border-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__calendar_next{margin-inline-start:var(--dp-multi-calendars-spacing)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__marker_line,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__marker_dot{height:5px;background-color:var(--dp-marker-color);position:absolute;bottom:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__marker_dot{width:5px;border-radius:50%;left:50%;transform:translate(-50%)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__marker_line{width:100%;left:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__marker_tooltip{position:absolute;border-radius:var(--dp-border-radius);background-color:var(--dp-tooltip-color);padding:5px;border:1px solid var(--dp-border-color);z-index:99999;box-sizing:border-box;cursor:default}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__tooltip_content{white-space:nowrap}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__tooltip_text{display:flex;align-items:center;flex-flow:row nowrap;color:var(--dp-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__tooltip_mark{height:5px;width:5px;border-radius:50%;background-color:var(--dp-text-color);color:var(--dp-text-color);margin-inline-end:5px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__arrow_bottom_tp{bottom:0;height:8px;width:8px;background-color:var(--dp-tooltip-color);position:absolute;border-inline-end:1px solid var(--dp-border-color);border-bottom:1px solid var(--dp-border-color);transform:translate(-50%,50%) rotate(45deg)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__instance_calendar{position:relative;width:100%}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__flex_display[data-dp-mobile],.vue-date-time-picker__wrapper[data-v-02e90461] .dp--flex-display-collapsed{flex-direction:column}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_highlight{background-color:var(--dp-highlight-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__month_year_row{display:flex;align-items:center;height:var(--dp-month-year-row-height);color:var(--dp-text-color);box-sizing:border-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inner_nav{display:flex;align-items:center;justify-content:center;cursor:pointer;height:var(--dp-month-year-row-button-size);width:var(--dp-month-year-row-button-size);color:var(--dp-icon-color);text-align:center;border-radius:50%}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inner_nav svg{height:var(--dp-button-icon-height);width:var(--dp-button-icon-height)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inner_nav:hover{background:var(--dp-hover-color);color:var(--dp-hover-icon-color)}.vue-date-time-picker__wrapper[data-v-02e90461] [dir=rtl] .dp__inner_nav{transform:rotate(180deg)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inner_nav_disabled:hover,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inner_nav_disabled{background:var(--dp-disabled-color);color:var(--dp-disabled-color-text);cursor:not-allowed}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--year-select,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__month_year_select{text-align:center;cursor:pointer;height:var(--dp-month-year-row-height);display:flex;align-items:center;justify-content:center;border-radius:var(--dp-border-radius);box-sizing:border-box;color:var(--dp-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--year-select:hover,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__month_year_select:hover{background:var(--dp-hover-color);color:var(--dp-hover-text-color);transition:var(--dp-common-transition)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__month_year_select{width:50%}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--year-select{width:100%}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__month_year_wrap{display:flex;flex-direction:row;width:100%}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__year_disable_select{justify-content:space-around}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--header-wrap{display:flex;width:100%;flex-direction:column}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay{width:100%;background:var(--dp-background-color);transition:opacity 1s ease-out;z-index:99999;font-family:var(--dp-font-family);color:var(--dp-text-color);box-sizing:border-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--overlay-absolute{position:absolute;height:100%;top:0;left:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--overlay-relative{position:relative}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_container::-webkit-scrollbar-track{box-shadow:var(--dp-scroll-bar-background);background-color:var(--dp-scroll-bar-background)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_container::-webkit-scrollbar{width:5px;background-color:var(--dp-scroll-bar-background)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_container::-webkit-scrollbar-thumb{background-color:var(--dp-scroll-bar-color);border-radius:10px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay:focus{border:none;outline:none}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__container_flex{display:flex}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__container_block{display:block}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_container{flex-direction:column;overflow-y:auto;height:var(--dp-overlay-height)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_picker_overlay_container{height:100%}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_row{padding:0;box-sizing:border-box;display:flex;margin-inline:auto;flex-wrap:wrap;max-width:100%;width:100%;align-items:center}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__flex_row{flex:1}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_col{box-sizing:border-box;width:33%;padding:var(--dp-overlay-col-padding);white-space:nowrap}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_cell_pad{padding:var(--dp-common-padding) 0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_cell_active{cursor:pointer;border-radius:var(--dp-border-radius);text-align:center;background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_cell{cursor:pointer;border-radius:var(--dp-border-radius);text-align:center}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_cell:hover{background:var(--dp-hover-color);color:var(--dp-hover-text-color);transition:var(--dp-common-transition)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__cell_in_between{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__over_action_scroll{right:5px;box-sizing:border-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_cell_disabled{cursor:not-allowed;background:var(--dp-disabled-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_cell_disabled:hover{background:var(--dp-disabled-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_cell_active_disabled{cursor:not-allowed;background:var(--dp-primary-disabled-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay_cell_active_disabled:hover{background:var(--dp-primary-disabled-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__btn,.vue-date-time-picker__wrapper[data-v-02e90461] .dp--qr-btn,.vue-date-time-picker__wrapper[data-v-02e90461] .dp--time-overlay-btn,.vue-date-time-picker__wrapper[data-v-02e90461] .dp--time-invalid{border:none;font:inherit;transition:var(--dp-common-transition);line-height:normal}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--year-mode-picker{display:flex;width:100%;align-items:center;justify-content:space-between;height:var(--dp-cell-size)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--tp-wrap{max-width:var(--dp-menu-min-width)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--tp-wrap[data-dp-mobile]{max-width:100%}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_input{width:100%;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;font-family:var(--dp-font-family);color:var(--dp-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col_reg_block{padding:0 20px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col_reg_inline{padding:0 10px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col_reg_with_button{padding:0 15px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col_reg_with_button[data-compact~=true]{padding:0 5px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col_sec{padding:0 10px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col_sec_with_button{padding:0 5px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col_sec_with_button[data-collapsed~=true]{padding:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col{text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col_block{font-size:var(--dp-time-font-size)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_display_block{padding:0 3px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_display_inline{padding:5px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_picker_inline_container{display:flex;width:100%;justify-content:center}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inc_dec_button{padding:5px;margin:0;height:var(--dp-time-inc-dec-button-size);width:var(--dp-time-inc-dec-button-size);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;color:var(--dp-icon-color);box-sizing:border-box}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inc_dec_button svg{height:var(--dp-time-inc-dec-button-size);width:var(--dp-time-inc-dec-button-size)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inc_dec_button:hover{background:var(--dp-hover-color);color:var(--dp-hover-icon-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_display{cursor:pointer;color:var(--dp-text-color);border-radius:var(--dp-border-radius);display:flex;align-items:center;justify-content:center}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_display:hover:enabled{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inc_dec_button_inline{width:100%;padding:0;height:8px;cursor:pointer;display:flex;align-items:center}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inc_dec_button_disabled,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inc_dec_button_disabled:hover{background:var(--dp-disabled-color);color:var(--dp-disabled-color-text);cursor:not-allowed}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__pm_am_button{background:var(--dp-primary-color);color:var(--dp-primary-text-color);border:none;padding:var(--dp-common-padding);border-radius:var(--dp-border-radius);cursor:pointer}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__pm_am_button[data-compact~=true]{padding:7px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__tp_inline_btn_bar{width:100%;height:4px;background-color:var(--dp-secondary-color);transition:var(--dp-common-transition);border-collapse:collapse}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__tp_inline_btn_top:hover .dp__tp_btn_in_r{background-color:var(--dp-primary-color);transform:rotate(12deg) scale(1.15) translateY(-2px)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__tp_inline_btn_top:hover .dp__tp_btn_in_l,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__tp_inline_btn_bottom:hover .dp__tp_btn_in_r{background-color:var(--dp-primary-color);transform:rotate(-12deg) scale(1.15) translateY(-2px)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__tp_inline_btn_bottom:hover .dp__tp_btn_in_l{background-color:var(--dp-primary-color);transform:rotate(12deg) scale(1.15) translateY(-2px)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--time-overlay-btn{background:none}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--time-invalid{background-color:var(--dp-disabled-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_row{display:flex;align-items:center;width:100%;padding:var(--dp-action-row-padding);box-sizing:border-box;color:var(--dp-text-color);flex-flow:row nowrap}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_row svg{height:var(--dp-button-icon-height);width:auto}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__selection_preview{display:block;color:var(--dp-text-color);font-size:var(--dp-preview-font-size);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_buttons{display:flex;flex:0;white-space:nowrap;align-items:center;justify-content:flex-end;margin-inline-start:auto}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_button{display:inline-flex;align-items:center;background:#0000;border:1px solid rgba(0,0,0,0);padding:var(--dp-action-buttons-padding);line-height:var(--dp-action-button-height);margin-inline-start:3px;height:var(--dp-action-button-height);cursor:pointer;border-radius:var(--dp-border-radius);font-size:var(--dp-preview-font-size);font-family:var(--dp-font-family)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_cancel{color:var(--dp-text-color);border:1px solid var(--dp-border-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_cancel:hover{border-color:var(--dp-primary-color);transition:var(--dp-action-row-transition)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_buttons .dp__action_select{background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_buttons .dp__action_select:hover{background:var(--dp-primary-color);transition:var(--dp-action-row-transition)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_buttons .dp__action_select:disabled{background:var(--dp-primary-disabled-color);cursor:not-allowed}.vue-date-time-picker__wrapper[data-v-02e90461] .dp-quarter-picker-wrap{display:flex;flex-direction:column;height:100%;min-width:var(--dp-menu-min-width)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--qr-btn-disabled{cursor:not-allowed;background:var(--dp-disabled-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--qr-btn-disabled:hover{background:var(--dp-disabled-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--qr-btn{width:100%;padding:var(--dp-common-padding)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--qr-btn:not(.dp--highlighted,.dp--qr-btn-active,.dp--qr-btn-disabled,.dp--qr-btn-between){background:none}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--qr-btn:hover:not(.dp--qr-btn-active,.dp--qr-btn-disabled){background:var(--dp-hover-color);color:var(--dp-hover-text-color);transition:var(--dp-common-transition)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--quarter-items{display:flex;flex-direction:column;flex:1;width:100%;height:100%;justify-content:space-evenly}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--qr-btn-active{background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--qr-btn-between{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.vue-date-time-picker__wrapper[data-v-02e90461] :root{--dp-common-transition: all .1s ease-in;--dp-menu-padding: 6px 8px;--dp-animation-duration: .1s;--dp-menu-appear-transition-timing: cubic-bezier(.4, 0, 1, 1);--dp-transition-timing: ease-out;--dp-action-row-transition: all .2s ease-in;--dp-font-family: -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Open Sans", "Helvetica Neue", sans-serif;--dp-border-radius: 4px;--dp-cell-border-radius: 4px;--dp-transition-length: 22px;--dp-transition-timing-general: .1s;--dp-button-height: 35px;--dp-month-year-row-height: 35px;--dp-month-year-row-button-size: 25px;--dp-button-icon-height: 20px;--dp-calendar-wrap-padding: 0 5px;--dp-cell-size: 35px;--dp-cell-padding: 5px;--dp-common-padding: 10px;--dp-input-icon-padding: 35px;--dp-input-padding: 6px 30px 6px 12px;--dp-input-not-clearable-padding: 12px;--dp-menu-min-width: 260px;--dp-action-buttons-padding: 1px 6px;--dp-row-margin: 5px 0;--dp-calendar-header-cell-padding: .5rem;--dp-multi-calendars-spacing: 10px;--dp-overlay-col-padding: 3px;--dp-time-inc-dec-button-size: 32px;--dp-font-size: 1rem;--dp-preview-font-size: .8rem;--dp-time-font-size: 2rem;--dp-action-button-height: 22px;--dp-action-row-padding: 8px;--dp-direction: ltr}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__theme_dark{--dp-background-color: #212121;--dp-text-color: #fff;--dp-hover-color: #484848;--dp-hover-text-color: #fff;--dp-hover-icon-color: #959595;--dp-primary-color: #005cb2;--dp-primary-disabled-color: #61a8ea;--dp-primary-text-color: #fff;--dp-secondary-color: #a9a9a9;--dp-border-color: #2d2d2d;--dp-menu-border-color: #2d2d2d;--dp-border-color-hover: #aaaeb7;--dp-border-color-focus: #aaaeb7;--dp-disabled-color: #737373;--dp-disabled-color-text: #d0d0d0;--dp-scroll-bar-background: #212121;--dp-scroll-bar-color: #484848;--dp-success-color: #00701a;--dp-success-color-disabled: #428f59;--dp-icon-color: #959595;--dp-danger-color: #e53935;--dp-marker-color: #e53935;--dp-tooltip-color: #3e3e3e;--dp-highlight-color: rgb(0 92 178 / 20%);--dp-range-between-dates-background-color: var(--dp-hover-color, #484848);--dp-range-between-dates-text-color: var(--dp-hover-text-color, #fff);--dp-range-between-border-color: var(--dp-hover-color, #fff);--dp-loader: 5px solid #005cb2}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__theme_light{--dp-background-color: #fff;--dp-text-color: #212121;--dp-hover-color: #f3f3f3;--dp-hover-text-color: #212121;--dp-hover-icon-color: #959595;--dp-primary-color: #1976d2;--dp-primary-disabled-color: #6bacea;--dp-primary-text-color: #fff;--dp-secondary-color: #c0c4cc;--dp-border-color: #ddd;--dp-menu-border-color: #ddd;--dp-border-color-hover: #aaaeb7;--dp-border-color-focus: #aaaeb7;--dp-disabled-color: #f6f6f6;--dp-scroll-bar-background: #f3f3f3;--dp-scroll-bar-color: #959595;--dp-success-color: #76d275;--dp-success-color-disabled: #a3d9b1;--dp-icon-color: #959595;--dp-danger-color: #ff6f60;--dp-marker-color: #ff6f60;--dp-tooltip-color: #fafafa;--dp-disabled-color-text: #8e8e8e;--dp-highlight-color: rgb(25 118 210 / 10%);--dp-range-between-dates-background-color: var(--dp-hover-color, #f3f3f3);--dp-range-between-dates-text-color: var(--dp-hover-text-color, #212121);--dp-range-between-border-color: var(--dp-hover-color, #f3f3f3);--dp-loader: 5px solid #1976d2}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__flex{display:flex;align-items:center}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__btn{background:none}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__main{font-family:var(--dp-font-family);-webkit-user-select:none;user-select:none;box-sizing:border-box;position:relative;width:100%}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__main *{direction:var(--dp-direction, ltr)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__pointer{cursor:pointer}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__icon{stroke:currentcolor;fill:currentcolor}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__button{width:100%;text-align:center;color:var(--dp-icon-color);cursor:pointer;display:flex;align-items:center;place-content:center center;padding:var(--dp-common-padding);box-sizing:border-box;height:var(--dp-button-height)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__button.dp__overlay_action{position:absolute;bottom:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__button:hover{background:var(--dp-hover-color);color:var(--dp-hover-icon-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__button svg{height:var(--dp-button-icon-height);width:auto}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__button_bottom{border-bottom-left-radius:var(--dp-border-radius);border-bottom-right-radius:var(--dp-border-radius)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__flex_display{display:flex}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__flex_display_with_input{flex-direction:column;align-items:flex-start}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__relative{position:relative}.vue-date-time-picker__wrapper[data-v-02e90461] .calendar-next-enter-active,.vue-date-time-picker__wrapper[data-v-02e90461] .calendar-next-leave-active,.vue-date-time-picker__wrapper[data-v-02e90461] .calendar-prev-enter-active,.vue-date-time-picker__wrapper[data-v-02e90461] .calendar-prev-leave-active{transition:all var(--dp-transition-timing-general) ease-out}.vue-date-time-picker__wrapper[data-v-02e90461] .calendar-next-enter-from{opacity:0;transform:translate(var(--dp-transition-length))}.vue-date-time-picker__wrapper[data-v-02e90461] .calendar-next-leave-to,.vue-date-time-picker__wrapper[data-v-02e90461] .calendar-prev-enter-from{opacity:0;transform:translate(calc(var(--dp-transition-length) * -1))}.vue-date-time-picker__wrapper[data-v-02e90461] .calendar-prev-leave-to{opacity:0;transform:translate(var(--dp-transition-length))}.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-appear-bottom-enter-active,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-appear-bottom-leave-active,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-appear-top-enter-active,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-appear-top-leave-active,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-slide-up-enter-active,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-slide-up-leave-active,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-slide-down-enter-active,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-slide-down-leave-active{transition:all var(--dp-animation-duration) var(--dp-transition-timing)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-appear-top-enter-from,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-appear-top-leave-to,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-slide-down-leave-to,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-slide-up-enter-from{opacity:0;transform:translateY(var(--dp-transition-length))}.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-appear-bottom-enter-from,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-menu-appear-bottom-leave-to,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-slide-down-enter-from,.vue-date-time-picker__wrapper[data-v-02e90461] .dp-slide-up-leave-to{opacity:0;transform:translateY(calc(var(--dp-transition-length) * -1))}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--arrow-btn-nav{transition:var(--dp-common-transition)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--highlighted{background-color:var(--dp-highlight-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--hidden-el{visibility:hidden}.vue-date-time-picker__wrapper .vue-date-time-picker--clearable[data-v-02e90461] .dp__input{padding-inline-end:var(--default-clickable-area)}.vue-date-time-picker__wrapper .vue-date-time-picker__timezone[data-v-02e90461]{min-width:unset;width:100%}.vue-date-time-picker__wrapper[data-v-02e90461] .icon-vue{opacity:1!important}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--tp-wrap,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__action_extra{padding:var(--dp-menu-padding);padding-top:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay.dp--overlay-absolute{padding:var(--dp-menu-padding)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__overlay.dp--overlay-absolute .dp__btn.dp__button.dp__button_bottom{inset-block-end:6px}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__btn.dp__button.dp__button_bottom,.vue-date-time-picker__wrapper[data-v-02e90461] .dp--tp-wrap .dp__button{width:100%}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__btn.dp__button.dp__overlay_action{width:calc(100% - 16px)}.vue-date-time-picker__wrapper[data-v-02e90461] input{padding-inline-start:var(--dp-input-icon-padding)!important}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__btn{margin:0}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__inner_nav{height:fit-content;width:fit-content}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__btn.dp__button.dp__button_bottom{color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--header-wrap .dp__btn:not(.dp__button_bottom),.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col .dp__btn{background-color:var(--color-main-background)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--header-wrap .dp__btn:not(.dp__button_bottom):hover,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_col .dp__btn:hover{background:var(--dp-hover-color);color:var(--dp-hover-icon-color)}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__month_year_select{flex:1}.vue-date-time-picker__wrapper[data-v-02e90461] .dp--time-overlay-btn{font-size:calc(2 * var(--default-font-size))!important}.vue-date-time-picker__wrapper[data-v-02e90461] .dp__time_input .dp__time_col_reg_block{padding:0 calc(4 * var(--default-grid-baseline))}.vue-date-time-picker__wrapper .vue-date-time-picker.dp__theme_dark[data-v-02e90461],.vue-date-time-picker__wrapper .vue-date-time-picker.dp__theme_light[data-v-02e90461],.vue-date-time-picker__wrapper[data-v-02e90461] .dp__theme_dark,.vue-date-time-picker__wrapper[data-v-02e90461] .dp__theme_light{--dp-background-color: var(--color-main-background);--dp-text-color: var(--color-main-text);--dp-hover-color: var(--color-primary-element-light-hover);--dp-hover-text-color: var(--color-primary-element-light-text);--dp-hover-icon-color: var(--color-primary-element-light-text);--dp-primary-color: var(--color-primary-element);--dp-primary-disabled-color: var(--color-primary-element-hover);--dp-primary-text-color: var(--color-primary-element-text);--dp-secondary-color: var(--color-text-maxcontrast);--dp-border-color: var(--color-border);--dp-menu-border-color: var(--color-border-dark);--dp-border-color-hover: var(--color-border-maxcontrast);--dp-border-color-focus: var(--color-border-maxcontrast);--dp-disabled-color: var(--color-background-dark);--dp-disabled-color-text: var(--color-text-maxcontrast);--dp-scroll-bar-background: var(--color-scrollbar);--dp-scroll-bar-color: var(--color-scrollbar);--dp-success-color: var(--color-success);--dp-success-color-disabled: var(--color-success-hover);--dp-icon-color: var(--color-main-text);--dp-danger-color: var(--color-error);--dp-marker-color: var(--color-text-error, var(--color-error));--dp-tooltip-color: var(--color-main-text);--dp-highlight-color: var(--color-main-text)}.material-design-icon[data-v-f2f99131]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart *{box-sizing:border-box;line-height:1.15}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart{font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;font-size:16px;display:flex;flex-direction:column;height:420px;color:#222427;border:1px solid #d9d9d9;border-radius:5px;background:#fff}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-emoji{padding:6px;position:relative;display:inline-block;font-size:0;border:none;background:none;box-shadow:none}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-emoji span{display:inline-block}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-emoji .emoji-mart-emoji span{width:38px;height:38px;font-size:32px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-type-native{font-family:"Segoe UI Emoji",Segoe UI Symbol,Segoe UI,"Apple Color Emoji",Twemoji Mozilla,"Noto Color Emoji",EmojiOne Color,"Android Emoji";word-break:keep-all}.nc-emoji-picker-container[data-v-f2f99131] .emoji-type-image{background-size:6100%}.nc-emoji-picker-container[data-v-f2f99131] .emoji-type-image.emoji-set-apple{background-image:url(https://unpkg.com/emoji-datasource-apple@15.0.1/img/apple/sheets-256/64.png)}.nc-emoji-picker-container[data-v-f2f99131] .emoji-type-image.emoji-set-facebook{background-image:url(https://unpkg.com/emoji-datasource-facebook@15.0.1/img/facebook/sheets-256/64.png)}.nc-emoji-picker-container[data-v-f2f99131] .emoji-type-image.emoji-set-google{background-image:url(https://unpkg.com/emoji-datasource-google@15.0.1/img/google/sheets-256/64.png)}.nc-emoji-picker-container[data-v-f2f99131] .emoji-type-image.emoji-set-twitter{background-image:url(https://unpkg.com/emoji-datasource-twitter@15.0.1/img/twitter/sheets-256/64.png)}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-bar{border:0 solid #d9d9d9}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-scroll{position:relative;overflow-y:scroll;flex:1;padding:0 6px 6px;z-index:0;will-change:transform;-webkit-overflow-scrolling:touch}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-anchors{display:flex;flex-direction:row;justify-content:space-between;padding:0 6px;color:#858585;line-height:0}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-anchor{position:relative;display:block;flex:1 1 auto;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;border:none;background:none;box-shadow:none}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-anchor:hover,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-anchor-selected{color:#464646}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#464646}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-anchors svg{fill:currentColor;max-height:18px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .scroller{height:250px;position:relative;flex:1;padding:0 6px 6px;z-index:0;will-change:transform;-webkit-overflow-scrolling:touch}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-search{margin-top:6px;padding:0 6px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-search input{font-size:16px;display:block;width:100%;padding:.2em .6em;border-radius:25px;border:1px solid #d9d9d9;outline:0}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-search-results{height:250px;overflow-y:scroll}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-category{position:relative}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center;cursor:default}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-category .emoji-mart-emoji:hover:before,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-emoji-selected:before{z-index:0;content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#f4f4f4;border-radius:100%;opacity:0}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-category .emoji-mart-emoji:hover:before,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-emoji-selected:before{opacity:1}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-category-label{position:sticky;top:0}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-static .emoji-mart-category-label{z-index:2;position:relative}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-category-label h3{display:block;font-size:16px;width:100%;font-weight:500;padding:5px 6px;background-color:#fff;background-color:#fffffff2}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#858585}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-no-results .emoji-mart-category-label{display:none}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-no-results .emoji-mart-emoji:hover:before{content:none}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview{position:relative;height:70px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-emoji,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-data,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-skins{position:absolute;top:50%;transform:translateY(-50%)}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-emoji{left:12px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-data{left:68px;right:12px;word-break:break-all}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-skins{right:30px;text-align:right}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-name{font-size:14px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-shortname{font-size:12px;color:#888}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-shortname+.emoji-mart-preview-shortname,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-shortname+.emoji-mart-preview-emoticon,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-emoticon+.emoji-mart-preview-emoticon{margin-left:.5em}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-preview-emoticon{font-size:11px;color:#bbb}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-title span{display:inline-block;vertical-align:middle}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-title .emoji-mart-emoji{padding:0}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-title-label{color:#999a9c;font-size:21px;font-weight:300}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatches{font-size:0;padding:2px 0;border:1px solid #d9d9d9;border-radius:12px;background-color:#fff}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch{width:16px;padding:0 2px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after{opacity:.75}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatch{display:inline-block;width:0;vertical-align:middle;transition-property:width,padding;transition-duration:.125s;transition-timing-function:ease-out}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatch:nth-child(1){transition-delay:0s}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatch:nth-child(2){transition-delay:.03s}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatch:nth-child(3){transition-delay:.06s}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatch:nth-child(4){transition-delay:.09s}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatch:nth-child(5){transition-delay:.12s}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatch:nth-child(6){transition-delay:.15s}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatch-selected{position:relative;width:16px;padding:0 2px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-swatch-selected:after{content:"";position:absolute;top:50%;left:50%;width:4px;height:4px;margin:-2px 0 0 -2px;background-color:#fff;border-radius:100%;pointer-events:none;opacity:0;transition:opacity .2s ease-out}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin{display:inline-block;width:100%;padding-top:100%;max-width:12px;border-radius:100%}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-tone-1{background-color:#ffc93a}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-tone-2{background-color:#fadcbc}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-tone-3{background-color:#e0bb95}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-tone-4{background-color:#bf8f68}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-tone-5{background-color:#9b643d}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-skin-tone-6{background-color:#594539}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller{position:relative}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller.direction-horizontal{display:flex}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller__slot{flex:auto 0 0}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller__item-wrapper{flex:1;box-sizing:border-box;overflow:hidden;position:relative}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart-search .hidden{display:none;visibility:hidden}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart{background-color:var(--color-main-background)!important;border:0;color:var(--color-main-text)!important;display:flex!important}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart button{border:none;background:transparent;font-size:inherit}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-bar,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-anchors,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-search,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-search input,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-category,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-category-label,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-category-label span,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-skin-swatches{background-color:transparent!important;border-color:var(--color-border)!important;color:inherit!important}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-anchors{padding-block:0;padding-inline:calc(2 * var(--default-grid-baseline))}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-anchor{border-radius:0;margin:0!important;padding:0!important;height:var(--clickable-area-small);min-width:var(--clickable-area-small)}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-anchor:hover{background-color:var(--color-background-hover)}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-anchor:focus-visible{outline:2px solid var(--color-primary-element)!important;outline-offset:-2px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-anchor div{display:grid;place-content:center}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-scroll{padding-inline:calc(2 * var(--default-grid-baseline));padding-block:0 calc(2 * var(--default-grid-baseline))}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-category{display:grid;grid-template-columns:repeat(8,1fr);justify-items:stretch}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-category.emoji-mart-no-results{grid-template-columns:1fr;font-size:inherit;color:var(--color-text-maxcontrast)!important}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart div.emoji-mart-category-label{grid-column:span 8;justify-self:stretch}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart h3.emoji-mart-category-label{display:flex;align-items:center;height:var(--default-clickable-area);margin:0;padding-inline:calc(2 * var(--default-grid-baseline));padding-block:0;-webkit-user-select:none;user-select:none}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-emoji{aspect-ratio:1/1;text-align:center;margin:0!important;padding:0!important}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-emoji:hover,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-emoji:focus-visible,.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-emoji.emoji-mart-emoji-selected{background-color:var(--color-background-hover)!important;border:none;border-radius:var(--border-radius-element);box-shadow:none!important;outline:2px solid var(--color-primary-element)!important;outline-offset:-2px}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-emoji:before{display:none}.nc-emoji-picker-container[data-v-f2f99131] .emoji-mart .emoji-mart-emoji span{cursor:pointer}.search__wrapper[data-v-f2f99131]{display:flex;flex-direction:row;gap:var(--default-grid-baseline);align-items:end;padding-block:var(--default-grid-baseline);padding-inline:calc(2 * var(--default-grid-baseline))}.row-selected button[data-v-f2f99131],.row-selected span[data-v-f2f99131]{vertical-align:middle}.emoji-delete[data-v-f2f99131]{vertical-align:top;margin-inline-start:-21px;margin-top:-3px}._material-design-icon_1u9di_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_1u9di_20{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_1u9di_20._ncFormBox_row_1u9di_25{flex-direction:row}._ncFormBox__item_1u9di_29{border-radius:var(--border-radius-small)!important}._ncFormBox_col_1u9di_33{flex-direction:column}._ncFormBox_col_1u9di_33 ._ncFormBox__item_1u9di_29:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_1u9di_33 ._ncFormBox__item_1u9di_29:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_1u9di_25{flex-direction:row}._ncFormBox_row_1u9di_25 ._ncFormBox__item_1u9di_29{flex:1 1}._ncFormBox_row_1u9di_25 ._ncFormBox__item_1u9di_29:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_1u9di_25 ._ncFormBox__item_1u9di_29:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_15jyc_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_15jyc_20{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_v5un7_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_v5un7_20{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);transition-property:color,border-color,background-color;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_v5un7_20 *{cursor:inherit}._formBoxItem_v5un7_20:has(:disabled){cursor:default;opacity:.5}._formBoxItem_v5un7_20:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_v5un7_20:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem_v5un7_20._formBoxItem_legacy_v5un7_60{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_v5un7_20._formBoxItem_inverted_v5un7_64 ._formBoxItem__element_v5un7_64{color:var(--color-text-maxcontrast)}._formBoxItem_v5un7_20._formBoxItem_inverted_v5un7_64 ._formBoxItem__description_v5un7_67{color:inherit}._formBoxItem__content_v5un7_71{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_v5un7_64:after{content:"";position:absolute;inset:0}._formBoxItem__description_v5un7_67{color:var(--color-text-maxcontrast)}._formBoxItem__icon_v5un7_89{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_hjv1a_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_hjv1a_20{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._formBoxSwitch__icon_hjv1a_34{color:var(--color-text-maxcontrast)}input:checked+._formBoxSwitch__icon_hjv1a_34{color:var(--color-primary-element)}._material-design-icon_9p8a1_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_9p8a1_20{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_9p8a1_20._formGroup_noGap_9p8a1_24{--form-group-content-gap: 0}._formGroup__label_9p8a1_28{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:700}._formGroup__description_9p8a1_34{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_9p8a1_39{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_9p8a1_39._formGroup__content_only_9p8a1_45{margin-block-start:0}.material-design-icon[data-v-26ad2498]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#guest-content-vue[data-v-26ad2498]{color:var(--color-main-text);background-color:var(--color-main-background);min-width:0;border-radius:var(--border-radius-element);box-shadow:0 0 10px var(--color-box-shadow);height:fit-content;padding:15px;margin:20px auto}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}#content.nc-guest-content{overflow:auto;margin-bottom:0;height:calc(var(--body-height) + var(--body-container-margin))}.material-design-icon[data-v-92fb182d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.header-menu[data-v-92fb182d]{position:relative;width:var(--header-height);height:var(--header-height)}.header-menu .header-menu__trigger[data-v-92fb182d]{--button-size: var(--header-height) !important;height:var(--header-height);opacity:.85;filter:none!important;color:var(--color-background-plain-text, var(--color-primary-text))!important}.header-menu .header-menu__trigger[data-v-92fb182d]:focus-visible{outline:none!important;box-shadow:none!important}.header-menu .header-menu__trigger[data-v-92fb182d] .button-vue__icon svg,.header-menu .header-menu__trigger[data-v-92fb182d] .button-vue__icon:not(:has(svg)){mask:var(--header-menu-icon-mask, none)}.header-menu--opened .header-menu__trigger[data-v-92fb182d],.header-menu__trigger[data-v-92fb182d]:hover,.header-menu__trigger[data-v-92fb182d]:focus,.header-menu__trigger[data-v-92fb182d]:active{opacity:1}@media only screen and (max-width: 512px){.header-menu[data-v-92fb182d]{width:var(--default-clickable-area)}.header-menu .header-menu__trigger[data-v-92fb182d]{--button-size: var(--default-clickable-area) !important}}.material-design-icon[data-v-d45c5788]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! + * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */.header-menu[data-v-d45c5788]{position:relative;width:var(--header-height);height:var(--header-height)}.header-menu .header-menu__trigger[data-v-d45c5788]{--button-size: var(--header-height) !important;height:var(--header-height);opacity:.85;filter:none!important;color:var(--color-background-plain-text, var(--color-primary-text))!important}.header-menu .header-menu__trigger[data-v-d45c5788]:focus-visible{outline:none!important;box-shadow:none!important}.header-menu .header-menu__trigger[data-v-d45c5788] .button-vue__icon svg,.header-menu .header-menu__trigger[data-v-d45c5788] .button-vue__icon:not(:has(svg)){mask:var(--header-menu-icon-mask, none)}.header-menu--opened .header-menu__trigger[data-v-d45c5788],.header-menu__trigger[data-v-d45c5788]:hover,.header-menu__trigger[data-v-d45c5788]:focus,.header-menu__trigger[data-v-d45c5788]:active{opacity:1}@media only screen and (max-width: 512px){.header-menu[data-v-d45c5788]{width:var(--default-clickable-area)}.header-menu .header-menu__trigger[data-v-d45c5788]{--button-size: var(--default-clickable-area) !important}}.header-menu__wrapper[data-v-d45c5788]{position:fixed;z-index:2000;top:var(--header-height);inset-inline-end:0;box-sizing:border-box;margin:0 8px;border-radius:var(--border-radius-element);background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow))}.header-menu__caret[data-v-d45c5788]{position:absolute;z-index:2001;bottom:0;inset-inline-start:calc(50% - 10px);width:0;height:0;content:" ";pointer-events:none;border:10px solid transparent;border-bottom-color:var(--color-main-background)}.header-menu__content[data-v-d45c5788]{overflow:auto;width:350px;max-width:calc(100vw - 16px);min-height:calc(var(--default-clickable-area) * 1.5);max-height:calc(100vh - var(--header-height) * 2)}.header-menu__content[data-v-d45c5788] .empty-content{margin:12vh 10px}._material-design-icon_1s86g_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._hotkey_1s86g_20{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));display:flex;flex-direction:row-reverse;align-items:stretch;padding-inline:var(--form-element-label-offset)}._hotkey_1s86g_20:first-child ._hotkey__label_1s86g_27,._hotkey_1s86g_20:first-child ._hotkey__keys_1s86g_28{border-block-start:none}._hotkey__label_1s86g_27,._hotkey__keys_1s86g_28{display:flex;align-items:center;padding-block:calc(2 * var(--default-grid-baseline));border-block-start:1px solid var(--color-border)}._hotkey__label_1s86g_27{flex:1 1 200px}._hotkey__keys_1s86g_28{flex:1 1 auto;flex-wrap:wrap;justify-content:end;row-gap:calc(1 * var(--default-grid-baseline))}._material-design-icon_lf0a1_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._kbd_lf0a1_20{display:inline-flex;align-items:center;justify-content:center;min-width:var(--default-clickable-area);height:var(--default-clickable-area);padding-inline:calc(2 * var(--default-grid-baseline)) calc(2 * var(--default-grid-baseline));border:2px solid var(--color-primary-element-light);border-block-end-width:4px;border-radius:var(--border-radius-element);box-shadow:none;font-family:var(--font-family);line-height:1;white-space:nowrap}._kbd_lf0a1_20+._kbd_lf0a1_20{margin-inline-start:calc(1 * var(--default-grid-baseline))}._hotkeyList_pf97p_2{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline))}._hotkeyList__heading_pf97p_6{font-weight:700;margin-inline:var(--form-element-label-offset)}.material-design-icon[data-v-532f3807]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.list-item__wrapper[data-v-532f3807]{display:flex;position:relative;width:100%;padding:2px 4px}.list-item__wrapper[data-v-532f3807]:first-of-type{padding-block-start:4px}.list-item__wrapper[data-v-532f3807]:last-of-type{padding-block-end:4px}.list-item__wrapper--active .list-item[data-v-532f3807],.list-item__wrapper.active .list-item[data-v-532f3807]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)!important}.list-item__wrapper--active .list-item[data-v-532f3807]:hover,.list-item__wrapper--active .list-item[data-v-532f3807]:focus-within,.list-item__wrapper--active .list-item[data-v-532f3807]:has(:focus-visible),.list-item__wrapper--active .list-item[data-v-532f3807]:has(:active),.list-item__wrapper.active .list-item[data-v-532f3807]:hover,.list-item__wrapper.active .list-item[data-v-532f3807]:focus-within,.list-item__wrapper.active .list-item[data-v-532f3807]:has(:focus-visible),.list-item__wrapper.active .list-item[data-v-532f3807]:has(:active){background-color:var(--color-primary-element-hover)}.list-item__wrapper--active .list-item-content__name[data-v-532f3807],.list-item__wrapper--active .list-item-content__subname[data-v-532f3807],.list-item__wrapper--active .list-item-content__details[data-v-532f3807],.list-item__wrapper--active .list-item-details__details[data-v-532f3807],.list-item__wrapper.active .list-item-content__name[data-v-532f3807],.list-item__wrapper.active .list-item-content__subname[data-v-532f3807],.list-item__wrapper.active .list-item-content__details[data-v-532f3807],.list-item__wrapper.active .list-item-details__details[data-v-532f3807]{color:var(--color-primary-element-text)!important}.list-item__wrapper .list-item-content__name[data-v-532f3807],.list-item__wrapper .list-item-content__subname[data-v-532f3807],.list-item__wrapper .list-item-content__details[data-v-532f3807],.list-item__wrapper .list-item-details__details[data-v-532f3807]{white-space:nowrap;margin-block:0;margin-inline:0 auto;overflow:hidden;text-overflow:ellipsis}.list-item-content__name[data-v-532f3807]{min-width:100px;flex:1 1 10%;font-weight:500}.list-item-content__subname[data-v-532f3807]{flex:1 0;min-width:0;color:var(--color-text-maxcontrast)}.list-item-content__subname--bold[data-v-532f3807]{font-weight:500}.list-item[data-v-532f3807]{--list-item-padding: var(--default-grid-baseline);--list-item-height: 2lh;--list-item-border-radius: var(--border-radius-element, 32px);box-sizing:border-box;display:flex;position:relative;flex:0 0 auto;justify-content:flex-start;padding:var(--list-item-padding);width:100%;border-radius:var(--border-radius-element, 32px);cursor:pointer;transition:background-color var(--animation-quick) ease-in-out;list-style:none}.list-item[data-v-532f3807]:hover,.list-item[data-v-532f3807]:focus-within,.list-item[data-v-532f3807]:has(:active),.list-item[data-v-532f3807]:has(:focus-visible){background-color:var(--color-background-hover)}.list-item[data-v-532f3807]:has(.list-item__anchor:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}.list-item--compact[data-v-532f3807]{--list-item-padding: calc(.5 * var(--default-grid-baseline)) var(--default-grid-baseline)}.list-item--compact[data-v-532f3807]:not(:has(.list-item-content__subname)){--list-item-height: var(--default-clickable-area)}.list-item--one-line[data-v-532f3807]{--list-item-height: var(--default-clickable-area);--list-item-border-radius: var(--border-radius-element, calc(var(--default-clickable-area) / 2));--list-item-padding: var(--default-grid-baseline)}.list-item--one-line .list-item-content__main[data-v-532f3807]{display:flex;justify-content:start;gap:12px;min-width:0}.list-item--one-line .list-item-content__details[data-v-532f3807]{flex-direction:row;align-items:center;justify-content:end}.list-item--one-line .list-item-content__name[data-v-532f3807]{align-self:center;max-width:300px}.list-item__anchor[data-v-532f3807]{color:inherit;display:flex;flex:1 0 auto;align-items:center;height:var(--list-item-height);min-width:0}.list-item__anchor[data-v-532f3807]:focus-visible{outline:none}.list-item-content[data-v-532f3807]{display:flex;flex:1 0;justify-content:space-between;padding-inline-start:calc(2 * var(--default-grid-baseline));min-width:0}.list-item-content__main[data-v-532f3807]{flex:1 0;width:0;margin:auto 0}.list-item-content__main--oneline[data-v-532f3807]{display:flex}.list-item-content__details[data-v-532f3807]{display:flex;flex-direction:column;justify-content:end;align-items:end}.list-item-content__actions[data-v-532f3807],.list-item-content__extra-actions[data-v-532f3807]{flex:0 0 auto;align-self:center;justify-content:center;margin-inline-start:var(--default-grid-baseline)}.list-item-content__extra-actions[data-v-532f3807]{display:flex;align-items:center;gap:var(--default-grid-baseline)}.list-item-details__details[data-v-532f3807]{color:var(--color-text-maxcontrast);margin:0 9px!important;font-weight:400}.list-item-details__extra[data-v-532f3807]{margin:2px 4px 0;display:flex;align-items:center}.list-item-details__indicator[data-v-532f3807]{margin:0 5px}.list-item__extra[data-v-532f3807]{margin-top:var(--default-grid-baseline)}.material-design-icon[data-v-60a83836]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.option[data-v-60a83836]{display:flex;align-items:center;width:100%;height:var(--height);cursor:inherit}.option__avatar[data-v-60a83836]{margin-inline-end:var(--margin)}.option__details[data-v-60a83836]{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0}.option__lineone[data-v-60a83836]{color:var(--color-main-text)}.option__linetwo[data-v-60a83836]{color:var(--color-text-maxcontrast)}.option__lineone[data-v-60a83836],.option__linetwo[data-v-60a83836]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.2}.option__lineone strong[data-v-60a83836],.option__linetwo strong[data-v-60a83836]{font-weight:700}.option--compact .option__lineone[data-v-60a83836]{font-size:14px}.option--compact .option__linetwo[data-v-60a83836]{font-size:11px;line-height:1.5;margin-top:-4px}.option__icon[data-v-60a83836]{width:var(--default-clickable-area);height:var(--default-clickable-area);color:var(--color-text-maxcontrast)}.option__icon.icon[data-v-60a83836]{flex:0 0 var(--default-clickable-area);opacity:.7;background-position:center;background-size:16px}.option__details[data-v-60a83836],.option__lineone[data-v-60a83836],.option__linetwo[data-v-60a83836],.option__icon[data-v-60a83836]{cursor:inherit}.material-design-icon[data-v-7e4656f9]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-7e4656f9]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius-small);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-7e4656f9]{font-size:var(--note-card-icon-size);font-weight:600}.notecard__icon[data-v-7e4656f9]{color:var(--note-theme)}.notecard__icon--heading[data-v-7e4656f9]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-7e4656f9]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-7e4656f9]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-7e4656f9]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-7e4656f9]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-7e4656f9]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important}.material-design-icon[data-v-38ba4aa1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-38ba4aa1]{display:block;height:var(--progress-bar-height);--progress-bar-color: var(--0a7905e8);--progress-bar-height: var(--d7eb5974)}.progress-bar--linear[data-v-38ba4aa1]{width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-38ba4aa1]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:transparent}.progress-bar--linear[data-v-38ba4aa1]::-webkit-progress-value{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-38ba4aa1]::-moz-progress-bar{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--circular[data-v-38ba4aa1]{width:var(--progress-bar-height);color:var(--progress-bar-color)}.progress-bar--error[data-v-38ba4aa1]{color:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-38ba4aa1]::-moz-progress-bar{background:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-38ba4aa1]::-webkit-progress-value{background:var(--color-text-error, var(--color-error))!important}._material-design-icon_14z4o_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroup_checkboxRadioContainer_14z4o_20 .checkbox-content{max-width:unset!important}._material-design-icon_1euqq_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._radioGroupButton_1euqq_20{--radio-group-button--border-radius: var(--border-radius-small);--radio-group-button--border-width: 1px;--radio-group-button--color: var(--color-primary-element-light-text);--radio-group-button--background-color: var(--color-primary-element-light);--radio-group-button--background-color-hover: var(--color-primary-element-light-hover);--radio-group-button--padding: 1px;cursor:pointer;color:var(--radio-group-button--color);background-color:var(--radio-group-button--background-color);transition:var(--animation-quick) background-color;border:var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);border-bottom-width:2px;border-radius:var(--radio-group-button--border-radius);display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:center;min-height:var(--default-clickable-area);padding-block:var(--radio-group-button--padding) 0;padding-inline:var(--radio-group-button--padding)}._radioGroupButton_1euqq_20 *{cursor:pointer}._radioGroupButton_1euqq_20:has(._radioGroupButton__label_1euqq_46){padding-inline:calc(var(--radio-group-button--padding) + var(--border-radius-element))}._radioGroupButton_1euqq_20:has(._radioGroupButton__icon_1euqq_49){padding-inline-start:var(--radio-group-button--padding)}._radioGroupButton_1euqq_20:hover{background-color:var(--radio-group-button--background-color-hover)}._radioGroupButton_1euqq_20:focus-within{--radio-group-button--border-width: 2px;--radio-group-button--padding: 0px;border:var(--radio-group-button--border-width) solid var(--color-main-text)!important;outline:calc(var(--default-grid-baseline) / 2) var(--color-main-background)}._radioGroupButton_active_1euqq_62{--radio-group-button--color: var(--color-primary-element-text);--radio-group-button--background-color: var(--color-primary-element);--radio-group-button--background-color-hover: var(--color-primary-element-hover)}._radioGroupButton__label_1euqq_46{font-weight:700}._radioGroupButton__icon_1euqq_49{--radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);display:flex;align-items:center;justify-content:center;height:100%;width:var(--radio-group-button--icon-size)}._radioGroupButton__icon_1euqq_49 *{--default-clickable-area: var(--radio-group-button--icon-size)}.material-design-icon[data-v-8db55138]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resource[data-v-8db55138]{display:flex;align-items:center;height:var(--default-clickable-area)}.resource__button[data-v-8db55138]{width:100%!important;justify-content:flex-start!important;padding:0!important}.resource__button[data-v-8db55138] .button-vue__wrapper{justify-content:flex-start!important}.resource__button[data-v-8db55138] .button-vue__wrapper .button-vue__text{font-weight:400!important;margin-inline-start:2px!important}.resource__icon[data-v-8db55138]{width:32px;height:32px;background-color:var(--color-text-maxcontrast);border-radius:50%;display:flex;align-items:center;justify-content:center}.resource__icon img[data-v-8db55138]{width:16px;height:16px;filter:var(--background-invert-if-dark)}.material-design-icon[data-v-a0203ee5]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.team-resources__header[data-v-a0203ee5]{font-weight:700;margin-bottom:6px}.related-team[data-v-a0203ee5]{border-radius:var(--border-radius-container);border:2px solid var(--color-border-dark);margin-bottom:6px}.related-team__open[data-v-a0203ee5]{border-color:var(--color-primary-element)}.related-team__header[data-v-a0203ee5]{padding:6px;padding-inline-end:24px;display:flex;gap:12px}.related-team__name[data-v-a0203ee5]{display:flex;flex-grow:1;align-items:center;gap:12px;padding:6px 12px;font-weight:700;margin:0}.related-team .related-team-provider[data-v-a0203ee5]{padding:6px 12px}.related-team .related-team-provider__name[data-v-a0203ee5]{font-weight:700;margin-bottom:3px}.related-team .related-team-provider__link[data-v-a0203ee5]{display:flex;gap:12px;padding:6px 12px;font-weight:700}.related-team .related-team-resource__link[data-v-a0203ee5]{display:flex;gap:12px;height:var(--default-clickable-area);align-items:center;border-radius:var(--border-radius-element)}.related-team .related-team-resource__link[data-v-a0203ee5]:hover{background-color:var(--color-background-hover)}.related-team .related-team-resource__link[data-v-a0203ee5]:focus{background-color:var(--color-background-hover);outline:2px solid var(--color-primary-element)}.related-team .related-team-resource .resource__icon[data-v-a0203ee5]{width:var(--default-clickable-area);height:var(--default-clickable-area);display:flex;align-items:center;justify-content:center;text-align:center}.related-team .related-team-resource .resource__icon>img[data-v-a0203ee5]{border-radius:var(--border-radius-pill);overflow:hidden;width:32px;height:32px}.material-design-icon[data-v-7a009a6b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.related-resources__header h5[data-v-7a009a6b]{font-weight:700;margin-bottom:6px}.related-resources__header p[data-v-7a009a6b]{color:var(--color-text-maxcontrast)}.material-design-icon[data-v-ca83b679]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.autocomplete-result[data-v-ca83b679]{display:flex;align-items:center;gap:var(--default-grid-baseline);line-height:1.2;--auto-complete-result-avatar-size: var(--default-clickable-area)}.autocomplete-result__icon[data-v-ca83b679]{position:relative;flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);min-width:var(--default-clickable-area);height:var(--default-clickable-area);border-radius:var(--default-clickable-area);background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:contain}.autocomplete-result__icon--with-avatar[data-v-ca83b679]{color:inherit;background-size:cover}.autocomplete-result__status[data-v-ca83b679]{--auto-complete-result-status-icon-size: clamp(14px, var(--auto-complete-result-avatar-size) * .4, 18px);--auto-complete-result-status-icon-position: calc(var(--auto-complete-result-avatar-size) / 2 * (1 - 1 / sqrt(2)) - var(--auto-complete-result-status-icon-size) / 2);box-sizing:border-box;position:absolute;inset-inline-end:var(--auto-complete-result-status-icon-position);bottom:var(--auto-complete-result-status-icon-position);height:var(--auto-complete-result-status-icon-size);width:var(--auto-complete-result-status-icon-size);border:2px solid var(--color-main-background);border-radius:50%;background-color:var(--color-main-background);font-size:calc(var(--auto-complete-result-status-icon-size) / 1.2);line-height:1.2;background-repeat:no-repeat;background-size:var(--auto-complete-result-status-icon-size);background-position:center}.autocomplete-result__status--icon[data-v-ca83b679]{border:none;background-color:transparent}.autocomplete-result__content[data-v-ca83b679]{display:flex;flex:1 1 100%;flex-direction:column;justify-content:center;min-width:0}.autocomplete-result__title[data-v-ca83b679],.autocomplete-result__subline[data-v-ca83b679]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-result__subline[data-v-ca83b679]{color:var(--color-text-maxcontrast)}.material-design-icon[data-v-faef642b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-contenteditable[data-v-faef642b]{--contenteditable-block-offset: calc(2 * var(--default-grid-baseline));--contenteditable-inline-start-offset: calc(2 * var(--default-grid-baseline));--contenteditable-inline-end-offset: calc(2 * var(--default-grid-baseline));position:relative;width:auto}.rich-contenteditable__label[data-v-faef642b]{position:absolute;margin-inline:14px;max-width:fit-content;inset-block-start:11px;inset-inline:0;color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.rich-contenteditable__input:focus+.rich-contenteditable__label[data-v-faef642b],.rich-contenteditable__input:not(.rich-contenteditable__input--empty)+.rich-contenteditable__label[data-v-faef642b]{inset-block-start:-10px;line-height:1.5;font-size:13px;font-weight:500;border-radius:var(--default-grid-baseline) var(--default-grid-baseline) 0 0;background-color:var(--color-main-background);padding-inline:5px;margin-inline:9px;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.rich-contenteditable__input[data-v-faef642b]{overflow-y:auto;width:auto;margin:0;padding-block:var(--contenteditable-block-offset);padding-inline:var(--contenteditable-inline-start-offset) var(--contenteditable-inline-end-offset);cursor:text;white-space:pre-wrap;overflow-wrap:break-word;color:var(--color-main-text);border:2px solid var(--color-border-maxcontrast);border-radius:var(--border-radius-element);outline:none;background-color:var(--color-main-background);font-family:var(--font-face);font-size:inherit;tab-size:4;min-height:var(--default-clickable-area);max-height:calc(var(--default-clickable-area) * 5.5)}.rich-contenteditable__input--has-label[data-v-faef642b]{margin-top:10px}.rich-contenteditable__input--empty[data-v-faef642b]:focus:before,.rich-contenteditable__input--empty[data-v-faef642b]:not(.rich-contenteditable__input--has-label):before{content:attr(aria-placeholder);color:var(--color-text-maxcontrast);position:absolute;width:calc(100% - var(--contenteditable-inline-start-offset) - var(--contenteditable-inline-end-offset));height:calc(100% - 2 * var(--contenteditable-block-offset));overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.rich-contenteditable__input[contenteditable=false][data-v-faef642b]:not(.rich-contenteditable__input--disabled){cursor:default;background-color:transparent;color:var(--color-main-text);border-color:transparent;opacity:1;border-radius:0}.rich-contenteditable__input--multiline[data-v-faef642b]{min-height:calc(var(--default-clickable-area) * 3);max-height:none}.rich-contenteditable__input--disabled[data-v-faef642b]{opacity:.5;color:var(--color-text-maxcontrast);border:2px solid var(--color-background-darker);border-radius:var(--border-radius-small);background-color:var(--color-background-dark)}.rich-contenteditable__input--overflow[data-v-faef642b],.rich-contenteditable__input--overflow[data-v-faef642b]:hover{border-color:var(--color-border-error, var(--color-error))!important}._material-design-icon_1xkrb_12{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._tribute-container_1xkrb_20{z-index:9000;overflow:auto;position:absolute;left:-100vw;margin:var(--default-grid-baseline) 0;padding:var(--default-grid-baseline);color:var(--color-text-maxcontrast);border-radius:var(--border-radius-element);background:var(--color-main-background);box-shadow:0 1px 5px var(--color-box-shadow)}._tribute-container_1xkrb_20,._tribute-container_1xkrb_20 *{box-sizing:border-box}._tribute-container_1xkrb_20 ul{display:flex;flex-direction:column;gap:var(--default-grid-baseline)}._tribute-container_1xkrb_20 ._tribute-container__item_1xkrb_41{color:var(--color-text-maxcontrast);border-radius:var(--border-radius-small);padding:var(--default-grid-baseline);cursor:pointer;min-height:var(--clickable-area-small, auto)}._tribute-container_1xkrb_20 ._tribute-container__item_1xkrb_41.highlight{color:var(--color-main-text);background:var(--color-background-hover)}._tribute-container_1xkrb_20 ._tribute-container__item_1xkrb_41.highlight,._tribute-container_1xkrb_20 ._tribute-container__item_1xkrb_41.highlight *{cursor:pointer}._tribute-container_1xkrb_20._tribute-container--focus-visible_1xkrb_55 .highlight._tribute-container__item_1xkrb_41{outline:2px solid var(--color-main-text)!important}._tribute-container-autocomplete_1xkrb_59{min-width:250px;max-width:300px;max-height:calc((var(--default-clickable-area) + 3 * var(--default-grid-baseline)) * 4.5 - 1.5 * var(--default-grid-baseline))}._tribute-container-emoji_1xkrb_65,._tribute-container-link_1xkrb_66{min-width:200px;max-width:200px;max-height:calc((24px + 3 * var(--default-grid-baseline)) * 5.5 - 1.5 * var(--default-grid-baseline))}._tribute-container-emoji_1xkrb_65 ._tribute-item_1xkrb_71,._tribute-container-link_1xkrb_66 ._tribute-item_1xkrb_71{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._tribute-container-link_1xkrb_66{min-width:200px;max-width:300px}._tribute-container-link_1xkrb_66 ._tribute-item_1xkrb_71{display:flex;align-items:center}._tribute-container-link_1xkrb_66 ._tribute-item__title_1xkrb_86{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._tribute-container-link_1xkrb_66 ._tribute-item__icon_1xkrb_91{margin:auto 0;width:20px;height:20px;object-fit:contain;padding-inline-end:var(--default-grid-baseline);filter:var(--background-invert-if-dark)}.material-design-icon[data-v-e408867a],.material-design-icon[data-v-90c6aa3b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.provider-list[data-v-90c6aa3b]{width:100%;min-height:400px;padding:0 16px 16px;display:flex;flex-direction:column}.provider-list--select[data-v-90c6aa3b]{width:100%}.provider-list--select .provider[data-v-90c6aa3b]{display:flex;align-items:center;height:28px;overflow:hidden}.provider-list--select .provider .link-icon[data-v-90c6aa3b]{margin-inline-end:8px}.provider-list--select .provider .provider-icon[data-v-90c6aa3b]{width:20px;height:20px;object-fit:contain;margin-inline-end:8px;filter:var(--background-invert-if-dark)}.provider-list--select .provider .option-text[data-v-90c6aa3b]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-8ce33442]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widget-custom[data-v-8ce33442]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex}.widget-custom.full-width[data-v-8ce33442]{width:var(--widget-full-width, 100%)!important;inset-inline-start:calc((var(--widget-full-width, 100%) - 100%) / 2 * -1);position:relative}.widget-access[data-v-8ce33442]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex;padding:calc(var(--default-grid-baseline, 4px) * 3)}.widget-default[data-v-8ce33442]{width:100%;margin:auto;margin-bottom:calc(var(--default-grid-baseline, 4px) * 3);margin-top:calc(var(--default-grid-baseline, 4px) * 3);overflow:hidden;border:2px solid var(--color-border);border-radius:var(--border-radius-container);background-color:transparent;display:flex}.widget-default--compact[data-v-8ce33442]{flex-direction:column}.widget-default--compact .widget-default--image[data-v-8ce33442]{width:100%;height:150px}.widget-default--compact .widget-default--details[data-v-8ce33442]{width:100%;padding-top:calc(var(--default-grid-baseline, 4px) * 2);padding-bottom:calc(var(--default-grid-baseline, 4px) * 2)}.widget-default--compact .widget-default--description[data-v-8ce33442]{display:none}.widget-default--image[data-v-8ce33442]{width:40%;background-position:center;background-size:cover;background-repeat:no-repeat}.widget-default--name[data-v-8ce33442]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.widget-default--details[data-v-8ce33442]{padding:calc(var(--default-grid-baseline, 4px) * 3);width:60%}.widget-default--details p[data-v-8ce33442]{margin:0;padding:0}.widget-default--description[data-v-8ce33442]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.widget-default--link[data-v-8ce33442]{color:var(--color-text-maxcontrast);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toggle-interactive[data-v-8ce33442]{position:relative}.toggle-interactive .toggle-interactive--button[data-v-8ce33442]{position:absolute;bottom:var(--default-grid-baseline);inset-inline-end:var(--default-grid-baseline);z-index:10000}.material-design-icon[data-v-a0658f2a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.raw-link[data-v-a0658f2a]{width:100%;min-height:350px;display:flex;flex-direction:column;overflow-y:auto;padding:0 16px 16px}.raw-link .input-wrapper[data-v-a0658f2a]{width:100%}.raw-link .reference-widget[data-v-a0658f2a]{display:flex}.raw-link--empty-content .provider-icon[data-v-a0658f2a]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.raw-link--input[data-v-a0658f2a]{width:99%}.material-design-icon[data-v-059edcfb]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.result[data-v-059edcfb]{display:flex;align-items:center;height:var(--default-clickable-area);overflow:hidden}.result--icon-class[data-v-059edcfb],.result--image[data-v-059edcfb]{width:40px;min-width:40px;height:40px;object-fit:contain}.result--icon-class.rounded[data-v-059edcfb],.result--image.rounded[data-v-059edcfb]{border-radius:50%}.result--content[data-v-059edcfb]{display:flex;flex-direction:column;padding-inline-start:10px;overflow:hidden}.result--content--name[data-v-059edcfb],.result--content--subline[data-v-059edcfb]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-e8abf1d4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.smart-picker-search[data-v-e8abf1d4]{width:100%;display:flex;flex-direction:column;padding:0 16px 16px}.smart-picker-search.with-empty-content[data-v-e8abf1d4]{min-height:400px}.smart-picker-search .provider-icon[data-v-e8abf1d4]{width:150px;height:150px;object-fit:contain;filter:var(--background-invert-if-dark)}.smart-picker-search--select[data-v-e8abf1d4],.smart-picker-search--select .search-result[data-v-e8abf1d4]{width:100%}.smart-picker-search--select .group-name-icon[data-v-e8abf1d4],.smart-picker-search--select .option-simple-icon[data-v-e8abf1d4]{width:20px;height:20px;margin:0 20px 0 10px}.smart-picker-search--select .custom-option[data-v-e8abf1d4]{height:var(--default-clickable-area);display:flex;align-items:center;overflow:hidden}.smart-picker-search--select .option-text[data-v-e8abf1d4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-design-icon[data-v-b193005a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker[data-v-b193005a],.reference-picker .custom-element-wrapper[data-v-b193005a],.reference-picker .custom-element-wrapper .custom-element[data-v-b193005a]{display:flex;overflow-y:auto;width:100%}.material-design-icon[data-v-15018516]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.reference-picker-modal[data-v-15018516] .modal-container{display:flex!important}.reference-picker-modal--content[data-v-15018516]{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto}.reference-picker-modal--content .close-button[data-v-15018516],.reference-picker-modal--content .back-button[data-v-15018516]{position:absolute;top:4px}.reference-picker-modal--content .back-button[data-v-15018516]{inset-inline-start:4px}.reference-picker-modal--content .close-button[data-v-15018516]{inset-inline-end:4px}.reference-picker-modal--content>h2[data-v-15018516]{display:flex;margin:12px 0 20px}.reference-picker-modal--content>h2 .icon[data-v-15018516]{margin-inline-end:8px}.material-design-icon[data-v-ddd65c9e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.widgets--list[data-v-ddd65c9e]{width:100%;min-height:var(--default-clickable-area)}.material-design-icon[data-v-a47e4ba7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.rich-text--wrapper[data-v-a47e4ba7]{overflow-wrap:break-word;line-height:1.5}.rich-text--wrapper .rich-text--fallback[data-v-a47e4ba7],.rich-text--wrapper .rich-text-component[data-v-a47e4ba7]{display:inline}.rich-text--wrapper .rich-text--external-link[data-v-a47e4ba7]{text-decoration:underline}.rich-text--wrapper .rich-text--external-link[data-v-a47e4ba7]:after{content:" ↗"}.rich-text--wrapper-markdown[data-v-a47e4ba7]{tab-size:4}.rich-text--wrapper-markdown[data-v-a47e4ba7]>:first-child,.rich-text--wrapper-markdown div[data-v-a47e4ba7]>:first-child,.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7]>:first-child{margin-top:0!important}.rich-text--wrapper-markdown[data-v-a47e4ba7]>:last-child,.rich-text--wrapper-markdown[data-v-a47e4ba7]>*:has(+.rich-text--reference-widget),.rich-text--wrapper-markdown div[data-v-a47e4ba7]>:last-child,.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7]>:last-child{margin-block-end:0!important}.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7]{padding-inline-start:13px;border-inline-start:2px solid var(--color-border-dark);color:var(--color-text-maxcontrast)}.rich-text--wrapper-markdown h1[data-v-a47e4ba7],.rich-text--wrapper-markdown h2[data-v-a47e4ba7],.rich-text--wrapper-markdown h3[data-v-a47e4ba7],.rich-text--wrapper-markdown h4[data-v-a47e4ba7],.rich-text--wrapper-markdown h5[data-v-a47e4ba7],.rich-text--wrapper-markdown h6[data-v-a47e4ba7],.rich-text--wrapper-markdown p[data-v-a47e4ba7],.rich-text--wrapper-markdown ul[data-v-a47e4ba7],.rich-text--wrapper-markdown ol[data-v-a47e4ba7],.rich-text--wrapper-markdown blockquote[data-v-a47e4ba7],.rich-text--wrapper-markdown pre[data-v-a47e4ba7]{margin-top:0;margin-block-end:1em}.rich-text--wrapper-markdown h1[data-v-a47e4ba7],.rich-text--wrapper-markdown h2[data-v-a47e4ba7],.rich-text--wrapper-markdown h3[data-v-a47e4ba7],.rich-text--wrapper-markdown h4[data-v-a47e4ba7],.rich-text--wrapper-markdown h5[data-v-a47e4ba7],.rich-text--wrapper-markdown h6[data-v-a47e4ba7]{font-weight:700}.rich-text--wrapper-markdown h4[data-v-a47e4ba7]{font-size:20px}.rich-text--wrapper-markdown h5[data-v-a47e4ba7]{font-size:18px}.rich-text--wrapper-markdown h6[data-v-a47e4ba7]{font-size:15px}.rich-text--wrapper-markdown ul[data-v-a47e4ba7],.rich-text--wrapper-markdown ol[data-v-a47e4ba7]{padding-inline-start:4ch}.rich-text--wrapper-markdown ul[data-v-a47e4ba7]{list-style-type:disc}.rich-text--wrapper-markdown ul.contains-task-list[data-v-a47e4ba7]{list-style-type:none;padding:0}.rich-text--wrapper-markdown li.task-list-item>ul[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>ol[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>li[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>blockquote[data-v-a47e4ba7],.rich-text--wrapper-markdown li.task-list-item>pre[data-v-a47e4ba7]{margin-inline-start:15px;margin-block-end:0}.rich-text--wrapper-markdown pre[data-v-a47e4ba7]{direction:ltr}.rich-text--wrapper-markdown table[data-v-a47e4ba7]{border-collapse:collapse;border:2px solid var(--color-border-maxcontrast)}.rich-text--wrapper-markdown table th[data-v-a47e4ba7],.rich-text--wrapper-markdown table td[data-v-a47e4ba7]{padding:var(--default-grid-baseline);border:1px solid var(--color-border-maxcontrast)}.rich-text--wrapper-markdown table th[data-v-a47e4ba7]:first-child,.rich-text--wrapper-markdown table td[data-v-a47e4ba7]:first-child{border-inline-start:0}.rich-text--wrapper-markdown table th[data-v-a47e4ba7]:last-child,.rich-text--wrapper-markdown table td[data-v-a47e4ba7]:last-child{border-inline-end:0}.rich-text--wrapper-markdown table tr:first-child th[data-v-a47e4ba7]{border-top:0}.rich-text--wrapper-markdown table tr:last-child td[data-v-a47e4ba7]{border-block-end:0}.rich-text--wrapper-markdown .rich-text__code-block[data-v-a47e4ba7]:has(.hljs){color:var(--hljs-color);background:var(--hljs-background-color)}.rich-text--wrapper-markdown .hljs-doctag[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-keyword[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-meta .hljs-keyword[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-template-tag[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-template-variable[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-type[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-variable.language_[data-v-a47e4ba7]{color:var(--hljs-syntax-keyword-color)}.rich-text--wrapper-markdown .hljs-title[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-title.class_[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-title.class_.inherited__[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-title.function_[data-v-a47e4ba7]{color:var(--hljs-syntax-entity-color)}.rich-text--wrapper-markdown .hljs-attr[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-attribute[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-literal[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-meta[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-number[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-operator[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-variable[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-attr[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-class[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-id[data-v-a47e4ba7]{color:var(--hljs-syntax-constant-color)}.rich-text--wrapper-markdown .hljs-regexp[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-string[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-meta .hljs-string[data-v-a47e4ba7]{color:var(--hljs-syntax-string-color)}.rich-text--wrapper-markdown .hljs-built_in[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-symbol[data-v-a47e4ba7]{color:var(--hljs-syntax-variable-color)}.rich-text--wrapper-markdown .hljs-comment[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-code[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-formula[data-v-a47e4ba7]{color:var(--hljs-syntax-comment-color)}.rich-text--wrapper-markdown .hljs-name[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-quote[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-tag[data-v-a47e4ba7],.rich-text--wrapper-markdown .hljs-selector-pseudo[data-v-a47e4ba7]{color:var(--hljs-syntax-entity-tag-color)}.rich-text--wrapper-markdown .hljs-subst[data-v-a47e4ba7]{color:var(--hljs-syntax-storage-modifier-import-color)}.rich-text--wrapper-markdown .hljs-section[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-heading-color);font-weight:700}.rich-text--wrapper-markdown .hljs-bullet[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-list-color)}.rich-text--wrapper-markdown .hljs-emphasis[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-italic-color);font-style:italic}.rich-text--wrapper-markdown .hljs-strong[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-bold-color);font-weight:700}.rich-text--wrapper-markdown .hljs-addition[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-inserted-color);background-color:var(--hljs-syntax-markup-inserted-background-color)}.rich-text--wrapper-markdown .hljs-deletion[data-v-a47e4ba7]{color:var(--hljs-syntax-markup-deleted-color);background-color:var(--hljs-syntax-markup-deleted-background-color)}a[data-v-a47e4ba7]:not(.rich-text--component){text-decoration:underline}@media (prefers-color-scheme: light){.rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #24292e);--hljs-background-color: var(--color-background-dark, #ffffff);--hljs-syntax-keyword-color: #d73a49;--hljs-syntax-entity-color: #6f42c1;--hljs-syntax-constant-color: #005cc5;--hljs-syntax-string-color: #032f62;--hljs-syntax-variable-color: #e36209;--hljs-syntax-comment-color: #6a737d;--hljs-syntax-entity-tag-color: #22863a;--hljs-syntax-storage-modifier-import-color: #24292e;--hljs-syntax-markup-heading-color: #005cc5;--hljs-syntax-markup-list-color: #735c0f;--hljs-syntax-markup-italic-color: #24292e;--hljs-syntax-markup-bold-color: #24292e;--hljs-syntax-markup-inserted-color: #22863a;--hljs-syntax-markup-inserted-background-color: #f0fff4;--hljs-syntax-markup-deleted-color: #b31d28;--hljs-syntax-markup-deleted-background-color: #ffeef0}[data-theme-dark] .rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #c9d1d9);--hljs-background-color: var(--color-background-dark, #0d1117);--hljs-syntax-keyword-color: #ff7b72;--hljs-syntax-entity-color: #d2a8ff;--hljs-syntax-constant-color: #79c0ff;--hljs-syntax-string-color: #a5d6ff;--hljs-syntax-variable-color: #ffa657;--hljs-syntax-comment-color: #8b949e;--hljs-syntax-entity-tag-color: #7ee787;--hljs-syntax-storage-modifier-import-color: #c9d1d9;--hljs-syntax-markup-heading-color: #1f6feb;--hljs-syntax-markup-list-color: #f2cc60;--hljs-syntax-markup-italic-color: #c9d1d9;--hljs-syntax-markup-bold-color: #c9d1d9;--hljs-syntax-markup-inserted-color: #aff5b4;--hljs-syntax-markup-inserted-background-color: #033a16;--hljs-syntax-markup-deleted-color: #ffdcd7;--hljs-syntax-markup-deleted-background-color: #67060c}}@media (prefers-color-scheme: dark){.rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #c9d1d9);--hljs-background-color: var(--color-background-dark, #0d1117);--hljs-syntax-keyword-color: #ff7b72;--hljs-syntax-entity-color: #d2a8ff;--hljs-syntax-constant-color: #79c0ff;--hljs-syntax-string-color: #a5d6ff;--hljs-syntax-variable-color: #ffa657;--hljs-syntax-comment-color: #8b949e;--hljs-syntax-entity-tag-color: #7ee787;--hljs-syntax-storage-modifier-import-color: #c9d1d9;--hljs-syntax-markup-heading-color: #1f6feb;--hljs-syntax-markup-list-color: #f2cc60;--hljs-syntax-markup-italic-color: #c9d1d9;--hljs-syntax-markup-bold-color: #c9d1d9;--hljs-syntax-markup-inserted-color: #aff5b4;--hljs-syntax-markup-inserted-background-color: #033a16;--hljs-syntax-markup-deleted-color: #ffdcd7;--hljs-syntax-markup-deleted-background-color: #67060c}[data-theme-light] .rich-text--wrapper-markdown[data-v-a47e4ba7]{--hljs-color: var(--color-main-text, #24292e);--hljs-background-color: var(--color-background-dark, #ffffff);--hljs-syntax-keyword-color: #d73a49;--hljs-syntax-entity-color: #6f42c1;--hljs-syntax-constant-color: #005cc5;--hljs-syntax-string-color: #032f62;--hljs-syntax-variable-color: #e36209;--hljs-syntax-comment-color: #6a737d;--hljs-syntax-entity-tag-color: #22863a;--hljs-syntax-storage-modifier-import-color: #24292e;--hljs-syntax-markup-heading-color: #005cc5;--hljs-syntax-markup-list-color: #735c0f;--hljs-syntax-markup-italic-color: #24292e;--hljs-syntax-markup-bold-color: #24292e;--hljs-syntax-markup-inserted-color: #22863a;--hljs-syntax-markup-inserted-background-color: #f0fff4;--hljs-syntax-markup-deleted-color: #b31d28;--hljs-syntax-markup-deleted-background-color: #ffeef0}}.rich-text__code-block[data-v-a47e4ba7]{position:relative;padding-inline-end:calc(var(--clickable-area-small) + var(--default-grid-baseline))}.rich-text__code-block pre[data-v-a47e4ba7]{width:100%;overflow-x:auto}.rich-text__code-block .rich-text__code-block-button[data-v-a47e4ba7]{position:absolute;top:var(--default-grid-baseline);inset-inline-end:var(--default-grid-baseline);opacity:0}.rich-text__code-block:hover .rich-text__code-block-button[data-v-a47e4ba7],.rich-text__code-block:focus-within .rich-text__code-block-button[data-v-a47e4ba7],.rich-text__code-block .rich-text__code-block-button[data-v-a47e4ba7]:focus{opacity:1}.nc-select-users[data-v-4fbb6472] .vs__selected{padding-inline:0 5px!important}.material-design-icon[data-v-9cedb949]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.settings-section[data-v-9cedb949]{display:block;padding:0 0 calc(var(--default-grid-baseline) * 5) 0;margin:calc(var(--default-grid-baseline) * 7);width:min(900px,100% - var(--default-grid-baseline) * 7 * 2)}.settings-section[data-v-9cedb949]:not(:last-child){border-bottom:1px solid var(--color-border)}.settings-section__name[data-v-9cedb949]{display:inline-flex;align-items:center;justify-content:center;max-width:900px;margin-top:0}.settings-section__info[data-v-9cedb949]{display:flex;align-items:center;justify-content:center;width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--default-clickable-area) - 16px) / 2 * -1);margin-inline-start:0;color:var(--color-text-maxcontrast)}.settings-section__info[data-v-9cedb949]:hover,.settings-section__info[data-v-9cedb949]:focus,.settings-section__info[data-v-9cedb949]:active{color:var(--color-main-text)}.settings-section__desc[data-v-9cedb949]{margin-top:-.2em;margin-bottom:1em;color:var(--color-text-maxcontrast);max-width:900px}.material-design-icon[data-v-21e2bf0c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.select-group-error[data-v-21e2bf0c]{color:var(--color-text-error, var(--color-error));font-size:13px;padding-inline-start:var(--border-radius-element)}.material-design-icon[data-v-87d290b5]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.textarea[data-v-87d290b5]{--input-border-color: var(--color-border-maxcontrast);--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));position:relative;width:100%;border-radius:var(--border-radius-element);margin-block-start:6px;resize:vertical}.textarea--disabled[data-v-87d290b5]{opacity:.7;filter:saturate(.7)}.textarea__main-wrapper[data-v-87d290b5]{height:calc(var(--default-clickable-area) * 2);padding:var(--border-width-input, 2px);position:relative}.textarea__main-wrapper[data-v-87d290b5]:not(:has([disabled])):has(textarea:focus),.textarea__main-wrapper[data-v-87d290b5]:not(:has([disabled])):has(textarea:active){padding:0}.textarea__input[data-v-87d290b5]{margin:0;padding-block:calc(10px + var(--input-border-width-offset));padding-inline:calc(12px - var(--border-width-input, 2px) + var(--input-border-width-offset));width:100%;font-size:var(--default-font-size);text-overflow:ellipsis;cursor:pointer;background-color:var(--color-main-background);color:var(--color-main-text);border:none;border-radius:var(--border-radius-element);box-shadow:0 -1px var(--input-border-color),0 0 0 1px color-mix(in srgb,var(--input-border-color),65% transparent)}.textarea__input[data-v-87d290b5]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}.textarea__input[data-v-87d290b5]:active:not([disabled]),.textarea__input[data-v-87d290b5]:focus:not([disabled]){--input-border-width-offset: 0px;--input-border-color: var(--color-main-text);border:var(--border-width-input-focused, 2px) solid var(--input-border-color);box-shadow:0 0 0 2px var(--color-main-background)!important}.textarea__input[data-v-87d290b5]:not(:focus,.textarea__input--label-outside)::placeholder{opacity:0}.textarea__input[data-v-87d290b5]:focus{cursor:text}.textarea__input[data-v-87d290b5]:disabled{cursor:default}.textarea__input[data-v-87d290b5]:focus-visible{box-shadow:unset!important}.textarea__input--success[data-v-87d290b5]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.textarea__input--success[data-v-87d290b5]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.textarea__input--error[data-v-87d290b5]{--input-border-color: var(--color-border-error, var(--color-error)) !important}.textarea__input--error[data-v-87d290b5]:focus-visible{box-shadow:#f8fafc 0 0 0 2px,var(--color-primary-element) 0 0 0 4px,#0000000d 0 1px 2px}.textarea__label[data-v-87d290b5]{position:absolute;margin-inline:12px 0;max-width:fit-content;inset-block-start:11px;inset-inline:0;color:var(--color-text-maxcontrast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick),background-color var(--animation-quick) var(--animation-slow)}.textarea__input:focus+.textarea__label[data-v-87d290b5],.textarea__input:not(:placeholder-shown)+.textarea__label[data-v-87d290b5]{inset-block-start:-10px;line-height:1.5;font-size:13px;font-weight:500;color:var(--color-main-text);background-color:var(--color-main-background);padding-inline:4px;margin-inline-start:8px;transition:height var(--animation-quick),inset-block-start var(--animation-quick),font-size var(--animation-quick),color var(--animation-quick)}.textarea__helper-text-message[data-v-87d290b5]{padding-block:4px;display:flex;align-items:center}.textarea__helper-text-message__icon[data-v-87d290b5]{margin-inline-end:8px}.textarea__helper-text-message--error[data-v-87d290b5]{color:var(--color-error-text)}.textarea__helper-text-message--success[data-v-87d290b5]{color:var(--color-success-text)}.textarea--legacy .textarea__input[data-v-87d290b5]{box-shadow:0 0 0 1px var(--input-border-color)}.textarea--legacy .textarea__main-wrapper[data-v-87d290b5]:hover:not(:has([disabled])){padding:0}.textarea--legacy .textarea__main-wrapper:hover:not(:has([disabled])) .textarea__input[data-v-87d290b5]{--input-border-color: var(--color-main-text);--input-border-width-offset: 0px;border:var(--border-width-input-focused, 2px) solid var(--input-border-color);box-shadow:0 0 0 2px var(--color-main-background)!important}.material-design-icon[data-v-37bde6b7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.user-bubble__wrapper[data-v-37bde6b7]{display:inline-block;vertical-align:middle;min-width:0;max-width:100%}.user-bubble__content[data-v-37bde6b7]{display:inline-flex;max-width:100%;background-color:var(--color-background-dark)}.user-bubble__content--primary[data-v-37bde6b7]{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}.user-bubble__content[data-v-37bde6b7]>:last-child{padding-inline-end:8px}.user-bubble__avatar[data-v-37bde6b7]{align-self:center}.user-bubble__name[data-v-37bde6b7]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-bubble__name[data-v-37bde6b7],.user-bubble__secondary[data-v-37bde6b7]{padding-block:0;padding-inline:4px 0}.viewer__modal[data-v-f2901be8] .modal-container__content{display:flex;justify-content:center;align-items:center}.viewer__modal[data-v-f2901be8] .modal-container{top:var(--header-height)!important;bottom:var(--header-height)!important;height:auto!important;background-color:transparent!important;box-shadow:none!important}.viewer__comparison[data-v-f2901be8]{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:8px;width:100%;height:100%}body.viewer--sidebar-fullscreen #app-sidebar-vue{position:fixed;width:calc(var(--app-sidebar-width) + var(--body-container-margin))}body.viewer--sidebar-fullscreen .app-navigation~#app-content-vue:has(~#app-sidebar-vue:not([style*="display: none"])){flex-basis:calc(100% - 300px - clamp(300px,27vw,500px))}body.viewer--sidebar-fullscreen #app-content-vue:first-child:has(~#app-sidebar-vue:not([style*="display: none"])),body.viewer--sidebar-fullscreen .app-navigation--close~#app-content-vue:has(~#app-sidebar-vue:not([style*="display: none"])),body.viewer--sidebar-fullscreen .app-navigation--closed~#app-content-vue:has(~#app-sidebar-vue:not([style*="display: none"])){flex-basis:calc(100% - clamp(300px,27vw,500px))}body.viewer--sidebar-fullscreen #header{visibility:hidden}audio[data-v-0942d36d]{z-index:20050;align-self:center;max-width:100%;max-height:100%;background-color:#000;justify-self:center}[data-v-0942d36d] .plyr__progress__container{flex:1 1}[data-v-0942d36d] .plyr{--plyr-color-main: var(--color-primary-element);--plyr-control-icon-size: 18px;--plyr-menu-background: var(--color-main-background);--plyr-menu-color: var(--color-main-text);--plyr-audio-controls-background: var(--color-main-background);--plyr-audio-control-color: var(--color-main-text);--plyr-button-size: 44px;--plyr-range-fill-background: var(--color-primary-element)}[data-v-0942d36d] .plyr .plyr__controls{flex-wrap:wrap}[data-v-0942d36d] .plyr .plyr__controls .plyr__volume,[data-v-0942d36d] .plyr .plyr__controls .plyr__progress__container{max-width:100%;flex:1 1}[data-v-0942d36d] .plyr .plyr__controls .plyr__progress__container{flex:4 1}[data-v-0942d36d] .plyr button{width:var(--plyr-button-size);height:var(--plyr-button-size);padding:calc((var(--plyr-button-size) - var(--plyr-control-icon-size)) / 2);cursor:pointer;border:none;background-color:transparent;line-height:inherit}[data-v-0942d36d] .plyr button:hover,[data-v-0942d36d] .plyr button:focus{color:var(--color-main-text);background-color:var(--color-background-hover)}[data-v-0942d36d] .plyr button.plyr__control--overlaid{--plyr-button-size: 50px;width:var(--plyr-button-size);height:var(--plyr-button-size);color:var(--color-primary-element-text);background-color:var(--color-primary-element)}[data-v-0942d36d] .plyr button.plyr__control--overlaid:hover,[data-v-0942d36d] .plyr button.plyr__control--overlaid:focus{background-color:var(--color-primary-element-hover)}[data-v-0942d36d] .plyr .plyr__menu__container button{min-width:120px;width:max-content;margin:0;color:var(--color-main-text)}[data-v-0942d36d] .plyr .plyr__menu__container button:hover,[data-v-0942d36d] .plyr .plyr__menu__container button:focus{color:var(--color-main-text);background-color:var(--color-background-hover)}[data-v-0942d36d] .plyr .plyr__menu__container button.plyr__control--forward{padding-right:28px;padding-right:calc(var(--plyr-control-spacing, 10px) * .7 * 4)}[data-v-0942d36d] .plyr .plyr__menu__container button.plyr__control--back{margin:calc(var(--plyr-control-spacing, 10px) * .7);padding-left:28px;padding-left:calc(var(--plyr-control-spacing, 10px) * .7 * 4)}[data-v-0942d36d] .plyr .plyr__progress__buffer{width:calc(100% + var(--plyr-range-thumb-height, 13px));height:var(--plyr-range-track-height, 5px);background:transparent}@media only screen and (max-width: 480px){[data-v-0942d36d] .plyr .plyr__volume{display:none}}[data-v-0942d36d] .plyr__menu__container{max-height:calc(40vh - var(--plyr-button-size, 44px) / 2 - 20px);overflow-y:auto}@media only screen and (max-width: 500px){[data-v-0942d36d] .plyr--audio{top:calc(17.5vw + 30px)}}.image_container[data-v-b163d20e]{display:flex;align-items:center;height:100%;justify-content:center}img[data-v-b163d20e],video[data-v-b163d20e]{align-self:center;justify-self:center;background-color:#000;transition:none!important;touch-action:none}img[data-v-b163d20e]:hover,video[data-v-b163d20e]:hover{background-image:linear-gradient(45deg,#efefef 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#efefef 75%),linear-gradient(45deg,transparent 75%,#efefef 75%),linear-gradient(45deg,#efefef 25%,#fff 25%);background-size:16px 16px;background-position:0 0,0 0,-8px -8px,8px 8px}img.loaded[data-v-b163d20e],video.loaded[data-v-b163d20e]{background-color:#fff}img.zoomed[data-v-b163d20e],video.zoomed[data-v-b163d20e]{z-index:10010;cursor:move}img.dragging[data-v-b163d20e],video.dragging[data-v-b163d20e]{transition:none!important;cursor:move}.live-photo_play_button[data-v-b163d20e]{position:absolute;top:0;margin:16px!important;display:flex;align-items:center;border:none;gap:4px;border-radius:var(--border-radius);padding:4px 8px;background-color:var(--color-main-background-blur)}video[data-v-f17344fb]{z-index:20050;align-self:center;max-width:100%;max-height:100%!important;background-color:#000;justify-self:center}[data-v-f17344fb] .plyr:-webkit-full-screen video{width:100%!important;height:100%!important}[data-v-f17344fb] .plyr:fullscreen video{width:100%!important;height:100%!important}[data-v-f17344fb] .plyr__progress__container{flex:1 1}[data-v-f17344fb] .plyr{--plyr-color-main: var(--color-primary-element);--plyr-control-icon-size: 18px;--plyr-menu-background: var(--color-main-background);--plyr-menu-color: var(--color-main-text);--plyr-audio-controls-background: var(--color-main-background);--plyr-audio-control-color: var(--color-main-text);--plyr-button-size: 44px;--plyr-range-fill-background: var(--color-primary-element)}[data-v-f17344fb] .plyr .plyr__controls{flex-wrap:wrap}[data-v-f17344fb] .plyr .plyr__controls .plyr__volume,[data-v-f17344fb] .plyr .plyr__controls .plyr__progress__container{max-width:100%;flex:1 1}[data-v-f17344fb] .plyr .plyr__controls .plyr__progress__container{flex:4 1}[data-v-f17344fb] .plyr button{width:var(--plyr-button-size);height:var(--plyr-button-size);padding:calc((var(--plyr-button-size) - var(--plyr-control-icon-size)) / 2);cursor:pointer;border:none;background-color:transparent;line-height:inherit}[data-v-f17344fb] .plyr button:hover,[data-v-f17344fb] .plyr button:focus{color:var(--color-main-text);background-color:var(--color-background-hover)}[data-v-f17344fb] .plyr button.plyr__control--overlaid{--plyr-button-size: 50px;width:var(--plyr-button-size);height:var(--plyr-button-size);color:var(--color-primary-element-text);background-color:var(--color-primary-element)}[data-v-f17344fb] .plyr button.plyr__control--overlaid:hover,[data-v-f17344fb] .plyr button.plyr__control--overlaid:focus{background-color:var(--color-primary-element-hover)}[data-v-f17344fb] .plyr .plyr__menu__container button{min-width:120px;width:max-content;margin:0;color:var(--color-main-text)}[data-v-f17344fb] .plyr .plyr__menu__container button:hover,[data-v-f17344fb] .plyr .plyr__menu__container button:focus{color:var(--color-main-text);background-color:var(--color-background-hover)}[data-v-f17344fb] .plyr .plyr__menu__container button.plyr__control--forward{padding-right:28px;padding-right:calc(var(--plyr-control-spacing, 10px) * .7 * 4)}[data-v-f17344fb] .plyr .plyr__menu__container button.plyr__control--back{margin:calc(var(--plyr-control-spacing, 10px) * .7);padding-left:28px;padding-left:calc(var(--plyr-control-spacing, 10px) * .7 * 4)}[data-v-f17344fb] .plyr .plyr__progress__buffer{width:calc(100% + var(--plyr-range-thumb-height, 13px));height:var(--plyr-range-track-height, 5px);background:transparent}@media only screen and (max-width: 480px){[data-v-f17344fb] .plyr .plyr__volume{display:none}}[data-v-f17344fb] .plyr button{color:#fff}[data-v-f17344fb] .plyr button:hover,[data-v-f17344fb] .plyr button:focus{color:var(--color-primary-element-text);background-color:var(--color-primary-element)}@keyframes plyr-progress{to{background-position:25px 0;background-position:var(--plyr-progress-loading-size,25px) 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{0%{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:inherit;font-family:var(--plyr-font-family,inherit);font-variant-numeric:tabular-nums;font-weight:400;font-weight:var(--plyr-font-weight-regular,400);line-height:1.7;line-height:var(--plyr-line-height,1.7);max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui :after,.plyr--full-ui :before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5464;background:var(--plyr-badge-background,#4a5464);border-radius:2px;border-radius:var(--plyr-badge-border-radius,2px);color:#fff;color:var(--plyr-badge-text-color,#fff);font-size:9px;font-size:var(--plyr-font-size-badge,9px);line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;display:none;font-size:13px;font-size:var(--plyr-font-size-small,13px);left:0;padding:10px;padding:var(--plyr-control-spacing,10px);position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:15px;font-size:var(--plyr-font-size-base,15px);padding:20px;padding:calc(var(--plyr-control-spacing, 10px)*2)}}@media (min-width:768px){.plyr__captions{font-size:18px;font-size:var(--plyr-font-size-large,18px)}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px);transform:translateY(calc(var(--plyr-control-spacing, 10px)*-4))}.plyr__caption{background:#000c;background:var(--plyr-captions-background,#000c);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#fff;color:var(--plyr-captions-text-color,#fff);line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__caption div{display:inline}.plyr__control{background:#0000;border:0;border-radius:4px;border-radius:var(--plyr-control-radius,4px);color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;padding:calc(var(--plyr-control-spacing, 10px)*.7);position:relative;transition:all .3s ease}.plyr__control svg{fill:currentColor;display:block;height:18px;height:var(--plyr-control-icon-size,18px);pointer-events:none;width:18px;width:var(--plyr-control-icon-size,18px)}.plyr__control:focus{outline:0}.plyr__control:focus-visible{outline:2px dashed #00b2ff;outline:2px dashed var(--plyr-focus-visible-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));outline-offset:2px}a.plyr__control{text-decoration:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed,a.plyr__control:after,a.plyr__control:before{display:none}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px;margin-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px;padding-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px;padding:0 calc(var(--plyr-control-spacing, 10px)/2)}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip],.plyr__controls:empty{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:#ffffffe6;background:var(--plyr-menu-background,#ffffffe6);border-radius:8px;border-radius:var(--plyr-menu-radius,8px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-menu-shadow,0 1px 2px #00000026);color:#4a5464;color:var(--plyr-menu-color,#4a5464);font-size:15px;font-size:var(--plyr-font-size-base,15px);margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container:after{border:4px solid #0000;border-top-color:#ffffffe6;border:var(--plyr-menu-arrow-size,4px) solid #0000;border-top-color:var(--plyr-menu-background,#ffffffe6);content:"";height:0;position:absolute;right:14px;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7 - var(--plyr-menu-arrow-size, 4px)/2);top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px;padding:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5464;color:var(--plyr-menu-color,#4a5464);display:flex;font-size:13px;font-size:var(--plyr-font-size-menu,var(--plyr-font-size-small,13px));padding:4.66667px 10.5px;padding:calc(var(--plyr-control-spacing, 10px)*.7/1.5) calc(var(--plyr-control-spacing, 10px)*.7*1.5);-webkit-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control:after{border:4px solid #0000;border:var(--plyr-menu-item-arrow-size,4px) solid #0000;content:"";position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px;padding-right:calc(var(--plyr-control-spacing, 10px)*.7*4)}.plyr__menu__container .plyr__control--forward:after{border-left-color:#728197;border-left-color:var(--plyr-menu-arrow-color,#728197);right:6.5px;right:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--forward:focus-visible:after,.plyr__menu__container .plyr__control--forward:hover:after{border-left-color:initial}.plyr__menu__container .plyr__control--back{font-weight:400;font-weight:var(--plyr-font-weight-regular,400);margin:7px;margin:calc(var(--plyr-control-spacing, 10px)*.7);margin-bottom:3.5px;margin-bottom:calc(var(--plyr-control-spacing, 10px)*.7/2);padding-left:28px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*4);position:relative;width:calc(100% - 14px);width:calc(100% - var(--plyr-control-spacing, 10px)*.7*2)}.plyr__menu__container .plyr__control--back:after{border-right-color:#728197;border-right-color:var(--plyr-menu-arrow-color,#728197);left:6.5px;left:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--back:before{background:#dcdfe5;background:var(--plyr-menu-back-border-color,#dcdfe5);box-shadow:0 1px #fff;box-shadow:0 1px 0 var(--plyr-menu-back-border-shadow-color,#fff);content:"";height:1px;left:0;margin-top:3.5px;margin-top:calc(var(--plyr-control-spacing, 10px)*.7/2);overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back:focus-visible:after,.plyr__menu__container .plyr__control--back:hover:after{border-right-color:initial}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container .plyr__control[role=menuitemradio]:after,.plyr__menu__container .plyr__control[role=menuitemradio]:before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]:before{background:#0000001a;content:"";display:block;flex-shrink:0;height:16px;margin-right:10px;margin-right:var(--plyr-control-spacing,10px);transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]:after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:before{background:#00b2ff;background:var(--plyr-control-toggle-checked-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)))}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio]:focus-visible:before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover:before{background:#23282f1a}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-5px;margin-right:calc(var(--plyr-control-spacing, 10px)*.7*-1 - -2px);overflow:hidden;padding-left:24.5px;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*3.5);pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-radius:26px;border-radius:calc(var(--plyr-range-thumb-height, 13px)*2);color:#00b2ff;color:var(--plyr-range-fill-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));display:block;height:19px;height:calc(var(--plyr-range-thumb-active-shadow-width, 3px)*2 + var(--plyr-range-thumb-height, 13px));margin:0;min-width:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:#0000;background-image:linear-gradient(90deg,currentColor 0,#0000 0);background-image:linear-gradient(to right,currentColor var(--value,0),#0000 var(--value,0));border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-webkit-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33);height:13px;height:var(--plyr-range-thumb-height,13px);margin-top:-4px;margin-top:calc((var(--plyr-range-thumb-height, 13px) - var(--plyr-range-track-height, 5px))/2*-1);position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-track{background:#0000;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33);height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px)}.plyr--full-ui input[type=range]::-ms-track{color:#0000}.plyr--full-ui input[type=range]::-ms-fill-upper,.plyr--full-ui input[type=range]::-ms-track{background:#0000;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:#0000;background:currentColor;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33);height:13px;height:var(--plyr-range-thumb-height,13px);margin-top:0;position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]:focus-visible::-webkit-slider-runnable-track{outline:2px dashed #00b2ff;outline:2px dashed var(--plyr-focus-visible-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));outline-offset:2px}.plyr--full-ui input[type=range]:focus-visible::-moz-range-track{outline:2px dashed #00b2ff;outline:2px dashed var(--plyr-focus-visible-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));outline-offset:2px}.plyr--full-ui input[type=range]:focus-visible::-ms-track{outline:2px dashed #00b2ff;outline:2px dashed var(--plyr-focus-visible-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));outline-offset:2px}.plyr__poster{background-color:#000;background-color:var(--plyr-video-background,var(--plyr-video-background,#000));background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr--youtube.plyr--paused.plyr__poster-enabled:not(.plyr--stopped) .plyr__poster{display:none}.plyr__time{font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__time+.plyr__time:before{content:"⁄";margin-right:10px;margin-right:var(--plyr-control-spacing,10px)}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr__tooltip{background:#fff;background:var(--plyr-tooltip-background,#fff);border-radius:5px;border-radius:var(--plyr-tooltip-radius,5px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px #00000026);color:#4a5464;color:var(--plyr-tooltip-color,#4a5464);font-size:13px;font-size:var(--plyr-font-size-small,13px);font-weight:400;font-weight:var(--plyr-font-weight-regular,400);left:50%;line-height:1.3;margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:5px 7.5px;padding:calc(var(--plyr-control-spacing, 10px)/2) calc(var(--plyr-control-spacing, 10px)/2*1.5);pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;white-space:nowrap;z-index:2}.plyr__tooltip:before{border-left:4px solid #0000;border-left:var(--plyr-tooltip-arrow-size,4px) solid #0000;border-right:4px solid #0000;border-right:var(--plyr-tooltip-arrow-size,4px) solid #0000;border-top:4px solid #fff;border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,#fff);bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:50%;position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr .plyr__control:focus-visible .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translateY(10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip:before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip:before{left:16px;left:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7)}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translateY(10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip:before{left:auto;right:16px;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7);transform:translate(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control:focus-visible .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child:focus-visible .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child:focus-visible .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0) scale(1)}.plyr__progress{left:6.5px;left:calc(var(--plyr-range-thumb-height, 13px)*.5);margin-right:13px;margin-right:var(--plyr-range-thumb-height,13px);position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-left:calc(var(--plyr-range-thumb-height, 13px)*-.5);margin-right:-6.5px;margin-right:calc(var(--plyr-range-thumb-height, 13px)*-.5);width:calc(100% + 13px);width:calc(100% + var(--plyr-range-thumb-height, 13px))}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{left:0;max-width:120px;overflow-wrap:break-word}.plyr__progress__buffer{-webkit-appearance:none;background:#0000;border:0;border-radius:100px;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin-top:-2.5px;margin-top:calc((var(--plyr-range-track-height, 5px)/2)*-1);padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:#0000}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,#23282f99 25%,#0000 0 50%,#23282f99 0 75%,#0000 0,#0000);background-image:linear-gradient(-45deg,var(--plyr-progress-loading-background,#23282f99) 25%,#0000 25%,#0000 50%,var(--plyr-progress-loading-background,#23282f99) 50%,var(--plyr-progress-loading-background,#23282f99) 75%,#0000 75%,#0000);background-repeat:repeat-x;background-size:25px 25px;background-size:var(--plyr-progress-loading-size,25px) var(--plyr-progress-loading-size,25px);color:#0000}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:#ffffff40;background-color:var(--plyr-video-progress-buffered-background,#ffffff40)}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:#c1c8d199;background-color:var(--plyr-audio-progress-buffered-background,#c1c8d199)}.plyr__progress__marker{background-color:#fff;background-color:var(--plyr-progress-marker-background,#fff);border-radius:1px;height:5px;height:var(--plyr-range-track-height,5px);position:absolute;top:50%;transform:translate(-50%,-50%);width:3px;width:var(--plyr-progress-marker-width,3px);z-index:3}.plyr__volume{align-items:center;display:flex;position:relative}.plyr__volume input[type=range]{margin-left:5px;margin-left:calc(var(--plyr-control-spacing, 10px)/2);margin-right:5px;margin-right:calc(var(--plyr-control-spacing, 10px)/2);max-width:90px;min-width:60px;position:relative;z-index:2}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:#fff;background:var(--plyr-audio-controls-background,#fff);border-radius:inherit;color:#4a5464;color:var(--plyr-audio-control-color,#4a5464);padding:10px;padding:var(--plyr-control-spacing,10px)}.plyr--audio .plyr__control:focus-visible,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-audio-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-audio-control-color-hover,#fff)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,#c1c8d199))}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,#c1c8d199))}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:#c1c8d199;background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,#c1c8d199))}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#23282f1a)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#23282f1a)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #23282f1a;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#23282f1a)}.plyr--audio .plyr__progress__buffer{color:#c1c8d199;color:var(--plyr-audio-progress-buffered-background,#c1c8d199)}.plyr--video{overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));border-radius:inherit;height:100%;margin:auto;overflow:hidden;position:relative;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{aspect-ratio:16/9}@supports not (aspect-ratio:16/9){.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%;position:relative}}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:linear-gradient(#0000,#000000bf);background:var(--plyr-video-controls-background,linear-gradient(#0000,#000000bf));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;color:var(--plyr-video-control-color,#fff);left:0;padding:5px;padding:calc(var(--plyr-control-spacing, 10px)/2);padding-top:20px;padding-top:calc(var(--plyr-control-spacing, 10px)*2);position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:10px;padding:var(--plyr-control-spacing,10px);padding-top:35px;padding-top:calc(var(--plyr-control-spacing, 10px)*3.5)}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control:focus-visible,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-video-control-color-hover,#fff)}.plyr__control--overlaid{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));border:0;border-radius:100%;color:#fff;color:var(--plyr-video-control-color,#fff);display:none;left:50%;opacity:.9;padding:15px;padding:calc(var(--plyr-control-spacing, 10px)*1.5);position:absolute;top:50%;transform:translate(-50%,-50%);transition:.3s;z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{opacity:1}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,#ffffff40))}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,#ffffff40))}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:#ffffff40;background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,#ffffff40))}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#ffffff80)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#ffffff80)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px #23282f26,0 0 0 1px #23282f33,0 0 0 3px #ffffff80;box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px #23282f26,0 0 0 1px #23282f33),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,#ffffff80)}.plyr--video .plyr__progress__buffer{color:#ffffff40;color:var(--plyr-video-progress-buffered-background,#ffffff40)}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen video{height:100%}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;inset:0;margin:0;position:fixed;width:100%;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr__ads{border-radius:inherit;cursor:pointer;inset:0;overflow:hidden;position:absolute;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads:after{background:#23282f;border-radius:2px;bottom:10px;bottom:var(--plyr-control-spacing,10px);color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;right:var(--plyr-control-spacing,10px);z-index:3}.plyr__ads:empty:after{display:none}.plyr__cues{background:currentColor;display:block;height:5px;height:var(--plyr-range-track-height,5px);left:0;opacity:.8;position:absolute;top:50%;transform:translateY(-50%);width:3px;z-index:3}.plyr__preview-thumb{background-color:#fff;background-color:var(--plyr-tooltip-background,#fff);border-radius:8px;border-radius:var(--plyr-menu-radius,8px);bottom:100%;box-shadow:0 1px 2px #00000026;box-shadow:var(--plyr-tooltip-shadow,0 1px 2px #00000026);margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:3px;pointer-events:none;position:absolute;transform:translateY(10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0) scale(1)}.plyr__preview-thumb:before{border-left:4px solid #0000;border-left:var(--plyr-tooltip-arrow-size,4px) solid #0000;border-right:4px solid #0000;border-right:var(--plyr-tooltip-arrow-size,4px) solid #0000;border-top:4px solid #fff;border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,#fff);bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:calc(50% + var(--preview-arrow-offset));position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c8d1;border-radius:7px;border-radius:calc(var(--plyr-menu-radius, 8px) - 1px);overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img,.plyr__preview-thumb__image-container:after{height:100%;left:0;position:absolute;top:0;width:100%}.plyr__preview-thumb__image-container:after{border-radius:inherit;box-shadow:inset 0 0 0 1px #00000026;content:"";pointer-events:none}.plyr__preview-thumb__image-container img{max-height:none;max-width:none}.plyr__preview-thumb__time-container{background:linear-gradient(#0000,#000000bf);background:var(--plyr-video-controls-background,linear-gradient(#0000,#000000bf));border-bottom-left-radius:7px;border-bottom-left-radius:calc(var(--plyr-menu-radius, 8px) - 1px);border-bottom-right-radius:7px;border-bottom-right-radius:calc(var(--plyr-menu-radius, 8px) - 1px);bottom:0;left:0;line-height:1.1;padding:20px 6px 6px;position:absolute;right:0;z-index:3}.plyr__preview-thumb__time-container span{color:#fff;font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__preview-scrubbing{filter:blur(1px);height:100%;inset:0;margin:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);border:0!important;height:1px!important;overflow:hidden;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}main.viewer__hidden-fullscreen{height:100vh!important;width:100vw!important;margin:0!important}footer.viewer__hidden-fullscreen{display:none!important} diff --git a/css/main-fKdjIrca.chunk.css b/css/main-fKdjIrca.chunk.css deleted file mode 100644 index 92019b2b6..000000000 --- a/css/main-fKdjIrca.chunk.css +++ /dev/null @@ -1,7 +0,0 @@ -#emptycontent[data-v-6a8e09db]{margin:0;padding:10% 5%;background-color:var(--color-main-background)}/*! - * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */.toastify.dialogs{min-width:200px;background:none;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 6px 0 var(--color-box-shadow);padding:0 12px;margin-top:45px;position:fixed;z-index:10100;border-radius:var(--border-radius);display:flex;align-items:center;min-height:50px}.toastify.dialogs .toast-loader-container,.toastify.dialogs .toast-undo-container{display:flex;align-items:center;width:100%}.toastify.dialogs .toast-undo-button,.toastify.dialogs .toast-close{position:static;overflow:hidden;box-sizing:border-box;min-width:44px;height:100%;padding:12px;white-space:nowrap;background-repeat:no-repeat;background-position:center;background-color:transparent;min-height:0}.toastify.dialogs .toast-undo-button.toast-close,.toastify.dialogs .toast-close.toast-close{text-indent:0;opacity:.4;border:none;min-height:44px;margin-left:10px;font-size:0}.toastify.dialogs .toast-undo-button.toast-close:before,.toastify.dialogs .toast-close.toast-close:before{background-image:url("data:image/svg+xml,%3csvg%20viewBox='0%200%2016%2016'%20height='16'%20width='16'%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3e%3cpath%20d='M6.4%2019%205%2017.6l5.6-5.6L5%206.4%206.4%205l5.6%205.6L17.6%205%2019%206.4%2013.4%2012l5.6%205.6-1.4%201.4-5.6-5.6L6.4%2019Z'%20style='fill-rule:nonzero'%20transform='matrix(.85714%200%200%20.85714%20-2.286%20-2.286)'/%3e%3c/svg%3e");content:" ";filter:var(--background-invert-if-dark);display:inline-block;width:16px;height:16px}.toastify.dialogs .toast-undo-button.toast-undo-button,.toastify.dialogs .toast-close.toast-undo-button{height:calc(100% - 6px);margin:3px 3px 3px 12px}.toastify.dialogs .toast-undo-button:hover,.toastify.dialogs .toast-undo-button:focus,.toastify.dialogs .toast-undo-button:active,.toastify.dialogs .toast-close:hover,.toastify.dialogs .toast-close:focus,.toastify.dialogs .toast-close:active{cursor:pointer;opacity:1}.toastify.dialogs.toastify-top{right:10px}.toastify.dialogs.toast-with-click{cursor:pointer}.toastify.dialogs.toast-error{border-left:3px solid var(--color-element-error, var(--color-error))}.toastify.dialogs.toast-info{border-left:3px solid var(--color-element-info, var(--color-primary))}.toastify.dialogs.toast-warning{border-left:3px solid var(--color-element-warning, var(--color-warning))}.toastify.dialogs.toast-success,.toastify.dialogs.toast-undo{border-left:3px solid var(--color-element-success, var(--color-success))}.toastify.dialogs.toast-loading{border-left:3px solid var(--color-element-info, var(--color-primary))}.toastify.dialogs.toast-loading .toast-loader{display:inline-block;width:20px;height:20px;animation:rotate var(--animation-duration, .8s) linear infinite;margin-left:auto}.theme--dark .toastify.dialogs .toast-close.toast-close:before{background-image:url("data:image/svg+xml,%3csvg%20viewBox='0%200%2016%2016'%20height='16'%20width='16'%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2'%3e%3cpath%20d='M6.4%2019%205%2017.6l5.6-5.6L5%206.4%206.4%205l5.6%205.6L17.6%205%2019%206.4%2013.4%2012l5.6%205.6-1.4%201.4-5.6-5.6L6.4%2019Z'%20style='fill:%23fff;fill-rule:nonzero'%20transform='matrix(.85714%200%200%20.85714%20-2.286%20-2.286)'/%3e%3c/svg%3e")}.nc-generic-dialog .dialog__actions{justify-content:space-between;min-width:calc(100% - 12px)}._pickerEntry_xk2pl_1:not(:last-of-type){border-bottom:1px solid var(--color-border)}._pickerEntryItem_xk2pl_5{display:flex;align-items:center;height:64px}._pickerEntryIcon_xk2pl_11,._pickerEntryPreview_xk2pl_12{height:64px;width:64px;margin:0 var(--secondary-margin);display:block;flex:0 0 64px}._pickerEntryIcon_xk2pl_11{color:var(--color-text-maxcontrast)}._pickerEntryIcon_folder_xk2pl_24{color:var(--color-primary-element)}._pickerEntryPreview_xk2pl_12{overflow:hidden;border-radius:calc(var(--border-radius) * 2);object-fit:cover}._pickerEntryDescription_xk2pl_34{display:flex;flex-direction:column}._pickerEntryDescription_xk2pl_34 span{white-space:nowrap}._picker_6q4ek_1{--margin: 36px;--secondary-margin: 18px}._pickerHeader_6q4ek_6{position:sticky;z-index:10;top:0;padding:0 var(--margin);padding-bottom:var(--secondary-margin);background-color:var(--color-main-background)}._pickerForm_6q4ek_15{position:relative;overflow:auto;padding:0 var(--margin);margin-top:calc(-1 * var(--secondary-margin))}._pickerActionSubmit_disabled_6q4ek_22{opacity:.7;filter:saturate(50%)}._pickerSelectAll_6q4ek_27{display:grid;width:100%;margin-top:calc(var(--secondary-margin) * 1.5);padding-bottom:var(--secondary-margin);grid-template-columns:1fr 1fr}._pickerSelectAll_6q4ek_27 legend{display:flex;align-items:center;width:100%;margin-bottom:calc(var(--secondary-margin) / 2)}._pickerSelectAll_6q4ek_27._conflict-picker__all_6q4ek_40{position:sticky;top:0;margin:0;padding:var(--secondary-margin) 0;background-image:linear-gradient(to top,transparent,var(--color-main-background-blur) 10%,var(--color-main-background) 15%)}._pickerSelectAll_6q4ek_27._conflict-picker__all_6q4ek_40+fieldset{margin-top:0}._pickerSelectAll_6q4ek_27._conflict-picker__all_6q4ek_40 :deep(label){font-weight:700}._file-picker__file-icon_3v9zx_9{position:relative;width:32px;height:32px;min-width:32px;min-height:32px;background-repeat:no-repeat;background-size:contain;display:flex;justify-content:center}._file-picker__file-icon--primary_3v9zx_21{color:var(--color-primary-element)}._file-picker__file-icon-overlay_3v9zx_25{color:var(--color-primary-element-text);position:absolute;inset-block-start:10px}tr.file-picker__row[data-v-7857e8bd]{height:var(--row-height, 50px)}tr.file-picker__row td[data-v-7857e8bd]{cursor:pointer;overflow:hidden;text-overflow:ellipsis;border-bottom:none}tr.file-picker__row td.row-checkbox[data-v-7857e8bd]{padding:0 2px}tr.file-picker__row td[data-v-7857e8bd]:not(.row-checkbox){padding-inline:14px 0}tr.file-picker__row td.row-size[data-v-7857e8bd]{text-align:end;padding-inline:0 14px}tr.file-picker__row td.row-name[data-v-7857e8bd]{padding-inline:2px 0}.file-picker__row[data-v-7857e8bd] *{cursor:pointer}.file-picker__row--selected[data-v-7857e8bd]{background-color:var(--color-background-dark)}.file-picker__row--not-navigatable[data-v-7857e8bd]{filter:saturate(.7);opacity:.7}.file-picker__row--not-navigatable[data-v-7857e8bd] *,.file-picker__row--not-pickable[data-v-7857e8bd] *{cursor:default!important}.file-picker__row[data-v-7857e8bd]:hover{background-color:var(--color-background-hover)}.file-picker__name-container[data-v-7857e8bd]{display:flex;justify-content:start;align-items:center;height:100%}.file-picker__file-name[data-v-7857e8bd]{padding-inline-start:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}.file-picker__file-extension[data-v-7857e8bd]{color:var(--color-text-maxcontrast);min-width:fit-content}/*! -* SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors -* SPDX-License-Identifier: AGPL-3.0-or-later -*/tr.file-picker__row[data-v-1f96131b]{height:var(--row-height, 50px)}tr.file-picker__row td[data-v-1f96131b]{cursor:pointer;overflow:hidden;text-overflow:ellipsis;border-bottom:none}tr.file-picker__row td.row-checkbox[data-v-1f96131b]{padding:0 2px}tr.file-picker__row td[data-v-1f96131b]:not(.row-checkbox){padding-inline:14px 0}tr.file-picker__row td.row-size[data-v-1f96131b]{text-align:end;padding-inline:0 14px}tr.file-picker__row td.row-name[data-v-1f96131b]{padding-inline:2px 0}@keyframes gradient-1f96131b{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.loading-row .row-checkbox[data-v-1f96131b]{text-align:center!important}.loading-row span[data-v-1f96131b]{display:inline-block;height:24px;background:linear-gradient(to right,var(--color-background-darker),var(--color-text-maxcontrast),var(--color-background-darker));background-size:600px 100%;border-radius:var(--border-radius);animation:gradient-1f96131b 12s ease infinite}.loading-row .row-wrapper[data-v-1f96131b]{display:inline-flex;align-items:center}.loading-row .row-checkbox span[data-v-1f96131b]{width:24px}.loading-row .row-name span[data-v-1f96131b]:last-of-type{margin-inline-start:6px;width:130px}.loading-row .row-size span[data-v-1f96131b]{width:80px}.loading-row .row-modified span[data-v-1f96131b]{width:90px}.file-picker__header-preview[data-v-412efd5c]{width:22px;height:32px;flex:0 0 auto}.file-picker__files[data-v-412efd5c]{margin:2px;margin-inline-start:12px;overflow:scroll auto}.file-picker__files table[data-v-412efd5c]{width:100%;max-height:100%;table-layout:fixed}.file-picker__files th[data-v-412efd5c]{position:sticky;z-index:1;top:0;background-color:var(--color-main-background);padding:2px}.file-picker__files th .header-wrapper[data-v-412efd5c]{display:flex}.file-picker__files th.row-checkbox[data-v-412efd5c]{width:44px}.file-picker__files th.row-name[data-v-412efd5c]{width:230px}.file-picker__files th.row-size[data-v-412efd5c]{width:100px}.file-picker__files th.row-modified[data-v-412efd5c]{width:120px}.file-picker__files th[data-v-412efd5c]:not(.row-size) .button-vue__wrapper{justify-content:start;flex-direction:row-reverse}.file-picker__files th[data-v-412efd5c]:not(.row-size) .button-vue{padding-inline:16px 4px}.file-picker__files th.row-size[data-v-412efd5c] .button-vue__wrapper{justify-content:end}.file-picker__files th[data-v-412efd5c] .button-vue__wrapper{color:var(--color-text-maxcontrast)}.file-picker__files th[data-v-412efd5c] .button-vue__wrapper .button-vue__text{font-weight:400}.file-picker__breadcrumbs[data-v-b448b141]{flex-grow:0!important}.file-picker__side[data-v-e1c54e23]{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;min-width:200px;padding:2px;margin-block-start:7px;overflow:auto}.file-picker__side[data-v-e1c54e23] .button-vue__wrapper{justify-content:start}.file-picker__filter-input[data-v-e1c54e23]{margin-block:7px;max-width:260px}@media (max-width: 736px){.file-picker__side[data-v-e1c54e23]{flex-direction:row;min-width:unset}}@media (max-width: 512px){.file-picker__side[data-v-e1c54e23]{flex-direction:row;min-width:unset}.file-picker__filter-input[data-v-e1c54e23]{max-width:unset}}.file-picker__navigation{padding-inline:8px 2px}.file-picker__navigation,.file-picker__navigation *{box-sizing:border-box}.file-picker__navigation .v-select.select{min-width:220px}@media (min-width: 513px) and (max-width: 736px){.file-picker__navigation{gap:11px}}@media (max-width: 512px){.file-picker__navigation{flex-direction:column-reverse!important}}.file-picker__view[data-v-9b6534b1]{height:50px;display:flex;justify-content:start;align-items:center}.file-picker__view h3[data-v-9b6534b1]{font-weight:700;height:fit-content;margin:0}.file-picker__main[data-v-9b6534b1]{box-sizing:border-box;width:100%;display:flex;flex-direction:column;min-height:0;flex:1;padding-inline:2px}.file-picker__main[data-v-9b6534b1] *{box-sizing:border-box}[data-v-9b6534b1] .file-picker{height:min(80vh,800px)!important}@media (max-width: 512px){[data-v-9b6534b1] .file-picker{height:calc(100% - 16px - var(--default-clickable-area))!important}}[data-v-9b6534b1] .file-picker__content{display:flex;flex-direction:column;overflow:hidden}.public-auth-prompt__text[data-v-bd4b7f1b]{font-size:1.25em;margin-block:0 calc(3 * var(--default-grid-baseline))}.public-auth-prompt__header[data-v-bd4b7f1b]{margin-block:0 calc(3 * var(--default-grid-baseline))}.public-auth-prompt__header[data-v-bd4b7f1b]:first-child{margin-top:0}.public-auth-prompt__input[data-v-bd4b7f1b]{margin-block:calc(4 * var(--default-grid-baseline)) calc(2 * var(--default-grid-baseline))}.viewer.modal-mask[data-v-cacbde93]{transition:width ease .1s,background-color .3s ease}.viewer[data-v-cacbde93] .modal-container,.viewer__content[data-v-cacbde93]{overflow:visible!important;cursor:pointer}.viewer--split[data-v-cacbde93]{display:flex}.viewer--split .viewer__file--active[data-v-cacbde93]{width:50%;left:0;position:relative}.viewer[data-v-cacbde93] .modal-wrapper .modal-container{top:var(--header-height);bottom:var(--header-height);height:auto;background-color:transparent;box-shadow:none}.viewer__content[data-v-cacbde93]{width:100%;height:100%}.viewer__file-wrapper[data-v-cacbde93]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.viewer__file-wrapper--hidden[data-v-cacbde93]{position:absolute;z-index:-1;left:-10000px}.viewer__file[data-v-cacbde93]{transition:height .1s ease,width .1s ease}.viewer.theme--dark[data-v-cacbde93] .button-vue--vue-tertiary:hover{background-color:#ffffff14!important}.viewer.theme--dark[data-v-cacbde93] .button-vue--vue-tertiary:focus,.viewer.theme--dark[data-v-cacbde93] .button-vue--vue-tertiary:focus-visible{background-color:#ffffff14!important;outline:2px solid var(--color-primary-element)!important}.viewer.theme--dark[data-v-cacbde93] .button-vue--vue-tertiary.action-item__menutoggle{background-color:transparent}.viewer.theme--undefined.modal-mask[data-v-cacbde93]{background-color:transparent!important}.viewer.theme--light.modal-mask[data-v-cacbde93]{background-color:#ffffffeb!important}.viewer.theme--light[data-v-cacbde93] .modal-header__name,.viewer.theme--light[data-v-cacbde93] .modal-header .icons-menu button svg{color:#000!important}.viewer.theme--default.modal-mask[data-v-cacbde93]{background-color:var(--color-main-background)!important}.viewer.theme--default[data-v-cacbde93] .modal-header__name,.viewer.theme--default[data-v-cacbde93] .modal-header .icons-menu{color:var(--color-main-text)!important}.viewer.theme--default[data-v-cacbde93] .modal-header__name button svg,.viewer.theme--default[data-v-cacbde93] .modal-header__name a,.viewer.theme--default[data-v-cacbde93] .modal-header .icons-menu button svg,.viewer.theme--default[data-v-cacbde93] .modal-header .icons-menu a{color:var(--color-main-text)!important}.viewer.image--fullscreen[data-v-cacbde93] .modal-header .modal-header__name{opacity:0}.viewer.image--fullscreen[data-v-cacbde93] .modal-header .icons-menu{background-color:#0003}.viewer.image--fullscreen[data-v-cacbde93] .modal-wrapper .modal-container{top:0;bottom:0;height:100%}body:has(#viewer) #app-sidebar-vue{position:fixed;width:calc(var(--app-sidebar-width) + var(--body-container-margin))}body:has(#viewer) .app-navigation~#app-content-vue:has(~#app-sidebar-vue:not([style*="display: none"])){flex-basis:calc(100% - 300px - clamp(300px,27vw,500px))}body:has(#viewer) #app-content-vue:first-child:has(~#app-sidebar-vue:not([style*="display: none"])),body:has(#viewer) .app-navigation--close~#app-content-vue:has(~#app-sidebar-vue:not([style*="display: none"])),body:has(#viewer) .app-navigation--closed~#app-content-vue:has(~#app-sidebar-vue:not([style*="display: none"])){flex-basis:calc(100% - clamp(300px,27vw,500px))}body:has(#viewer) #header{visibility:hidden}.component-fade-enter-active,.component-fade-leave-active{transition:opacity .3s ease}.component-fade-enter,.component-fade-leave-to{opacity:0}#viewer.modal-mask--dark .action-item--single.icon-menu-sidebar{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='16'%20width='16'%20version='1.1'%20viewbox='0%200%2016%2016'%3e%3cpath%20d='m2%202c-0.554%200-1%200.446-1%201s0.446%201%201%201h12c0.554%200%201-0.446%201-1s-0.446-1-1-1h-12zm9.717%204.0059c-1.247%200-2.1428%201.0199-2.1428%201.998%200%200.9995%200.0726%201.7127%200.5718%202.4981%200.16%200.207%200.347%200.251%200.5%200.43%200.097%200.357%200.171%200.713%200.071%201.07-0.311%200.109-0.607%200.237-0.9065%200.357-0.364-0.195-0.7863-0.357-1.1503-0.5-0.05-0.2-0.0129-0.347%200.0371-0.535%200.0856-0.089%200.163-0.129%200.2558-0.215%200.2642-0.321%200.2793-0.864%200.2793-1.2496%200-0.5712-0.5135-0.9981-1.0703-0.9981-0.6211%200-1.0723%200.5126-1.0723%200.9981h-0.0136c0%200.4996%200.0353%200.8576%200.2851%201.2496%200.0714%200.107%200.1729%200.126%200.25%200.215%200.0481%200.179%200.0859%200.357%200.0352%200.535-0.4569%200.16-0.8863%200.357-1.2832%200.571-0.2999%200.214-0.1668%200.131-0.3574%200.822-0.0886%200.357%200.928%200.521%201.6562%200.578-0.0357%200.196-0.0857%200.457-0.2285%200.957-0.2285%200.893%203.1074%201.213%204.2834%201.213%201.735%200%204.507-0.325%204.269-1.213-0.371-1.385-0.15-1.221-0.701-1.642-0.778-0.467-1.749-0.834-2.568-1.143-0.107-0.398-0.03-0.692%200.07-1.07%200.168-0.179%200.357-0.259%200.514-0.43%200.492-0.6312%200.556-1.7299%200.556-2.4981%200-1.1323-1.019-1.998-2.14-1.998zm-9.717%200.9941c-0.554%200-1%200.446-1%201s0.446%201%201%201h4.2852c0.0891-0.1855%200.2-0.3648%200.3515-0.5195%200.3721-0.3801%200.9171-0.5988%201.4883-0.6192h0.0098%200.0097c0.1729%200.017%200.3042%200.0597%200.4297%200.1426%200-0.3488%200.0747-0.6853%200.1953-1.0039h-6.7695zm0%205c-0.554%200-1%200.446-1%201s0.446%201%201%201h3.25c-0.0375-0.049-0.0777-0.09-0.1113-0.152-0.1221-0.228-0.1706-0.568-0.1035-0.838l0.0019-0.012%200.0039-0.012c0.0822-0.298%200.0556-0.322%200.1445-0.615%200.0313-0.103%200.1114-0.245%200.1993-0.371h-3.3848z'%20fill='%23fff'/%3e%3c/svg%3e")}#viewer.modal-mask--dark .action-item--single.icon-download{background-image:var(--icon-download-fff)}.ui-autocomplete{z-index:2050!important} diff --git a/css/previewUtils-DsspQ6dL.chunk.css b/css/previewUtils-DsspQ6dL.chunk.css deleted file mode 100644 index 9567e0708..000000000 --- a/css/previewUtils-DsspQ6dL.chunk.css +++ /dev/null @@ -1 +0,0 @@ -@media only screen and (max-width: 512px){.dialog__modal .modal-wrapper--small .modal-container{width:fit-content;height:unset;max-height:90%;position:relative;top:unset;border-radius:var(--border-radius-element)}}.material-design-icon[data-v-24e91b99]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dialog[data-v-24e91b99]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container{display:flex!important;padding-block:4px 0;padding-inline:12px 0}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content{display:flex;flex-direction:column;overflow:hidden}.dialog__wrapper[data-v-24e91b99]{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.dialog__wrapper--collapsed[data-v-24e91b99]{flex-direction:column}.dialog__navigation[data-v-24e91b99]{display:flex;flex-shrink:0}.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99]{flex-direction:column;overflow:hidden auto;height:100%;min-width:200px;margin-inline-end:20px}.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99]{flex-direction:row;justify-content:space-between;overflow:auto hidden;width:100%;min-width:100%}.dialog__name[data-v-24e91b99]{font-size:21px;text-align:center;height:fit-content;min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);overflow-wrap:break-word;margin-block:0 12px}.dialog__content[data-v-24e91b99]{flex:1;min-height:0;overflow:auto;padding-inline-end:12px}.dialog__text[data-v-24e91b99]{padding-block-end:6px}.dialog__actions[data-v-24e91b99]{display:flex;gap:6px;align-content:center;justify-content:end;width:100%;max-width:100%;padding-inline:0 12px;margin-inline:0;margin-block:0}.dialog__actions[data-v-24e91b99]:not(:empty){margin-block:6px 12px}@media only screen and (max-width: 512px){.dialog__name[data-v-24e91b99]{text-align:start;margin-inline-end:var(--default-clickable-area)}}.material-design-icon[data-v-09093702]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-09093702]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:700}.button-vue--size-small[data-v-09093702]{--button-size: var(--clickable-area-small)}.button-vue--size-large[data-v-09093702]{--button-size: var(--clickable-area-large)}.button-vue[data-v-09093702] *{cursor:pointer}.button-vue[data-v-09093702]:focus{outline:none}.button-vue[data-v-09093702]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-09093702]:disabled *{cursor:default}.button-vue[data-v-09093702]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-09093702]:active:not(:disabled){background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-09093702]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-09093702]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-09093702]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-09093702]{flex-direction:row-reverse}.button-vue--reverse[data-v-09093702]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-09093702]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-09093702]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-09093702]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-09093702] svg{height:16px;width:16px}.button-vue__text[data-v-09093702]{font-weight:700;margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-09093702]:empty{display:none}.button-vue[data-v-09093702]:has(.button-vue__text:empty){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-09093702]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-09093702]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-09093702]{width:100%}.button-vue[data-v-09093702]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-09093702]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-09093702]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-09093702]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-09093702]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-09093702]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-09093702]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-09093702]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-09093702]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary-no-background[data-v-09093702]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-09093702]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-09093702]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-09093702]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-09093702]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-09093702]:active{background-color:var(--color-success)}.button-vue--warning[data-v-09093702]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-09093702]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-09093702]:active{background-color:var(--color-warning)}.button-vue--error[data-v-09093702]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-09093702]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-09093702]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-09093702]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-09093702],.button-vue--legacy.button-vue--success[data-v-09093702],.button-vue--legacy.button-vue--warning[data-v-09093702]{color:#fff}.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}.material-design-icon[data-v-cf399190]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon[data-v-cf399190]{overflow:hidden}.loading-icon svg[data-v-cf399190]{animation:rotate var(--animation-duration, .8s) linear infinite}.material-design-icon[data-v-3a70b8e0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-3a70b8e0]{position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color),.5)}.modal-mask[data-v-3a70b8e0],.modal-mask[data-v-3a70b8e0] *{box-sizing:border-box}.modal-mask--opaque[data-v-3a70b8e0]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-3a70b8e0]{--backdrop-color: 255, 255, 255}.modal-header[data-v-3a70b8e0]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:space-between;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-3a70b8e0]{overflow-x:hidden;width:100%;padding-inline:12px 0;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width: 1024px){.modal-header__name[data-v-3a70b8e0]{padding-inline-start:calc(var(--header-height) * var(--5a2241b0));text-align:center}}.modal-header .icons-menu[data-v-3a70b8e0]{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end}.modal-header .icons-menu .header-close[data-v-3a70b8e0]{display:flex;align-items:center;justify-content:center;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-3a70b8e0]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3a70b8e0],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3a70b8e0]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__icon[data-v-3a70b8e0]{width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-3a70b8e0] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-3a70b8e0] .action-item--single{width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-3a70b8e0] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-wrapper[data-v-3a70b8e0]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper .prev[data-v-3a70b8e0],.modal-wrapper .next[data-v-3a70b8e0]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-3a70b8e0]:focus-visible,.modal-wrapper .next[data-v-3a70b8e0]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-3a70b8e0]{inset-inline-start:2px}.modal-wrapper .next[data-v-3a70b8e0]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-3a70b8e0]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container);background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003;overflow:auto}.modal-wrapper .modal-container__close[data-v-3a70b8e0]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-3a70b8e0]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-3a70b8e0]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--normal>.modal-container[data-v-3a70b8e0]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--large>.modal-container[data-v-3a70b8e0]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--full>.modal-container[data-v-3a70b8e0]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}@media only screen and ((max-width: 512px) or (max-height: 400px)){.modal-wrapper .modal-container[data-v-3a70b8e0]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}}.fade-enter-active[data-v-3a70b8e0],.fade-leave-active[data-v-3a70b8e0]{transition:opacity .25s}.fade-enter-from[data-v-3a70b8e0],.fade-leave-to[data-v-3a70b8e0]{opacity:0}.fade-visibility-enter-from[data-v-3a70b8e0],.fade-visibility-leave-to[data-v-3a70b8e0]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-3a70b8e0],.modal-in-leave-active[data-v-3a70b8e0],.modal-out-enter-active[data-v-3a70b8e0],.modal-out-leave-active[data-v-3a70b8e0]{transition:opacity .25s}.modal-in-enter-from[data-v-3a70b8e0],.modal-in-leave-to[data-v-3a70b8e0],.modal-out-enter-from[data-v-3a70b8e0],.modal-out-leave-to[data-v-3a70b8e0]{opacity:0}.modal-in-enter .modal-container[data-v-3a70b8e0],.modal-in-leave-to .modal-container[data-v-3a70b8e0]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-3a70b8e0],.modal-out-leave-to .modal-container[data-v-3a70b8e0]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-3a70b8e0]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3a70b8e0]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-3a70b8e0 linear var(--6e8e498c) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3a70b8e0]{animation:breath-3a70b8e0 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3a70b8e0]{animation-play-state:paused!important}@keyframes progressring-3a70b8e0{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-3a70b8e0{0%{opacity:1}50%{opacity:0}to{opacity:1}}.material-design-icon[data-v-5f7eed6b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-5f7eed6b]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-5f7eed6b]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-5f7eed6b]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-5f7eed6b]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-5f7eed6b]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-5f7eed6b]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-5f7eed6b]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-5f7eed6b]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-5f7eed6b]{background-color:var(--open-background-color)}.action-item__menutoggle__icon[data-v-5f7eed6b]{width:20px;height:20px;object-fit:contain}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-element)}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-element);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_FKPyJ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_HjJ88.v-popper--theme-nc-popover-9,._ncPopover_HjJ88.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_HjJ88.v-popper--theme-nc-popover-9 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_HjJ88.v-popper--theme-nc-popover-9 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-element)}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-element);overflow:hidden;background:var(--color-main-background)}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:transparent;border-width:10px}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-9px;border-bottom-width:0;border-top-color:var(--color-main-background)}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-9px;border-top-width:0;border-bottom-color:var(--color-main-background)}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-9px;border-left-width:0;border-right-color:var(--color-main-background)}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-9px;border-right-width:0;border-left-color:var(--color-main-background)}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_HjJ88.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}.material-design-icon[data-v-7e4656f9]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-7e4656f9]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius-small);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-7e4656f9]{font-size:var(--note-card-icon-size);font-weight:600}.notecard__icon[data-v-7e4656f9]{color:var(--note-theme)}.notecard__icon--heading[data-v-7e4656f9]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-7e4656f9]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-7e4656f9]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-7e4656f9]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-7e4656f9]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-7e4656f9]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important} diff --git a/css/viewer-init.css b/css/viewer-init.css index 2eccf1a97..d2e07fb59 100644 --- a/css/viewer-init.css +++ b/css/viewer-init.css @@ -1,7 +1,2 @@ /* extracted by css-entry-points-plugin */ -@import './init-Pfn7QR6a.chunk.css'; -@import './previewUtils-DsspQ6dL.chunk.css'; -@import './NcIconSvgWrapper-Bui9PhAS-3xIBDiQU.chunk.css'; -@import './NcActionButton-BjaRp7qa.chunk.css'; -@import './NcModal-Cv5qtEVN.chunk.css'; -@import './NcActionLink-DqmJtdZG.chunk.css'; \ No newline at end of file +@import './init-go_r03Vq.chunk.css'; \ No newline at end of file diff --git a/css/viewer-main.css b/css/viewer-main.css deleted file mode 100644 index a3330a362..000000000 --- a/css/viewer-main.css +++ /dev/null @@ -1,3 +0,0 @@ -/* extracted by css-entry-points-plugin */ -@import './main-fKdjIrca.chunk.css'; -@import './previewUtils-DsspQ6dL.chunk.css'; \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..095a0e0aa --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,5 @@ +import { recommended } from '@nextcloud/eslint-config' + +export default [ + ...recommended, +] diff --git a/js/ImageEditor-DIhUEMQt.chunk.mjs b/js/ImageEditor-DIhUEMQt.chunk.mjs new file mode 100644 index 000000000..41ad99792 --- /dev/null +++ b/js/ImageEditor-DIhUEMQt.chunk.mjs @@ -0,0 +1,16 @@ +import{g as Bi,a as Wn,d as _t,u as za,r as Dt,s as ht,c as vt,w as Ct,o as Ue,b as Li,e as S,f as b,h as H,i as j,j as dt,k as Z,n as re,l as M,N as Ha,t as B,m as J,p as wt,q as ut,v as qe,x as Yn,y as jn,z as Ni,A as Xn,F as Wt,B as Yt,C as $n,D as Un,E as qn,G as Zn,H as Ei,I as Oa,J as it,K as Ri,L as Kn,M as Qn,O as Fa,P as Jn,Q as tr,R as er,S as Je,T as Vi,U as Wi,_ as ir}from"./viewer-init.mjs";const ar=Math.PI/180;function nr(){return typeof window<"u"&&({}.toString.call(window)==="[object Window]"||{}.toString.call(window)==="[object global]")}const Jt=typeof Bi<"u"?Bi:typeof window<"u"?window:typeof WorkerGlobalScope<"u"?self:{},I={_global:Jt,version:"10.3.2",isBrowser:nr(),isUnminified:/param/.test(function(a){}.toString()),dblClickWindow:400,getAngle(a){return I.angleDeg?a*ar:a},enableTrace:!1,pointerEventsEnabled:!0,autoDrawEnabled:!0,hitOnDragEnabled:!1,capturePointerEventsEnabled:!1,_mouseListenClick:!1,_touchListenClick:!1,_pointerListenClick:!1,_mouseInDblClickWindow:!1,_touchInDblClickWindow:!1,_pointerInDblClickWindow:!1,_mouseDblClickPointerId:null,_touchDblClickPointerId:null,_pointerDblClickPointerId:null,_renderBackend:"web",legacyTextRendering:!1,pixelRatio:typeof window<"u"&&window.devicePixelRatio||1,dragDistance:3,angleDeg:!0,showWarnings:!0,dragButtons:[0,1],isDragging(){return I.DD.isDragging},isTransforming(){var a,t;return(t=(a=I.Transformer)===null||a===void 0?void 0:a.isTransforming())!==null&&t!==void 0?t:!1},isDragReady(){return!!I.DD.node},releaseCanvasOnDestroy:!0,document:Jt.document,_injectGlobal(a){typeof Jt.Konva<"u"&&console.error("Several Konva instances detected. It is not recommended to use multiple Konva instances in the same environment."),Jt.Konva=a}},gt=a=>{I[a.prototype.getClassName()]=a};I._injectGlobal(I);const rr=`Konva.js unsupported environment. + +Looks like you are trying to use Konva.js in Node.js environment. because "document" object is undefined. + +To use Konva.js in Node.js environment, you need to use the "canvas-backend" or "skia-backend" module. + +bash: npm install canvas +js: import "konva/canvas-backend"; + +or + +bash: npm install skia-canvas +js: import "konva/skia-backend"; +`,Yi=()=>{if(typeof document>"u")throw new Error(rr)};class kt{constructor(t=[1,0,0,1,0,0]){this.dirty=!1,this.m=t&&t.slice()||[1,0,0,1,0,0]}reset(){this.m[0]=1,this.m[1]=0,this.m[2]=0,this.m[3]=1,this.m[4]=0,this.m[5]=0}copy(){return new kt(this.m)}copyInto(t){t.m[0]=this.m[0],t.m[1]=this.m[1],t.m[2]=this.m[2],t.m[3]=this.m[3],t.m[4]=this.m[4],t.m[5]=this.m[5]}point(t){const e=this.m;return{x:e[0]*t.x+e[2]*t.y+e[4],y:e[1]*t.x+e[3]*t.y+e[5]}}translate(t,e){return this.m[4]+=this.m[0]*t+this.m[2]*e,this.m[5]+=this.m[1]*t+this.m[3]*e,this}scale(t,e){return this.m[0]*=t,this.m[1]*=t,this.m[2]*=e,this.m[3]*=e,this}rotate(t){const e=Math.cos(t),i=Math.sin(t),n=this.m[0]*e+this.m[2]*i,r=this.m[1]*e+this.m[3]*i,s=this.m[0]*-i+this.m[2]*e,o=this.m[1]*-i+this.m[3]*e;return this.m[0]=n,this.m[1]=r,this.m[2]=s,this.m[3]=o,this}getTranslation(){return{x:this.m[4],y:this.m[5]}}skew(t,e){const i=this.m[0]+this.m[2]*e,n=this.m[1]+this.m[3]*e,r=this.m[2]+this.m[0]*t,s=this.m[3]+this.m[1]*t;return this.m[0]=i,this.m[1]=n,this.m[2]=r,this.m[3]=s,this}multiply(t){const e=this.m[0]*t.m[0]+this.m[2]*t.m[1],i=this.m[1]*t.m[0]+this.m[3]*t.m[1],n=this.m[0]*t.m[2]+this.m[2]*t.m[3],r=this.m[1]*t.m[2]+this.m[3]*t.m[3],s=this.m[0]*t.m[4]+this.m[2]*t.m[5]+this.m[4],o=this.m[1]*t.m[4]+this.m[3]*t.m[5]+this.m[5];return this.m[0]=e,this.m[1]=i,this.m[2]=n,this.m[3]=r,this.m[4]=s,this.m[5]=o,this}invert(){const t=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),e=this.m[3]*t,i=-this.m[1]*t,n=-this.m[2]*t,r=this.m[0]*t,s=t*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),o=t*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);return this.m[0]=e,this.m[1]=i,this.m[2]=n,this.m[3]=r,this.m[4]=s,this.m[5]=o,this}getMatrix(){return this.m}decompose(){const t=this.m[0],e=this.m[1],i=this.m[2],n=this.m[3],r=this.m[4],s=this.m[5],o=t*n-e*i,l={x:r,y:s,rotation:0,scaleX:0,scaleY:0,skewX:0,skewY:0};if(t!=0||e!=0){const h=Math.sqrt(t*t+e*e);l.rotation=e>0?Math.acos(t/h):-Math.acos(t/h),l.scaleX=h,l.scaleY=o/h,l.skewX=(t*i+e*n)/o,l.skewY=0}else if(i!=0||n!=0){const h=Math.sqrt(i*i+n*n);l.rotation=Math.PI/2-(n>0?Math.acos(-i/h):-Math.acos(i/h)),l.scaleX=o/h,l.scaleY=h,l.skewX=0,l.skewY=(t*i+e*n)/o}return l.rotation=_._getRotation(l.rotation),l}}const sr="[object Array]",or="[object Number]",lr="[object String]",hr="[object Boolean]",cr=Math.PI/180,Ba=180/Math.PI,Ee="#",dr="",ur="0",gr="Konva warning: ",ji="Konva error: ",fr={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],transparent:[255,255,255,0],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};let oe=null;const pr=typeof window<"u"?window:{},ti=new WeakMap,mr=(a,t)=>{typeof a.requestAnimationFrame=="function"?a.requestAnimationFrame(t):typeof requestAnimationFrame<"u"?requestAnimationFrame(t):setTimeout(t,16)},Xi=new Map,$i=a=>{const t=a.trim();return t.indexOf(",")===-1?t.split(/\s*\/\s*|\s+/):t.split(/\s*,\s*/)},Na="[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?",vr=new RegExp(`^(${Na})(%?)$`,"i"),Xt=(a,t)=>{const e=vr.exec(a);return e?e[2]?Number(e[1])/100*t:Number(e[1]):NaN},Re=/^#[0-9a-f]+$/i,Ui=a=>Math.min(Math.max(a,0),1),yr=new RegExp(`^(${Na})(deg|grad|rad|turn)?$`,"i"),_r={deg:1,grad:.9,rad:Ba,turn:360},_={_isElement(a){return!!(a&&a.nodeType==1)},_isFunction(a){return!!(a&&a.constructor&&a.call&&a.apply)},_isPlainObject(a){return!!a&&a.constructor===Object},_isArray(a){return Object.prototype.toString.call(a)===sr},_isNumber(a){return Object.prototype.toString.call(a)===or&&!isNaN(a)&&isFinite(a)},_isString(a){return Object.prototype.toString.call(a)===lr},_isBoolean(a){return Object.prototype.toString.call(a)===hr},isObject(a){return a instanceof Object},isValidSelector(a){if(typeof a!="string")return!1;const t=a[0];return t==="#"||t==="."||t===t.toUpperCase()},_sign(a){return a===0||a>0?1:-1},requestAnimFrame(a,t){const e=t&&!t.closed&&t||pr;let i=ti.get(e);i||(i=[],ti.set(e,i),mr(e,function(){ti.delete(e),i.forEach(function(n){n()})})),i.push(a)},createCanvasElement(){Yi();const a=document.createElement("canvas");try{a.style=a.style||{}}catch{}return a},createImageElement(){return Yi(),document.createElement("img")},_isInDocument(a){return!!a.isConnected},_urlToImage(a,t){const e=_.createImageElement();e.onload=function(){t(e)},e.src=a},_rgbToHex(a,t,e){return((1<<24)+(a<<16)+(t<<8)+e).toString(16).slice(1)},_hexToRgb(a){a=a.replace(Ee,dr);const t=parseInt(a,16);return{r:t>>16&255,g:t>>8&255,b:t&255}},getRandomColor(){let a=(Math.random()*16777215<<0).toString(16);for(;a.length<6;)a=ur+a;return Ee+a},isCanvasFarblingActive(){if(oe!==null)return oe;if(typeof document>"u")return oe=!1,!1;const a=this.createCanvasElement();a.width=10,a.height=10;const t=a.getContext("2d",{willReadFrequently:!0});t.clearRect(0,0,10,10),t.fillStyle="#282828",t.fillRect(0,0,10,10);const e=t.getImageData(0,0,10,10).data;let i=!1;for(let n=0;n<100;n++)if(e[n*4]!==40||e[n*4+1]!==40||e[n*4+2]!==40||e[n*4+3]!==255){i=!0;break}return oe=i,this.releaseCanvas(a),oe},getHitColor(){const a=this.getRandomColor();return this.isCanvasFarblingActive()?this.getSnappedHexColor(a):a},getHitColorKey(a,t,e){return this.isCanvasFarblingActive()&&(a=Math.round(a/5)*5,t=Math.round(t/5)*5,e=Math.round(e/5)*5),Ee+this._rgbToHex(a,t,e)},getSnappedHexColor(a){const t=this._hexToRgb(a);return Ee+this._rgbToHex(Math.round(t.r/5)*5,Math.round(t.g/5)*5,Math.round(t.b/5)*5)},getRGB(a){var t;const{r:e=0,g:i=0,b:n=0}=(t=_.colorToRGBA(a))!==null&&t!==void 0?t:{};return{r:e,g:i,b:n}},colorToRGBA(a){a=(a||"").trim()||"black";const t=_._namedColorToRBA(a)||_._hex3ColorToRGBA(a)||_._hex4ColorToRGBA(a)||_._hex6ColorToRGBA(a)||_._hex8ColorToRGBA(a)||_._rgbColorToRGBA(a)||_._hslColorToRGBA(a);if(t&&[t.r,t.g,t.b,t.a].every(_._isNumber))return t},_namedColorToRBA(a){const t=fr[a.toLowerCase()];return t?{r:t[0],g:t[1],b:t[2],a:t.length>3?t[3]:1}:null},_rgbColorToRGBA(a){const t=/^rgba?\(([^)]*)\)$/i.exec(a);if(!t)return;const e=$i(t[1]);if(!(e.length<3||e.length>4))return{r:Xt(e[0],255),g:Xt(e[1],255),b:Xt(e[2],255),a:e.length>3?Xt(e[3],1):1}},_hex8ColorToRGBA(a){if(a.length===9&&Re.test(a))return{r:parseInt(a.slice(1,3),16),g:parseInt(a.slice(3,5),16),b:parseInt(a.slice(5,7),16),a:parseInt(a.slice(7,9),16)/255}},_hex6ColorToRGBA(a){if(a.length===7&&Re.test(a))return{r:parseInt(a.slice(1,3),16),g:parseInt(a.slice(3,5),16),b:parseInt(a.slice(5,7),16),a:1}},_hex4ColorToRGBA(a){if(a.length===5&&Re.test(a))return{r:parseInt(a[1]+a[1],16),g:parseInt(a[2]+a[2],16),b:parseInt(a[3]+a[3],16),a:parseInt(a[4]+a[4],16)/255}},_hex3ColorToRGBA(a){if(a.length===4&&Re.test(a))return{r:parseInt(a[1]+a[1],16),g:parseInt(a[2]+a[2],16),b:parseInt(a[3]+a[3],16),a:1}},_hslColorToRGBA(a){const t=/^hsla?\(([^)]*)\)$/i.exec(a);if(!t)return;const e=$i(t[1]);if(e.length<3||e.length>4)return;const i=yr.exec(e[0]);if(!i)return;const n=i[2],r=Number(i[1])*(n?_r[n.toLowerCase()]:1);if(!isFinite(r))return;const s=(r%360+360)%360/360,o=Ui(Xt(e[1],100)/100),l=Ui(Xt(e[2],100)/100),h=e.length>3?Xt(e[3],1):1,c=l<.5?l*(1+o):l+o-l*o,d=2*l-c,u=[0,0,0];for(let f=0;f<3;f++){let g=s+.3333333333333333*-(f-1);g<0&&g++,g>1&&g--;let y;6*g<1?y=d+(c-d)*6*g:2*g<1?y=c:3*g<2?y=d+(c-d)*(2/3-g)*6:y=d,u[f]=y*255}return{r:Math.round(u[0]),g:Math.round(u[1]),b:Math.round(u[2]),a:h}},haveIntersection(a,t){return!(t.x>a.x+a.width||t.x+t.widtha.y+a.height||t.y+t.height1?(s=e,o=i,l=(e-n)*(e-n)+(i-r)*(i-r)):(s=a+c*(e-a),o=t+c*(i-t),l=(s-n)*(s-n)+(o-r)*(o-r))}return[s,o,l]},_getProjectionToLine(a,t,e){const i=_.cloneObject(a);let n=Number.MAX_VALUE;return t.forEach(function(r,s){if(!e&&s===t.length-1)return;const o=t[(s+1)%t.length],l=_._getProjectionToSegment(r.x,r.y,o.x,o.y,a.x,a.y),h=l[0],c=l[1],d=l[2];dt.length){const s=t;t=a,a=s}for(let s=0;s{t.width=0,t.height=0})},drawRoundedRectPath(a,t,e,i){let n=t<0?t:0,r=e<0?e:0;t=Math.abs(t),e=Math.abs(e);let s=0,o=0,l=0,h=0;typeof i=="number"?s=o=l=h=Math.min(i,t/2,e/2):(s=Math.min(i[0]||0,t/2,e/2),o=Math.min(i[1]||0,t/2,e/2),h=Math.min(i[2]||0,t/2,e/2),l=Math.min(i[3]||0,t/2,e/2)),a.moveTo(n+s,r),a.lineTo(n+t-o,r),a.arc(n+t-o,r+o,o,Math.PI*3/2,0,!1),a.lineTo(n+t,r+e-h),a.arc(n+t-h,r+e-h,h,0,Math.PI/2,!1),a.lineTo(n+l,r+e),a.arc(n+l,r+e-l,l,Math.PI/2,Math.PI,!1),a.lineTo(n,r+s),a.arc(n+s,r+s,s,Math.PI,Math.PI*3/2,!1)},drawRoundedPolygonPath(a,t,e,i,n){i=Math.abs(i);for(let r=0;rtypeof c=="number"?Math.floor(c):c)),r+=br+h.join(qi)+wr)):(r+=o.property,t||(r+=Ar+o.val)),r+=kr;return r}clearTrace(){this.traceArr=[]}_trace(t){let e=this.traceArr,i;e.push(t),i=e.length,i>=Tr&&e.shift()}reset(){const t=this.getCanvas().getPixelRatio();this.setTransform(1*t,0,0,1*t,0,0)}getCanvas(){return this.canvas}clear(t){const e=this.getCanvas();t?this.clearRect(t.x||0,t.y||0,t.width||0,t.height||0):this.clearRect(0,0,e.getWidth()/e.pixelRatio,e.getHeight()/e.pixelRatio)}_applyLineCap(t){const e=t.attrs.lineCap;e&&this.setAttr("lineCap",e)}_applyOpacity(t){const e=t.getAbsoluteOpacity();e!==1&&this.setAttr("globalAlpha",e)}_applyLineJoin(t){const e=t.attrs.lineJoin;e&&this.setAttr("lineJoin",e)}_applyMiterLimit(t){const e=t.attrs.miterLimit;e!=null&&this.setAttr("miterLimit",e)}setAttr(t,e){this._context[t]=e}arc(t,e,i,n,r,s){this._context.arc(t,e,i,n,r,s)}arcTo(t,e,i,n,r){this._context.arcTo(t,e,i,n,r)}beginPath(){this._context.beginPath()}bezierCurveTo(t,e,i,n,r,s){this._context.bezierCurveTo(t,e,i,n,r,s)}clearRect(t,e,i,n){this._context.clearRect(t,e,i,n)}clip(...t){this._context.clip.apply(this._context,t)}closePath(){this._context.closePath()}createImageData(t,e){const i=arguments;if(i.length===2)return this._context.createImageData(t,e);if(i.length===1)return this._context.createImageData(t)}createLinearGradient(t,e,i,n){return this._context.createLinearGradient(t,e,i,n)}createPattern(t,e){return this._context.createPattern(t,e)}createRadialGradient(t,e,i,n,r,s){return this._context.createRadialGradient(t,e,i,n,r,s)}drawImage(t,e,i,n,r,s,o,l,h){const c=arguments,d=this._context;c.length===3?d.drawImage(t,e,i):c.length===5?d.drawImage(t,e,i,n,r):c.length===9&&d.drawImage(t,e,i,n,r,s,o,l,h)}ellipse(t,e,i,n,r,s,o,l){this._context.ellipse(t,e,i,n,r,s,o,l)}isPointInPath(t,e,i,n){return i?this._context.isPointInPath(i,t,e,n):this._context.isPointInPath(t,e,n)}fill(...t){this._context.fill.apply(this._context,t)}fillRect(t,e,i,n){this._context.fillRect(t,e,i,n)}strokeRect(t,e,i,n){this._context.strokeRect(t,e,i,n)}fillText(t,e,i,n){n?this._context.fillText(t,e,i,n):this._context.fillText(t,e,i)}measureText(t){return this._context.measureText(t)}getImageData(t,e,i,n){return this._context.getImageData(t,e,i,n)}lineTo(t,e){this._context.lineTo(t,e)}moveTo(t,e){this._context.moveTo(t,e)}rect(t,e,i,n){this._context.rect(t,e,i,n)}roundRect(t,e,i,n,r){this._context.roundRect(t,e,i,n,r)}putImageData(t,e,i){this._context.putImageData(t,e,i)}quadraticCurveTo(t,e,i,n){this._context.quadraticCurveTo(t,e,i,n)}restore(){this._context.restore()}rotate(t){this._context.rotate(t)}save(){this._context.save()}scale(t,e){this._context.scale(t,e)}setLineDash(t){this._context.setLineDash?this._context.setLineDash(t):"mozDash"in this._context?this._context.mozDash=t:"webkitLineDash"in this._context&&(this._context.webkitLineDash=t)}getLineDash(){return this._context.getLineDash()}setTransform(t,e,i,n,r,s){this._context.setTransform(t,e,i,n,r,s)}stroke(t){t?this._context.stroke(t):this._context.stroke()}strokeText(t,e,i,n){this._context.strokeText(t,e,i,n)}transform(t,e,i,n,r,s){this._context.transform(t,e,i,n,r,s)}translate(t,e){this._context.translate(t,e)}_enableTrace(){let t=this,e=Zi.length,i=this.setAttr,n,r;const s=function(o){let l=t[o],h;t[o]=function(){return r=xr(Array.prototype.slice.call(arguments,0)),h=l.apply(t,arguments),t._trace({method:o,args:r}),h}};for(n=0;n{t.dragStatus==="dragging"&&(a=!0)}),a},justDragged:!1,get node(){let a;return nt._dragElements.forEach(t=>{a=t.node}),a},_dragElements:new Map,_listenToWindow(a){const t=i=>nt._endDragBefore(i,a),e=i=>nt._drag(i,a);a.addEventListener("mouseup",t,!0),a.addEventListener("touchend",t,!0),a.addEventListener("touchcancel",t,!0),a.addEventListener("mousemove",e),a.addEventListener("touchmove",e),a.addEventListener("mouseup",nt._endDragAfter,!1),a.addEventListener("touchend",nt._endDragAfter,!1),a.addEventListener("touchcancel",nt._endDragAfter,!1)},_drag(a,t){const e=[];nt._dragElements.forEach((i,n)=>{const{node:r}=i,s=r.getStage();if(t&&s._getOwnerWindow()!==t)return;s.setPointersPositions(a),i.pointerId===void 0&&(i.pointerId=_._getFirstPointerId(a));const o=s._changedPointerPositions.find(l=>l.id===i.pointerId);if(o){if(i.dragStatus!=="dragging"){const l=r.dragDistance();if(Math.max(Math.abs(o.x-i.startPointerPos.x),Math.abs(o.y-i.startPointerPos.y)){i.getStage()&&i.fire("dragmove",{type:"dragmove",target:i,evt:a},!0)})},_endDragBefore(a,t){const e=[];nt._dragElements.forEach(i=>{const{node:n}=i,r=n.getStage();if(a&&(!t||r._getOwnerWindow()===t)&&r.setPointersPositions(a),!r._changedPointerPositions.find(o=>o.id===i.pointerId))return;(i.dragStatus==="dragging"||i.dragStatus==="stopped")&&(nt.justDragged=!0,I._mouseListenClick=!1,I._touchListenClick=!1,I._pointerListenClick=!1,i.dragStatus="stopped");const s=i.node.getLayer()||i.node instanceof I.Stage&&i.node;s&&e.indexOf(s)===-1&&e.push(s)}),e.forEach(i=>{i.draw()})},_endDragAfter(a){nt._dragElements.forEach((t,e)=>{t.dragStatus==="stopped"&&t.node.fire("dragend",{type:"dragend",target:t.node,evt:a},!0),t.dragStatus!=="dragging"&&nt._dragElements.delete(e)})}};function jt(a){return _._isString(a)?'"'+a+'"':Object.prototype.toString.call(a)==="[object Number]"||_._isBoolean(a)?a:Object.prototype.toString.call(a)}function Va(a){return a>255?255:a<0?0:Math.round(a)}function R(){if(I.isUnminified)return function(a,t){return _._isNumber(a)||_.warn(jt(a)+' is a not valid value for "'+t+'" attribute. The value should be a number.'),a}}function Ke(a){if(I.isUnminified)return function(t,e){let i=_._isNumber(t),n=_._isArray(t)&&t.length==a;return!i&&!n&&_.warn(jt(t)+' is a not valid value for "'+e+'" attribute. The value should be a number or Array('+a+")"),t}}function ui(){if(I.isUnminified)return function(a,t){return _._isNumber(a)||a==="auto"||_.warn(jt(a)+' is a not valid value for "'+t+'" attribute. The value should be a number or "auto".'),a}}function te(){if(I.isUnminified)return function(a,t){return _._isString(a)||_.warn(jt(a)+' is a not valid value for "'+t+'" attribute. The value should be a string.'),a}}function Qi(){if(I.isUnminified)return function(a,t){const e=_._isString(a),i=Object.prototype.toString.call(a)==="[object CanvasGradient]"||a&&a.addColorStop;return e||i||_.warn(jt(a)+' is a not valid value for "'+t+'" attribute. The value should be a string or a native gradient.'),a}}function Ir(){if(I.isUnminified)return function(a,t){const e=Int8Array?Object.getPrototypeOf(Int8Array):null;return e&&a instanceof e||(_._isArray(a)?a.forEach(function(i){_._isNumber(i)||_.warn('"'+t+'" attribute has non numeric element '+i+". Make sure that all elements are numbers.")}):_.warn(jt(a)+' is a not valid value for "'+t+'" attribute. The value should be a array of numbers.')),a}}function Pt(){if(I.isUnminified)return function(a,t){return a===!0||a===!1||_.warn(jt(a)+' is a not valid value for "'+t+'" attribute. The value should be a boolean.'),a}}function Gr(a){if(I.isUnminified)return function(t,e){return t==null||_.isObject(t)||_.warn(jt(t)+' is a not valid value for "'+e+'" attribute. The value should be an object with properties '+a),t}}const le="get",he="set",p={addGetterSetter(a,t,e,i,n){p.addGetter(a,t,e),p.addSetter(a,t,i,n),p.addOverloadedGetterSetter(a,t)},addGetter(a,t,e){const i=le+_._capitalize(t);a.prototype[i]=a.prototype[i]||function(){const n=this.attrs[t];return n===void 0?e:n}},addSetter(a,t,e,i){const n=he+_._capitalize(t);a.prototype[n]||p.overWriteSetter(a,t,e,i)},overWriteSetter(a,t,e,i){const n=he+_._capitalize(t);a.prototype[n]=function(r){return e&&r!==void 0&&r!==null&&(r=e.call(this,r,t)),this._setAttr(t,r),i&&i.call(this),this}},addComponentsGetterSetter(a,t,e,i,n){const r=e.length,s=_._capitalize,o=le+s(t),l=he+s(t);a.prototype[o]=function(){const c={};for(let d=0;d{this._setAttr(t+s(u),void 0)}),this._fireChangeEvent(t,d,c),n&&n.call(this),this},p.addOverloadedGetterSetter(a,t)},addOverloadedGetterSetter(a,t){const e=_._capitalize(t),i=he+e,n=le+e;a.prototype[t]=function(){return arguments.length?(this[i](arguments[0]),this):this[n]()}},addDeprecatedGetterSetter(a,t,e,i){_.error("Adding deprecated "+t);const n=le+_._capitalize(t),r=t+" property is deprecated and will be removed soon. Look at Konva change log for more information.";a.prototype[n]=function(){_.error(r);const s=this.attrs[t];return s===void 0?e:s},p.addSetter(a,t,i,function(){_.error(r)}),p.addOverloadedGetterSetter(a,t)},backCompat(a,t){_.each(t,function(e,i){const n=a.prototype[i],r=le+_._capitalize(e),s=he+_._capitalize(e);function o(){n.apply(this,arguments),_.error('"'+e+'" method is deprecated and will be removed soon. Use ""'+i+'" instead.')}a.prototype[e]=o,a.prototype[r]=o,a.prototype[s]=o})},afterSetFilter(){this._filterUpToDate=!1}};function Dr(a){const t=/(\w+)\(([^)]+)\)/g;let e;for(;(e=t.exec(a))!==null;){const[,i,n]=e;switch(i){case"blur":{const r=parseFloat(n.replace("px",""));return function(s){this.blurRadius(r*.5);const o=I.Filters;o&&o.Blur&&o.Blur.call(this,s)}}case"brightness":{const r=n.includes("%")?parseFloat(n)/100:parseFloat(n);return function(s){this.brightness(r);const o=I.Filters;o&&o.Brightness&&o.Brightness.call(this,s)}}case"contrast":{const r=parseFloat(n);return function(s){const o=100*(Math.sqrt(r)-1);this.contrast(o);const l=I.Filters;l&&l.Contrast&&l.Contrast.call(this,s)}}case"grayscale":return function(r){const s=I.Filters;s&&s.Grayscale&&s.Grayscale.call(this,r)};case"sepia":return function(r){const s=I.Filters;s&&s.Sepia&&s.Sepia.call(this,r)};case"invert":return function(r){const s=I.Filters;s&&s.Invert&&s.Invert.call(this,r)};default:_.warn(`CSS filter "${i}" is not supported in fallback mode. Consider using function filters for better compatibility.`);break}}return()=>{}}const Ve="absoluteOpacity",Ji="allEventListeners",Et="absoluteTransform",ta="absoluteScale",$t="canvas",zr="Change",Hr="children",Or="konva",gi="listening",Fr="mouseenter",Br="mouseleave",Nr="pointerenter",Vr="pointerleave",Wr="touchenter",Yr="touchleave",ea="set",ia="Shape",We=" ",aa="stage",zt="transform",jr="Stage",fi="visible",Xr=["xChange.konva","yChange.konva","scaleXChange.konva","scaleYChange.konva","skewXChange.konva","skewYChange.konva","rotationChange.konva","offsetXChange.konva","offsetYChange.konva","transformsEnabledChange.konva"].join(We);let $r=1;class T{constructor(t){this._id=$r++,this.eventListeners={},this.attrs={},this.index=0,this._allEventListeners=null,this.parent=null,this._cache=new Map,this._attachedDepsListeners=new Map,this._lastPos=null,this._batchingTransformChange=!1,this._needClearTransformCache=!1,this._filterUpToDate=!1,this._isUnderCache=!1,this._dragEventId=null,this._shouldFireChangeEvents=!1,this.setAttrs(t),this._shouldFireChangeEvents=!0}hasChildren(){return!1}_clearCache(t){(t===zt||t===Et)&&this._cache.get(t)?this._cache.get(t).dirty=!0:t?this._cache.delete(t):this._cache.clear()}_getCache(t,e){let i=this._cache.get(t);return(i===void 0||(t===zt||t===Et)&&i.dirty===!0)&&(i=e.call(this),this._cache.set(t,i)),i}_calculate(t,e,i){if(!this._attachedDepsListeners.get(t)){const n=e.map(r=>r+"Change.konva").join(We);this.on(n,()=>{this._clearCache(t)}),this._attachedDepsListeners.set(t,!0)}return this._getCache(t,i)}_getCanvasCache(){return this._cache.get($t)}_clearSelfAndDescendantCache(t){this._clearCache(t),t===Et&&this.fire("absoluteTransformChange")}static _runAfterAbsTransformCascade(t){T._absTransformCascadeDepth>0?T._pendingAfterCascade.push(t):t()}clearCache(){if(this._cache.has($t)){const{scene:t,filter:e,hit:i}=this._cache.get($t);_.releaseCanvas(t._canvas,e._canvas,...i?[i._canvas]:[]),this._cache.delete($t)}return this._clearSelfAndDescendantCache(),this._requestDraw(),this}cache(t){const e=t||{};let i={};(e.x===void 0||e.y===void 0||e.width===void 0||e.height===void 0)&&(i=this.getClientRect({skipTransform:!0,relativeTo:this.getParent()||void 0}));let n=Math.ceil(e.width||i.width),r=Math.ceil(e.height||i.height),s=e.pixelRatio,o=e.x===void 0?Math.floor(i.x):e.x,l=e.y===void 0?Math.floor(i.y):e.y,h=e.offset||0,c=e.drawBorder||!1,d=e.hitCanvasPixelRatio||1;if(!n||!r){_.error("Can not cache the node. Width or height of the node equals 0. Caching is skipped.");return}const u=Math.abs(Math.round(i.x)-o)>.5?1:0,f=Math.abs(Math.round(i.y)-l)>.5?1:0;n+=h*2+u,r+=h*2+f,o-=h,l-=h;const g=new Bt({pixelRatio:s,width:n,height:r}),y=new Bt({pixelRatio:s,width:0,height:0,willReadFrequently:!0}),x=g.getContext(),m=new Bt({width:g.width/g.pixelRatio+Math.abs(o),height:g.height/g.pixelRatio+Math.abs(l),pixelRatio:g.pixelRatio}),C=m.getContext();return g.isCache=!0,this._cache.delete($t),this._filterUpToDate=!1,e.imageSmoothingEnabled===!1&&(g.getContext()._context.imageSmoothingEnabled=!1,y.getContext()._context.imageSmoothingEnabled=!1),x.save(),C.save(),x.translate(-o,-l),C.translate(-o,-l),m.x=o,m.y=l,this._isUnderCache=!0,this._clearSelfAndDescendantCache(Ve),this._clearSelfAndDescendantCache(ta),this.drawScene(g,this,m),this._isUnderCache=!1,x.restore(),c&&(x.save(),x.beginPath(),x.rect(0,0,n,r),x.closePath(),x.setAttr("strokeStyle","red"),x.setAttr("lineWidth",5),x.stroke(),x.restore()),_.releaseCanvas(m._canvas),this._cache.set($t,{scene:g,filter:y,hit:null,hitConfig:{pixelRatio:d,width:n,height:r},x:o,y:l}),this._requestDraw(),this}_getCachedHitCanvas(t){if(t===this)return null;const e=this._getCanvasCache();if(!e)return null;if(e.hit)return e.hit;const i=new Gi(e.hitConfig);i.isCache=!0;const n=i.getContext();return n.save(),n.translate(-e.x,-e.y),this.drawHit(i,this),n.restore(),e.hit=i,i}isCached(){return this._cache.has($t)}getClientRect(t){throw new Error('abstract "getClientRect" method call')}_transformedRect(t,e){const i=[{x:t.x,y:t.y},{x:t.x+t.width,y:t.y},{x:t.x+t.width,y:t.y+t.height},{x:t.x,y:t.y+t.height}];let n=1/0,r=1/0,s=-1/0,o=-1/0;const l=this.getAbsoluteTransform(e);return i.forEach(function(h){const c=l.point(h);n===void 0&&(n=s=c.x,r=o=c.y),n=Math.min(n,c.x),r=Math.min(r,c.y),s=Math.max(s,c.x),o=Math.max(o,c.y)}),{x:n,y:r,width:s-n,height:o-r}}_drawCachedSceneCanvas(t){t.save(),t._applyOpacity(this),t._applyGlobalCompositeOperation(this);const e=this._getCanvasCache();t.translate(e.x,e.y);const i=this._getCachedSceneCanvas(),n=i.pixelRatio;t.drawImage(i._canvas,0,0,i.width/n,i.height/n),t.restore()}_drawCachedHitCanvas(t,e){const i=this._getCanvasCache();t.save(),t.translate(i.x,i.y),t.drawImage(e._canvas,0,0,e.width/e.pixelRatio,e.height/e.pixelRatio),t.restore()}_getCachedSceneCanvas(){let t=this.filters(),e=this._getCanvasCache(),i=e.scene,n=e.filter,r=n.getContext(),s,o,l,h;if(!t||t.length===0)return i;if(this._filterUpToDate)return n;let c=!0;for(let u=0;u{this.isAncestorOf(t.node)&&nt._dragElements.delete(e)}),this._remove(),this}_clearCaches(){this._clearSelfAndDescendantCache(Et),this._clearSelfAndDescendantCache(Ve),this._clearSelfAndDescendantCache(ta),this._clearSelfAndDescendantCache(aa),this._clearSelfAndDescendantCache(fi),this._clearSelfAndDescendantCache(gi)}_remove(){this._clearCaches();const t=this.getParent();t&&t.children&&(t.children.splice(this.index,1),t._setChildrenIndices(),this.parent=null)}destroy(){return this.remove(),this.clearCache(),this}getAttr(t){const e="get"+_._capitalize(t);return _._isFunction(this[e])?this[e]():this.attrs[t]}getAncestors(){let t=this.getParent(),e=[];for(;t;)e.push(t),t=t.getParent();return e}getAttrs(){return this.attrs||{}}setAttrs(t){return this._batchTransformChanges(()=>{let e,i;if(!t)return this;for(e in t)e!==Hr&&(i=ea+_._capitalize(e),_._isFunction(this[i])?this[i](t[e]):this._setAttr(e,t[e]))}),this}isListening(){return this._getCache(gi,this._isListening)}_isListening(t){if(!this.listening())return!1;const e=this.getParent();return e&&e!==t&&this!==t?e._isListening(t):!0}isVisible(){return this._getCache(fi,this._isVisible)}_isVisible(t){if(!this.visible())return!1;const e=this.getParent();return e&&e!==t&&this!==t?e._isVisible(t):!0}shouldDrawHit(t,e=!1){if(t)return this._isVisible(t)&&this._isListening(t);const i=this.getLayer();let n=!1;nt._dragElements.forEach(s=>{s.dragStatus==="dragging"&&(s.node.nodeType==="Stage"||s.node.getLayer()===i)&&(n=!0)});const r=!e&&!I.hitOnDragEnabled&&(n||I.isTransforming());return this.isListening()&&this.isVisible()&&!r}show(){return this.visible(!0),this}hide(){return this.visible(!1),this}getZIndex(){return this.index||0}getAbsoluteZIndex(){let t=this.getDepth(),e=this,i=0,n,r,s,o;function l(c){for(n=[],r=c.length,s=0;s0&&n[0].getDepth()<=t&&l(n)}const h=this.getStage();return e.nodeType!==jr&&h&&l(h.getChildren()),i}getDepth(){let t=0,e=this.parent;for(;e;)t++,e=e.parent;return t}_batchTransformChanges(t){this._batchingTransformChange=!0,t(),this._batchingTransformChange=!1,this._needClearTransformCache&&(this._clearCache(zt),this._clearSelfAndDescendantCache(Et)),this._needClearTransformCache=!1}setPosition(t){return this._batchTransformChanges(()=>{this.x(t.x),this.y(t.y)}),this}getPosition(){return{x:this.x(),y:this.y()}}getRelativePointerPosition(){const t=this.getStage();if(!t)return null;const e=t.getPointerPosition();if(!e)return null;const i=this.getAbsoluteTransform().copy();return i.invert(),i.point(e)}getAbsolutePosition(t){let e=!1,i=this.parent;for(;i;){if(i.isCached()){e=!0;break}i=i.parent}e&&!t&&(t=!0);const n=this.getAbsoluteTransform(t).getMatrix(),r=new kt,s=this.offset();return r.m=n.slice(),r.translate(s.x,s.y),r.getTranslation()}setAbsolutePosition(t){const{x:e,y:i,...n}=this._clearTransform();this.attrs.x=e,this.attrs.y=i,this._clearCache(zt);const r=this._getAbsoluteTransform().copy();return r.invert(),r.translate(t.x,t.y),t={x:this.attrs.x+r.getTranslation().x,y:this.attrs.y+r.getTranslation().y},this._setTransform(n),this.setPosition({x:t.x,y:t.y}),this._clearCache(zt),this._clearSelfAndDescendantCache(Et),this}_setTransform(t){let e;for(e in t)this.attrs[e]=t[e]}_clearTransform(){const t={x:this.x(),y:this.y(),rotation:this.rotation(),scaleX:this.scaleX(),scaleY:this.scaleY(),offsetX:this.offsetX(),offsetY:this.offsetY(),skewX:this.skewX(),skewY:this.skewY()};return this.attrs.x=0,this.attrs.y=0,this.attrs.rotation=0,this.attrs.scaleX=1,this.attrs.scaleY=1,this.attrs.offsetX=0,this.attrs.offsetY=0,this.attrs.skewX=0,this.attrs.skewY=0,t}move(t){let e=t.x,i=t.y,n=this.x(),r=this.y();return e!==void 0&&(n+=e),i!==void 0&&(r+=i),this.setPosition({x:n,y:r}),this}_eachAncestorReverse(t,e){let i=[],n=this.getParent(),r,s;if(!(e&&e._id===this._id)){for(i.unshift(this);n&&(!e||n._id!==e._id);)i.unshift(n),n=n.parent;for(r=i.length,s=0;s0?(this.parent.children.splice(t,1),this.parent.children.splice(t-1,0,this),this.parent._setChildrenIndices(),!0):!1}moveToBottom(){if(!this.parent)return _.warn("Node has no parent. moveToBottom function is ignored."),!1;const t=this.index;return t>0?(this.parent.children.splice(t,1),this.parent.children.unshift(this),this.parent._setChildrenIndices(),!0):!1}setZIndex(t){if(!this.parent)return _.warn("Node has no parent. zIndex parameter is ignored."),this;(t<0||t>=this.parent.children.length)&&_.warn("Unexpected value "+t+" for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to "+(this.parent.children.length-1)+".");const e=this.index;return this.parent.children.splice(e,1),this.parent.children.splice(t,0,this),this.parent._setChildrenIndices(),this}getAbsoluteOpacity(){return this._getCache(Ve,this._getAbsoluteOpacity)}_getAbsoluteOpacity(){let t=this.opacity();const e=this.getParent();return e&&!e._isUnderCache&&(t*=e.getAbsoluteOpacity()),t}moveTo(t){return this.getParent()!==t&&(this._remove(),t.add(this)),this}toObject(){let t=this.getAttrs(),e,i,n,r,s;const o={attrs:{},className:this.getClassName()};for(e in t)i=t[e],s=_.isObject(i)&&!_._isPlainObject(i)&&!_._isArray(i),!s&&(n=typeof this[e]=="function"&&this[e],delete t[e],r=n?n.call(this):null,t[e]=i,r!==i&&(o.attrs[e]=i));return _._prepareToStringify(o)}toJSON(){return JSON.stringify(this.toObject())}getParent(){return this.parent}findAncestors(t,e,i){const n=[];e&&this._isMatch(t)&&n.push(this);let r=this.parent;for(;r;){if(r===i)return n;r._isMatch(t)&&n.push(r),r=r.parent}return n}isAncestorOf(t){return!1}findAncestor(t,e,i){return this.findAncestors(t,e,i)[0]}_isMatch(t){if(!t)return!1;if(typeof t=="function")return t(this);let e=t.replace(/ /g,"").split(","),i=e.length,n,r;for(n=0;n{try{const n=t?.callback;n&&delete t.callback,_._urlToImage(this.toDataURL(t),function(r){e(r),n?.(r)})}catch(n){i(n)}})}toBlob(t){return new Promise((e,i)=>{try{const n=t?.callback;n&&delete t.callback,this.toCanvas(t).toBlob(r=>{e(r),n?.(r)},t?.mimeType,t?.quality)}catch(n){i(n)}})}setSize(t){return this.width(t.width),this.height(t.height),this}getSize(){return{width:this.width(),height:this.height()}}getClassName(){return this.className||this.nodeType}getType(){return this.nodeType}getDragDistance(){return this.attrs.dragDistance!==void 0?this.attrs.dragDistance:this.parent?this.parent.getDragDistance():I.dragDistance}_off(t,e,i){let n=this.eventListeners[t],r,s,o;for(r=0;r=0)||this.isDragging())return;let e=!1;nt._dragElements.forEach(i=>{this.isAncestorOf(i.node)&&(e=!0)}),e||this._createDragElement(t)})}_dragChange(){if(this.attrs.draggable)this._listenDrag();else{if(this._dragCleanup(),!this.getStage())return;const t=nt._dragElements.get(this._id),e=t&&t.dragStatus==="dragging",i=t&&t.dragStatus==="ready";e?this.stopDrag():i&&nt._dragElements.delete(this._id)}}_dragCleanup(){this.off("mousedown.konva"),this.off("touchstart.konva")}isClientRectOnScreen(t={x:0,y:0}){const e=this.getStage();if(!e)return!1;const i={x:-t.x,y:-t.y,width:e.width()+2*t.x,height:e.height()+2*t.y};return _.haveIntersection(i,this.getClientRect())}static create(t,e){return _._isString(t)&&(t=JSON.parse(t)),this._createNode(t,e)}static _createNode(t,e){let i=T.prototype.getClassName.call(t),n=t.children,r,s,o;e&&(t.attrs.container=e),I[i]||(_.warn('Can not find a node with class name "'+i+'". Fallback to "Shape".'),i="Shape");const l=I[i];if(r=new l(t.attrs),n)for(s=n.length,o=0;o0}removeChildren(){return this.getChildren().forEach(t=>{t.parent=null,t.index=0,t.remove()}),this.children=[],this._requestDraw(),this}destroyChildren(){return this.getChildren().forEach(t=>{t.parent=null,t.index=0,t.destroy()}),this.children=[],this._requestDraw(),this}add(...t){if(t.length===0)return this;if(t.length>1){for(let i=0;i0?e[0]:void 0}_generalFind(t,e){const i=[];return this._descendants(n=>{const r=n._isMatch(t);return r&&i.push(n),!!(r&&e)}),i}_descendants(t){let e=!1;const i=this.getChildren();for(const n of i)if(e=t(n),e||n.hasChildren()&&(e=n._descendants(t),e))return!0;return!1}toObject(){const t=T.prototype.toObject.call(this);return t.children=[],this.getChildren().forEach(e=>{t.children.push(e.toObject())}),t}isAncestorOf(t){let e=t.getParent();for(;e;){if(e._id===this._id)return!0;e=e.getParent()}return!1}clone(t){const e=T.prototype.clone.call(this,t);return this.getChildren().forEach(function(i){e.add(i.clone())}),e}getAllIntersections(t){const e=[];return this.find("Shape").forEach(i=>{i.isVisible()&&i.intersects(t)&&e.push(i)}),e}_clearSelfAndDescendantCache(t){var e;const i=t==="absoluteTransform";i&&T._absTransformCascadeDepth++;try{if(super._clearSelfAndDescendantCache(t),this.isCached())return;(e=this.children)===null||e===void 0||e.forEach(function(n){n._clearSelfAndDescendantCache(t)})}finally{if(i&&--T._absTransformCascadeDepth===0){const n=T._pendingAfterCascade;if(n.length){T._pendingAfterCascade=[];for(let r=0;ra.indexOf("pointer")>=0?"pointer":a.indexOf("touch")>=0?"touch":"mouse",ee=a=>{const t=ye(a);if(t==="pointer")return I.pointerEventsEnabled&&ii.pointer;if(t==="touch")return ii.touch;if(t==="mouse")return ii.mouse};function ra(a={}){return(a.clipFunc||a.clipWidth||a.clipHeight)&&_.warn("Stage does not support clipping. Please use clip for Layers or Groups."),a}const ts="Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);",be=[],sa=new WeakSet,oa=a=>{!a||sa.has(a)||(sa.add(a),nt._listenToWindow(a),a.document.addEventListener("visibilitychange",()=>{be.forEach(t=>{t.batchDraw()})}))};class Ye extends St{constructor(t){super(ra(t)),this._pointerPositions=[],this._changedPointerPositions=[],this._buildDOM(),this._bindContentEvents(),be.push(this),this.on("widthChange.konva heightChange.konva",this._resizeDOM),this.on("visibleChange.konva",this._checkVisibility),this.on("clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva",()=>{ra(this.attrs)}),this._checkVisibility()}_validateAdd(t){const e=t.getType()==="Layer",i=t.getType()==="FastLayer";e||i||_.throw("You may only add layers to the stage.")}_checkVisibility(){if(!this.content)return;const t=this.visible()?"":"none";this.content.style.display=t}_getOwnerWindow(){var t;return((t=(this.content||this.container())?.ownerDocument)===null||t===void 0?void 0:t.defaultView)||(I.isBrowser?window:null)}setContainer(t){if(typeof t===qr){let e;if(t.charAt(0)==="."){const i=t.slice(1);t=document.getElementsByClassName(i)[0]}else t.charAt(0)!=="#"?e=t:e=t.slice(1),t=document.getElementById(e);if(!t)throw"Can not find container in document with id "+e}return this._setAttr("container",t),this.content&&(this.content.parentElement&&this.content.parentElement.removeChild(this.content),t.appendChild(this.content),oa(this._getOwnerWindow())),this}shouldDrawHit(){return!0}clear(){const t=this.children,e=t.length;for(let i=0;i-1&&be.splice(e,1),_.releaseCanvas(this.bufferCanvas._canvas,this.bufferHitCanvas._canvas),this}getPointerPosition(){const t=this._pointerPositions[0]||this._changedPointerPositions[0];return t?{x:t.x,y:t.y}:(_.warn(ts),null)}_getPointerById(t){return this._pointerPositions.find(e=>e.id===t)}getPointersPositions(){return this._pointerPositions}getStage(){return this}getContent(){return this.content}_toKonvaCanvas(t){t={...t},t.x=t.x||0,t.y=t.y||0,t.width=t.width||this.width(),t.height=t.height||this.height();const e=new Bt({width:t.width,height:t.height,pixelRatio:t.pixelRatio||1}),i=e.getContext()._context,n=this.children;return(t.x||t.y)&&i.translate(-1*t.x,-1*t.y),n.forEach(function(r){if(!r.isVisible())return;const s=r._toKonvaCanvas(t);i.drawImage(s._canvas,t.x,t.y,s.getWidth()/s.getPixelRatio(),s.getHeight()/s.getPixelRatio())}),e}getIntersection(t){if(!t)return null;const e=this.children,i=e.length,n=i-1;for(let r=n;r>=0;r--){const s=e[r].getIntersection(t);if(s)return s}return null}_resizeDOM(){const t=this.width(),e=this.height();this.content&&(this.content.style.width=t+na,this.content.style.height=e+na),this.children.forEach(i=>{i.setSize({width:t,height:e}),i.draw()})}_syncBufferSize(t){return t.setSizeIfChanged(this.width(),this.height()),t}add(t,...e){if(arguments.length>1){for(let n=0;nQr&&_.warn("The stage has "+i+" layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group."),t.setSize({width:this.width(),height:this.height()}),t.draw(),I.isBrowser&&this.content.appendChild(t.canvas._canvas),this}getParent(){return null}getLayer(){return null}hasPointerCapture(t){return Ya(t,this)}setPointerCapture(t){ja(t,this)}releaseCapture(t){xe(t)}getLayers(){return this.children}_bindContentEvents(){I.isBrowser&&Jr.forEach(([t,e])=>{this.content.addEventListener(t,i=>{this[e](i)},{passive:!1})})}_pointerenter(t){this.setPointersPositions(t);const e=ee(t.type);e&&this._fire(e.pointerenter,{evt:t,target:this,currentTarget:this})}_pointerover(t){this.setPointersPositions(t);const e=ee(t.type);e&&this._fire(e.pointerover,{evt:t,target:this,currentTarget:this})}_getTargetShape(t){let e=this[t+"targetShape"];return e&&!e.getStage()&&(e=null),e}_pointerleave(t){const e=ee(t.type),i=ye(t.type);if(!e)return;this.setPointersPositions(t);const n=this._getTargetShape(i),r=!(I.isDragging()||I.isTransforming())||I.hitOnDragEnabled;n&&r?(n._fireAndBubble(e.pointerout,{evt:t}),n._fireAndBubble(e.pointerleave,{evt:t}),this._fire(e.pointerleave,{evt:t,target:this,currentTarget:this}),this[i+"targetShape"]=null):r&&(this._fire(e.pointerleave,{evt:t,target:this,currentTarget:this}),this._fire(e.pointerout,{evt:t,target:this,currentTarget:this})),this.pointerPos=null,this._pointerPositions=[]}_pointerdown(t){const e=ee(t.type),i=ye(t.type);if(!e)return;this.setPointersPositions(t);let n=!1;this._changedPointerPositions.forEach(r=>{const s=this.getIntersection(r);if(nt.justDragged=!1,I["_"+i+"ListenClick"]=!0,!s||!s.isListening()){this[i+"ClickStartShape"]=void 0;return}I.capturePointerEventsEnabled&&s.setPointerCapture(r.id),this[i+"ClickStartShape"]=s,s._fireAndBubble(e.pointerdown,{evt:t,pointerId:r.id}),n=!0;const o=t.type.indexOf("touch")>=0;s.preventDefault()&&t.cancelable&&o&&t.preventDefault()}),n||this._fire(e.pointerdown,{evt:t,target:this,currentTarget:this,pointerId:this._pointerPositions[0].id})}_pointermove(t){const e=ee(t.type),i=ye(t.type);if(!e)return;const n=t.type.indexOf("touch")>=0||t.pointerType==="touch";if(I.isDragging()&&nt.node.preventDefault()&&t.cancelable&&n&&t.preventDefault(),this.setPointersPositions(t),!(!(I.isDragging()||I.isTransforming())||I.hitOnDragEnabled))return;const r={};let s=!1;const o=this._getTargetShape(i);this._changedPointerPositions.forEach(l=>{const h=ei(l.id)||this.getIntersection(l),c=l.id,d={evt:t,pointerId:c},u=o!==h;if(u&&o&&(o._fireAndBubble(e.pointerout,{...d},h),o._fireAndBubble(e.pointerleave,{...d},h)),h){if(r[h._id])return;r[h._id]=!0}h&&h.isListening()?(s=!0,u&&(h._fireAndBubble(e.pointerover,{...d},o),h._fireAndBubble(e.pointerenter,{...d},o),this[i+"targetShape"]=h),h._fireAndBubble(e.pointermove,{...d})):o&&(this._fire(e.pointerover,{evt:t,target:this,currentTarget:this,pointerId:c}),this[i+"targetShape"]=null)}),s||this._fire(e.pointermove,{evt:t,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id})}_pointerup(t){const e=ee(t.type),i=ye(t.type);if(!e)return;this.setPointersPositions(t);const n=nt.justDragged||i==="pointer"&&I.isDragging(),r=I["_"+i+"ListenClick"]&&!n,s=this[i+"ClickStartShape"],o=this[i+"ClickEndShape"],l={};let h=!1;this._changedPointerPositions.forEach(c=>{const d=ei(c.id)||this.getIntersection(c);if(d){if(d.releaseCapture(c.id),l[d._id])return;l[d._id]=!0}const u=c.id,f={evt:t,pointerId:u};let g=!1;I["_"+i+"InDblClickWindow"]?(g=!0,clearTimeout(this[i+"DblTimeout"])):n||(I["_"+i+"InDblClickWindow"]=!0,clearTimeout(this[i+"DblTimeout"])),this[i+"DblTimeout"]=setTimeout(function(){I["_"+i+"InDblClickWindow"]=!1},I.dblClickWindow),d&&d.isListening()?(h=!0,this[i+"ClickEndShape"]=d,d._fireAndBubble(e.pointerup,{...f}),r&&s===d&&(d._fireAndBubble(e.pointerclick,{...f}),g&&o&&o===d&&d._fireAndBubble(e.pointerdblclick,{...f}))):(this[i+"ClickEndShape"]=null,h||(this._fire(e.pointerup,{evt:t,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id}),h=!0),r&&this._fire(e.pointerclick,{evt:t,target:this,currentTarget:this,pointerId:u}),g&&this._fire(e.pointerdblclick,{evt:t,target:this,currentTarget:this,pointerId:u}))}),h||this._fire(e.pointerup,{evt:t,target:this,currentTarget:this,pointerId:this._changedPointerPositions[0].id}),I["_"+i+"ListenClick"]=!1,t.cancelable&&i!=="touch"&&i!=="pointer"&&t.preventDefault()}_contextmenu(t){this.setPointersPositions(t);const e=this.getIntersection(this.getPointerPosition());e&&e.isListening()?e._fireAndBubble(pi,{evt:t}):this._fire(pi,{evt:t,target:this,currentTarget:this})}_wheel(t){this.setPointersPositions(t);const e=this.getIntersection(this.getPointerPosition());e&&e.isListening()?e._fireAndBubble(mi,{evt:t}):this._fire(mi,{evt:t,target:this,currentTarget:this})}_pointercancel(t){this.setPointersPositions(t);const e=ei(t.pointerId)||this.getIntersection(this.getPointerPosition());e&&e._fireAndBubble(ne,Di(t)),xe(t.pointerId)}_lostpointercapture(t){xe(t.pointerId)}setPointersPositions(t){const e=this._getContentPosition();let i=null,n=null;t=t||window.event,t.touches!==void 0?(this._pointerPositions=[],this._changedPointerPositions=[],Array.prototype.forEach.call(t.touches,r=>{this._pointerPositions.push({id:r.identifier,x:(r.clientX-e.left)/e.scaleX,y:(r.clientY-e.top)/e.scaleY})}),Array.prototype.forEach.call(t.changedTouches||t.touches,r=>{this._changedPointerPositions.push({id:r.identifier,x:(r.clientX-e.left)/e.scaleX,y:(r.clientY-e.top)/e.scaleY})})):(i=(t.clientX-e.left)/e.scaleX,n=(t.clientY-e.top)/e.scaleY,this.pointerPos={x:i,y:n},this._pointerPositions=[{x:i,y:n,id:_._getFirstPointerId(t)}],this._changedPointerPositions=[{x:i,y:n,id:_._getFirstPointerId(t)}])}_setPointerPosition(t){_.warn('Method _setPointerPosition is deprecated. Use "stage.setPointersPositions(event)" instead.'),this.setPointersPositions(t)}_getContentPosition(){if(!this.content||!this.content.getBoundingClientRect)return{top:0,left:0,scaleX:1,scaleY:1};const t=this.content.getBoundingClientRect();return{top:t.top,left:t.left,scaleX:t.width/this.content.clientWidth||1,scaleY:t.height/this.content.clientHeight||1}}_buildDOM(){if(this.bufferCanvas=new Bt({width:0,height:0}),this.bufferHitCanvas=new Gi({pixelRatio:1,width:0,height:0}),!I.isBrowser)return;const t=this.container();if(!t)throw"Stage has no container. A container is required.";t.innerHTML="",this.content=t.ownerDocument.createElement("div"),this.content.style.position="relative",this.content.style.userSelect="none",this.content.className="konvajs-content",this.content.setAttribute("role","presentation"),t.appendChild(this.content),oa(this._getOwnerWindow()),this._resizeDOM()}cache(){return _.warn("Cache function is not allowed for stage. You may use cache only for layers, groups and shapes."),this}clearCache(){return this}batchDraw(){return this.getChildren().forEach(function(t){t.batchDraw()}),this}}Ye.prototype.nodeType=Ur,gt(Ye),p.addGetterSetter(Ye,"container");const an="hasShadow",nn="shadowRGBA",rn="patternImage",sn="linearGradient",on="radialGradient";let ai;function ni(){return ai||(ai=_.createCanvasElement().getContext("2d"),ai)}const we={};function es(a){const t=this.attrs.fillRule;t?a.fill(t):a.fill()}function is(a){a.stroke()}function as(a){const t=this.attrs.fillRule;t?a.fill(t):a.fill()}function ns(a){a.stroke()}function rs(){this._clearCache(an)}function ss(){this._clearCache(nn)}function os(){this._clearCache(rn)}function ls(){this._clearCache(sn)}function hs(){this._clearCache(on)}class L extends T{constructor(t){super(t);let e,i=0;for(;e=_.getHitColor(),!(e&&!(e in we));)if(i++,i>=1e4){_.warn("Failed to find a unique color key for a shape. Konva may work incorrectly. Most likely your browser is using canvas farbling. Consider disabling it."),e=_.getRandomColor();break}this.colorKey=e,we[e]=this}getContext(){return _.warn("shape.getContext() method is deprecated. Please do not use it."),this.getLayer().getContext()}getCanvas(){return _.warn("shape.getCanvas() method is deprecated. Please do not use it."),this.getLayer().getCanvas()}getSceneFunc(){return this.attrs.sceneFunc||this._sceneFunc}getHitFunc(){return this.attrs.hitFunc||this._hitFunc}hasShadow(){return this._getCache(an,this._hasShadow)}_hasShadow(){return this.shadowEnabled()&&this.shadowOpacity()!==0&&!!(this.shadowColor()||this.shadowBlur()||this.shadowOffsetX()||this.shadowOffsetY())}_getFillPattern(){return this._getCache(rn,this.__getFillPattern)}__getFillPattern(){if(this.fillPatternImage()){const t=ni().createPattern(this.fillPatternImage(),this.fillPatternRepeat()||"repeat");if(t&&t.setTransform){const e=new kt;e.translate(this.fillPatternX(),this.fillPatternY()),e.rotate(I.getAngle(this.fillPatternRotation())),e.scale(this.fillPatternScaleX(),this.fillPatternScaleY()),e.translate(-1*this.fillPatternOffsetX(),-1*this.fillPatternOffsetY());const i=e.getMatrix(),n=typeof DOMMatrix>"u"?{a:i[0],b:i[1],c:i[2],d:i[3],e:i[4],f:i[5]}:new DOMMatrix(i);t.setTransform(n)}return t}}_getLinearGradient(){return this._getCache(sn,this.__getLinearGradient)}__getLinearGradient(){const t=this.fillLinearGradientColorStops();if(t){const e=ni(),i=this.fillLinearGradientStartPoint(),n=this.fillLinearGradientEndPoint(),r=e.createLinearGradient(i.x,i.y,n.x,n.y);for(let s=0;sthis.fillEnabled()&&!!(this.fill()||this.fillPatternImage()||this.fillLinearGradientColorStops()||this.fillRadialGradientColorStops()))}hasStroke(){return this._calculate("hasStroke",["strokeEnabled","strokeWidth","stroke","strokeLinearGradientColorStops"],()=>this.strokeEnabled()&&this.strokeWidth()&&!!(this.stroke()||this.strokeLinearGradientColorStops()))}hasHitStroke(){const t=this.hitStrokeWidth();return t==="auto"?this.hasStroke():this.strokeEnabled()&&!!t}intersects(t){const e=this.getStage();if(!e)return!1;const i=e._syncBufferSize(e.bufferHitCanvas);return i.getContext().clear(),this.drawHit(i,void 0,!0),i.context.getImageData(Math.round(t.x),Math.round(t.y),1,1).data[3]>0}destroy(){return T.prototype.destroy.call(this),delete we[this.colorKey],delete this.colorKey,this}_useBufferCanvas(t){var e;if(!(!((e=this.attrs.perfectDrawEnabled)!==null&&e!==void 0)||e))return!1;const i=t||this.hasFill(),n=this.hasStroke(),r=this.getAbsoluteOpacity()!==1;if(i&&n&&r)return!0;const s=this.hasShadow(),o=this.shadowForStrokeEnabled();return!!(i&&n&&s&&o)}setStrokeHitEnabled(t){_.warn("strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead."),t?this.hitStrokeWidth("auto"):this.hitStrokeWidth(0)}getStrokeHitEnabled(){return this.hitStrokeWidth()!==0}getSelfRect(){const t=this.size();return{x:this._centroid?-t.width/2:0,y:this._centroid?-t.height/2:0,width:t.width,height:t.height}}getClientRect(t={}){let e=!1,i=this.getParent();for(;i;){if(i.isCached()){e=!0;break}i=i.getParent()}const n=t.skipTransform,r=t.relativeTo||e&&this.getStage()||void 0,s=this.getSelfRect(),o=!t.skipStroke&&this.hasStroke()&&this.strokeWidth()||0,l=s.width+o,h=s.height+o,c=!t.skipShadow&&this.hasShadow(),d=c?this.shadowOffsetX():0,u=c?this.shadowOffsetY():0,f=l+Math.abs(d),g=h+Math.abs(u),y=c&&this.shadowBlur()||0,x=f+y*2,m=g+y*2,C={width:x,height:m,x:-(o/2+y)+Math.min(d,0)+s.x,y:-(o/2+y)+Math.min(u,0)+s.y};return n?C:this._transformedRect(C,r)}drawScene(t,e,i){const n=this.getLayer(),r=t||n.getCanvas(),s=r.getContext(),o=this._getCanvasCache(),l=this.getSceneFunc(),h=this.hasShadow();let c;const d=e===this;if(!this.isVisible()&&!d)return this;if(o){s.save();const u=this.getAbsoluteTransform(e).getMatrix();return s.transform(u[0],u[1],u[2],u[3],u[4],u[5]),this._drawCachedSceneCanvas(s),s.restore(),this}if(!l)return this;if(s.save(),this._useBufferCanvas()){c=this.getStage();const u=i||c._syncBufferSize(c.bufferCanvas),f=u.getContext();i?(f.save(),f.setTransform(1,0,0,1,0,0),f.clearRect(0,0,u.width,u.height),f.restore()):f.clear(),f.save(),f.imageSmoothingEnabled=s.imageSmoothingEnabled,f._applyLineJoin(this),f._applyMiterLimit(this);const g=this.getAbsoluteTransform(e).getMatrix();f.transform(g[0],g[1],g[2],g[3],g[4],g[5]),l.call(this,f,this),f.restore();const y=u.pixelRatio;h&&s._applyShadow(this),d||(s._applyOpacity(this),s._applyGlobalCompositeOperation(this)),s.drawImage(u._canvas,u.x||0,u.y||0,u.width/y,u.height/y)}else{if(s._applyLineJoin(this),s._applyMiterLimit(this),!d){const u=this.getAbsoluteTransform(e).getMatrix();s.transform(u[0],u[1],u[2],u[3],u[4],u[5]),s._applyOpacity(this),s._applyGlobalCompositeOperation(this)}h&&s._applyShadow(this),l.call(this,s,this)}return s.restore(),this}drawHit(t,e,i=!1){if(!this.shouldDrawHit(e,i))return this;const n=this.getLayer(),r=t||n.hitCanvas,s=r&&r.getContext(),o=this.hitFunc()||this.sceneFunc(),l=this._getCachedHitCanvas(e);if(this.colorKey||_.warn("Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()"),l){s.save();const h=this.getAbsoluteTransform(e).getMatrix();return s.transform(h[0],h[1],h[2],h[3],h[4],h[5]),this._drawCachedHitCanvas(s,l),s.restore(),this}if(!o)return this;if(s.save(),s._applyLineJoin(this),s._applyMiterLimit(this),this!==e){const h=this.getAbsoluteTransform(e).getMatrix();s.transform(h[0],h[1],h[2],h[3],h[4],h[5])}return o.call(this,s,this),s.restore(),this}drawHitFromCache(t=0){const e=this._getCachedSceneCanvas(),i=this._getCachedHitCanvas(),n=i.getContext(),r=i.getWidth(),s=i.getHeight();n.clear(),n.drawImage(e._canvas,0,0,r,s);try{const o=n.getImageData(0,0,r,s),l=o.data,h=l.length,c=_._hexToRgb(this.colorKey);for(let d=0;dt?(l[d]=c.r,l[d+1]=c.g,l[d+2]=c.b,l[d+3]=255):l[d+3]=0;n.putImageData(o,0,0)}catch(o){_.error("Unable to draw hit graph from cached scene canvas. "+o.message)}return this}hasPointerCapture(t){return Ya(t,this)}setPointerCapture(t){ja(t,this)}releaseCapture(t){xe(t)}}L.prototype._fillFunc=es,L.prototype._strokeFunc=is,L.prototype._fillFuncHit=as,L.prototype._strokeFuncHit=ns,L.prototype._centroid=!1,L.prototype.nodeType="Shape",gt(L),L.prototype.eventListeners={},L.prototype.on("shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",rs),L.prototype.on("shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",ss),L.prototype.on("fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva",os),L.prototype.on("fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva",ls),L.prototype.on("fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva",hs),p.addGetterSetter(L,"stroke",void 0,Qi()),p.addGetterSetter(L,"strokeWidth",2,R()),p.addGetterSetter(L,"fillAfterStrokeEnabled",!1),p.addGetterSetter(L,"hitStrokeWidth","auto",ui()),p.addGetterSetter(L,"strokeHitEnabled",!0,Pt()),p.addGetterSetter(L,"perfectDrawEnabled",!0,Pt()),p.addGetterSetter(L,"shadowForStrokeEnabled",!0,Pt()),p.addGetterSetter(L,"lineJoin"),p.addGetterSetter(L,"lineCap"),p.addGetterSetter(L,"miterLimit"),p.addGetterSetter(L,"sceneFunc"),p.addGetterSetter(L,"hitFunc"),p.addGetterSetter(L,"dash"),p.addGetterSetter(L,"dashOffset",0,R()),p.addGetterSetter(L,"shadowColor",void 0,te()),p.addGetterSetter(L,"shadowBlur",0,R()),p.addGetterSetter(L,"shadowOpacity",1,R()),p.addComponentsGetterSetter(L,"shadowOffset",["x","y"]),p.addGetterSetter(L,"shadowOffsetX",0,R()),p.addGetterSetter(L,"shadowOffsetY",0,R()),p.addGetterSetter(L,"fillPatternImage"),p.addGetterSetter(L,"fill",void 0,Qi()),p.addGetterSetter(L,"fillPatternX",0,R()),p.addGetterSetter(L,"fillPatternY",0,R()),p.addGetterSetter(L,"fillLinearGradientColorStops"),p.addGetterSetter(L,"strokeLinearGradientColorStops"),p.addGetterSetter(L,"fillRadialGradientStartRadius",0),p.addGetterSetter(L,"fillRadialGradientEndRadius",0),p.addGetterSetter(L,"fillRadialGradientColorStops"),p.addGetterSetter(L,"fillPatternRepeat","repeat"),p.addGetterSetter(L,"fillEnabled",!0),p.addGetterSetter(L,"strokeEnabled",!0),p.addGetterSetter(L,"shadowEnabled",!0),p.addGetterSetter(L,"dashEnabled",!0),p.addGetterSetter(L,"strokeScaleEnabled",!0),p.addGetterSetter(L,"fillPriority","color"),p.addComponentsGetterSetter(L,"fillPatternOffset",["x","y"]),p.addGetterSetter(L,"fillPatternOffsetX",0,R()),p.addGetterSetter(L,"fillPatternOffsetY",0,R()),p.addComponentsGetterSetter(L,"fillPatternScale",["x","y"]),p.addGetterSetter(L,"fillPatternScaleX",1,R()),p.addGetterSetter(L,"fillPatternScaleY",1,R()),p.addComponentsGetterSetter(L,"fillLinearGradientStartPoint",["x","y"]),p.addComponentsGetterSetter(L,"strokeLinearGradientStartPoint",["x","y"]),p.addGetterSetter(L,"fillLinearGradientStartPointX",0),p.addGetterSetter(L,"strokeLinearGradientStartPointX",0),p.addGetterSetter(L,"fillLinearGradientStartPointY",0),p.addGetterSetter(L,"strokeLinearGradientStartPointY",0),p.addComponentsGetterSetter(L,"fillLinearGradientEndPoint",["x","y"]),p.addComponentsGetterSetter(L,"strokeLinearGradientEndPoint",["x","y"]),p.addGetterSetter(L,"fillLinearGradientEndPointX",0),p.addGetterSetter(L,"strokeLinearGradientEndPointX",0),p.addGetterSetter(L,"fillLinearGradientEndPointY",0),p.addGetterSetter(L,"strokeLinearGradientEndPointY",0),p.addComponentsGetterSetter(L,"fillRadialGradientStartPoint",["x","y"]),p.addGetterSetter(L,"fillRadialGradientStartPointX",0),p.addGetterSetter(L,"fillRadialGradientStartPointY",0),p.addComponentsGetterSetter(L,"fillRadialGradientEndPoint",["x","y"]),p.addGetterSetter(L,"fillRadialGradientEndPointX",0),p.addGetterSetter(L,"fillRadialGradientEndPointY",0),p.addGetterSetter(L,"fillPatternRotation",0),p.addGetterSetter(L,"fillRule",void 0,te()),p.backCompat(L,{dashArray:"dash",getDashArray:"getDash",setDashArray:"getDash",drawFunc:"sceneFunc",getDrawFunc:"getSceneFunc",setDrawFunc:"setSceneFunc",drawHitFunc:"hitFunc",getDrawHitFunc:"getHitFunc",setDrawHitFunc:"setHitFunc"});const cs="beforeDraw",ds="draw",ln=[{x:0,y:0},{x:-1,y:-1},{x:1,y:-1},{x:1,y:1},{x:-1,y:1}],us=ln.length;class Kt extends St{constructor(t){super(t),this.canvas=new Bt,this.hitCanvas=new Gi({pixelRatio:1}),this._waitingForDraw=!1,this.on("visibleChange.konva",this._checkVisibility),this._checkVisibility(),this.on("imageSmoothingEnabledChange.konva",this._setSmoothEnabled),this._setSmoothEnabled()}createPNGStream(){return this.canvas._canvas.createPNGStream()}getCanvas(){return this.canvas}getNativeCanvasElement(){return this.canvas._canvas}getHitCanvas(){return this.hitCanvas}getContext(){return this.getCanvas().getContext()}clear(t){return this.getContext().clear(t),this.getHitCanvas().getContext().clear(t),this}setZIndex(t){super.setZIndex(t);const e=this.getStage();return e&&e.content&&(e.content.removeChild(this.getNativeCanvasElement()),t{this.draw(),this._waitingForDraw=!1},(t=this.getStage())===null||t===void 0?void 0:t._getOwnerWindow())),this}getIntersection(t){if(!this.isListening()||!this.isVisible())return null;let e=1,i=!1;for(;;){for(let n=0;n0)return{antialiased:!0};return{}}drawScene(t,e,i){const n=this.getLayer(),r=t||n&&n.getCanvas();return this._fire(cs,{node:this}),this.clearBeforeDraw()&&r.getContext().clear(),St.prototype.drawScene.call(this,r,e,i),this._fire(ds,{node:this}),this}drawHit(t,e){const i=this.getLayer(),n=t||i&&i.hitCanvas;return!t&&i&&(i._syncHitCanvasSize(),i.clearBeforeDraw()&&i.getHitCanvas().getContext().clear()),St.prototype.drawHit.call(this,n,e),this}enableHitGraph(){return this.hitGraphEnabled(!0),this}disableHitGraph(){return this.hitGraphEnabled(!1),this}setHitGraphEnabled(t){_.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening(t)}getHitGraphEnabled(t){return _.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening()}toggleHitCanvas(){if(!this.parent||!this.parent.content)return;const t=this.parent;this.hitCanvas._canvas.parentNode?t.content.removeChild(this.hitCanvas._canvas):t.content.appendChild(this.hitCanvas._canvas)}destroy(){return _.releaseCanvas(this.getNativeCanvasElement(),this.getHitCanvas()._canvas),super.destroy()}}Kt.prototype.nodeType="Layer",gt(Kt),p.addGetterSetter(Kt,"imageSmoothingEnabled",!0),p.addGetterSetter(Kt,"clearBeforeDraw",!0),p.addGetterSetter(Kt,"hitGraphEnabled",!0,Pt());class vi extends Kt{constructor(t){super(t),this.listening(!1),_.warn('Konva.Fast layer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.')}}vi.prototype.nodeType="FastLayer",gt(vi);class se extends St{_validateAdd(t){const e=t.getType();e!=="Group"&&e!=="Shape"&&_.throw("You may only add groups and shapes to groups.")}}se.prototype.nodeType="Group",gt(se);const ri=(function(){return Jt.performance&&Jt.performance.now?function(){return Jt.performance.now()}:function(){return new Date().getTime()}})();class Mt{constructor(t,e){this.id=Mt.animIdCounter++,this.frame={time:0,timeDiff:0,lastTime:ri(),frameRate:0},this.func=t,this.setLayers(e)}setLayers(t){let e=[];return t&&(e=Array.isArray(t)?t:[t]),this.layers=e,this}getLayers(){return this.layers}addLayer(t){const e=this.layers,i=e.length;for(let n=0;nthis.duration?this.yoyo?(this._time=this.duration,this.reverse()):this.finish():t<0?this.yoyo?(this._time=0,this.play()):this.reset():(this._time=t,this.update())}getTime(){return this._time}setPosition(t){this.prevPos=this._pos,this.propFunc(t),this._pos=t}getPosition(t){return t===void 0&&(t=this._time),this.func(t,this.begin,this._change,this.duration)}play(){this.state=la,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onPlay")}reverse(){this.state=ha,this._time=this.duration-this._time,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onReverse")}seek(t){this.pause(),this._time=t,this.update(),this.fire("onSeek")}reset(){this.pause(),this._time=0,this.update(),this.fire("onReset")}finish(){this.pause(),this._time=this.duration,this.update(),this.fire("onFinish")}update(){this.setPosition(this.getPosition(this._time)),this.fire("onUpdate")}onEnterFrame(){const t=this.getTimer()-this._startTime;this.state===la?this.setTime(t):this.state===ha&&this.setTime(this.duration-t)}pause(){this.state=fs,this.fire("onPause")}getTimer(){return new Date().getTime()}}class ot{constructor(t){const e=this,i=t.node,n=i._id,r=t.easing||Ce.Linear,s=!!t.yoyo;let o,l;typeof t.duration>"u"?o=.3:t.duration===0?o=.001:o=t.duration,this.node=i,this._id=ps++;const h=i.getLayer()||(i instanceof I.Stage?i.getLayers():null);h||_.error("Tween constructor have `node` that is not in a layer. Please add node into layer first."),this.anim=new Mt(function(){e.tween.onEnterFrame()},h),this.tween=new ms(l,function(c){e._tweenFunc(c)},r,0,1,o*1e3,s),this._addListeners(),ot.attrs[n]||(ot.attrs[n]={}),ot.attrs[n][this._id]||(ot.attrs[n][this._id]={}),ot.tweens[n]||(ot.tweens[n]={});for(l in t)gs[l]===void 0&&this._addAttr(l,t[l]);this.reset(),this.onFinish=t.onFinish,this.onReset=t.onReset,this.onUpdate=t.onUpdate}_addAttr(t,e){const i=this.node,n=i._id;let r,s,o,l,h;const c=ot.tweens[n][t];c&&delete ot.attrs[n][c][t];let d=i.getAttr(t);if(_._isArray(e))if(r=[],s=Math.max(e.length,d.length),t==="points"&&e.length!==d.length&&(e.length>d.length?(l=d,d=_._prepareArrayForTween(d,e,i.closed())):(o=e,e=_._prepareArrayForTween(e,d,i.closed()))),t.indexOf("fill")===0)for(let u=0;u{this.anim.start()},this.tween.onReverse=()=>{this.anim.start()},this.tween.onPause=()=>{this.anim.stop()},this.tween.onFinish=()=>{const t=this.node,e=ot.attrs[t._id][this._id];e.points&&e.points.trueEnd&&t.setAttr("points",e.points.trueEnd),this.onFinish&&this.onFinish.call(this)},this.tween.onReset=()=>{const t=this.node,e=ot.attrs[t._id][this._id];e.points&&e.points.trueStart&&t.points(e.points.trueStart),this.onReset&&this.onReset()},this.tween.onUpdate=()=>{this.onUpdate&&this.onUpdate.call(this)}}play(){return this.tween.play(),this}reverse(){return this.tween.reverse(),this}reset(){return this.tween.reset(),this}seek(t){return this.tween.seek(t*1e3),this}pause(){return this.tween.pause(),this}finish(){return this.tween.finish(),this}destroy(){const t=this.node._id,e=this._id,i=ot.tweens[t];this.pause(),this.anim&&this.anim.stop();for(const n in i)delete ot.tweens[t][n];delete ot.attrs[t][e],ot.tweens[t]&&(Object.keys(ot.tweens[t]).length===0&&delete ot.tweens[t],Object.keys(ot.attrs[t]).length===0&&delete ot.attrs[t])}}ot.attrs={},ot.tweens={},T.prototype.to=function(a){const t=a.onFinish;a.node=this,a.onFinish=function(){this.destroy(),t&&t()},new ot(a).play()};const Ce={BackEaseIn(a,t,e,i){return e*(a/=i)*a*((1.70158+1)*a-1.70158)+t},BackEaseOut(a,t,e,i){return e*((a=a/i-1)*a*((1.70158+1)*a+1.70158)+1)+t},BackEaseInOut(a,t,e,i){let n=1.70158;return(a/=i/2)<1?e/2*(a*a*(((n*=1.525)+1)*a-n))+t:e/2*((a-=2)*a*(((n*=1.525)+1)*a+n)+2)+t},ElasticEaseIn(a,t,e,i,n,r){let s=0;return a===0?t:(a/=i)===1?t+e:(r||(r=i*.3),!n||n0?t:e),d=o*e,u=l*(l>0?t:e),f=h*(h>0?e:t);return{x:c,y:i?-1*f:u,width:d-c,height:f-u}}}Rt.prototype._centroid=!0,Rt.prototype.className="Arc",Rt.prototype._attrsAffectingSize=["innerRadius","outerRadius","angle","clockwise"],gt(Rt),p.addGetterSetter(Rt,"innerRadius",0,R()),p.addGetterSetter(Rt,"outerRadius",0,R()),p.addGetterSetter(Rt,"angle",0,R()),p.addGetterSetter(Rt,"clockwise",!1,Pt());const vs=[[],[],[-.5773502691896257,.5773502691896257],[0,-.7745966692414834,.7745966692414834],[-.33998104358485626,.33998104358485626,-.8611363115940526,.8611363115940526],[0,-.5384693101056831,.5384693101056831,-.906179845938664,.906179845938664],[.6612093864662645,-.6612093864662645,-.2386191860831969,.2386191860831969,-.932469514203152,.932469514203152],[0,.4058451513773972,-.4058451513773972,-.7415311855993945,.7415311855993945,-.9491079123427585,.9491079123427585],[-.1834346424956498,.1834346424956498,-.525532409916329,.525532409916329,-.7966664774136267,.7966664774136267,-.9602898564975363,.9602898564975363],[0,-.8360311073266358,.8360311073266358,-.9681602395076261,.9681602395076261,-.3242534234038089,.3242534234038089,-.6133714327005904,.6133714327005904],[-.14887433898163122,.14887433898163122,-.4333953941292472,.4333953941292472,-.6794095682990244,.6794095682990244,-.8650633666889845,.8650633666889845,-.9739065285171717,.9739065285171717],[0,-.26954315595234496,.26954315595234496,-.5190961292068118,.5190961292068118,-.7301520055740494,.7301520055740494,-.8870625997680953,.8870625997680953,-.978228658146057,.978228658146057],[-.1252334085114689,.1252334085114689,-.3678314989981802,.3678314989981802,-.5873179542866175,.5873179542866175,-.7699026741943047,.7699026741943047,-.9041172563704749,.9041172563704749,-.9815606342467192,.9815606342467192],[0,-.2304583159551348,.2304583159551348,-.44849275103644687,.44849275103644687,-.6423493394403402,.6423493394403402,-.8015780907333099,.8015780907333099,-.9175983992229779,.9175983992229779,-.9841830547185881,.9841830547185881],[-.10805494870734367,.10805494870734367,-.31911236892788974,.31911236892788974,-.5152486363581541,.5152486363581541,-.6872929048116855,.6872929048116855,-.827201315069765,.827201315069765,-.9284348836635735,.9284348836635735,-.9862838086968123,.9862838086968123],[0,-.20119409399743451,.20119409399743451,-.3941513470775634,.3941513470775634,-.5709721726085388,.5709721726085388,-.7244177313601701,.7244177313601701,-.8482065834104272,.8482065834104272,-.937273392400706,.937273392400706,-.9879925180204854,.9879925180204854],[-.09501250983763744,.09501250983763744,-.2816035507792589,.2816035507792589,-.45801677765722737,.45801677765722737,-.6178762444026438,.6178762444026438,-.755404408355003,.755404408355003,-.8656312023878318,.8656312023878318,-.9445750230732326,.9445750230732326,-.9894009349916499,.9894009349916499],[0,-.17848418149584785,.17848418149584785,-.3512317634538763,.3512317634538763,-.5126905370864769,.5126905370864769,-.6576711592166907,.6576711592166907,-.7815140038968014,.7815140038968014,-.8802391537269859,.8802391537269859,-.9506755217687678,.9506755217687678,-.9905754753144174,.9905754753144174],[-.0847750130417353,.0847750130417353,-.2518862256915055,.2518862256915055,-.41175116146284263,.41175116146284263,-.5597708310739475,.5597708310739475,-.6916870430603532,.6916870430603532,-.8037049589725231,.8037049589725231,-.8926024664975557,.8926024664975557,-.9558239495713977,.9558239495713977,-.9915651684209309,.9915651684209309],[0,-.16035864564022537,.16035864564022537,-.31656409996362983,.31656409996362983,-.46457074137596094,.46457074137596094,-.600545304661681,.600545304661681,-.7209661773352294,.7209661773352294,-.8227146565371428,.8227146565371428,-.9031559036148179,.9031559036148179,-.96020815213483,.96020815213483,-.9924068438435844,.9924068438435844],[-.07652652113349734,.07652652113349734,-.22778585114164507,.22778585114164507,-.37370608871541955,.37370608871541955,-.5108670019508271,.5108670019508271,-.636053680726515,.636053680726515,-.7463319064601508,.7463319064601508,-.8391169718222188,.8391169718222188,-.912234428251326,.912234428251326,-.9639719272779138,.9639719272779138,-.9931285991850949,.9931285991850949],[0,-.1455618541608951,.1455618541608951,-.2880213168024011,.2880213168024011,-.4243421202074388,.4243421202074388,-.5516188358872198,.5516188358872198,-.6671388041974123,.6671388041974123,-.7684399634756779,.7684399634756779,-.8533633645833173,.8533633645833173,-.9200993341504008,.9200993341504008,-.9672268385663063,.9672268385663063,-.9937521706203895,.9937521706203895],[-.06973927331972223,.06973927331972223,-.20786042668822127,.20786042668822127,-.34193582089208424,.34193582089208424,-.469355837986757,.469355837986757,-.5876404035069116,.5876404035069116,-.6944872631866827,.6944872631866827,-.7878168059792081,.7878168059792081,-.8658125777203002,.8658125777203002,-.926956772187174,.926956772187174,-.9700604978354287,.9700604978354287,-.9942945854823992,.9942945854823992],[0,-.1332568242984661,.1332568242984661,-.26413568097034495,.26413568097034495,-.3903010380302908,.3903010380302908,-.5095014778460075,.5095014778460075,-.6196098757636461,.6196098757636461,-.7186613631319502,.7186613631319502,-.8048884016188399,.8048884016188399,-.8767523582704416,.8767523582704416,-.9329710868260161,.9329710868260161,-.9725424712181152,.9725424712181152,-.9947693349975522,.9947693349975522],[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213]],ys=[[],[],[1,1],[.8888888888888888,.5555555555555556,.5555555555555556],[.6521451548625461,.6521451548625461,.34785484513745385,.34785484513745385],[.5688888888888889,.47862867049936647,.47862867049936647,.23692688505618908,.23692688505618908],[.3607615730481386,.3607615730481386,.46791393457269104,.46791393457269104,.17132449237917036,.17132449237917036],[.4179591836734694,.3818300505051189,.3818300505051189,.27970539148927664,.27970539148927664,.1294849661688697,.1294849661688697],[.362683783378362,.362683783378362,.31370664587788727,.31370664587788727,.22238103445337448,.22238103445337448,.10122853629037626,.10122853629037626],[.3302393550012598,.1806481606948574,.1806481606948574,.08127438836157441,.08127438836157441,.31234707704000286,.31234707704000286,.26061069640293544,.26061069640293544],[.29552422471475287,.29552422471475287,.26926671930999635,.26926671930999635,.21908636251598204,.21908636251598204,.1494513491505806,.1494513491505806,.06667134430868814,.06667134430868814],[.2729250867779006,.26280454451024665,.26280454451024665,.23319376459199048,.23319376459199048,.18629021092773426,.18629021092773426,.1255803694649046,.1255803694649046,.05566856711617366,.05566856711617366],[.24914704581340277,.24914704581340277,.2334925365383548,.2334925365383548,.20316742672306592,.20316742672306592,.16007832854334622,.16007832854334622,.10693932599531843,.10693932599531843,.04717533638651183,.04717533638651183],[.2325515532308739,.22628318026289723,.22628318026289723,.2078160475368885,.2078160475368885,.17814598076194574,.17814598076194574,.13887351021978725,.13887351021978725,.09212149983772845,.09212149983772845,.04048400476531588,.04048400476531588],[.2152638534631578,.2152638534631578,.2051984637212956,.2051984637212956,.18553839747793782,.18553839747793782,.15720316715819355,.15720316715819355,.12151857068790319,.12151857068790319,.08015808715976021,.08015808715976021,.03511946033175186,.03511946033175186],[.2025782419255613,.19843148532711158,.19843148532711158,.1861610000155622,.1861610000155622,.16626920581699392,.16626920581699392,.13957067792615432,.13957067792615432,.10715922046717194,.10715922046717194,.07036604748810812,.07036604748810812,.03075324199611727,.03075324199611727],[.1894506104550685,.1894506104550685,.18260341504492358,.18260341504492358,.16915651939500254,.16915651939500254,.14959598881657674,.14959598881657674,.12462897125553388,.12462897125553388,.09515851168249279,.09515851168249279,.062253523938647894,.062253523938647894,.027152459411754096,.027152459411754096],[.17944647035620653,.17656270536699264,.17656270536699264,.16800410215645004,.16800410215645004,.15404576107681028,.15404576107681028,.13513636846852548,.13513636846852548,.11188384719340397,.11188384719340397,.08503614831717918,.08503614831717918,.0554595293739872,.0554595293739872,.02414830286854793,.02414830286854793],[.1691423829631436,.1691423829631436,.16427648374583273,.16427648374583273,.15468467512626524,.15468467512626524,.14064291467065065,.14064291467065065,.12255520671147846,.12255520671147846,.10094204410628717,.10094204410628717,.07642573025488905,.07642573025488905,.0497145488949698,.0497145488949698,.02161601352648331,.02161601352648331],[.1610544498487837,.15896884339395434,.15896884339395434,.15276604206585967,.15276604206585967,.1426067021736066,.1426067021736066,.12875396253933621,.12875396253933621,.11156664554733399,.11156664554733399,.09149002162245,.09149002162245,.06904454273764123,.06904454273764123,.0448142267656996,.0448142267656996,.019461788229726478,.019461788229726478],[.15275338713072584,.15275338713072584,.14917298647260374,.14917298647260374,.14209610931838204,.14209610931838204,.13168863844917664,.13168863844917664,.11819453196151841,.11819453196151841,.10193011981724044,.10193011981724044,.08327674157670475,.08327674157670475,.06267204833410907,.06267204833410907,.04060142980038694,.04060142980038694,.017614007139152118,.017614007139152118],[.14608113364969041,.14452440398997005,.14452440398997005,.13988739479107315,.13988739479107315,.13226893863333747,.13226893863333747,.12183141605372853,.12183141605372853,.10879729916714838,.10879729916714838,.09344442345603386,.09344442345603386,.0761001136283793,.0761001136283793,.057134425426857205,.057134425426857205,.036953789770852494,.036953789770852494,.016017228257774335,.016017228257774335],[.13925187285563198,.13925187285563198,.13654149834601517,.13654149834601517,.13117350478706238,.13117350478706238,.12325237681051242,.12325237681051242,.11293229608053922,.11293229608053922,.10041414444288096,.10041414444288096,.08594160621706773,.08594160621706773,.06979646842452049,.06979646842452049,.052293335152683286,.052293335152683286,.03377490158481415,.03377490158481415,.0146279952982722,.0146279952982722],[.13365457218610619,.1324620394046966,.1324620394046966,.12890572218808216,.12890572218808216,.12304908430672953,.12304908430672953,.11499664022241136,.11499664022241136,.10489209146454141,.10489209146454141,.09291576606003515,.09291576606003515,.07928141177671895,.07928141177671895,.06423242140852585,.06423242140852585,.04803767173108467,.04803767173108467,.030988005856979445,.030988005856979445,.013411859487141771,.013411859487141771],[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872]],_s=[[1],[1,1],[1,2,1],[1,3,3,1]],ua=(a,t,e)=>{let i,n;const r=e/2;i=0;for(let s=0;s<20;s++)n=r*vs[20][s]+r,i+=ys[20][s]*xs(a,t,n);return r*i},ga=(a,t,e)=>{e===void 0&&(e=1);const i=a[0]-2*a[1]+a[2],n=t[0]-2*t[1]+t[2],r=2*a[1]-2*a[0],s=2*t[1]-2*t[0],o=4*(i*i+n*n),l=4*(i*r+n*s),h=r*r+s*s;if(o===0)return e*Math.sqrt(Math.pow(a[2]-a[0],2)+Math.pow(t[2]-t[0],2));const c=l/(2*o),d=h/o,u=e+c,f=d-c*c,g=u*u+f>0?Math.sqrt(u*u+f):0,y=c*c+f>0?Math.sqrt(c*c+f):0,x=c+Math.sqrt(c*c+f)!==0?f*Math.log(Math.abs((u+g)/(c+y))):0;return Math.sqrt(o)/2*(u*g-c*y+x)};function xs(a,t,e){const i=yi(1,e,a),n=yi(1,e,t),r=i*i+n*n;return Math.sqrt(r)}const yi=(a,t,e)=>{const i=e.length-1;let n,r;if(i===0)return 0;if(a===0){r=0;for(let s=0;s<=i;s++)r+=_s[i][s]*Math.pow(1-t,i-s)*Math.pow(t,s)*e[s];return r}else{n=new Array(i);for(let s=0;s{let i=1,n=a/t,r=(a-e(n))/t,s=0;for(;i>.001;){const o=e(n+r),l=Math.abs(a-o)/t;if(l500)break}return n},pa=(a,t,e,i)=>{const n=1-i;return n*n*a+2*n*i*t+i*i*e},hn=(a,t,e,i,n,r)=>{const s=[];for(const o of[[a,e,n],[t,i,r]]){const l=(o[0]-o[1])/(o[0]-2*o[1]+o[2]);l>0&&l<1&&s.push(pa(a,e,n,l),pa(t,i,r,l))}return s},ma=(a,t,e,i,n)=>{const r=1-n;return r*r*r*a+3*r*r*n*t+3*r*n*n*e+n*n*n*i},zi=(a,t,e,i,n,r,s,o)=>{const l=[];for(const h of[[a,e,n,s],[t,i,r,o]]){const c=-3*h[0]+9*h[1]-9*h[2]+3*h[3],d=6*h[0]-12*h[1]+6*h[2],u=-3*h[0]+3*h[1],f=d*d-4*c*u;if(f<0)continue;const g=-(d+(d<0?-1:1)*Math.sqrt(f))/2;for(const y of[g/c,u/g])y>0&&y<1&&l.push(ma(a,e,n,s,y),ma(t,i,r,o,y))}return l};function _i(a,t,e,i,n,r,s){const o=Math.sqrt(Math.pow(e-a,2)+Math.pow(i-t,2)),l=Math.sqrt(Math.pow(n-e,2)+Math.pow(r-i,2)),h=o+l;if(h===0)return[e,i,e,i];const c=s*o/h,d=s*l/h,u=e-c*(n-a),f=i-c*(r-t),g=e+d*(n-a),y=i+d*(r-t);return[u,f,g,y]}function va(a,t){const e=a.length,i=[];for(let n=2;n4}_eachTensionSegment(t,e){const i=this.points(),n=i.length,r=this.closed(),s=this.getTensionPoints(),o=s.length;let l=i[0],h=i[1],c=r?0:4;for(r||(t(l,h,s[0],s[1],s[2],s[3]),l=s[2],h=s[3]);ct.quadraticCurveTo(h,c,d,u),(o,l,h,c,d,u,f,g)=>t.bezierCurveTo(h,c,d,u,f,g));else if(r)for(s=2;sl.push(f,g,...hn(h,c,d,u,f,g)),(h,c,d,u,f,g,y,x)=>l.push(y,x,...zi(h,c,d,u,f,g,y,x))),t=l}else this.bezier()&&(t=[t[0],t[1],...bs(t)]);let e=t[0],i=t[0],n=t[1],r=t[1],s,o;for(let l=0;lc?h:c,x=h>c?1:h/c,m=h>c?c/h:1;t.translate(o,l),t.rotate(f),t.scale(x,m),t.arc(0,0,y,d,d+u,1-g),t.scale(1/x,1/m),t.rotate(-f),t.translate(-o,-l);break;case"z":i=!0,t.closePath();break}}!i&&!this.hasFill()?t.strokeShape(this):t.fillStrokeShape(this)}getSelfRect(){let t=[];this.dataArray.forEach(function(l){if(l.command==="A"){const h=l.points[4],c=l.points[5],d=l.points[4]+c;let u=Math.PI/180;if(Math.abs(h-d)d;f-=u){const g=ct.getPointOnEllipticalArc(l.points[0],l.points[1],l.points[2],l.points[3],f,0);t.push(g.x,g.y)}else for(let f=h+u;fe[n].pathLength;)t-=e[n].pathLength,++n;if(n===r){let l=n-1;for(;l>0&&e[l].points.length<2;)l--;return i=e[l].points.slice(-2),{x:i[0],y:i[1]}}if(t<.01)return e[n].command==="M"?(i=e[n].points.slice(0,2),{x:i[0],y:i[1]}):{x:e[n].start.x,y:e[n].start.y};const s=e[n],o=s.points;switch(s.command){case"L":return ct.getPointOnLine(t,s.start.x,s.start.y,o[0],o[1]);case"C":return ct.getPointOnCubicBezier(fa(t,ct.getPathLength(e),y=>ua([s.start.x,o[0],o[2],o[4]],[s.start.y,o[1],o[3],o[5]],y)),s.start.x,s.start.y,o[0],o[1],o[2],o[3],o[4],o[5]);case"Q":return ct.getPointOnQuadraticBezier(fa(t,ct.getPathLength(e),y=>ga([s.start.x,o[0],o[2]],[s.start.y,o[1],o[3]],y)),s.start.x,s.start.y,o[0],o[1],o[2],o[3]);case"A":const l=o[0],h=o[1],c=o[2],d=o[3],u=o[5],f=o[6];let g=o[4];return g+=u*t/s.pathLength,ct.getPointOnEllipticalArc(l,h,c,d,g,f)}return null}static getPointOnLine(t,e,i,n,r,s,o){s=s??e,o=o??i;const l=this.getLineLength(e,i,n,r);if(l<1e-10)return{x:e,y:i};if(n===e)return{x:s,y:o+(r>i?t:-t)};const h=(r-i)/(n-e),c=Math.sqrt(t*t/(1+h*h))*(n=0&&(y+=2,y>=7&&(y-=7));continue}if(y>=0){if(y===3){if(/^[01]{2}\d+(?:\.\d+)?$/.test(C)){g.push(parseInt(C[0],10)),g.push(parseInt(C[1],10)),g.push(parseFloat(C.slice(2))),y+=3,y>=7&&(y-=7);continue}if(C==="11"||C==="10"||C==="01"){g.push(parseInt(C[0],10)),g.push(parseInt(C[1],10)),y+=2,y>=7&&(y-=7);continue}if(C==="0"||C==="1"){g.push(parseInt(C,10)),y+=1,y>=7&&(y-=7);continue}}else if(y===4){if(/^[01]\d+(?:\.\d+)?$/.test(C)){g.push(parseInt(C[0],10)),g.push(parseFloat(C.slice(1))),y+=2,y>=7&&(y-=7);continue}if(C==="0"||C==="1"){g.push(parseInt(C,10)),y+=1,y>=7&&(y-=7);continue}}const v=parseFloat(C);isNaN(v)?g.push(0):g.push(v),y+=1,y>=7&&(y-=7)}else{const v=parseFloat(C);isNaN(v)?g.push(0):g.push(v)}}for(;g.length>0&&!isNaN(g[0]);){let x="",m=[];const C=o,v=l;let w,A,P,E,F,X,O,N,U,Y;switch(f){case"l":o+=g.shift(),l+=g.shift(),x="L",m.push(o,l);break;case"L":o=g.shift(),l=g.shift(),m.push(o,l);break;case"m":const V=g.shift(),z=g.shift();if(o+=V,l+=z,x="M",r.length>2&&r[r.length-1].command==="z"){for(let at=r.length-2;at>=0;at--)if(r[at].command==="M"){o=r[at].points[0]+V,l=r[at].points[1]+z;break}}m.push(o,l),f="l";break;case"M":o=g.shift(),l=g.shift(),x="M",m.push(o,l),f="L";break;case"h":o+=g.shift(),x="L",m.push(o,l);break;case"H":o=g.shift(),x="L",m.push(o,l);break;case"v":l+=g.shift(),x="L",m.push(o,l);break;case"V":l=g.shift(),x="L",m.push(o,l);break;case"C":m.push(g.shift(),g.shift(),g.shift(),g.shift()),o=g.shift(),l=g.shift(),m.push(o,l);break;case"c":m.push(o+g.shift(),l+g.shift(),o+g.shift(),l+g.shift()),o+=g.shift(),l+=g.shift(),x="C",m.push(o,l);break;case"S":A=o,P=l,w=r[r.length-1],w.command==="C"&&(A=o+(o-w.points[2]),P=l+(l-w.points[3])),m.push(A,P,g.shift(),g.shift()),o=g.shift(),l=g.shift(),x="C",m.push(o,l);break;case"s":A=o,P=l,w=r[r.length-1],w.command==="C"&&(A=o+(o-w.points[2]),P=l+(l-w.points[3])),m.push(A,P,o+g.shift(),l+g.shift()),o+=g.shift(),l+=g.shift(),x="C",m.push(o,l);break;case"Q":m.push(g.shift(),g.shift()),o=g.shift(),l=g.shift(),m.push(o,l);break;case"q":m.push(o+g.shift(),l+g.shift()),o+=g.shift(),l+=g.shift(),x="Q",m.push(o,l);break;case"T":A=o,P=l,w=r[r.length-1],w.command==="Q"&&(A=o+(o-w.points[0]),P=l+(l-w.points[1])),o=g.shift(),l=g.shift(),x="Q",m.push(A,P,o,l);break;case"t":A=o,P=l,w=r[r.length-1],w.command==="Q"&&(A=o+(o-w.points[0]),P=l+(l-w.points[1])),o+=g.shift(),l+=g.shift(),x="Q",m.push(A,P,o,l);break;case"A":E=g.shift(),F=g.shift(),X=g.shift(),O=g.shift(),N=g.shift(),U=o,Y=l,o=g.shift(),l=g.shift(),x="A",m=this.convertEndpointToCenterParameterization(U,Y,o,l,O,N,E,F,X);break;case"a":E=g.shift(),F=g.shift(),X=g.shift(),O=g.shift(),N=g.shift(),U=o,Y=l,o+=g.shift(),l+=g.shift(),x="A",m=this.convertEndpointToCenterParameterization(U,Y,o,l,O,N,E,F,X);break}r.push({command:x||f,points:m,start:{x:C,y:v},pathLength:this.calcLength(C,v,x||f,m)})}(f==="z"||f==="Z")&&r.push({command:"z",points:[],start:void 0,pathLength:0})}return r}static calcLength(t,e,i,n){let r,s,o,l;const h=ct;switch(i){case"L":return h.getLineLength(t,e,n[0],n[1]);case"C":return ua([t,n[0],n[2],n[4]],[e,n[1],n[3],n[5]],1);case"Q":return ga([t,n[0],n[2]],[e,n[1],n[3]],1);case"A":r=0;const c=n[4],d=n[5],u=n[4]+d;let f=Math.PI/180;if(Math.abs(c-u)u;l-=f)o=h.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],l,0),r+=h.getLineLength(s.x,s.y,o.x,o.y),s=o;else for(l=c+f;l1&&(o*=Math.sqrt(f),l*=Math.sqrt(f));let g=Math.sqrt((o*o*(l*l)-o*o*(u*u)-l*l*(d*d))/(o*o*(u*u)+l*l*(d*d)));r===s&&(g*=-1),isNaN(g)&&(g=0);const y=g*o*u/l,x=g*-l*d/o,m=(t+i)/2+Math.cos(c)*y-Math.sin(c)*x,C=(e+n)/2+Math.sin(c)*y+Math.cos(c)*x,v=function(O){return Math.sqrt(O[0]*O[0]+O[1]*O[1])},w=function(O,N){return(O[0]*N[0]+O[1]*N[1])/(v(O)*v(N))},A=function(O,N){return(O[0]*N[1]=1&&(X=0),s===0&&X>0&&(X=X-2*Math.PI),s===1&&X<0&&(X=X+2*Math.PI),[m,C,o,l,P,X,c,s]}}ct.prototype.className="Path",ct.prototype._attrsAffectingSize=["data"],gt(ct),p.addGetterSetter(ct,"data");class Ut extends Gt{_sceneFunc(t){super._sceneFunc(t);const e=Math.PI*2,i=this.points();let n=i;const r=this.tension()!==0&&i.length>4;r&&(n=this.getTensionPoints());const s=this.pointerLength(),o=i.length;let l,h;if(r){const u=[n[n.length-4],n[n.length-3],n[n.length-2],n[n.length-1],i[o-2],i[o-1]],f=ct.calcLength(n[n.length-4],n[n.length-3],"C",u),g=ct.getPointOnQuadraticBezier(Math.min(1,1-s/f),u[0],u[1],u[2],u[3],u[4],u[5]);l=i[o-2]-g.x,h=i[o-1]-g.y}else l=i[o-2]-i[o-4],h=i[o-1]-i[o-3];const c=(Math.atan2(h,l)+e)%e,d=this.pointerWidth();this.pointerAtEnding()&&(t.save(),t.beginPath(),t.translate(i[o-2],i[o-1]),t.rotate(c),t.moveTo(0,0),t.lineTo(-s,d/2),t.lineTo(-s,-d/2),t.closePath(),t.restore(),this.__fillStroke(t)),this.pointerAtBeginning()&&(t.save(),t.beginPath(),t.translate(i[0],i[1]),r?(l=(n[0]+n[2])/2-i[0],h=(n[1]+n[3])/2-i[1]):(l=i[2]-i[0],h=i[3]-i[1]),t.rotate((Math.atan2(-h,-l)+e)%e),t.moveTo(0,0),t.lineTo(-s,d/2),t.lineTo(-s,-d/2),t.closePath(),t.restore(),this.__fillStroke(t))}__fillStroke(t){const e=this.dashEnabled();e&&(this.attrs.dashEnabled=!1,t.setLineDash([])),t.fillStrokeShape(this),e&&(this.attrs.dashEnabled=!0)}getSelfRect(){const t=super.getSelfRect(),e=this.pointerWidth()/2;return{x:t.x,y:t.y-e,width:t.width,height:t.height+e*2}}}Ut.prototype.className="Arrow",gt(Ut),p.addGetterSetter(Ut,"pointerLength",10,R()),p.addGetterSetter(Ut,"pointerWidth",10,R()),p.addGetterSetter(Ut,"pointerAtBeginning",!1),p.addGetterSetter(Ut,"pointerAtEnding",!0);class ae extends L{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.attrs.radius||0,0,Math.PI*2,!1),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius()!==t/2&&this.radius(t/2)}setHeight(t){this.radius()!==t/2&&this.radius(t/2)}}ae.prototype._centroid=!0,ae.prototype.className="Circle",ae.prototype._attrsAffectingSize=["radius"],gt(ae),p.addGetterSetter(ae,"radius",0,R());class Ht extends L{_sceneFunc(t){const e=this.radiusX(),i=this.radiusY();t.beginPath(),t.save(),e!==i&&t.scale(1,i/e),t.arc(0,0,e,0,Math.PI*2,!1),t.restore(),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radiusX()*2}getHeight(){return this.radiusY()*2}setWidth(t){this.radiusX(t/2)}setHeight(t){this.radiusY(t/2)}}Ht.prototype.className="Ellipse",Ht.prototype._centroid=!0,Ht.prototype._attrsAffectingSize=["radiusX","radiusY"],gt(Ht),p.addComponentsGetterSetter(Ht,"radius",["x","y"]),p.addGetterSetter(Ht,"radiusX",0,R()),p.addGetterSetter(Ht,"radiusY",0,R());let At=class cn extends L{constructor(t){super(t),this._loadListener=()=>{this._requestDraw()},this.on("imageChange.konva",e=>{this._removeImageLoad(e.oldVal),this._setImageLoad()}),this._setImageLoad()}_setImageLoad(){const t=this.image();t&&t.complete||t&&t.readyState===4||t&&t.addEventListener&&t.addEventListener("load",this._loadListener)}_removeImageLoad(t){t&&t.removeEventListener&&t.removeEventListener("load",this._loadListener)}destroy(){return this._removeImageLoad(this.image()),super.destroy(),this}_useBufferCanvas(){const t=!!this.cornerRadius(),e=this.hasShadow();return t&&e?!0:super._useBufferCanvas(!0)}_sceneFunc(t){const e=this.getWidth(),i=this.getHeight(),n=this.cornerRadius(),r=this.attrs.image;let s;if(r){const o=this.attrs.cropWidth,l=this.attrs.cropHeight;o&&l?s=[r,this.cropX(),this.cropY(),o,l,0,0,e,i]:s=[r,0,0,e,i]}(this.hasFill()||this.hasStroke()||n)&&(t.beginPath(),n?_.drawRoundedRectPath(t,e,i,n):t.rect(0,0,e,i),t.closePath(),t.fillStrokeShape(this)),r&&(n&&t.clip(),t.drawImage.apply(t,s))}_hitFunc(t){const e=this.width(),i=this.height(),n=this.cornerRadius();t.beginPath(),n?_.drawRoundedRectPath(t,e,i,n):t.rect(0,0,e,i),t.closePath(),t.fillStrokeShape(this)}getWidth(){var t,e,i;return(i=(t=this.attrs.width)!==null&&t!==void 0?t:(e=this.image())===null||e===void 0?void 0:e.width)!==null&&i!==void 0?i:0}getHeight(){var t,e,i;return(i=(t=this.attrs.height)!==null&&t!==void 0?t:(e=this.image())===null||e===void 0?void 0:e.height)!==null&&i!==void 0?i:0}static fromURL(t,e,i=null){const n=_.createImageElement();n.onload=function(){const r=new cn({image:n});e(r)},n.onerror=i,n.crossOrigin="Anonymous",n.src=t}};At.prototype.className="Image",At.prototype._attrsAffectingSize=["image"],gt(At),p.addGetterSetter(At,"cornerRadius",0,Ke(4)),p.addGetterSetter(At,"image"),p.addComponentsGetterSetter(At,"crop",["x","y","width","height"]),p.addGetterSetter(At,"cropX",0,R()),p.addGetterSetter(At,"cropY",0,R()),p.addGetterSetter(At,"cropWidth",0,R()),p.addGetterSetter(At,"cropHeight",0,R());const dn=["fontFamily","fontSize","fontStyle","padding","lineHeight","text","width","height","pointerDirection","pointerWidth","pointerHeight"],ws="Change.konva",Cs="none",xi="up",bi="right",wi="down",Ci="left",Ss=dn.length;class Si extends se{constructor(t){super(t),this.on("add.konva",function(e){this._addListeners(e.child),this._sync()})}getText(){return this.find("Text")[0]}getTag(){return this.find("Tag")[0]}_addListeners(t){let e=this,i;const n=function(){e._sync()};for(i=0;i{e=Math.min(e,s.x),i=Math.max(i,s.x),n=Math.min(n,s.y),r=Math.max(r,s.y)}),{x:e,y:n,width:i-e,height:r-n}}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius(t/2)}setHeight(t){this.radius(t/2)}}Ot.prototype.className="RegularPolygon",Ot.prototype._centroid=!0,Ot.prototype._attrsAffectingSize=["radius"],gt(Ot),p.addGetterSetter(Ot,"radius",0,R()),p.addGetterSetter(Ot,"sides",0,R()),p.addGetterSetter(Ot,"cornerRadius",0,Ke(4));const ya=Math.PI*2;class Zt extends L{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.innerRadius(),0,ya,!1),t.moveTo(this.outerRadius(),0),t.arc(0,0,this.outerRadius(),ya,0,!0),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.outerRadius()*2}getHeight(){return this.outerRadius()*2}setWidth(t){this.outerRadius(t/2)}setHeight(t){this.outerRadius(t/2)}}Zt.prototype.className="Ring",Zt.prototype._centroid=!0,Zt.prototype._attrsAffectingSize=["innerRadius","outerRadius"],gt(Zt),p.addGetterSetter(Zt,"innerRadius",0,R()),p.addGetterSetter(Zt,"outerRadius",0,R());class Tt extends L{constructor(t){super(t),this._updated=!0,this.anim=new Mt(()=>{const e=this._updated;return this._updated=!1,e}),this.on("animationChange.konva",function(){this.frameIndex(0)}),this.on("frameIndexChange.konva",function(){this._updated=!0}),this.on("frameRateChange.konva",function(){this.anim.isRunning()&&(clearInterval(this.interval),this._setInterval())})}_sceneFunc(t){const e=this.animation(),i=this.frameIndex(),n=i*4,r=this.animations()[e],s=this.frameOffsets(),o=r[n+0],l=r[n+1],h=r[n+2],c=r[n+3],d=this.image();if((this.hasFill()||this.hasStroke())&&(t.beginPath(),t.rect(0,0,h,c),t.closePath(),t.fillStrokeShape(this)),d)if(s){const u=s[e],f=i*2;t.drawImage(d,o,l,h,c,u[f+0],u[f+1],h,c)}else t.drawImage(d,o,l,h,c,0,0,h,c)}_hitFunc(t){const e=this.animation(),i=this.frameIndex(),n=i*4,r=this.animations()[e],s=this.frameOffsets(),o=r[n+2],l=r[n+3];if(t.beginPath(),s){const h=s[e],c=i*2;t.rect(h[c+0],h[c+1],o,l)}else t.rect(0,0,o,l);t.closePath(),t.fillShape(this)}_useBufferCanvas(){return super._useBufferCanvas(!0)}_setInterval(){const t=this;this.interval=setInterval(function(){t._updateIndex()},1e3/this.frameRate())}start(){if(this.isRunning())return;const t=this.getLayer();this.anim.setLayers(t),this._setInterval(),this.anim.start()}stop(){this.anim.stop(),clearInterval(this.interval)}isRunning(){return this.anim.isRunning()}_updateIndex(){const t=this.frameIndex(),e=this.animation(),i=this.animations(),n=i[e],r=n.length/4;t{if(new RegExp("\\p{Emoji}","u").test(e)){const r=n[i+1];r&&new RegExp("\\p{Emoji_Modifier}|\\u200D","u").test(r)?(t.push(e+r),n[i+1]=""):t.push(e)}else new RegExp("\\p{Regional_Indicator}{2}","u").test(e+(n[i+1]||""))?t.push(e+n[i+1]):i>0&&new RegExp("\\p{Mn}|\\p{Me}|\\p{Mc}","u").test(e)?t[t.length-1]+=e:e&&t.push(e);return t},[])}const ie="auto",ks="center",un="inherit",ce="justify",Ms="Change.konva",gn="2d",_a="-",fn="left",As="text",Ps="Text",Ts="top",Ls="bottom",xa="middle",ba="normal",Es="px ",Fe=" ",Rs="right",wa="rtl",Is="word",Gs="char",Ca="none",si="…",pn=["direction","fontFamily","fontSize","fontStyle","fontVariant","padding","align","verticalAlign","lineHeight","text","width","height","wrap","ellipsis","letterSpacing"],Ds=pn.length;let de=null;function zs(){if(de!==null)return de;de=!1;try{const a=document.createElement("canvas");a.width=10,a.height=10;const t=a.getContext(gn);if(t){t.globalAlpha=0,t.shadowColor="black",t.shadowBlur=5,t.shadowOffsetX=5,t.shadowOffsetY=5,t.fillStyle="black",t.font="10px Arial",t.fillText("X",0,10);const e=t.getImageData(0,0,10,10).data;for(let i=3;i0){de=!0;break}}}catch{}return de}function Hs(a){return a.split(",").map(t=>{t=t.trim();const e=t.indexOf(" ")>=0,i=t.indexOf('"')>=0||t.indexOf("'")>=0;return e&&!i&&(t=`"${t}"`),t}).join(", ")}let oi;function li(){return oi||(oi=_.createCanvasElement().getContext(gn),oi)}function Os(a){this._partialFillStyle&&a.setAttr("fillStyle",this._partialFillStyle),a.fillText(this._partialText,this._partialTextX,this._partialTextY)}function Fs(a){a.setAttr("miterLimit",2),this._partialStrokeStyle&&a.setAttr("strokeStyle",this._partialStrokeStyle),a.strokeText(this._partialText,this._partialTextX,this._partialTextY)}function Bs(a){return a=a||{},!a.fillLinearGradientColorStops&&!a.fillRadialGradientColorStops&&!a.fillPatternImage&&(a.fill=a.fill||"black"),a}class st extends L{constructor(t){super(Bs(t)),this._partialTextX=0,this._partialTextY=0;for(let e=0;ePe+_e(Te.text).length,0),pt=K+lt;y({char:q,index:pt,x:O,y:P+N,lineIndex:A,column:K,isLastInLine:z,width:this.measureSize(q).width,context:t});const yt=t.fillStyle;yt!==F&&(this._partialFillStyle=yt);const Ae=t.strokeStyle;Ae!==X&&(this._partialStrokeStyle=Ae)}t.fillStrokeShape(this),y&&(this._partialFillStyle=void 0,this._partialStrokeStyle=void 0,t.restore()),O+=this.measureSize(q).width+g}}else g!==0&&t.setAttr("letterSpacing",`${g}px`),this._partialTextX=O,this._partialTextY=P+N,this._partialText=Y,t.fillStrokeShape(this);if(w){t.save(),t.beginPath();const ft=I.legacyTextRendering?0:-Math.round(o/4),$=at;t.moveTo($,P+N+ft);const K=u===ce&&!z?f-s*2:V;t.lineTo($+Math.round(K),P+N+ft),t.lineWidth=o/15;const q=this._getLinearGradient();t.strokeStyle=q||x,t.stroke(),t.restore()}t.restore(),r>1&&(P+=l)}}_hitFunc(t){const e=this.getWidth(),i=this.getHeight();t.beginPath(),t.rect(0,0,e,i),t.closePath(),t.fillStrokeShape(this)}setText(t){const e=_._isString(t)?t:t==null?"":t+"";return this._setAttr(As,e),this}getWidth(){return this.attrs.width===ie||this.attrs.width===void 0?this.getTextWidth()+this.padding()*2:this.attrs.width}getHeight(){return this.attrs.height===ie||this.attrs.height===void 0?this.fontSize()*this.textArr.length*this.lineHeight()+this.padding()*2:this.attrs.height}getTextWidth(){return this.textWidth}getTextHeight(){return _.warn("text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height."),this.textHeight}measureSize(t){var e,i,n,r,s,o,l,h,c,d,u;let f=li(),g=this.fontSize(),y;f.save(),f.font=this._getContextFont(),y=f.measureText(t),f.restore();const x=g/100;return{actualBoundingBoxAscent:(e=y.actualBoundingBoxAscent)!==null&&e!==void 0?e:71.58203125*x,actualBoundingBoxDescent:(i=y.actualBoundingBoxDescent)!==null&&i!==void 0?i:0,actualBoundingBoxLeft:(n=y.actualBoundingBoxLeft)!==null&&n!==void 0?n:-7.421875*x,actualBoundingBoxRight:(r=y.actualBoundingBoxRight)!==null&&r!==void 0?r:75.732421875*x,alphabeticBaseline:(s=y.alphabeticBaseline)!==null&&s!==void 0?s:0,emHeightAscent:(o=y.emHeightAscent)!==null&&o!==void 0?o:100*x,emHeightDescent:(l=y.emHeightDescent)!==null&&l!==void 0?l:-20*x,fontBoundingBoxAscent:(h=y.fontBoundingBoxAscent)!==null&&h!==void 0?h:91*x,fontBoundingBoxDescent:(c=y.fontBoundingBoxDescent)!==null&&c!==void 0?c:21*x,hangingBaseline:(d=y.hangingBaseline)!==null&&d!==void 0?d:72.80000305175781*x,ideographicBaseline:(u=y.ideographicBaseline)!==null&&u!==void 0?u:-21*x,width:y.width,height:g}}_getContextFont(){return this.fontStyle()+Fe+this.fontVariant()+Fe+(this.fontSize()+Es)+Hs(this.fontFamily())}_addTextLine(t){this.align()===ce&&(t=t.trim());const e=this._getTextWidth(t);return this.textArr.push({text:t,width:e,lastInParagraph:!1})}_getTextWidth(t){const e=this.letterSpacing(),i=t.length;return li().measureText(t).width+e*i}_setTextData(){let t=this.text().split(` +`),e=+this.fontSize(),i=0,n=this.lineHeight()*e,r=this.attrs.width,s=this.attrs.height,o=r!==ie&&r!==void 0,l=s!==ie&&s!==void 0,h=this.padding(),c=r-h*2,d=s-h*2,u=0,f=this.wrap(),g=f!==Ca,y=f!==Gs&&g,x=this.ellipsis();this.textArr=[],li().font=this._getContextFont();const m=x?this._getTextWidth(si):0;for(let C=0,v=t.length;Cc)for(;w.length>0;){const P=_e(w);let E=0,F=P.length,X="",O=0;for(;E>>1,U=P.slice(0,N+1).join(""),Y=this._getTextWidth(U);(x&&l&&u+n>d?Y+m:Y)<=c?(E=N+1,X=U,O=Y):F=N}if(X){if(y){const N=_e(X),U=P[N.length],Y=U===Fe||U===_a;let V;if(Y&&O<=c)V=N.length;else{const z=N.lastIndexOf(Fe),at=N.lastIndexOf(_a);V=Math.max(z,at)+1}V>0&&(E=V,X=P.slice(0,E).join(""),O=this._getTextWidth(X))}if(X=X.trimRight(),this._addTextLine(X),i=Math.max(i,O),u+=n,this._shouldHandleEllipsis(u)){this._tryToAddEllipsisToLastLine();break}if(w=P.slice(E).join("").trimLeft(),w.length>0&&(A=this._getTextWidth(w),A<=c)){this._addTextLine(w),u+=n,i=Math.max(i,A);break}}else break}else this._addTextLine(w),u+=n,i=Math.max(i,A),this._shouldHandleEllipsis(u)&&Cd)break}this.textHeight=e,this.textWidth=i}_shouldHandleEllipsis(t){const e=+this.fontSize(),i=this.lineHeight()*e,n=this.attrs.height,r=n!==ie&&n!==void 0,s=this.padding(),o=n-s*2;return this.wrap()===Ca||r&&t+i>o}_tryToAddEllipsisToLastLine(){const t=this.attrs.width,e=t!==ie&&t!==void 0,i=this.padding(),n=t-i*2,r=this.ellipsis(),s=this.textArr[this.textArr.length-1];!s||!r||(e&&(this._getTextWidth(s.text+si)e?null:ct.getPointAtLengthOfDataArray(t,this.dataArray)}_readDataAttribute(){this.dataArray=ct.parsePathData(this.attrs.data),this.pathLength=this._getTextPathLength()}_sceneFunc(t){t.setAttr("font",this._getContextFont()),t.setAttr("textBaseline",this.textBaseline()),t.setAttr("textAlign","left"),t.save();const e=this.textDecoration(),i=this.fill(),n=this.fontSize(),r=this.glyphInfo,s=e.indexOf("underline")!==-1,o=e.indexOf("line-through")!==-1;s&&t.beginPath();for(let l=0;l=1){const i=e[0].p0;t.moveTo(i.x,i.y)}for(let i=0;ithis.pathLength&&m-this.pathLength<=h?this.pathLength:m);if(!C)return;const v=ct.getLineLength(g.x,g.y,C.x,C.y);let w=0;if(l)try{w=l(e[f-1].char,y)*this.fontSize()}catch{w=0}g.x+=w,C.x+=w,this.textWidth+=w;const A=ct.getPointOnLine(w+v/2,g.x,g.y,C.x,C.y),P=Math.atan2(C.y-g.y,C.x-g.x);this.glyphInfo.push({transposeX:A.x,transposeY:A.y,text:t[f],rotation:P,p0:g,p1:C,width:v}),u+=x}}getSelfRect(){if(!this.glyphInfo.length)return{x:0,y:0,width:0,height:0};const t=[];this.glyphInfo.forEach(function(h){t.push(h.p0.x),t.push(h.p0.y),t.push(h.p1.x),t.push(h.p1.y)});let e=t[0]||0,i=t[0]||0,n=t[1]||0,r=t[1]||0,s,o;for(let h=0;ha+`.${mn}`).join(" "),Aa="nodesRect",Ws=["widthChange","heightChange","scaleXChange","scaleYChange","skewXChange","skewYChange","rotationChange","offsetXChange","offsetYChange","transformsEnabledChange","strokeWidthChange","draggableChange"],Ys={"top-left":-45,"top-center":0,"top-right":45,"middle-right":-90,"middle-left":90,"bottom-left":-135,"bottom-center":180,"bottom-right":135},js="ontouchstart"in I._global;function Xs(a,t,e){if(a==="rotater")return e;t+=_.degToRad(Ys[a]||0);const i=(_.radToDeg(t)%360+360)%360;return _._inRange(i,315+22.5,360)||_._inRange(i,0,22.5)?"ns-resize":_._inRange(i,45-22.5,45+22.5)?"nesw-resize":_._inRange(i,90-22.5,90+22.5)?"ew-resize":_._inRange(i,135-22.5,135+22.5)?"nwse-resize":_._inRange(i,180-22.5,180+22.5)?"ns-resize":_._inRange(i,225-22.5,225+22.5)?"nesw-resize":_._inRange(i,270-22.5,270+22.5)?"ew-resize":_._inRange(i,315-22.5,315+22.5)?"nwse-resize":(_.error("Transformer has unknown angle for cursor detection: "+i),"pointer")}const je=["top-left","top-center","top-right","middle-right","middle-left","bottom-left","bottom-center","bottom-right"];function $s(a){return{x:a.x+a.width/2*Math.cos(a.rotation)+a.height/2*Math.sin(-a.rotation),y:a.y+a.height/2*Math.cos(a.rotation)+a.width/2*Math.sin(a.rotation)}}function vn(a,t,e){const i=e.x+(a.x-e.x)*Math.cos(t)-(a.y-e.y)*Math.sin(t),n=e.y+(a.x-e.x)*Math.sin(t)+(a.y-e.y)*Math.cos(t);return{...a,rotation:a.rotation+t,x:i,y:n}}function Us(a,t){const e=$s(a);return vn(a,t,e)}function qs(a,t,e){let i=t;for(let n=0;ni.isAncestorOf(this)?(_.error("Konva.Transformer cannot be an a child of the node you are trying to attach"),!1):!0);return this._nodes=t=e,t.length===1&&this.useSingleNodeRotation()?this.rotation(t[0].getAbsoluteRotation()):this.rotation(0),this._nodes.forEach(i=>{const n=()=>{this._transforming||(this.nodes().length===1&&this.useSingleNodeRotation()&&this.rotation(this.nodes()[0].getAbsoluteRotation()),this._resetTransformCache(),this.isDragging()||this._scheduleUpdate())};if(i._attrsAffectingSize.length){const r=i._attrsAffectingSize.map(s=>s+"Change."+this._getEventNamespace()).join(" ");i.on(r,n)}i.on(Ws.map(r=>r+`.${this._getEventNamespace()}`).join(" "),n),i.on(`absoluteTransformChange.${this._getEventNamespace()}`,n),this._proxyDrag(i)}),this._resetTransformCache(),this.findOne(".top-left")&&this.update(),this}_proxyDrag(t){let e;t.on(`dragstart.${this._getEventNamespace()}`,i=>{e=t.getAbsolutePosition(),!this.isDragging()&&t!==this.findOne(".back")&&this.startDrag(i,!1)}),t.on(`dragmove.${this._getEventNamespace()}`,i=>{if(!e)return;const n=t.getAbsolutePosition(),r=n.x-e.x,s=n.y-e.y;this.nodes().forEach(o=>{if(o===t||o.isDragging())return;const l=o.getAbsolutePosition();o.setAbsolutePosition({x:l.x+r,y:l.y+s}),o.startDrag(i)}),e=null})}getNodes(){return this._nodes||[]}getActiveAnchor(){return this._movingAnchorName}detach(){this._nodes&&this._nodes.forEach(t=>{t.off("."+this._getEventNamespace())}),this._nodes=[],this._resetTransformCache()}_resetTransformCache(){this._clearCache(Aa),this._clearCache("transform"),this._clearSelfAndDescendantCache("absoluteTransform")}_getNodeRect(){return this._getCache(Aa,this.__getNodeRect)}__getNodeShape(t,e=this.rotation(),i){const n=t.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),r=t.getAbsoluteScale(i),s=t.getAbsolutePosition(i),o=n.x*r.x-t.offsetX()*r.x,l=n.y*r.y-t.offsetY()*r.y,h=(I.getAngle(t.getAbsoluteRotation())+Math.PI*2)%(Math.PI*2),c={x:s.x+o*Math.cos(h)+l*Math.sin(-h),y:s.y+l*Math.cos(h)+o*Math.sin(h),width:n.width*r.x,height:n.height*r.y,rotation:h};return vn(c,-I.getAngle(e),{x:0,y:0})}__getNodeRect(){if(!this.getNode())return{x:-1e8,y:-1e8,width:0,height:0,rotation:0};const t=[];this.nodes().map(l=>{const h=l.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),c=[{x:h.x,y:h.y},{x:h.x+h.width,y:h.y},{x:h.x+h.width,y:h.y+h.height},{x:h.x,y:h.y+h.height}],d=l.getAbsoluteTransform();c.forEach(function(u){const f=d.point(u);t.push(f)})});const e=new kt;e.rotate(-I.getAngle(this.rotation()));let i=1/0,n=1/0,r=-1/0,s=-1/0;t.forEach(function(l){const h=e.point(l);i===void 0&&(i=r=h.x,n=s=h.y),i=Math.min(i,h.x),n=Math.min(n,h.y),r=Math.max(r,h.x),s=Math.max(s,h.y)}),e.invert();const o=e.point({x:i,y:n});return{x:o.x,y:o.y,width:r-i,height:s-n,rotation:I.getAngle(this.rotation())}}getX(){return this._getNodeRect().x}getY(){return this._getNodeRect().y}getWidth(){return this._getNodeRect().width}getHeight(){return this._getNodeRect().height}_createElements(){this._createBack(),je.forEach(t=>{this._createAnchor(t)}),this._createAnchor("rotater"),this._elementsCreated=!0}_createAnchor(t){const e=new Se({stroke:"rgb(0, 161, 255)",fill:"white",strokeWidth:1,name:t+" _anchor",dragDistance:0,draggable:!0,hitStrokeWidth:js?10:"auto"}),i=this;e.on("mousedown touchstart",function(n){i._handleMouseDown(n)}),e.on("dragstart",n=>{e.stopDrag(),n.cancelBubble=!0}),e.on("dragend",n=>{n.cancelBubble=!0}),e.on("mouseenter",()=>{const n=I.getAngle(this.rotation()),r=this.rotateAnchorCursor(),s=Xs(t,n,r);e.getStage().content&&(e.getStage().content.style.cursor=s),this._cursorChange=!0}),e.on("mouseout",()=>{e.getStage().content&&(e.getStage().content.style.cursor=""),this._cursorChange=!1}),this.add(e)}_createBack(){const t=new L({name:"back",width:0,height:0,sceneFunc(e,i){const n=i.getParent(),r=n.padding(),s=i.width(),o=i.height();if(e.beginPath(),e.rect(-r,-r,s+r*2,o+r*2),n.rotateEnabled()&&n.rotateLineVisible()){const l=n.rotateAnchorAngle(),h=n.rotateAnchorOffset(),c=_.degToRad(l),d=Math.sin(c),u=-Math.cos(c),f=s/2,g=o/2;let y=1/0;u<0?y=Math.min(y,-g/u):u>0&&(y=Math.min(y,(o-g)/u)),d<0?y=Math.min(y,-f/d):d>0&&(y=Math.min(y,(s-f)/d));const x=f+d*y,m=g+u*y,C=_._sign(o),v=x+d*h*C,w=m+u*h*C;e.moveTo(x,m),e.lineTo(v,w)}e.fillStrokeShape(i)},hitFunc:(e,i)=>{if(!this.shouldOverdrawWholeArea())return;const n=this.padding();e.beginPath(),e.rect(-n,-n,i.width()+n*2,i.height()+n*2),e.fillStrokeShape(i)}});this.add(t),this._proxyDrag(t),t.on("dragstart",e=>{e.cancelBubble=!0}),t.on("dragmove",e=>{e.cancelBubble=!0}),t.on("dragend",e=>{e.cancelBubble=!0}),this.on("dragmove",e=>{this.update()})}_handleMouseDown(t){var e;if(this._transforming)return;this._movingAnchorName=t.target.name().split(" ")[0];const i=this._getNodeRect(),n=i.width,r=i.height,s=Math.sqrt(Math.pow(n,2)+Math.pow(r,2));this.sin=Math.abs(r/s),this.cos=Math.abs(n/s);const o=(e=this.getStage())===null||e===void 0?void 0:e._getOwnerWindow();this._transformWindow=o||null,o&&(o.addEventListener("mousemove",this._handleMouseMove),o.addEventListener("touchmove",this._handleMouseMove),o.addEventListener("mouseup",this._handleMouseUp,!0),o.addEventListener("touchend",this._handleMouseUp,!0)),this._transforming=!0;const l=t.target.getAbsolutePosition(),h=t.target.getStage().getPointerPosition();this._anchorDragOffset={x:h.x-l.x,y:h.y-l.y},ki++,this._fire("transformstart",{evt:t.evt,target:this.getNode()}),this._nodes.forEach(c=>{c._fire("transformstart",{evt:t.evt,target:c})})}_handleMouseMove(t){let e,i,n;const r=this.findOne("."+this._movingAnchorName),s=r.getStage();s.setPointersPositions(t);const o=s.getPointerPosition();let l={x:o.x-this._anchorDragOffset.x,y:o.y-this._anchorDragOffset.y};const h=r.getAbsolutePosition();this.anchorDragBoundFunc()&&(l=this.anchorDragBoundFunc()(h,l,t)),r.setAbsolutePosition(l);const c=r.getAbsolutePosition();if(h.x===c.x&&h.y===c.y)return;if(this._movingAnchorName==="rotater"){const v=this._getNodeRect();e=r.x()-v.width/2,i=-r.y()+v.height/2;const w=I.getAngle(this.rotateAnchorAngle());let A=Math.atan2(-i,e)+Math.PI/2-w;v.height<0&&(A-=Math.PI);const P=I.getAngle(this.rotation())+A,E=I.getAngle(this.rotationSnapTolerance()),F=qs(this.rotationSnaps(),P,E)-v.rotation,X=Us(v,F);this._fitNodesInto(X,t);return}const d=this.shiftBehavior();let u;d==="inverted"?u=this.keepRatio()&&!t.shiftKey:d==="none"?u=this.keepRatio():u=this.keepRatio()||t.shiftKey;let f=this.centeredScaling()||t.altKey,g=!1;if(this._movingAnchorName==="top-left"){if(u){g=!0;const v=f?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-right").x(),y:this.findOne(".bottom-right").y()};n=Math.sqrt(Math.pow(v.x-r.x(),2)+Math.pow(v.y-r.y(),2));const w=this.findOne(".top-left").x()>v.x?-1:1,A=this.findOne(".top-left").y()>v.y?-1:1;e=n*this.cos*w,i=n*this.sin*A,this.findOne(".top-left").x(v.x-e),this.findOne(".top-left").y(v.y-i)}}else if(this._movingAnchorName==="top-center")this.findOne(".top-left").y(r.y());else if(this._movingAnchorName==="top-right"){if(u){g=!0;const v=f?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-left").x(),y:this.findOne(".bottom-left").y()};n=Math.sqrt(Math.pow(r.x()-v.x,2)+Math.pow(v.y-r.y(),2));const w=this.findOne(".top-right").x()v.y?-1:1;e=n*this.cos*w,i=n*this.sin*A,this.findOne(".top-right").x(v.x+e),this.findOne(".top-right").y(v.y-i)}var y=r.position();this.findOne(".top-left").y(y.y),this.findOne(".bottom-right").x(y.x)}else if(this._movingAnchorName==="middle-left")this.findOne(".top-left").x(r.x());else if(this._movingAnchorName==="middle-right")this.findOne(".bottom-right").x(r.x());else if(this._movingAnchorName==="bottom-left"){if(u){g=!0;const v=f?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".top-right").x(),y:this.findOne(".top-right").y()};n=Math.sqrt(Math.pow(v.x-r.x(),2)+Math.pow(r.y()-v.y,2));const w=v.x{var s;r._fire("transformend",{evt:t,target:r}),(s=r.getLayer())===null||s===void 0||s.batchDraw()}),this._movingAnchorName=null}}_fitNodesInto(t,e,i=!1){const n=I.autoDrawEnabled;I.autoDrawEnabled=!1;try{return this._doFitNodesInto(t,e,i)}finally{I.autoDrawEnabled=n}}_doFitNodesInto(t,e,i=!1){const n=this._getNodeRect(),r=1;if(_._inRange(t.width,-this.padding()*2-r,r)){this.update();return}if(_._inRange(t.height,-this.padding()*2-r,r)){this.update();return}const s=new kt;s.rotate(I.getAngle(this.rotation()));const o=i?0:this.padding()*2;let l=null,h=null;if(this._movingAnchorName&&t.width<0&&this._movingAnchorName.indexOf("left")>=0){const m=s.point({x:-o,y:0});t.x+=m.x,t.y+=m.y,t.width+=o,l={axis:"width",from:"left",to:"right",offset:m}}else if(this._movingAnchorName&&t.width<0&&this._movingAnchorName.indexOf("right")>=0){const m=s.point({x:o,y:0});t.width+=o,l={axis:"width",from:"right",to:"left",offset:m}}if(this._movingAnchorName&&t.height<0&&this._movingAnchorName.indexOf("top")>=0){const m=s.point({x:0,y:-o});t.x+=m.x,t.y+=m.y,t.height+=o,h={axis:"height",from:"top",to:"bottom",offset:m}}else if(this._movingAnchorName&&t.height<0&&this._movingAnchorName.indexOf("bottom")>=0){const m=s.point({x:0,y:o});t.height+=o,h={axis:"height",from:"bottom",to:"top",offset:m}}if(this.boundBoxFunc()){const m=this.boundBoxFunc()(n,t);m?t=m:_.warn("boundBoxFunc returned falsy. You should return new bound rect from it!")}for(const m of[l,h])m&&t[m.axis]<0&&this._movingAnchorName&&(this._movingAnchorName=this._movingAnchorName.replace(m.from,m.to),this._anchorDragOffset.x-=m.offset.x,this._anchorDragOffset.y-=m.offset.y);const c=1e7,d=new kt;d.translate(n.x,n.y),d.rotate(n.rotation),d.scale(n.width/c,n.height/c);const u=new kt,f=t.width/c,g=t.height/c;this.flipEnabled()===!1?(u.translate(t.x,t.y),u.rotate(t.rotation),u.translate(t.width<0?t.width:0,t.height<0?t.height:0),u.scale(Math.abs(f),Math.abs(g))):(u.translate(t.x,t.y),u.rotate(t.rotation),u.scale(f,g));const y=u.multiply(d.invert()),x=new Set;this._nodes.forEach(m=>{if(!m.getStage())return;const C=m.getParent().getAbsoluteTransform(),v=m.getTransform().copy();v.translate(m.offsetX(),m.offsetY());const w=new kt;w.multiply(C.copy().invert()).multiply(y).multiply(C).multiply(v);const A=w.decompose();m.setAttrs(A);const P=m.getLayer();P&&x.add(P)}),this.rotation(_._getRotation(t.rotation)),this._nodes.forEach(m=>{this._fire("transform",{evt:e,target:m}),m._fire("transform",{evt:e,target:m})}),this._resetTransformCache(),this.update(),x.add(this.getLayer()),x.forEach(m=>m&&m.batchDraw())}_scheduleUpdate(){this._updateScheduled||(this._updateScheduled=!0,T._runAfterAbsTransformCascade(()=>{var t;this._updateScheduled=!1,!(!(!((t=this._nodes)===null||t===void 0)&&t.length)||this._transforming||this.isDragging())&&this.update()}))}forceUpdate(){this._resetTransformCache(),this.update()}_batchChangeChild(t,e){this.findOne(t).setAttrs(e)}update(){var t;const e=this._getNodeRect();this.rotation(_._getRotation(e.rotation));const i=e.width,n=e.height,r=this.enabledAnchors(),s=this.resizeEnabled(),o=this.padding(),l=this.anchorSize(),h=this.find("._anchor");h.forEach(P=>{P.setAttrs({width:l,height:l,offsetX:l/2,offsetY:l/2,stroke:this.anchorStroke(),strokeWidth:this.anchorStrokeWidth(),fill:this.anchorFill(),cornerRadius:this.anchorCornerRadius()})}),this._batchChangeChild(".top-left",{x:0,y:0,offsetX:l/2+o,offsetY:l/2+o,visible:s&&r.indexOf("top-left")>=0}),this._batchChangeChild(".top-center",{x:i/2,y:0,offsetY:l/2+o,visible:s&&r.indexOf("top-center")>=0}),this._batchChangeChild(".top-right",{x:i,y:0,offsetX:l/2-o,offsetY:l/2+o,visible:s&&r.indexOf("top-right")>=0}),this._batchChangeChild(".middle-left",{x:0,y:n/2,offsetX:l/2+o,visible:s&&r.indexOf("middle-left")>=0}),this._batchChangeChild(".middle-right",{x:i,y:n/2,offsetX:l/2-o,visible:s&&r.indexOf("middle-right")>=0}),this._batchChangeChild(".bottom-left",{x:0,y:n,offsetX:l/2+o,offsetY:l/2-o,visible:s&&r.indexOf("bottom-left")>=0}),this._batchChangeChild(".bottom-center",{x:i/2,y:n,offsetY:l/2-o,visible:s&&r.indexOf("bottom-center")>=0}),this._batchChangeChild(".bottom-right",{x:i,y:n,offsetX:l/2-o,offsetY:l/2-o,visible:s&&r.indexOf("bottom-right")>=0});const c=this.rotateAnchorAngle(),d=this.rotateAnchorOffset(),u=_.degToRad(c),f=Math.sin(u),g=-Math.cos(u),y=i/2,x=n/2;let m=1/0;g<0?m=Math.min(m,-x/g):g>0&&(m=Math.min(m,(n-x)/g)),f<0?m=Math.min(m,-y/f):f>0&&(m=Math.min(m,(i-y)/f));const C=y+f*m,v=x+g*m,w=_._sign(n);this._batchChangeChild(".rotater",{x:C+f*d*w,y:v+g*d*w-o*g,visible:this.rotateEnabled()}),this._batchChangeChild(".back",{width:i,height:n,visible:this.borderEnabled(),stroke:this.borderStroke(),strokeWidth:this.borderStrokeWidth(),dash:this.borderDash(),draggable:this.nodes().some(P=>P.draggable()),x:0,y:0});const A=this.anchorStyleFunc();A&&h.forEach(P=>{A(P)}),(t=this.getLayer())===null||t===void 0||t.batchDraw()}isTransforming(){return this._transforming}stopTransform(){if(this._transforming){this._removeEvents();const t=this.findOne("."+this._movingAnchorName);t&&t.stopDrag()}}destroy(){return this.getStage()&&this._cursorChange&&this.getStage().content&&(this.getStage().content.style.cursor=""),se.prototype.destroy.call(this),this.detach(),this._removeEvents(),this}add(...t){return this._elementsCreated?(_.error("You cannot add external nodes to the Transformer. Use tr.nodes([node]) instead."),this):super.add(...t)}toObject(){return T.prototype.toObject.call(this)}clone(t){return T.prototype.clone.call(this,t)}getClientRect(){return this.nodes().length>0?super.getClientRect():{x:0,y:0,width:0,height:0}}}tt.isTransforming=()=>ki>0;function Zs(a){return a instanceof Array||_.warn("enabledAnchors value should be an array"),a instanceof Array&&a.forEach(function(t){je.indexOf(t)===-1&&_.warn("Unknown anchor name: "+t+". Available names are: "+je.join(", "))}),a||[]}tt.prototype.className="Transformer",gt(tt),p.addGetterSetter(tt,"enabledAnchors",je,Zs),p.addGetterSetter(tt,"flipEnabled",!0,Pt()),p.addGetterSetter(tt,"resizeEnabled",!0),p.addGetterSetter(tt,"anchorSize",10,R()),p.addGetterSetter(tt,"rotateEnabled",!0),p.addGetterSetter(tt,"rotateLineVisible",!0),p.addGetterSetter(tt,"rotationSnaps",[]),p.addGetterSetter(tt,"rotateAnchorOffset",50,R()),p.addGetterSetter(tt,"rotateAnchorAngle",0,R()),p.addGetterSetter(tt,"rotateAnchorCursor","crosshair"),p.addGetterSetter(tt,"rotationSnapTolerance",5,R()),p.addGetterSetter(tt,"borderEnabled",!0),p.addGetterSetter(tt,"anchorStroke","rgb(0, 161, 255)"),p.addGetterSetter(tt,"anchorStrokeWidth",1,R()),p.addGetterSetter(tt,"anchorFill","white"),p.addGetterSetter(tt,"anchorCornerRadius",0,R()),p.addGetterSetter(tt,"borderStroke","rgb(0, 161, 255)"),p.addGetterSetter(tt,"borderStrokeWidth",1,R()),p.addGetterSetter(tt,"borderDash"),p.addGetterSetter(tt,"keepRatio",!0),p.addGetterSetter(tt,"shiftBehavior","default"),p.addGetterSetter(tt,"centeredScaling",!1),p.addGetterSetter(tt,"ignoreStroke",!1),p.addGetterSetter(tt,"padding",0,R()),p.addGetterSetter(tt,"nodes"),p.addGetterSetter(tt,"node"),p.addGetterSetter(tt,"boundBoxFunc"),p.addGetterSetter(tt,"anchorDragBoundFunc"),p.addGetterSetter(tt,"anchorStyleFunc"),p.addGetterSetter(tt,"shouldOverdrawWholeArea",!1),p.addGetterSetter(tt,"useSingleNodeRotation",!0),p.backCompat(tt,{lineEnabled:"borderEnabled",rotateHandlerOffset:"rotateAnchorOffset",enabledHandlers:"enabledAnchors"});class It extends L{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.radius(),0,I.getAngle(this.angle()),this.clockwise()),t.lineTo(0,0),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius(t/2)}setHeight(t){this.radius(t/2)}}It.prototype.className="Wedge",It.prototype._centroid=!0,It.prototype._attrsAffectingSize=["radius"],gt(It),p.addGetterSetter(It,"radius",0,R()),p.addGetterSetter(It,"angle",0,R()),p.addGetterSetter(It,"clockwise",!1),p.backCompat(It,{angleDeg:"angle",getAngleDeg:"getAngle",setAngleDeg:"setAngle"});function Pa(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}const Ks=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],Qs=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function Js(a,t){const e=a.data,i=a.width,n=a.height;let r,s,o,l,h,c,d,u,f,g,y,x,m,C,v,w,A,P,E,F;const X=t+t+1,O=i-1,N=n-1,U=t+1,Y=U*(U+1)/2,V=new Pa,z=Ks[t],at=Qs[t];let ft=null,$=V,K=null,q=null;for(let lt=1;lt>at,E!==0?(E=255/E,e[s]=(l*z>>at)*E,e[s+1]=(h*z>>at)*E,e[s+2]=(c*z>>at)*E):e[s]=e[s+1]=e[s+2]=0,l-=u,h-=f,c-=g,d-=y,u-=K.r,f-=K.g,g-=K.b,y-=K.a,r=o+((r=pt+t+1)>at,E>0?(E=255/E,e[r]=(l*z>>at)*E,e[r+1]=(h*z>>at)*E,e[r+2]=(c*z>>at)*E):e[r]=e[r+1]=e[r+2]=0,l-=u,h-=f,c-=g,d-=y,u-=K.r,f-=K.g,g-=K.b,y-=K.a,r=lt+((r=yt+U)0&&Js(a,t)};p.addGetterSetter(T,"blurRadius",0,R(),p.afterSetFilter);const eo=function(a){const t=this.brightness()*255,e=a.data,i=e.length;for(let n=0;n255?255:n,r=r<0?0:r>255?255:r,s=s<0?0:s>255?255:s,e[o]=n,e[o+1]=r,e[o+2]=s};p.addGetterSetter(T,"contrast",0,R(),p.afterSetFilter);const no=function(a){var t,e,i,n,r,s,o,l,h;const c=a.data,d=a.width,u=a.height,f=Math.min(1,Math.max(0,(e=(t=this.embossStrength)===null||t===void 0?void 0:t.call(this))!==null&&e!==void 0?e:.5)),g=Math.min(1,Math.max(0,(n=(i=this.embossWhiteLevel)===null||i===void 0?void 0:i.call(this))!==null&&n!==void 0?n:.5)),y=(o={"top-left":315,top:270,"top-right":225,right:180,"bottom-right":135,bottom:90,"bottom-left":45,left:0}[(s=(r=this.embossDirection)===null||r===void 0?void 0:r.call(this))!==null&&s!==void 0?s:"top-left"])!==null&&o!==void 0?o:315,x=!!((h=(l=this.embossBlend)===null||l===void 0?void 0:l.call(this))!==null&&h!==void 0&&h),m=f*10,C=g*255,v=y*Math.PI/180,w=Math.cos(v),A=Math.sin(v),P=128/1020*m,E=new Uint8ClampedArray(c),F=new Float32Array(d*u);for(let Y=0,V=0;VY<0?0:Y>255?255:Y;for(let Y=1;Yn&&(n=r),l=t[v+1],lo&&(o=l),d=t[v+2],dc&&(c=d);n===i&&(n=255,i=0),o===s&&(o=255,s=0),c===h&&(c=255,h=0);let f,g,y,x,m,C;if(u>0)f=n+u*(255-n),g=i-u*(i-0),y=o+u*(255-o),x=s-u*(s-0),m=c+u*(255-c),C=h-u*(h-0);else{const v=(n+i)*.5;f=n+u*(n-v),g=i+u*(i-v);const w=(o+s)*.5;y=o+u*(o-w),x=s+u*(s-w);const A=(c+h)*.5;m=c+u*(c-A),C=h+u*(h-A)}for(let v=0;vh?u:h;const f=s,g=r,y=360/g*Math.PI/180;for(let x=0;xh?u:h;const f=s,g=r,y=0;let x,m;for(c=0;ct&&(w=v,A=0,P=-1),n=0;n=0&&f=0&&g=0&&f=0&&g=1020?255:0}return s}function _o(a,t,e){const i=[.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111,.1111111111111111],n=Math.round(Math.sqrt(i.length)),r=Math.floor(n/2),s=[];for(let o=0;o=0&&f=0&&g=e))for(let v=y;v=i)continue;const w=(e*v+C)*4;h+=s[w+0],c+=s[w+1],d+=s[w+2],u+=s[w+3],m+=1}h=h/m,c=c/m,d=d/m,u=u/m;for(let C=f;C=e))for(let v=y;v=i)continue;const w=(e*v+C)*4;s[w+0]=h,s[w+1]=c,s[w+2]=d,s[w+3]=u}}};p.addGetterSetter(T,"pixelSize",8,R(),p.afterSetFilter);const Co=function(a){const t=Math.round(this.levels()*254)+1,e=a.data,i=e.length,n=255/t;for(let r=0;r255?255:a<0?0:Math.round(a)}),p.addGetterSetter(T,"green",0,function(a){return this._filterUpToDate=!1,a>255?255:a<0?0:Math.round(a)}),p.addGetterSetter(T,"blue",0,Va,p.afterSetFilter);const ko=function(a){const t=a.data,e=t.length,i=this.red(),n=this.green(),r=this.blue(),s=this.alpha();for(let o=0;o255?255:a<0?0:Math.round(a)}),p.addGetterSetter(T,"green",0,function(a){return this._filterUpToDate=!1,a>255?255:a<0?0:Math.round(a)}),p.addGetterSetter(T,"blue",0,Va,p.afterSetFilter),p.addGetterSetter(T,"alpha",1,function(a){return this._filterUpToDate=!1,a>1?1:a<0?0:a});const Mo=function(a){const t=a.data,e=t.length;for(let i=0;i=128&&(t[e]=255-i,t[e+1]=255-n,t[e+2]=255-r)}return a},Po=function(a){const t=this.threshold()*255,e=a.data,i=e.length;for(let n=0;ne.value>0),n=vt(()=>e.valuet.value[e.value]?.snapshot);function s(d,u){const f=[...t.value.slice(0,e.value+1),{snapshot:d,label:u}];t.value=f.slice(Math.max(0,f.length-a)),e.value=t.value.length-1}function o(d){if(!(d===e.value||d<0||d>=t.value.length))return e.value=d,r.value}function l(){return i.value?o(e.value-1):void 0}function h(){return n.value?o(e.value+1):void 0}function c(){t.value=[],e.value=-1}return{canUndo:i,canRedo:n,current:r,entries:vt(()=>t.value),index:vt(()=>e.value),push:s,undo:l,redo:h,jumpTo:o,clear:c}}function Qt(){return typeof crypto.randomUUID=="function"?crypto.randomUUID():[...crypto.getRandomValues(new Uint8Array(16))].map(a=>a.toString(16).padStart(2,"0")).join("")}function Mi(){return{rotation:0,fineRotation:0,zoom:1,flipX:!1,flipY:!1,crop:null,adjustments:{exposure:0,brightness:0,contrast:0,saturation:0,temperature:0,tint:0,sharpen:0},preset:"none",annotations:[]}}function Lo(a){return a.rotation===0&&a.fineRotation===0&&a.zoom===1&&!a.flipX&&!a.flipY&&a.crop===null&&Object.values(a.adjustments).every(t=>t===0)&&a.preset==="none"&&a.annotations.length===0}function yn(a,t){return t%180===0?{width:a.width,height:a.height}:{width:a.height,height:a.width}}function Ai(a,t){const e=Math.min(Math.max(a.x,0),t.width-1),i=Math.min(Math.max(a.y,0),t.height-1);return{x:e,y:i,width:Math.max(1,Math.min(a.width,t.width-e)),height:Math.max(1,Math.min(a.height,t.height-i))}}function Ta(a,t){const e=[];for(let i=0;iEo(e,t.height))}}function Ro(a,t){switch(a.type){case"draw":case"arrow":case"line":{const e=a.points.map((i,n)=>n%2===0?t-i:i);return{...a,points:e}}case"rectangle":case"ellipse":{const e=a.rotation*Math.PI/180;return{...a,rect:{...a.rect,x:t-a.rect.x-a.rect.width*Math.cos(e),y:a.rect.y+a.rect.width*Math.sin(e)},rotation:(360-a.rotation)%360}}case"redact":return{...a,rect:{...a.rect,x:t-a.rect.x-a.rect.width}};case"text":case"sticker":return{...a,x:t-a.x,rotation:(360-a.rotation)%360}}}function Io(a,t){const e=a.rotation%180!==0;return{...a,flipX:e?a.flipX:!a.flipX,flipY:e?!a.flipY:a.flipY,fineRotation:-a.fineRotation,crop:a.crop&&{...a.crop,x:t.width-a.crop.x-a.crop.width},annotations:a.annotations.map(i=>Ro(i,t.width))}}function Go(a,t){switch(a.type){case"draw":case"arrow":case"line":{const e=a.points.map((i,n)=>n%2===1?t-i:i);return{...a,points:e}}case"rectangle":case"ellipse":{const e=a.rotation*Math.PI/180;return{...a,rect:{...a.rect,x:a.rect.x-a.rect.height*Math.sin(e),y:t-a.rect.y-a.rect.height*Math.cos(e)},rotation:(360-a.rotation)%360}}case"redact":return{...a,rect:{...a.rect,y:t-a.rect.y-a.rect.height}};case"text":case"sticker":return{...a,y:t-a.y,rotation:(360-a.rotation)%360}}}function Do(a,t){const e=a.rotation%180!==0;return{...a,flipX:e?!a.flipX:a.flipX,flipY:e?a.flipY:!a.flipY,fineRotation:-a.fineRotation,crop:a.crop&&{...a.crop,y:t.height-a.crop.y-a.crop.height},annotations:a.annotations.map(i=>Go(i,t.height))}}function xn(a,t,e){switch(a.type){case"draw":case"arrow":case"line":{const i=a.points.map((n,r)=>n+(r%2===0?t:e));return{...a,points:i}}case"rectangle":case"ellipse":case"redact":return{...a,rect:{...a.rect,x:a.rect.x+t,y:a.rect.y+e}};case"text":case"sticker":return{...a,x:a.x+t,y:a.y+e}}}function zo(a,t=16){return{...xn(a,t,t),id:Qt()}}const Ho=_t({__name:"GlassSurface",props:{variant:{}},setup(a){return(t,e)=>(b(),S("div",{class:qe(["glass-surface",`glass-surface--${a.variant??"card"}`])},[Ri(t.$slots,"default",{},void 0,!0)],2))}}),W=(a,t)=>{const e=a.__vccOpts||a;for(const[i,n]of t)e[i]=n;return e},Hi=W(Ho,[["__scopeId","data-v-b60e81d9"]]),Oo={name:"CameraIrisIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Fo=["aria-hidden","aria-label"],Bo=["fill","width","height"],No={d:"M13.73,15L9.83,21.76C10.53,21.91 11.25,22 12,22C14.4,22 16.6,21.15 18.32,19.75L14.66,13.4M2.46,15C3.38,17.92 5.61,20.26 8.45,21.34L12.12,15M8.54,12L4.64,5.25C3,7 2,9.39 2,12C2,12.68 2.07,13.35 2.2,14H9.69M21.8,10H14.31L14.6,10.5L19.36,18.75C21,16.97 22,14.6 22,12C22,11.31 21.93,10.64 21.8,10M21.54,9C20.62,6.07 18.39,3.74 15.55,2.66L11.88,9M9.4,10.5L14.17,2.24C13.47,2.09 12.75,2 12,2C9.6,2 7.4,2.84 5.68,4.25L9.34,10.6L9.4,10.5Z"},Vo={key:0};function Wo(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon camera-iris-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",No,[e.title?(b(),S("title",Vo,B(e.title),1)):Z("",!0)])],8,Bo))],16,Fo)}const Yo=W(Oo,[["render",Wo]]),jo={name:"ContrastCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xo=["aria-hidden","aria-label"],$o=["fill","width","height"],Uo={d:"M12,20C9.79,20 7.79,19.1 6.34,17.66L17.66,6.34C19.1,7.79 20,9.79 20,12A8,8 0 0,1 12,20M6,8H8V6H9.5V8H11.5V9.5H9.5V11.5H8V9.5H6M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,16H17V14.5H12V16Z"},qo={key:0};function Zo(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon contrast-circle-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",Uo,[e.title?(b(),S("title",qo,B(e.title),1)):Z("",!0)])],8,$o))],16,Xo)}const Ko=W(jo,[["render",Zo]]),Qo={name:"ImageFilterCenterFocusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Jo=["aria-hidden","aria-label"],tl=["fill","width","height"],el={d:"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M19,19H15V21H19A2,2 0 0,0 21,19V15H19M19,3H15V5H19V9H21V5A2,2 0 0,0 19,3M5,5H9V3H5A2,2 0 0,0 3,5V9H5M5,15H3V19A2,2 0 0,0 5,21H9V19H5V15Z"},il={key:0};function al(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon image-filter-center-focus-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",el,[e.title?(b(),S("title",il,B(e.title),1)):Z("",!0)])],8,tl))],16,Jo)}const nl=W(Qo,[["render",al]]),rl={name:"InvertColorsIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},sl=["aria-hidden","aria-label"],ol=["fill","width","height"],ll={d:"M12,19.58V19.58C10.4,19.58 8.89,18.96 7.76,17.83C6.62,16.69 6,15.19 6,13.58C6,12 6.62,10.47 7.76,9.34L12,5.1M17.66,7.93L12,2.27V2.27L6.34,7.93C3.22,11.05 3.22,16.12 6.34,19.24C7.9,20.8 9.95,21.58 12,21.58C14.05,21.58 16.1,20.8 17.66,19.24C20.78,16.12 20.78,11.05 17.66,7.93Z"},hl={key:0};function cl(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon invert-colors-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",ll,[e.title?(b(),S("title",hl,B(e.title),1)):Z("",!0)])],8,ol))],16,sl)}const dl=W(rl,[["render",cl]]),ul={name:"ThermometerIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gl=["aria-hidden","aria-label"],fl=["fill","width","height"],pl={d:"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z"},ml={key:0};function vl(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon thermometer-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",pl,[e.title?(b(),S("title",ml,B(e.title),1)):Z("",!0)])],8,fl))],16,gl)}const yl=W(ul,[["render",vl]]),_l={name:"WhiteBalanceIridescentIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xl=["aria-hidden","aria-label"],bl=["fill","width","height"],wl={d:"M4.96,19.95L6.76,18.15L5.34,16.74L3.55,18.53M3.55,4.46L5.34,6.26L6.76,4.84L4.96,3.05M20.45,18.53L18.66,16.74L17.24,18.15L19.04,19.95M13,22.45V19.5H11V22.45C11.32,22.45 13,22.45 13,22.45M19.04,3.05L17.24,4.84L18.66,6.26L20.45,4.46M11,3.5H13V0.55H11M5,14.5H19V8.5H5V14.5Z"},Cl={key:0};function Sl(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon white-balance-iridescent-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",wl,[e.title?(b(),S("title",Cl,B(e.title),1)):Z("",!0)])],8,bl))],16,xl)}const kl=W(_l,[["render",Sl]]),Ml={name:"WhiteBalanceSunnyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Al=["aria-hidden","aria-label"],Pl=["fill","width","height"],Tl={d:"M3.55 19.09L4.96 20.5L6.76 18.71L5.34 17.29M12 6C8.69 6 6 8.69 6 12S8.69 18 12 18 18 15.31 18 12C18 8.68 15.31 6 12 6M20 13H23V11H20M17.24 18.71L19.04 20.5L20.45 19.09L18.66 17.29M20.45 5L19.04 3.6L17.24 5.39L18.66 6.81M13 1H11V4H13M6.76 5.39L4.96 3.6L3.55 5L5.34 6.81L6.76 5.39M1 13H4V11H1M13 20H11V23H13"},Ll={key:0};function El(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon white-balance-sunny-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",Tl,[e.title?(b(),S("title",Ll,B(e.title),1)):Z("",!0)])],8,Pl))],16,Al)}const Rl=W(Ml,[["render",El]]),Il={class:"editor-slider"},Gl=["value","data-test","disabled","aria-label","min","max","step"],Dl=_t({__name:"EditorSlider",props:{value:{},min:{},max:{},step:{},label:{},display:{},dataTest:{},disabled:{type:Boolean}},emits:["input","commit"],setup(a,{emit:t}){const e=a,i=t;function n(r){i("input",Number(r.target.value))}return(r,s)=>(b(),S("div",Il,[H("input",{value:e.value,"data-test":a.dataTest,disabled:a.disabled,"aria-label":a.label,type:"range",min:a.min,max:a.max,step:a.step,onInput:n,onChange:s[0]||(s[0]=o=>i("commit"))},null,40,Gl),H("output",null,[Ri(r.$slots,"preview",{},()=>[wt(B(a.display??e.value),1)],!0)])]))}}),Me=W(Dl,[["__scopeId","data-v-6562ea60"]]),zl=["disabled","data-test","aria-pressed"],Hl=_t({__name:"IconTab",props:{label:{},active:{type:Boolean},disabled:{type:Boolean},dataTest:{}},emits:["click"],setup(a,{emit:t}){const e=t;return(i,n)=>(b(),S("button",{type:"button",class:qe(["icon-tab",{"icon-tab--active":a.active}]),disabled:a.disabled,"data-test":a.dataTest,"aria-pressed":a.active,onClick:n[0]||(n[0]=r=>e("click"))},[Ri(i.$slots,"default",{},void 0,!0),H("span",null,B(a.label),1)],10,zl))}}),bn=W(Hl,[["__scopeId","data-v-95889662"]]),wn=Wn().detectLocale();[].map(a=>wn.addTranslation(a.locale,a.json));const Xe=wn.build();Xe.ngettext.bind(Xe);const k=Xe.gettext.bind(Xe),$e=16,Nt=1,Cn=4,Ol=1.05,Fl=.01,Bl=16,Ea=300,Nl=.0015;function Sn(a,t,e){return{x:Math.max(0,(a.width*t-e.width)/2+$e),y:Math.max(0,(a.height*t-e.height)/2+$e)}}function Pi(a,t){return{x:Math.min(t.x,Math.max(-t.x,a.x)),y:Math.min(t.y,Math.max(-t.y,a.y))}}function Vl(a){return a{const c=n.value;return c===null?{x:0,y:0}:Sn(c.visible,c.scale*h,c.container)},s=ht("crop"),o=ht(ci.crop);a.push(t.value,k("Original"));const l={state:t,activeMode:s,activeTool:o,setMode(h){s.value=h,o.value=ci[h],l.selectedId.value=null},drawColor:ht("#ff0000"),strokeWidth:ht(6),fontSize:ht(24),sticker:ht("😀"),redactStyle:ht("pixelate"),cropAspect:ht(null),viewZoom:e,viewPan:i,viewFit:n,panning:ht(!1),setViewZoom(h,c){const d=e.value,u=Vl(h);if(e.value=u,u===Nt){i.value={x:0,y:0};return}const f=c===void 0?i.value:Wl(i.value,c,u/d);i.value=Pi(f,r(u))},setViewPan(h){i.value=Pi(h,r(e.value))},interacting:ht(!1),selectedId:ht(null),canUndo:a.canUndo,canRedo:a.canRedo,historyEntries:a.entries,historyIndex:a.index,commit(h,c){l.interacting.value=!1,t.value=h,a.push(h,c)},preview(h){l.interacting.value=!0,t.value=h},undo(){const h=a.undo();h!==void 0&&(t.value=h)},redo(){const h=a.redo();h!==void 0&&(t.value=h)},jumpTo(h){const c=a.jumpTo(h);c!==void 0&&(t.value=c)},reset(h){a.clear(),t.value=h??Mi(),s.value="crop",o.value=ci.crop,l.selectedId.value=null,e.value=Nt,i.value={x:0,y:0},l.panning.value=!1,a.push(t.value,k(h===void 0?"Original":"Restored"))}};return Ct(o,h=>{h!=="select"&&(l.selectedId.value=null)}),Fa(kn,l),l}function Lt(){const a=Oa(kn,null);if(a===null)throw new Error("useEditorContext() called outside of an ImageEditor tree");return a}const Xl={class:"adjust-panel"},$l={class:"adjust-panel__tabs"},Ul=_t({__name:"AdjustPanel",props:{loaded:{type:Boolean}},setup(a){const t=Lt(),e=[{id:"exposure",label:k("Exposure"),icon:Yo},{id:"brightness",label:k("Brightness"),icon:Rl},{id:"contrast",label:k("Contrast"),icon:Ko},{id:"saturation",label:k("Saturation"),icon:dl},{id:"temperature",label:k("Temperature"),icon:yl},{id:"tint",label:k("Tint"),icon:kl},{id:"sharpen",label:k("Sharpen"),icon:nl}],i=ht("exposure"),n=vt(()=>{const o=t.state.value.adjustments[i.value];return o>0?`+${o}`:`${o}`});function r(o){const l=t.state.value;t.preview({...l,adjustments:{...l.adjustments,[i.value]:o}})}function s(){t.commit(t.state.value,e.find(o=>o.id===i.value).label)}return(o,l)=>(b(),S("div",Xl,[H("div",$l,[(b(),S(Wt,null,Yt(e,h=>j(bn,{key:h.id,label:h.label,active:i.value===h.id,disabled:!a.loaded,"data-test":`tab-${h.id}`,onClick:c=>i.value=h.id},{default:J(()=>[(b(),dt(Ei(h.icon),{size:20}))]),_:2},1032,["label","active","disabled","data-test","onClick"])),64))]),j(Me,{value:M(t).state.value.adjustments[i.value],min:-100,max:100,step:1,label:e.find(h=>h.id===i.value).label,display:n.value,"data-test":`adjust-${i.value}`,disabled:!a.loaded,onInput:r,onCommit:s},null,8,["value","label","display","data-test","disabled"])]))}}),ql=W(Ul,[["__scopeId","data-v-3ad63bd8"]]),Zl={name:"ArrowTopRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Kl=["aria-hidden","aria-label"],Ql=["fill","width","height"],Jl={d:"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z"},th={key:0};function eh(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon arrow-top-right-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",Jl,[e.title?(b(),S("title",th,B(e.title),1)):Z("",!0)])],8,Ql))],16,Kl)}const ih=W(Zl,[["render",eh]]),ah={name:"EllipseOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},nh=["aria-hidden","aria-label"],rh=["fill","width","height"],sh={d:"M12,6C16.41,6 20,8.69 20,12C20,15.31 16.41,18 12,18C7.59,18 4,15.31 4,12C4,8.69 7.59,6 12,6M12,4C6.5,4 2,7.58 2,12C2,16.42 6.5,20 12,20C17.5,20 22,16.42 22,12C22,7.58 17.5,4 12,4Z"},oh={key:0};function lh(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon ellipse-outline-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",sh,[e.title?(b(),S("title",oh,B(e.title),1)):Z("",!0)])],8,rh))],16,nh)}const hh=W(ah,[["render",lh]]),ch={name:"FormatTextIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},dh=["aria-hidden","aria-label"],uh=["fill","width","height"],gh={d:"M18.5,4L19.66,8.35L18.7,8.61C18.25,7.74 17.79,6.87 17.26,6.43C16.73,6 16.11,6 15.5,6H13V16.5C13,17 13,17.5 13.33,17.75C13.67,18 14.33,18 15,18V19H9V18C9.67,18 10.33,18 10.67,17.75C11,17.5 11,17 11,16.5V6H8.5C7.89,6 7.27,6 6.74,6.43C6.21,6.87 5.75,7.74 5.3,8.61L4.34,8.35L5.5,4H18.5Z"},fh={key:0};function ph(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon format-text-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",gh,[e.title?(b(),S("title",fh,B(e.title),1)):Z("",!0)])],8,uh))],16,dh)}const mh=W(ch,[["render",ph]]),vh={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},yh=["aria-hidden","aria-label"],_h=["fill","width","height"],xh={d:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"},bh={key:0};function wh(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon pencil-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",xh,[e.title?(b(),S("title",bh,B(e.title),1)):Z("",!0)])],8,_h))],16,yh)}const Mn=W(vh,[["render",wh]]),Ch={name:"RectangleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Sh=["aria-hidden","aria-label"],kh=["fill","width","height"],Mh={d:"M4,6V19H20V6H4M18,17H6V8H18V17Z"},Ah={key:0};function Ph(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon rectangle-outline-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",Mh,[e.title?(b(),S("title",Ah,B(e.title),1)):Z("",!0)])],8,kh))],16,Sh)}const Th=W(Ch,[["render",Ph]]),Lh={name:"VectorLineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Eh=["aria-hidden","aria-label"],Rh=["fill","width","height"],Ih={d:"M15,3V7.59L7.59,15H3V21H9V16.42L16.42,9H21V3M17,5H19V7H17M5,17H7V19H5"},Gh={key:0};function Dh(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon vector-line-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",Ih,[e.title?(b(),S("title",Gh,B(e.title),1)):Z("",!0)])],8,Rh))],16,Eh)}const zh=W(Lh,[["render",Dh]]);function An(a){function t(){const i=a.state.value.annotations.find(n=>n.id===a.selectedId.value);return i!==void 0&&"color"in i&&i.type!=="sticker"?i:void 0}function e(i){const n=t();if(n===void 0||n.color===i)return;const r=a.state.value;a.preview({...r,annotations:r.annotations.map(s=>s.id===n.id?{...s,color:i}:s)})}return{preview(i){a.drawColor.value=i,e(i)},commit(i){a.drawColor.value=i,e(i),t()!==void 0&&a.commit(a.state.value,k("Color"))}}}const Hh={class:"annotate-panel"},Oh={class:"annotate-panel__row"},Fh={class:"annotate-panel__option"},Bh=["value"],Nh="A",Ra=44,Vh=_t({__name:"AnnotatePanel",props:{loaded:{type:Boolean}},setup(a){const t=Lt(),e=An(t),i={color:k("Color"),strokeWidth:k("Stroke width"),fontSize:k("Font size")},n=[{id:"draw",label:k("Draw"),icon:Mn},{id:"rectangle",label:k("Rectangle"),icon:Th},{id:"ellipse",label:k("Ellipse"),icon:hh},{id:"arrow",label:k("Arrow"),icon:ih},{id:"line",label:k("Line"),icon:zh},{id:"text",label:k("Text"),icon:mh}],r=vt(()=>["draw","rectangle","ellipse","arrow","line"].includes(t.activeTool.value)),s=vt(()=>(t.viewFit.value?.scale??1)*t.viewZoom.value),o=vt(()=>Math.min(Ra,Math.max(2,t.strokeWidth.value*s.value))),l=vt(()=>Math.min(Ra,Math.max(8,t.fontSize.value*s.value)));return(h,c)=>(b(),S("div",Hh,[H("div",Oh,[(b(),S(Wt,null,Yt(n,d=>j(M(ut),{key:d.id,"aria-label":d.label,title:d.label,disabled:!a.loaded,pressed:M(t).activeTool.value===d.id,variant:"tertiary",onClick:u=>M(t).activeTool.value=d.id},{icon:J(()=>[(b(),dt(Ei(d.icon),{size:20}))]),_:2},1032,["aria-label","title","disabled","pressed","onClick"])),64)),c[4]||(c[4]=H("span",{class:"annotate-panel__divider"},null,-1)),H("label",Fh,[wt(B(i.color)+" ",1),H("input",{value:M(t).drawColor.value,type:"color","data-test":"color",onInput:c[0]||(c[0]=d=>M(e).preview(d.target.value)),onChange:c[1]||(c[1]=d=>M(e).commit(d.target.value))},null,40,Bh)])]),r.value?(b(),dt(Me,{key:0,value:M(t).strokeWidth.value,min:1,max:32,step:1,label:i.strokeWidth,onInput:c[2]||(c[2]=d=>M(t).strokeWidth.value=d),onCommit:()=>{}},{preview:J(()=>[H("span",{class:"annotate-panel__dot","data-test":"stroke-preview",style:re({inlineSize:`${o.value}px`,blockSize:`${o.value}px`,backgroundColor:M(t).drawColor.value})},null,4)]),_:1},8,["value","label"])):M(t).activeTool.value==="text"?(b(),dt(Me,{key:1,value:M(t).fontSize.value,min:8,max:128,step:1,label:i.fontSize,onInput:c[3]||(c[3]=d=>M(t).fontSize.value=d),onCommit:()=>{}},{preview:J(()=>[H("span",{class:"annotate-panel__glyph","data-test":"font-preview",style:re({fontSize:`${l.value}px`,color:M(t).drawColor.value})},B(Nh),4)]),_:1},8,["value","label"])):Z("",!0)]))}}),Wh=W(Vh,[["__scopeId","data-v-f7e8a194"]]),Yh={name:"FlipHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jh=["aria-hidden","aria-label"],Xh=["fill","width","height"],$h={d:"M15 21H17V19H15M19 9H21V7H19M3 5V19C3 20.1 3.9 21 5 21H9V19H5V5H9V3H5C3.9 3 3 3.9 3 5M19 3V5H21C21 3.9 20.1 3 19 3M11 23H13V1H11M19 17H21V15H19M15 5H17V3H15M19 13H21V11H19M19 21C20.1 21 21 20.1 21 19H19Z"},Uh={key:0};function qh(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon flip-horizontal-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",$h,[e.title?(b(),S("title",Uh,B(e.title),1)):Z("",!0)])],8,Xh))],16,jh)}const Zh=W(Yh,[["render",qh]]),Kh={name:"FlipVerticalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Qh=["aria-hidden","aria-label"],Jh=["fill","width","height"],tc={d:"M3 15V17H5V15M15 19V21H17V19M19 3H5C3.9 3 3 3.9 3 5V9H5V5H19V9H21V5C21 3.9 20.1 3 19 3M21 19H19V21C20.1 21 21 20.1 21 19M1 11V13H23V11M7 19V21H9V19M19 15V17H21V15M11 19V21H13V19M3 19C3 20.1 3.9 21 5 21V19Z"},ec={key:0};function ic(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon flip-vertical-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",tc,[e.title?(b(),S("title",ec,B(e.title),1)):Z("",!0)])],8,Jh))],16,Qh)}const ac=W(Kh,[["render",ic]]),nc={name:"RotateLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},rc=["aria-hidden","aria-label"],sc=["fill","width","height"],oc={d:"M13,4.07V1L8.45,5.55L13,10V6.09C15.84,6.57 18,9.03 18,12C18,14.97 15.84,17.43 13,17.91V19.93C16.95,19.44 20,16.08 20,12C20,7.92 16.95,4.56 13,4.07M7.1,18.32C8.26,19.22 9.61,19.76 11,19.93V17.9C10.13,17.75 9.29,17.41 8.54,16.87L7.1,18.32M6.09,13H4.07C4.24,14.39 4.79,15.73 5.69,16.89L7.1,15.47C6.58,14.72 6.23,13.88 6.09,13M7.11,8.53L5.7,7.11C4.8,8.27 4.24,9.61 4.07,11H6.09C6.23,10.13 6.58,9.28 7.11,8.53Z"},lc={key:0};function hc(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon rotate-left-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",oc,[e.title?(b(),S("title",lc,B(e.title),1)):Z("",!0)])],8,sc))],16,rc)}const cc=W(nc,[["render",hc]]),dc={name:"RotateRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},uc=["aria-hidden","aria-label"],gc=["fill","width","height"],fc={d:"M16.89,15.5L18.31,16.89C19.21,15.73 19.76,14.39 19.93,13H17.91C17.77,13.87 17.43,14.72 16.89,15.5M13,17.9V19.92C14.39,19.75 15.74,19.21 16.9,18.31L15.46,16.87C14.71,17.41 13.87,17.76 13,17.9M19.93,11C19.76,9.61 19.21,8.27 18.31,7.11L16.89,8.53C17.43,9.28 17.77,10.13 17.91,11M15.55,5.55L11,1V4.07C7.06,4.56 4,7.92 4,12C4,16.08 7.05,19.44 11,19.93V17.91C8.16,17.43 6,14.97 6,12C6,9.03 8.16,6.57 11,6.09V10L15.55,5.55Z"},pc={key:0};function mc(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon rotate-right-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",fc,[e.title?(b(),S("title",pc,B(e.title),1)):Z("",!0)])],8,gc))],16,uc)}const vc=W(dc,[["render",mc]]),Pn=Symbol("nextcloud:image-editor:commands");function yc(a){return Fa(Pn,a),a}function Tn(){const a=Oa(Pn,null);if(a===null)throw new Error("useEditorCommands() called outside of an ImageEditor tree");return a}const _c={class:"crop-panel"},xc={class:"crop-panel__row"},bc={class:"crop-panel__row"},wc=_t({__name:"CropPanel",props:{loaded:{type:Boolean}},setup(a){const t=Lt(),e=Tn(),i={rotateLeft:k("Rotate left"),rotateRight:k("Rotate right"),flipHorizontal:k("Flip horizontal"),flipVertical:k("Flip vertical"),applyCrop:k("Apply crop"),resetCrop:k("Reset crop"),rotation:k("Rotation"),scale:k("Scale")},n=[{id:null,label:k("Free")},{id:"original",label:k("Original")},{id:1,label:"1:1"},{id:4/3,label:"4:3"},{id:16/9,label:"16:9"}],r=[{id:"rotation",label:i.rotation},{id:"scale",label:i.scale}],s=ht("rotation"),o=vt(()=>s.value==="rotation"?`${t.state.value.fineRotation}°`:`×${t.state.value.zoom.toFixed(2)}`);function l(c){t.preview(s.value==="rotation"?{...t.state.value,fineRotation:c}:{...t.state.value,zoom:c})}function h(){t.commit(t.state.value,s.value==="rotation"?i.rotation:i.scale)}return(c,d)=>(b(),S("div",_c,[H("div",xc,[(b(),S(Wt,null,Yt(n,u=>j(M(ut),{key:String(u.id),"data-test":`aspect-${u.id===null?"free":u.id==="original"?"original":u.label}`,pressed:M(t).cropAspect.value===u.id,disabled:!a.loaded,variant:"tertiary",onClick:f=>M(t).cropAspect.value=u.id},{default:J(()=>[wt(B(u.label),1)]),_:2},1032,["data-test","pressed","disabled","onClick"])),64))]),H("div",bc,[j(M(ut),{"aria-label":i.rotateLeft,title:i.rotateLeft,disabled:!a.loaded,variant:"tertiary",onClick:d[0]||(d[0]=u=>M(e).rotateCCW())},{icon:J(()=>[j(cc,{size:20})]),_:1},8,["aria-label","title","disabled"]),j(M(ut),{"aria-label":i.rotateRight,title:i.rotateRight,disabled:!a.loaded,variant:"tertiary",onClick:d[1]||(d[1]=u=>M(e).rotateCW())},{icon:J(()=>[j(vc,{size:20})]),_:1},8,["aria-label","title","disabled"]),j(M(ut),{"aria-label":i.flipHorizontal,title:i.flipHorizontal,disabled:!a.loaded,variant:"tertiary",onClick:d[2]||(d[2]=u=>M(e).flipHorizontal())},{icon:J(()=>[j(Zh,{size:20})]),_:1},8,["aria-label","title","disabled"]),j(M(ut),{"aria-label":i.flipVertical,title:i.flipVertical,disabled:!a.loaded,variant:"tertiary",onClick:d[3]||(d[3]=u=>M(e).flipVertical())},{icon:J(()=>[j(ac,{size:20})]),_:1},8,["aria-label","title","disabled"]),d[6]||(d[6]=H("span",{class:"crop-panel__divider"},null,-1)),(b(),S(Wt,null,Yt(r,u=>j(M(ut),{key:u.id,"data-test":`tab-${u.id}`,pressed:s.value===u.id,disabled:!a.loaded,variant:"tertiary",onClick:f=>s.value=u.id},{default:J(()=>[wt(B(u.label),1)]),_:2},1032,["data-test","pressed","disabled","onClick"])),64)),d[7]||(d[7]=H("span",{class:"crop-panel__divider"},null,-1)),j(M(ut),{"data-test":"reset-crop",variant:"tertiary",disabled:!a.loaded||M(t).state.value.crop===null,onClick:d[4]||(d[4]=u=>M(e).resetCrop())},{default:J(()=>[wt(B(i.resetCrop),1)]),_:1},8,["disabled"]),j(M(ut),{"data-test":"apply-crop",variant:"secondary",disabled:!a.loaded,onClick:d[5]||(d[5]=u=>M(e).applyCrop())},{default:J(()=>[wt(B(i.applyCrop),1)]),_:1},8,["disabled"])]),s.value==="rotation"?(b(),dt(Me,{key:0,value:M(t).state.value.fineRotation,min:-45,max:45,step:1,label:i.rotation,display:o.value,"data-test":"fine-rotation",disabled:!a.loaded,onInput:l,onCommit:h},null,8,["value","label","display","disabled"])):(b(),dt(Me,{key:1,value:M(t).state.value.zoom,min:1,max:3,step:.05,label:i.scale,display:o.value,"data-test":"zoom",disabled:!a.loaded,onInput:l,onCommit:h},null,8,["value","label","display","disabled"]))]))}}),Cc=W(wc,[["__scopeId","data-v-30fdb9f8"]]),Sc=["disabled","data-test","aria-pressed","title"],kc=["src","alt"],Mc=_t({__name:"PresetChip",props:{url:{},label:{},active:{type:Boolean},disabled:{type:Boolean},dataTest:{}},emits:["click"],setup(a,{emit:t}){const e=t;return(i,n)=>(b(),S("button",{type:"button",class:qe(["preset-chip",{"preset-chip--active":a.active}]),disabled:a.disabled,"data-test":a.dataTest,"aria-pressed":a.active,title:a.label,onClick:n[0]||(n[0]=r=>e("click"))},[H("img",{src:a.url,alt:a.label},null,8,kc),H("span",null,B(a.label),1)],10,Sc))}}),Ac=W(Mc,[["__scopeId","data-v-b38cdab1"]]);function Pc(a,t,e){return .299*a+.587*t+.114*e}const Tc=2,Lc=.25,Ec=.25;function Rc(a){const{data:t}=a,e=2**((this.getAttr("exposure")??0)*Tc),i=(this.getAttr("temperature")??0)*Lc,n=(this.getAttr("tint")??0)*Ec,r=e*(1+i)*(1+n/2),s=e*(1-n),o=e*(1-i)*(1+n/2);for(let l=0;l{const c=n.image()!==o;c&&n.image(o);const d=h.showCropped?Vt(l,{width:o.width,height:o.height}):{x:0,y:0};e.position({x:h.offset.x-d.x*h.scale,y:h.offset.y-d.y*h.scale}),e.scale({x:h.scale,y:h.scale}),h.showCropped&&l.crop!==null?e.clip(l.crop):(e.clipWidth(void 0),e.clipHeight(void 0));const u=h.fastFilters?Math.min(1,h.scale*(globalThis.devicePixelRatio||1)):1,f=`${Object.values(l.adjustments).join("|")}|${l.preset}|${u}`;(c||f!==s)&&(En(n,l,u),s=f);const g=new Set;for(const y of l.annotations){g.add(y.id);const x=r.get(y.id);if(x!==void 0&&x.annotation===y&&!c)continue;x?.node.destroy();const m=Ln(y,o);i.add(m),r.set(y.id,{annotation:y,node:m})}for(const[y,x]of r)g.has(y)||(x.node.destroy(),r.delete(y));n.zIndex(0),l.annotations.forEach((y,x)=>r.get(y.id).node.zIndex(x+1))},destroy:()=>{r.clear(),t.destroy()}}}function Kc(a,t,e,i){const n=Rn(a);return n.update(t,e,i),n}function Qc(a,t,e){const i=Vt(t,{width:a.width,height:a.height}),n=e===void 0?1:Math.min(1,e/Math.max(i.width,i.height)),r=new et.Stage({container:document.createElement("div"),width:i.width,height:i.height});try{return Kc(r,a,t,{scale:1,offset:{x:0,y:0},showCropped:!0}),r.toCanvas({pixelRatio:n})}finally{r.destroy()}}function Jc(a,t,e,i){const n=Vt(t,e);return{x:(a.x-i.offset.x)/i.scale+(i.showCropped?n.x:0),y:(a.y-i.offset.y)/i.scale+(i.showCropped?n.y:0)}}const td=_t({__name:"FilterStrip",props:{loaded:{type:Boolean},oriented:{}},setup(a){const t=a,e=Lt(),i=[{id:"none",label:k("No filter")},{id:"pop",label:k("Pop")},{id:"golden",label:k("Golden")},{id:"coast",label:k("Coast")},{id:"cinema",label:k("Cinema")},{id:"berry",label:k("Berry")},{id:"mist",label:k("Mist")},{id:"warm",label:k("Warm")},{id:"cool",label:k("Cool")},{id:"fade",label:k("Fade")},{id:"grayscale",label:k("Grayscale")},{id:"noir",label:k("Noir")},{id:"luna",label:k("Luna")},{id:"sepia",label:k("Sepia")},{id:"invert",label:k("Invert")},{id:"solarize",label:k("Solarize")},{id:"posterize",label:k("Posterize")}],n=ht([]);Ct([()=>t.oriented,()=>qc(e.state.value)],([s])=>{n.value=s?i.map(o=>({...o,url:Zc(s,e.state.value,o.id)})):[]},{immediate:!0});function r(s,o){e.commit({...e.state.value,preset:s},o)}return(s,o)=>(b(),dt(Hi,{variant:"strip",class:"filter-strip"},{default:J(()=>[(b(!0),S(Wt,null,Yt(n.value,l=>(b(),dt(Ac,{key:l.id,url:l.url,label:l.label,active:M(e).state.value.preset===l.id,disabled:!a.loaded,"data-test":`preset-${l.id}`,onClick:h=>r(l.id,l.label)},null,8,["url","label","active","disabled","data-test","onClick"]))),128))]),_:1}))}}),ed=W(td,[["__scopeId","data-v-44007efa"]]),id={class:"redact-panel"},ad=_t({__name:"RedactPanel",props:{loaded:{type:Boolean}},setup(a){const t=Lt(),e={pixelate:k("Pixelate"),blur:k("Blur")};return(i,n)=>(b(),S("div",id,[j(M(ut),{"data-test":"redact-pixelate",pressed:M(t).redactStyle.value==="pixelate",disabled:!a.loaded,variant:"tertiary",onClick:n[0]||(n[0]=r=>M(t).redactStyle.value="pixelate")},{default:J(()=>[wt(B(e.pixelate),1)]),_:1},8,["pressed","disabled"]),j(M(ut),{"data-test":"redact-blur",pressed:M(t).redactStyle.value==="blur",disabled:!a.loaded,variant:"tertiary",onClick:n[1]||(n[1]=r=>M(t).redactStyle.value="blur")},{default:J(()=>[wt(B(e.blur),1)]),_:1},8,["pressed","disabled"])]))}}),nd=W(ad,[["__scopeId","data-v-ac701267"]]),rd={class:"select-panel"},sd={key:0,class:"select-panel__option"},od=["value","disabled"],ld={key:1,class:"select-panel__hint"},hd={key:2,class:"select-panel__hint"},cd=_t({__name:"SelectPanel",props:{loaded:{type:Boolean}},setup(a){const t=Lt(),e=An(t),i=k("Color"),n=k("Click an annotation to move, resize or recolor it"),r=k("Drag to move, use the handles to resize"),s=vt(()=>t.state.value.annotations.find(l=>l.id===t.selectedId.value)??null),o=vt(()=>s.value!==null&&s.value.type!=="sticker"&&s.value.type!=="redact");return(l,h)=>(b(),S("div",rd,[o.value?(b(),S("label",sd,[wt(B(M(i))+" ",1),H("input",{value:M(t).drawColor.value,type:"color",disabled:!a.loaded,"data-test":"color",onInput:h[0]||(h[0]=c=>M(e).preview(c.target.value)),onChange:h[1]||(h[1]=c=>M(e).commit(c.target.value))},null,40,od)])):s.value!==null?(b(),S("span",ld,B(M(r)),1)):(b(),S("span",hd,B(M(n)),1))]))}}),dd=W(cd,[["__scopeId","data-v-2ca9996e"]]),ud={class:"sticker-panel"},gd=_t({__name:"StickerPanel",props:{loaded:{type:Boolean}},setup(a){const t=Lt(),e=k("More emojis"),i=["😀","😍","🎉","👍","❤️","⭐","🔥","💡","✅","❌","❓","⚠️"];function n(){try{const o=Qn("",12).map(l=>l.native).filter(l=>typeof l=="string"&&l!=="");return o.length>=6?o:i}catch{return i}}const r=n(),s=vt(()=>r.includes(t.sticker.value)?r:[t.sticker.value,...r.slice(0,11)]);return(o,l)=>(b(),S("div",ud,[(b(!0),S(Wt,null,Yt(s.value,h=>(b(),dt(M(ut),{key:h,"aria-label":h,pressed:M(t).sticker.value===h,disabled:!a.loaded,class:"sticker-panel__emoji",variant:"tertiary",onClick:c=>M(t).sticker.value=h},{default:J(()=>[wt(B(h),1)]),_:2},1032,["aria-label","pressed","disabled","onClick"]))),128)),j(M(Kn),{onSelect:l[0]||(l[0]=h=>M(t).sticker.value=h)},{default:J(()=>[j(M(ut),{"data-test":"emoji-picker",variant:"tertiary"},{default:J(()=>[wt(B(M(e)),1)]),_:1})]),_:1})]))}}),fd=W(gd,[["__scopeId","data-v-6307599b"]]),pd=_t({__name:"EditorPanel",props:{loaded:{type:Boolean},oriented:{}},setup(a){const t=Lt();return(e,i)=>M(t).activeMode.value==="filter"?(b(),dt(ed,{key:0,loaded:a.loaded,oriented:a.oriented},null,8,["loaded","oriented"])):(b(),dt(Hi,{key:1,variant:"card",class:"editor-card"},{default:J(()=>[M(t).activeMode.value==="crop"?(b(),dt(Cc,{key:0,loaded:a.loaded},null,8,["loaded"])):M(t).activeMode.value==="finetune"?(b(),dt(ql,{key:1,loaded:a.loaded},null,8,["loaded"])):M(t).activeMode.value==="annotate"?(b(),dt(Wh,{key:2,loaded:a.loaded},null,8,["loaded"])):M(t).activeMode.value==="select"?(b(),dt(dd,{key:3,loaded:a.loaded},null,8,["loaded"])):M(t).activeMode.value==="sticker"?(b(),dt(fd,{key:4,loaded:a.loaded},null,8,["loaded"])):M(t).activeMode.value==="redact"?(b(),dt(nd,{key:5,loaded:a.loaded},null,8,["loaded"])):Z("",!0)]),_:1}))}}),md=W(pd,[["__scopeId","data-v-3fb85d8f"]]),vd={name:"BlurIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},yd=["aria-hidden","aria-label"],_d=["fill","width","height"],xd={d:"M14,8.5A1.5,1.5 0 0,0 12.5,10A1.5,1.5 0 0,0 14,11.5A1.5,1.5 0 0,0 15.5,10A1.5,1.5 0 0,0 14,8.5M14,12.5A1.5,1.5 0 0,0 12.5,14A1.5,1.5 0 0,0 14,15.5A1.5,1.5 0 0,0 15.5,14A1.5,1.5 0 0,0 14,12.5M10,17A1,1 0 0,0 9,18A1,1 0 0,0 10,19A1,1 0 0,0 11,18A1,1 0 0,0 10,17M10,8.5A1.5,1.5 0 0,0 8.5,10A1.5,1.5 0 0,0 10,11.5A1.5,1.5 0 0,0 11.5,10A1.5,1.5 0 0,0 10,8.5M14,20.5A0.5,0.5 0 0,0 13.5,21A0.5,0.5 0 0,0 14,21.5A0.5,0.5 0 0,0 14.5,21A0.5,0.5 0 0,0 14,20.5M14,17A1,1 0 0,0 13,18A1,1 0 0,0 14,19A1,1 0 0,0 15,18A1,1 0 0,0 14,17M21,13.5A0.5,0.5 0 0,0 20.5,14A0.5,0.5 0 0,0 21,14.5A0.5,0.5 0 0,0 21.5,14A0.5,0.5 0 0,0 21,13.5M18,5A1,1 0 0,0 17,6A1,1 0 0,0 18,7A1,1 0 0,0 19,6A1,1 0 0,0 18,5M18,9A1,1 0 0,0 17,10A1,1 0 0,0 18,11A1,1 0 0,0 19,10A1,1 0 0,0 18,9M18,17A1,1 0 0,0 17,18A1,1 0 0,0 18,19A1,1 0 0,0 19,18A1,1 0 0,0 18,17M18,13A1,1 0 0,0 17,14A1,1 0 0,0 18,15A1,1 0 0,0 19,14A1,1 0 0,0 18,13M10,12.5A1.5,1.5 0 0,0 8.5,14A1.5,1.5 0 0,0 10,15.5A1.5,1.5 0 0,0 11.5,14A1.5,1.5 0 0,0 10,12.5M10,7A1,1 0 0,0 11,6A1,1 0 0,0 10,5A1,1 0 0,0 9,6A1,1 0 0,0 10,7M10,3.5A0.5,0.5 0 0,0 10.5,3A0.5,0.5 0 0,0 10,2.5A0.5,0.5 0 0,0 9.5,3A0.5,0.5 0 0,0 10,3.5M10,20.5A0.5,0.5 0 0,0 9.5,21A0.5,0.5 0 0,0 10,21.5A0.5,0.5 0 0,0 10.5,21A0.5,0.5 0 0,0 10,20.5M3,13.5A0.5,0.5 0 0,0 2.5,14A0.5,0.5 0 0,0 3,14.5A0.5,0.5 0 0,0 3.5,14A0.5,0.5 0 0,0 3,13.5M14,3.5A0.5,0.5 0 0,0 14.5,3A0.5,0.5 0 0,0 14,2.5A0.5,0.5 0 0,0 13.5,3A0.5,0.5 0 0,0 14,3.5M14,7A1,1 0 0,0 15,6A1,1 0 0,0 14,5A1,1 0 0,0 13,6A1,1 0 0,0 14,7M21,10.5A0.5,0.5 0 0,0 21.5,10A0.5,0.5 0 0,0 21,9.5A0.5,0.5 0 0,0 20.5,10A0.5,0.5 0 0,0 21,10.5M6,5A1,1 0 0,0 5,6A1,1 0 0,0 6,7A1,1 0 0,0 7,6A1,1 0 0,0 6,5M3,9.5A0.5,0.5 0 0,0 2.5,10A0.5,0.5 0 0,0 3,10.5A0.5,0.5 0 0,0 3.5,10A0.5,0.5 0 0,0 3,9.5M6,9A1,1 0 0,0 5,10A1,1 0 0,0 6,11A1,1 0 0,0 7,10A1,1 0 0,0 6,9M6,17A1,1 0 0,0 5,18A1,1 0 0,0 6,19A1,1 0 0,0 7,18A1,1 0 0,0 6,17M6,13A1,1 0 0,0 5,14A1,1 0 0,0 6,15A1,1 0 0,0 7,14A1,1 0 0,0 6,13Z"},bd={key:0};function wd(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon blur-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",xd,[e.title?(b(),S("title",bd,B(e.title),1)):Z("",!0)])],8,_d))],16,yd)}const Cd=W(vd,[["render",wd]]),Sd={name:"CropIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},kd=["aria-hidden","aria-label"],Md=["fill","width","height"],Ad={d:"M7,17V1H5V5H1V7H5V17A2,2 0 0,0 7,19H17V23H19V19H23V17M17,15H19V7C19,5.89 18.1,5 17,5H9V7H17V15Z"},Pd={key:0};function Td(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon crop-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",Ad,[e.title?(b(),S("title",Pd,B(e.title),1)):Z("",!0)])],8,Md))],16,kd)}const Ld=W(Sd,[["render",Td]]),Ed={name:"CursorDefaultOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Rd=["aria-hidden","aria-label"],Id=["fill","width","height"],Gd={d:"M10.07,14.27C10.57,14.03 11.16,14.25 11.4,14.75L13.7,19.74L15.5,18.89L13.19,13.91C12.95,13.41 13.17,12.81 13.67,12.58L13.95,12.5L16.25,12.05L8,5.12V15.9L9.82,14.43L10.07,14.27M13.64,21.97C13.14,22.21 12.54,22 12.31,21.5L10.13,16.76L7.62,18.78C7.45,18.92 7.24,19 7,19A1,1 0 0,1 6,18V3A1,1 0 0,1 7,2C7.24,2 7.47,2.09 7.64,2.23L7.65,2.22L19.14,11.86C19.57,12.22 19.62,12.85 19.27,13.27C19.12,13.45 18.91,13.57 18.7,13.61L15.54,14.23L17.74,18.96C18,19.46 17.76,20.05 17.26,20.28L13.64,21.97Z"},Dd={key:0};function zd(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon cursor-default-outline-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",Gd,[e.title?(b(),S("title",Dd,B(e.title),1)):Z("",!0)])],8,Id))],16,Rd)}const Hd=W(Ed,[["render",zd]]),Od={name:"PaletteOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Fd=["aria-hidden","aria-label"],Bd=["fill","width","height"],Nd={d:"M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2C17.5,2 22,6 22,11A6,6 0 0,1 16,17H14.2C13.9,17 13.7,17.2 13.7,17.5C13.7,17.6 13.8,17.7 13.8,17.8C14.2,18.3 14.4,18.9 14.4,19.5C14.5,20.9 13.4,22 12,22M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C12.3,20 12.5,19.8 12.5,19.5C12.5,19.3 12.4,19.2 12.4,19.1C12,18.6 11.8,18.1 11.8,17.5C11.8,16.1 12.9,15 14.3,15H16A4,4 0 0,0 20,11C20,7.1 16.4,4 12,4M6.5,10C7.3,10 8,10.7 8,11.5C8,12.3 7.3,13 6.5,13C5.7,13 5,12.3 5,11.5C5,10.7 5.7,10 6.5,10M9.5,6C10.3,6 11,6.7 11,7.5C11,8.3 10.3,9 9.5,9C8.7,9 8,8.3 8,7.5C8,6.7 8.7,6 9.5,6M14.5,6C15.3,6 16,6.7 16,7.5C16,8.3 15.3,9 14.5,9C13.7,9 13,8.3 13,7.5C13,6.7 13.7,6 14.5,6M17.5,10C18.3,10 19,10.7 19,11.5C19,12.3 18.3,13 17.5,13C16.7,13 16,12.3 16,11.5C16,10.7 16.7,10 17.5,10Z"},Vd={key:0};function Wd(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon palette-outline-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",Nd,[e.title?(b(),S("title",Vd,B(e.title),1)):Z("",!0)])],8,Bd))],16,Fd)}const Yd=W(Od,[["render",Wd]]),jd={name:"StickerEmojiIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xd=["aria-hidden","aria-label"],$d=["fill","width","height"],Ud={d:"M5.5,2C3.56,2 2,3.56 2,5.5V18.5C2,20.44 3.56,22 5.5,22H16L22,16V5.5C22,3.56 20.44,2 18.5,2H5.5M5.75,4H18.25A1.75,1.75 0 0,1 20,5.75V15H18.5C16.56,15 15,16.56 15,18.5V20H5.75A1.75,1.75 0 0,1 4,18.25V5.75A1.75,1.75 0 0,1 5.75,4M14.44,6.77C14.28,6.77 14.12,6.79 13.97,6.83C13.03,7.09 12.5,8.05 12.74,9C12.79,9.15 12.86,9.3 12.95,9.44L16.18,8.56C16.18,8.39 16.16,8.22 16.12,8.05C15.91,7.3 15.22,6.77 14.44,6.77M8.17,8.5C8,8.5 7.85,8.5 7.7,8.55C6.77,8.81 6.22,9.77 6.47,10.7C6.5,10.86 6.59,11 6.68,11.16L9.91,10.28C9.91,10.11 9.89,9.94 9.85,9.78C9.64,9 8.95,8.5 8.17,8.5M16.72,11.26L7.59,13.77C8.91,15.3 11,15.94 12.95,15.41C14.9,14.87 16.36,13.25 16.72,11.26Z"},qd={key:0};function Zd(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon sticker-emoji-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",Ud,[e.title?(b(),S("title",qd,B(e.title),1)):Z("",!0)])],8,$d))],16,Xd)}const Kd=W(jd,[["render",Zd]]),Qd={name:"TuneIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Jd=["aria-hidden","aria-label"],t1=["fill","width","height"],e1={d:"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"},i1={key:0};function a1(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon tune-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",e1,[e.title?(b(),S("title",i1,B(e.title),1)):Z("",!0)])],8,t1))],16,Jd)}const n1=W(Qd,[["render",a1]]),r1={class:"editor-sidebar"},s1=_t({__name:"EditorSidebar",props:{loaded:{type:Boolean}},setup(a){const t=Lt(),e=[{id:"select",label:k("Select"),icon:Hd},{id:"crop",label:k("Crop"),icon:Ld},{id:"finetune",label:k("Adjust"),icon:n1},{id:"filter",label:k("Filter"),icon:Yd},{id:"annotate",label:k("Annotate"),icon:Mn},{id:"sticker",label:k("Sticker"),icon:Kd},{id:"redact",label:k("Redact"),icon:Cd}];return(i,n)=>(b(),S("nav",r1,[(b(),S(Wt,null,Yt(e,r=>j(bn,{key:r.id,label:r.label,active:M(t).activeMode.value===r.id,disabled:!a.loaded,onClick:s=>M(t).setMode(r.id)},{default:J(()=>[(b(),dt(Ei(r.icon),{size:20}))]),_:2},1032,["label","active","disabled","onClick"])),64))]))}}),o1=W(s1,[["__scopeId","data-v-a4223674"]]),l1={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},h1=["aria-hidden","aria-label"],c1=["fill","width","height"],d1={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},u1={key:0};function g1(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon check-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",d1,[e.title?(b(),S("title",u1,B(e.title),1)):Z("",!0)])],8,c1))],16,h1)}const f1=W(l1,[["render",g1]]),p1={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},m1=["aria-hidden","aria-label"],v1=["fill","width","height"],y1={d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"},_1={key:0};function x1(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon close-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",y1,[e.title?(b(),S("title",_1,B(e.title),1)):Z("",!0)])],8,v1))],16,m1)}const b1=W(p1,[["render",x1]]),w1={name:"HistoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},C1=["aria-hidden","aria-label"],S1=["fill","width","height"],k1={d:"M13.5,8H12V13L16.28,15.54L17,14.33L13.5,12.25V8M13,3A9,9 0 0,0 4,12H1L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3"},M1={key:0};function A1(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon history-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",k1,[e.title?(b(),S("title",M1,B(e.title),1)):Z("",!0)])],8,S1))],16,C1)}const P1=W(w1,[["render",A1]]),T1={name:"MagnifyMinusOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},L1=["aria-hidden","aria-label"],E1=["fill","width","height"],R1={d:"M15.5,14H14.71L14.43,13.73C15.41,12.59 16,11.11 16,9.5A6.5,6.5 0 0,0 9.5,3A6.5,6.5 0 0,0 3,9.5A6.5,6.5 0 0,0 9.5,16C11.11,16 12.59,15.41 13.73,14.43L14,14.71V15.5L19,20.5L20.5,19L15.5,14M9.5,14C7,14 5,12 5,9.5C5,7 7,5 9.5,5C12,5 14,7 14,9.5C14,12 12,14 9.5,14M7,9H12V10H7V9Z"},I1={key:0};function G1(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon magnify-minus-outline-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",R1,[e.title?(b(),S("title",I1,B(e.title),1)):Z("",!0)])],8,E1))],16,L1)}const D1=W(T1,[["render",G1]]),z1={name:"MagnifyPlusOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},H1=["aria-hidden","aria-label"],O1=["fill","width","height"],F1={d:"M15.5,14L20.5,19L19,20.5L14,15.5V14.71L13.73,14.43C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.43,13.73L14.71,14H15.5M9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14M12,10H10V12H9V10H7V9H9V7H10V9H12V10Z"},B1={key:0};function N1(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon magnify-plus-outline-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",F1,[e.title?(b(),S("title",B1,B(e.title),1)):Z("",!0)])],8,O1))],16,H1)}const V1=W(z1,[["render",N1]]),W1={name:"RedoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Y1=["aria-hidden","aria-label"],j1=["fill","width","height"],X1={d:"M18.4,10.6C16.55,9 14.15,8 11.5,8C6.85,8 2.92,11.03 1.54,15.22L3.9,16C4.95,12.81 7.95,10.5 11.5,10.5C13.45,10.5 15.23,11.22 16.62,12.38L13,16H22V7L18.4,10.6Z"},$1={key:0};function U1(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon redo-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",X1,[e.title?(b(),S("title",$1,B(e.title),1)):Z("",!0)])],8,j1))],16,Y1)}const q1=W(W1,[["render",U1]]),Z1={name:"RestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},K1=["aria-hidden","aria-label"],Q1=["fill","width","height"],J1={d:"M13,3A9,9 0 0,0 4,12H1L4.89,15.89L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3Z"},t0={key:0};function e0(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon restore-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",J1,[e.title?(b(),S("title",t0,B(e.title),1)):Z("",!0)])],8,Q1))],16,K1)}const i0=W(Z1,[["render",e0]]),a0={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},n0=["aria-hidden","aria-label"],r0=["fill","width","height"],s0={d:"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z"},o0={key:0};function l0(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon undo-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",s0,[e.title?(b(),S("title",o0,B(e.title),1)):Z("",!0)])],8,r0))],16,n0)}const h0=W(a0,[["render",l0]]),c0={class:"editor-topbar"},d0={class:"editor-topbar__history"},u0=["aria-label","title","disabled"],g0={class:"editor-topbar__actions"},f0=_t({__name:"EditorTopBar",props:{loaded:{type:Boolean},saving:{type:Boolean}},emits:["save","cancel"],setup(a,{emit:t}){const e=t,i=Lt(),n=Tn(),r={undo:k("Undo"),redo:k("Redo"),revert:k("Revert all changes"),revertText:k("All edits will be discarded. This cannot be undone by closing the dialog."),zoomIn:k("Zoom in"),zoomOut:k("Zoom out"),resetZoom:k("Reset zoom"),save:k("Save"),cancel:k("Cancel"),history:k("Edit history"),step:k("Edit")},s=vt(()=>i.historyEntries.value.map((c,d)=>({index:d,label:c.label??r.step,active:d===i.historyIndex.value})).reverse());function o(c){const d=c===1?1.5:.6666666666666666;i.setViewZoom(i.viewZoom.value*d)}function l(){i.setViewZoom(Nt)}async function h(){await Zn({name:r.revert,text:r.revertText,labelConfirm:r.revert,labelReject:r.cancel,severity:"warning"})&&n.revert()}return(c,d)=>(b(),S("div",c0,[d[9]||(d[9]=H("span",{class:"editor-topbar__spacer"},null,-1)),H("div",d0,[j(M(ut),{"data-test":"revert","aria-label":r.revert,title:r.revert,disabled:!a.loaded||!M(i).canUndo.value,variant:"tertiary",onClick:h},{icon:J(()=>[j(i0,{size:20})]),_:1},8,["aria-label","title","disabled"]),d[7]||(d[7]=H("span",{class:"editor-topbar__separator"},null,-1)),j(M(ut),{"aria-label":r.undo,title:r.undo,disabled:!a.loaded||!M(i).canUndo.value,variant:"tertiary",onClick:d[0]||(d[0]=u=>M(i).undo())},{icon:J(()=>[j(h0,{size:20})]),_:1},8,["aria-label","title","disabled"]),j(M(ut),{"aria-label":r.redo,title:r.redo,disabled:!a.loaded||!M(i).canRedo.value,variant:"tertiary",onClick:d[1]||(d[1]=u=>M(i).redo())},{icon:J(()=>[j(q1,{size:20})]),_:1},8,["aria-label","title","disabled"]),j(M(Un),{"aria-label":r.history,title:r.history,disabled:!a.loaded,variant:"tertiary","data-test":"history"},{icon:J(()=>[j(P1,{size:20})]),default:J(()=>[(b(!0),S(Wt,null,Yt(s.value,u=>(b(),dt(M($n),{key:u.index,"data-test":`history-step-${u.index}`,"aria-current":u.active,onClick:f=>M(i).jumpTo(u.index)},{icon:J(()=>[u.active?(b(),dt(f1,{key:0,size:20})):Z("",!0)]),default:J(()=>[wt(" "+B(u.label),1)]),_:2},1032,["data-test","aria-current","onClick"]))),128))]),_:1},8,["aria-label","title","disabled"]),d[8]||(d[8]=H("span",{class:"editor-topbar__separator"},null,-1)),j(M(ut),{"data-test":"zoom-out","aria-label":r.zoomOut,title:r.zoomOut,disabled:!a.loaded||M(i).viewZoom.value<=M(Nt),variant:"tertiary",onClick:d[2]||(d[2]=u=>o(-1))},{icon:J(()=>[j(D1,{size:20})]),_:1},8,["aria-label","title","disabled"]),H("button",{type:"button",class:"editor-topbar__zoom","data-test":"zoom-reset","aria-label":r.resetZoom,title:r.resetZoom,disabled:!a.loaded,onClick:l},B(Math.round(M(i).viewZoom.value*100))+"% ",9,u0),j(M(ut),{"data-test":"zoom-in","aria-label":r.zoomIn,title:r.zoomIn,disabled:!a.loaded||M(i).viewZoom.value>=M(Cn),variant:"tertiary",onClick:d[3]||(d[3]=u=>o(1))},{icon:J(()=>[j(V1,{size:20})]),_:1},8,["aria-label","title","disabled"])]),H("div",g0,[j(M(ut),{"data-test":"cancel",class:"editor-topbar__cancel-text",variant:"tertiary",onClick:d[4]||(d[4]=u=>e("cancel"))},{default:J(()=>[wt(B(r.cancel),1)]),_:1}),j(M(ut),{"data-test":"cancel-icon",class:"editor-topbar__cancel-icon","aria-label":r.cancel,title:r.cancel,variant:"tertiary",onClick:d[5]||(d[5]=u=>e("cancel"))},{icon:J(()=>[j(b1,{size:20})]),_:1},8,["aria-label","title"]),j(M(ut),{"data-test":"save",variant:"primary",disabled:!a.loaded||a.saving,onClick:d[6]||(d[6]=u=>e("save"))},qn({default:J(()=>[wt(" "+B(r.save),1)]),_:2},[a.saving?{name:"icon",fn:J(()=>[j(M(Ha),{size:20,"data-test":"saving"})]),key:"0"}:void 0]),1032,["disabled"])])]))}}),p0=W(f0,[["__scopeId","data-v-50392429"]]),m0={name:"ContentCopyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},v0=["aria-hidden","aria-label"],y0=["fill","width","height"],_0={d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"},x0={key:0};function b0(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon content-copy-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",_0,[e.title?(b(),S("title",x0,B(e.title),1)):Z("",!0)])],8,y0))],16,v0)}const w0=W(m0,[["render",b0]]),C0={name:"DeleteIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},S0=["aria-hidden","aria-label"],k0=["fill","width","height"],M0={d:"M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z"},A0={key:0};function P0(a,t,e,i,n,r){return b(),S("span",it(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon delete-icon",role:"img",onClick:t[0]||(t[0]=s=>a.$emit("click",s))}),[(b(),S("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[H("path",M0,[e.title?(b(),S("title",A0,B(e.title),1)):Z("",!0)])],8,k0))],16,S0)}const T0=W(C0,[["render",P0]]),L0=_t({__name:"SelectionToolbar",props:{box:{}},emits:["duplicate","delete"],setup(a,{emit:t}){const e=t,i=k("Duplicate"),n=k("Delete");return(r,s)=>(b(),dt(Hi,{variant:"pill",class:"selection-toolbar","data-test":"selection-toolbar",style:re({insetInlineStart:`${a.box.x+a.box.width/2}px`,insetBlockStart:a.box.y-76>=4?`${a.box.y-76}px`:`${a.box.y+a.box.height+12}px`})},{default:J(()=>[j(M(ut),{"data-test":"duplicate","aria-label":M(i),title:M(i),variant:"tertiary",onClick:s[0]||(s[0]=o=>e("duplicate"))},{icon:J(()=>[j(w0,{size:18})]),_:1},8,["aria-label","title"]),j(M(ut),{"data-test":"delete","aria-label":M(n),title:M(n),variant:"tertiary",onClick:s[1]||(s[1]=o=>e("delete"))},{icon:J(()=>[j(T0,{size:18})]),_:1},8,["aria-label","title"])]),_:1},8,["style"]))}}),E0=W(L0,[["__scopeId","data-v-09c1d16e"]]),R0=["aria-label"],I0=_t({__name:"TextOverlay",props:{x:{},y:{},fontSize:{},color:{},initial:{}},emits:["confirm","cancel"],setup(a,{emit:t}){const e=a,i=t,n=k("Annotation text"),r=Dt(e.initial),s=za("input");function o(){const h=s.value;h!==null&&(h.style.width="0",h.style.height="0",h.style.width=`${Math.max(h.scrollWidth+4,e.fontSize*2)}px`,h.style.height=`${Math.max(h.scrollHeight,e.fontSize*1.2)}px`)}Ue(()=>{o(),s.value.focus(),s.value.select()});function l(h){h.shiftKey||(h.preventDefault(),i("confirm",r.value))}return(h,c)=>Yn((b(),S("textarea",{ref_key:"input",ref:s,"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),class:"text-overlay","aria-label":M(n),"data-test":"text-overlay",style:re({insetInlineStart:`${a.x}px`,insetBlockStart:`${a.y}px`,fontSize:`${a.fontSize}px`,color:a.color}),rows:"1",onInput:o,onKeydown:[Ni(l,["enter"]),c[1]||(c[1]=Ni(Xn(d=>i("cancel"),["stop"]),["esc"]))],onBlur:c[2]||(c[2]=d=>i("confirm",r.value))},null,44,R0)),[[jn,r.value]])}}),G0=W(I0,[["__scopeId","data-v-bbba034b"]]);function D0(){const a=getComputedStyle(document.body).getPropertyValue("--color-primary-element").trim();return a!==""?a:"#0082c9"}function z0(a){const t=document.createElement("canvas");t.width=8,t.height=8;const e=t.getContext("2d");if(e===null)return"88, 86, 112";e.drawImage(a,0,0,8,8);let i;try{i=e.getImageData(0,0,8,8).data}catch{return"88, 86, 112"}let n=0,r=0,s=0,o=0;for(let l=0;l{i!==null&&(t.value=z0(i),e.value=H0(i))}),{ambient:t,backdrop:e}}function F0(a){const t=Dt(""),e={select:k("Select"),crop:k("Crop"),finetune:k("Adjust"),filter:k("Filter"),annotate:k("Annotate"),sticker:k("Sticker"),redact:k("Redact")};Ct(a.activeMode,n=>{t.value=k("{mode} mode",{mode:e[n]??n})});let i=0;return Ct(a.state,n=>{n.annotations.length>i?t.value=k("Annotation added"):n.annotations.lengtha.state.value.preset,n=>{t.value=k(n==="none"?"Filter removed":"Filter applied")}),t}const In="input, textarea, select, [contenteditable]",B0='button, [role="button"], a[href], summary';function Ga(a){return a instanceof HTMLElement&&a.closest(In)!==null}function N0(a){return a instanceof HTMLElement&&a.closest(`${In}, ${B0}`)!==null}const di={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]};function V0(a){const{context:t}=a;let e=!1;function i(s){const o=t.selectedId.value,l=di[s.key];if(o===null||l===void 0)return;s.preventDefault();const h=s.shiftKey?10:1,c=t.state.value;e=!0,t.preview({...c,annotations:c.annotations.map(d=>d.id===o?xn(d,l[0]*h,l[1]*h):d)})}function n(s){if(a.isTextEditing()||Ga(s.target))return;const o=s.ctrlKey||s.metaKey;if(o&&!s.shiftKey&&s.key.toLowerCase()==="z"){s.preventDefault(),t.undo();return}if(o&&s.shiftKey&&s.key.toLowerCase()==="z"||o&&s.key.toLowerCase()==="y"){s.preventDefault(),t.redo();return}if(s.key==="+"||s.key==="="){t.setViewZoom(t.viewZoom.value*1.25);return}if(s.key==="-"){t.setViewZoom(t.viewZoom.value/1.25);return}if(s.key in di&&t.selectedId.value!==null){i(s);return}(s.key==="Delete"||s.key==="Backspace")&&t.selectedId.value!==null?(s.preventDefault(),a.onDelete()):s.key==="Escape"&&a.onEscape()}function r(s){Ga(s.target)||e&&s.key in di&&(e=!1,t.commit(t.state.value,k("Move or resize")))}Ue(()=>{window.addEventListener("keydown",n),window.addEventListener("keyup",r)}),Li(()=>{window.removeEventListener("keydown",n),window.removeEventListener("keyup",r)})}function W0(a){let t;try{t=new URL(a,window.location.href)}catch{return!1}return(t.protocol==="http:"||t.protocol==="https:")&&t.origin!==window.location.origin}async function Y0(a){const t=typeof a=="string"?a:URL.createObjectURL(a);try{return await new Promise((e,i)=>{const n=new Image;W0(t)&&(n.crossOrigin="anonymous"),n.onload=()=>e(n),n.onerror=()=>i(new Error(k("Image could not be decoded"))),n.src=t})}finally{typeof a!="string"&&URL.revokeObjectURL(t)}}async function j0(a,t="image/png",e){return new Promise((i,n)=>{a.toBlob(r=>{if(r===null){n(new Error(k("Canvas could not be encoded")));return}i(r)},t,e)})}async function X0(){await new Promise(a=>{requestAnimationFrame(()=>requestAnimationFrame(()=>a(null)))})}function $0(a){const t=Dt(!1);async function e(r={}){const s=a.oriented();if(s===null)throw new Error("No image loaded");const o=a.source();if(o!==null&&o.type!==""&&Lo(a.getState())&&r.maxSize===void 0&&(r.format===void 0||r.format===o.type))return{blob:o,width:s.width,height:s.height,mimeType:o.type};t.value=!0,await X0();try{return await i(s,r)}finally{t.value=!1}}async function i(r,s){const o=Qc(r,a.getState(),s.maxSize),l=s.format??"image/png";try{return{blob:await j0(o,l,s.quality),width:o.width,height:o.height,mimeType:l}}catch(h){throw h instanceof DOMException&&h.name==="SecurityError"?new Error(k("The image cannot be exported because it was loaded without cross-origin access"),{cause:h}):h}}async function n(){try{a.onSaved(await e(a.saveOptions()))}catch(r){a.onError(r instanceof Error?r:new Error(String(r)))}}return{exporting:t,exportImage:e,save:n}}function U0(a){const{context:t}=a,e=Dt(null);function i(r,s){const o=a.viewOptions(),l=a.oriented();if(o===null||l===null)return;const h=o.showCropped?Vt(t.state.value,{width:l.width,height:l.height}):{x:0,y:0};e.value={sceneX:r.x,sceneY:r.y,screenX:o.offset.x+(r.x-h.x)*o.scale,screenY:o.offset.y+(r.y-h.y)*o.scale,screenFontSize:(s?.fontSize??t.fontSize.value)*o.scale,color:s?.color??t.drawColor.value,value:s?.text??"",id:s?.id??null}}function n(r){const s=e.value;if(e.value=null,s===null)return;const o=t.state.value,l=r.trim();s.id!==null?t.commit({...o,annotations:l===""?o.annotations.filter(h=>h.id!==s.id):o.annotations.map(h=>h.id===s.id?{...h,text:l}:h)},k(l===""?"Delete":"Text")):l!==""&&t.commit({...o,annotations:[...o.annotations,{id:Qt(),type:"text",x:s.sceneX,y:s.sceneY,text:l,color:s.color,fontSize:t.fontSize.value,rotation:0}]},k("Text"))}return{textEdit:e,startTextEdit:i,confirmTextEdit:n}}function q0(a,t){let e=null,i=null;const n=new Map,r=ht(!1),s=()=>t.activeTool.value==="adjust",o=()=>t.viewZoom.value>Nt,l=vt(()=>t.viewZoom.value>Nt&&(r.value||t.activeTool.value==="adjust"));function h(m){const C=a.value?.getBoundingClientRect();if(C!==void 0)return{x:m.x-C.x-C.width/2,y:m.y-C.y-C.height/2}}function c(){if(n.size!==2)return null;const[m,C]=[...n.values()];return{distance:Math.hypot(m.x-C.x,m.y-C.y),centroid:{x:(m.x+C.x)/2,y:(m.y+C.y)/2}}}function d(m){if(m.preventDefault(),m.deltaY===0)return;const C=a.value?.clientHeight??window.innerHeight,v=Yl(m.deltaY,m.deltaMode,C);t.setViewZoom(t.viewZoom.value*v,h({x:m.clientX,y:m.clientY}))}function u(m){if(m.pointerType==="touch"){n.set(m.pointerId,{x:m.clientX,y:m.clientY}),n.size===2&&(i=c(),t.panning.value=!0,m.stopPropagation());return}!(m.button===1||m.button===0&&(r.value||s()))||!o()||(m.preventDefault(),m.stopPropagation(),e={pointer:{x:m.clientX,y:m.clientY},pan:t.viewPan.value},t.panning.value=!0,a.value?.setPointerCapture(m.pointerId))}function f(m){if(m.pointerType==="touch"&&n.has(m.pointerId)){n.set(m.pointerId,{x:m.clientX,y:m.clientY});const C=c();if(C===null||i===null)return;m.stopPropagation();const v=C.distance/i.distance;Math.abs(v-1)>Fl?t.setViewZoom(t.viewZoom.value*v,h(C.centroid)):t.setViewPan({x:t.viewPan.value.x+C.centroid.x-i.centroid.x,y:t.viewPan.value.y+C.centroid.y-i.centroid.y}),i=C;return}e!==null&&(m.stopPropagation(),t.setViewPan({x:e.pan.x+(m.clientX-e.pointer.x),y:e.pan.y+(m.clientY-e.pointer.y)}))}function g(m){m!==void 0&&n.delete(m.pointerId),i=c(),e=null,n.size<2&&(t.panning.value=!1)}function y(m){m.code!=="Space"||N0(m.target)||(m.preventDefault(),r.value=!0)}function x(m){m.code==="Space"&&(r.value=!1)}return Ue(()=>{const m=a.value;m?.addEventListener("wheel",d,{passive:!1}),m?.addEventListener("pointerdown",u,{capture:!0}),m?.addEventListener("pointermove",f,{capture:!0}),m?.addEventListener("pointerup",g),m?.addEventListener("pointercancel",g),window.addEventListener("keydown",y),window.addEventListener("keyup",x)}),Li(()=>{const m=a.value;m?.removeEventListener("wheel",d),m?.removeEventListener("pointerdown",u,{capture:!0}),m?.removeEventListener("pointermove",f,{capture:!0}),m?.removeEventListener("pointerup",g),m?.removeEventListener("pointercancel",g),window.removeEventListener("keydown",y),window.removeEventListener("keyup",x)}),{panArmed:l}}const ge=.3;function Z0(){return typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Ne(a){a.node.offset(a.pivot),a.node.position(a.pivot)}function K0(a,t,e){if(Z0())return;const{scale:i}=t,n=et.Easings.EaseInOut,r=e.previousScale/i;for(const s of t.targets){const{node:o}=s;switch(o.setAttrs({x:0,y:0,offsetX:0,offsetY:0,rotation:0,scaleX:1,scaleY:1,opacity:1}),a){case"load":Ne(s),o.opacity(0),o.scale({x:.96,y:.96}),o.to({opacity:1,scaleX:1,scaleY:1,duration:ge,easing:n});break;case"rotate-cw":case"rotate-ccw":Ne(s),o.rotation(a==="rotate-cw"?-90:90),o.scale({x:r,y:r}),o.to({rotation:0,scaleX:1,scaleY:1,duration:ge,easing:n});break;case"flip-h":Ne(s),o.scaleX(-1),o.to({scaleX:1,duration:ge,easing:n});break;case"flip-v":Ne(s),o.scaleY(-1),o.to({scaleY:1,duration:ge,easing:n});break;case"crop":{const{previousScale:l,previousOffset:h,previousOrigin:c}=e;o.scale({x:r,y:r}),o.position({x:(h.x-c.x*l-(t.offset.x-t.origin.x*i))*s.unit,y:(h.y-c.y*l-(t.offset.y-t.origin.y*i))*s.unit}),o.to({x:0,y:0,scaleX:1,scaleY:1,duration:ge,easing:n});break}}}}function Q0(a,t,e,i){const n=a.x+a.width,r=a.y+a.height;let{x:s,y:o,width:l,height:h}=e;if(s0){const c=t.width/t.height;l/h>c?l=h*c:h=l/c,Math.abs(e.x-t.x)>.01&&(s=Math.min(e.x+e.width,n)-l),Math.abs(e.y-t.y)>.01&&(o=Math.min(e.y+e.height,r)-h)}return{...e,x:s,y:o,width:Math.max(8,l),height:Math.max(8,h)}}function J0(a){const t={oriented:a.oriented,scale:a.scale,offset:a.offset},e=v=>({x:t.offset.x+v.x*t.scale,y:t.offset.y+v.y*t.scale,width:v.width*t.scale,height:v.height*t.scale}),i=v=>({x:(v.x-t.offset.x)/t.scale,y:(v.y-t.offset.y)/t.scale,width:v.width/t.scale,height:v.height/t.scale});let n=e({x:0,y:0,...t.oriented});const r=new et.Layer({name:"crop"}),s=()=>new et.Rect({fill:"rgba(0, 0, 0, 0.5)",listening:!1}),o=s(),l=s(),h=s(),c=s();for(const v of[o,l,h,c])r.add(v);const d=new et.Rect({name:"crop-rect",...e(Ai(a.initial??{x:0,y:0,...t.oriented},t.oriented)),stroke:"rgba(255, 255, 255, 0.9)",strokeWidth:1,draggable:!0,strokeScaleEnabled:!1});r.add(d);const u=()=>({x:d.x(),y:d.y(),width:d.width()*d.scaleX(),height:d.height()*d.scaleY()}),f=Array.from({length:4},()=>new et.Line({stroke:"rgba(255, 255, 255, 0.35)",strokeWidth:1,listening:!1}));for(const v of f)r.add(v);const g=v=>{const w=Math.min(Math.max(v.x,n.x),n.x+n.width-v.width),A=Math.min(Math.max(v.y,n.y),n.y+n.height-v.height);return{...v,x:w,y:A}},y=()=>{const v=u(),{x:w,y:A,width:P,height:E}=n;o.setAttrs({x:w,y:A,width:P,height:v.y-A}),l.setAttrs({x:w,y:v.y,width:v.x-w,height:v.height}),h.setAttrs({x:v.x+v.width,y:v.y,width:w+P-v.x-v.width,height:v.height}),c.setAttrs({x:w,y:v.y+v.height,width:P,height:A+E-v.y-v.height}),f[0].points([v.x+v.width/3,v.y,v.x+v.width/3,v.y+v.height]),f[1].points([v.x+v.width*2/3,v.y,v.x+v.width*2/3,v.y+v.height]),f[2].points([v.x,v.y+v.height/3,v.x+v.width,v.y+v.height/3]),f[3].points([v.x,v.y+v.height*2/3,v.x+v.width,v.y+v.height*2/3])};let x=!1;const m=new et.Transformer({nodes:[d],rotateEnabled:!1,flipEnabled:!1,keepRatio:!1,enabledAnchors:["top-left","top-right","bottom-left","bottom-right"],anchorSize:14,anchorCornerRadius:7,anchorFill:"#111",anchorStroke:"#111",anchorStrokeWidth:1,borderStroke:"rgba(255, 255, 255, 0.7)",boundBoxFunc:(v,w)=>({...w,...Q0(n,v,w,x)})});r.add(m),d.dragBoundFunc(v=>g({...v,width:d.width()*d.scaleX(),height:d.height()*d.scaleY()})),d.on("dragmove transform",y);const C=v=>{if(x=v!==null,m.keepRatio(x),v===null)return;const w=u(),A=Math.min(Math.max(w.width,w.height*v),n.width,n.height*v),P=A/v,E={x:w.x+w.width/2,y:w.y+w.height/2},F=g({x:E.x-A/2,y:E.y-P/2,width:A,height:P});d.setAttrs({...F,width:A,height:P,scaleX:1,scaleY:1}),m.forceUpdate(),y()};return y(),a.stage.add(r),{layer:r,setAspect:C,update(v){const w=i(u());t.oriented=v.oriented,t.scale=v.scale,t.offset=v.offset,n=e({x:0,y:0,...t.oriented}),d.setAttrs({...e(w),scaleX:1,scaleY:1}),m.forceUpdate(),y()},getRect(){const v=i(u());return Ai({x:Math.round(v.x),y:Math.round(v.y),width:Math.round(v.width),height:Math.round(v.height)},t.oriented)},destroy(){m.destroy(),r.destroy()}}}function tu(a,t){if(a.width<=0||a.height<=0)throw new RangeError("Dimensions must be positive");const e=t*Math.PI/180,i=Math.abs(Math.cos(e)),n=Math.abs(Math.sin(e));return Math.max((a.width*i+a.height*n)/a.width,(a.width*n+a.height*i)/a.height)}function eu(a,t){if(a.width<=0||a.height<=0||t.width<=0||t.height<=0)throw new RangeError("Dimensions must be positive");const e=Math.min(t.width/a.width,t.height/a.height,1),i=a.width*e,n=a.height*e;return{scale:e,width:i,height:n,x:(t.width-i)/2,y:(t.height-n)/2}}function iu(a,t){const e={width:a.naturalWidth,height:a.naturalHeight},i=yn(e,t.rotation),n=document.createElement("canvas");n.width=i.width,n.height=i.height;const r=n.getContext("2d");if(r===null)throw new Error("Canvas 2D context unavailable");const s=tu(i,t.fineRotation)*Math.max(1,t.zoom);return r.translate(i.width/2,i.height/2),r.rotate(t.fineRotation*Math.PI/180),r.scale(s,s),r.rotate(t.rotation*Math.PI/180),r.scale(t.flipX?-1:1,t.flipY?-1:1),r.drawImage(a,-e.width/2,-e.height/2),n}function au(a,t){const e=t.rotation()*Math.PI/180,i=Math.cos(e),n=Math.sin(e),r=[];for(let s=0;sa.getState().annotations.find(f=>f.id===u),r=u=>u===null?null:a.stage.find(".annotation").find(f=>f.id()===u)??null,s=()=>{const u=r(a.getSelectedId());a.onSelectionRect(u?u.getClientRect():null)},o=()=>{const u=a.getSelectedId(),f=r(u);if(f==null){e.nodes([]),a.onSelectionRect(null);return}const g=n(u);e.rotateEnabled(g!==void 0&&g.type!=="redact"),e.nodes([f]),a.onSelectionRect(f.getClientRect())},l=()=>{a.stage.find(".annotation").forEach(u=>u.draggable(!0)),o()};l();const h=u=>{const f=u.target,g=n(f.id());if(g===void 0)return;const y=a.getState();a.commit({...y,annotations:y.annotations.map(x=>x.id===g.id?nu(g,f):x)},k("Move or resize"))},c=u=>{u.target.hasName("annotation")?a.select(u.target.id()):(u.target===a.stage||u.target instanceof et.Image)&&a.select(null),o()},d=u=>{const f=n(u.target.id());f?.type==="text"&&a.editText(f)};return a.stage.on("click.selection tap.selection",c),a.stage.on("dblclick.selection dbltap.selection",d),a.stage.on("dragend.selection transformend.selection",h),a.stage.on("dragmove.selection transform.selection",s),{sync:l,detach(){a.stage.off(".selection"),a.stage.find(".annotation").forEach(u=>u.draggable(!1)),a.onSelectionRect(null),e.destroy(),i.destroy()}}}const Da={draw:k("Draw"),rectangle:k("Rectangle"),ellipse:k("Ellipse"),arrow:k("Arrow"),line:k("Line"),sticker:k("Sticker"),redact:k("Redact")};function su(a,t){if(!["draw","rectangle","ellipse","arrow","line","text","sticker","redact"].includes(a))return()=>{};let e=null,i=null,n={x:0,y:0},r=null;const s=()=>{const u=t.stage.getPointerPosition();return u===null?null:t.toScene(u)},o=()=>{if(e===null){i?.destroy(),i=null;return}if(i!==null&&(e.type==="draw"||e.type==="arrow"||e.type==="line")){i.points(e.points);return}i?.destroy(),i=null;const u=t.oriented()??void 0;e.type==="redact"&&u===void 0||(i=Ln(e,u),t.contentGroup()?.add(i))},l=()=>{e=null,r=null,i?.destroy(),i=null},h=()=>{const u=s();if(u===null||t.panning())return;const f=t.options();switch(n=u,a){case"draw":e={id:Qt(),type:"draw",points:[u.x,u.y],color:f.color,strokeWidth:f.strokeWidth};break;case"arrow":case"line":e={id:Qt(),type:a,points:[u.x,u.y,u.x,u.y],color:f.color,strokeWidth:f.strokeWidth};break;case"rectangle":case"ellipse":e={id:Qt(),type:a,rect:{x:u.x,y:u.y,width:1,height:1},rotation:0,color:f.color,strokeWidth:f.strokeWidth};break;case"redact":e={id:Qt(),type:"redact",rect:{x:u.x,y:u.y,width:1,height:1},style:f.redactStyle};break;case"text":r=u;return;case"sticker":{const g=t.getState(),y={id:Qt(),type:"sticker",x:u.x,y:u.y,text:f.sticker,color:f.color,fontSize:f.fontSize*2,rotation:0};t.commit({...g,annotations:[...g.annotations,y]},Da.sticker);return}}o()},c=()=>{if(e===null)return;if(t.panning()){l();return}const u=s();if(u!==null){switch(e.type){case"draw":e.points.push(u.x,u.y);break;case"arrow":case"line":e.points=[n.x,n.y,u.x,u.y];break;case"rectangle":case"ellipse":case"redact":e={...e,rect:{x:Math.min(n.x,u.x),y:Math.min(n.y,u.y),width:Math.abs(u.x-n.x)||1,height:Math.abs(u.y-n.y)||1}};break}o()}},d=()=>{if(r!==null){t.startTextEdit(r),r=null;return}if(e===null)return;const u=t.getState();t.commit({...u,annotations:[...u.annotations,e]},Da[a]),l()};return t.stage.on("pointerdown.tool",h),t.stage.on("pointermove.tool",c),t.stage.on("pointerup.tool",d),window.addEventListener("pointerup",d),window.addEventListener("pointercancel",l),()=>{t.stage.off(".tool"),window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",l),i?.destroy()}}const ou={class:"image-editor__shell"},lu={class:"image-editor__frame"},hu={class:"image-editor__viewport"},cu=["aria-label"],du={key:1,class:"image-editor__error","data-test":"load-error"},uu={class:"hidden-visually",role:"status","aria-live":"polite"},gu=_t({__name:"ImageEditor",props:{src:{},label:{},exportOptions:{},initialState:{},saving:{type:Boolean}},emits:["save","cancel","error","change"],setup(a,{expose:t,emit:e}){const i=a,n=e,r={canvas:k("Image editor"),failed:k("The image could not be loaded"),retry:k("Try again")};let s=0;const o=jl(),l=za("container"),h=Dt(!1),c=Dt(!1),d=ht({width:0,height:0}),u=ht(null),f=ht(null),{ambient:g,backdrop:y}=O0(f),{panArmed:x}=q0(l,o),m=F0(o),C=ht(null);let v=null,w=null,A=null,P=null,E=null,F=null,X=null,O=null,N=null;const U=vt(()=>{if(o.panning.value)return"grabbing";if(x.value)return"grab";const G=o.activeTool.value;return["draw","rectangle","ellipse","arrow","line","text","sticker","redact"].includes(G)?"crosshair":"default"}),Y=vt(()=>{const G=u.value;if(G===null||d.value.width===0||d.value.height===0)return null;const D=o.activeTool.value!=="crop",Q=D?Vt(o.state.value,{width:G.width,height:G.height}):{x:0,y:0,width:G.width,height:G.height},bt=d.value;return{scale:eu({width:Q.width,height:Q.height},{width:Math.max(1,bt.width-$e*2),height:Math.max(1,bt.height-$e*2)}).scale,visible:Q,container:bt,showCropped:D}}),V=vt(()=>{const G=Y.value;if(G===null)return null;const D=G.scale*o.viewZoom.value,Q=Pi(o.viewPan.value,Sn(G.visible,D,G.container));return{scale:D,offset:{x:(G.container.width-G.visible.width*D)/2+Q.x,y:(G.container.height-G.visible.height*D)/2+Q.y},showCropped:G.showCropped,fastFilters:o.interacting.value}}),{textEdit:z,startTextEdit:at,confirmTextEdit:ft}=U0({context:o,viewOptions:()=>V.value,oriented:()=>u.value}),{exporting:$,exportImage:K,save:q}=$0({oriented:()=>u.value,getState:()=>o.state.value,source:()=>i.src instanceof Blob?i.src:null,saveOptions:()=>i.exportOptions??{},onSaved:G=>n("save",G),onError:G=>n("error",G)});function lt(){return N??{previousScale:1,previousOffset:{x:0,y:0},previousOrigin:{x:0,y:0}}}function pt(G,D,Q){O={kind:G,context:lt()},o.commit(D,Q)}function yt(){const G=u.value,D=V.value;if(v===null||G===null||D===null)return;v.size(d.value),w??=Rn(v),w.update(G,o.state.value,D);const Q=D.showCropped?Vt(o.state.value,{width:G.width,height:G.height}):{x:0,y:0};if(Ae(G,D),O!==null){const bt=D.showCropped?Vt(o.state.value,{width:G.width,height:G.height}):{x:0,y:0,width:G.width,height:G.height},xt={x:bt.x+bt.width/2,y:bt.y+bt.height/2},Fi=[{node:w.contentGroup,pivot:xt,unit:1/D.scale}];A!==null&&Fi.push({node:A.layer,pivot:{x:D.offset.x+(xt.x-Q.x)*D.scale,y:D.offset.y+(xt.y-Q.y)*D.scale},unit:1}),K0(O.kind,{targets:Fi,scale:D.scale,offset:D.offset,origin:Q},O.context),O=null}N={previousScale:D.scale,previousOffset:D.offset,previousOrigin:{x:Q.x,y:Q.y}}}function Ae(G,D){if(v===null)return;const Q=o.activeTool.value,bt=o.state.value.crop;if(F!==null&&F.tool===Q&&F.oriented===G&&F.crop===bt){P?.sync(),A?.update({oriented:{width:G.width,height:G.height},scale:D.scale,offset:D.offset});return}E?.(),E=null,P?.detach(),P=null,A?.destroy(),A=null,F={tool:Q,oriented:G,crop:bt},Q==="select"?P=ru({stage:v,getState:()=>o.state.value,commit:o.commit,select:xt=>{o.selectedId.value=xt},getSelectedId:()=>o.selectedId.value,editText:xt=>at({x:xt.x,y:xt.y},xt),onSelectionRect:xt=>{C.value=xt}}):Q==="crop"?(A=J0({stage:v,oriented:{width:G.width,height:G.height},scale:D.scale,offset:D.offset,initial:bt}),Pe()):Q!=="adjust"&&(E=su(Q,{stage:v,contentGroup:()=>w?.contentGroup??null,oriented:()=>u.value,getState:()=>o.state.value,commit:o.commit,toScene:xt=>Jc(xt,o.state.value,{width:G.width,height:G.height},V.value??D),panning:()=>o.panning.value,options:()=>({color:o.drawColor.value,strokeWidth:o.strokeWidth.value,fontSize:o.fontSize.value,sticker:o.sticker.value,redactStyle:o.redactStyle.value}),startTextEdit:xt=>at(xt)}))}function Pe(){if(A===null)return;const G=o.cropAspect.value,D=u.value;G==="original"&&D!==null?A.setAspect(D.width/D.height):A.setAspect(typeof G=="number"?G:null)}function Te(){f.value!==null&&(u.value=iu(f.value,o.state.value))}function Gn(G,D){if(G.crop===null)return G;const Q=yn({width:D.naturalWidth,height:D.naturalHeight},G.rotation);return{...G,crop:Ai(G.crop,Q)}}async function Qe(){const G=++s;h.value=!1,c.value=!1;try{const D=await Y0(i.src);if(G!==s)return;f.value=D,o.reset(i.initialState===void 0?void 0:Gn(i.initialState,D));const Q=Math.min(D.naturalWidth,D.naturalHeight);o.fontSize.value=Math.min(128,Math.max(12,Math.round(Q/15))),O={kind:"load",context:lt()},Te(),h.value=!0}catch(D){if(G!==s)return;c.value=!0,n("error",D instanceof Error?D:new Error(String(D)))}}function Le(){const G=u.value;return{width:G.width,height:G.height}}function Dn(){pt("rotate-cw",La(o.state.value,Le()),k("Rotate right"))}function zn(){let G=o.state.value,D=Le();for(let Q=0;Q<3;Q++)G=La(G,D),D={width:D.height,height:D.width};pt("rotate-ccw",G,k("Rotate left"))}function Hn(){pt("flip-h",Io(o.state.value,Le()),k("Flip horizontal"))}function On(){pt("flip-v",Do(o.state.value,Le()),k("Flip vertical"))}function Fn(){if(A!==null){const G=A.getRect();O={kind:"crop",context:lt()},o.commit({...o.state.value,crop:G},k("Crop")),o.setMode("annotate")}}function Bn(){const G=o.selectedId.value,D=o.state.value,Q=D.annotations.find(xt=>xt.id===G);if(Q===void 0)return;const bt=zo(Q);o.commit({...D,annotations:[...D.annotations,bt]},k("Duplicate")),o.selectedId.value=bt.id,yt()}function Nn(){o.commit(Mi(),k("Revert all changes"))}function Vn(){o.commit({...o.state.value,crop:null},k("Reset crop"))}function Oi(){const G=o.selectedId.value;if(G===null)return;const D=o.state.value;o.selectedId.value=null,o.commit({...D,annotations:D.annotations.filter(Q=>Q.id!==G)},k("Delete"))}return V0({context:o,isTextEditing:()=>z.value!==null,onDelete:Oi,onEscape:()=>{o.selectedId.value!==null?(o.selectedId.value=null,yt()):o.activeMode.value==="crop"?o.setMode("select"):o.activeMode.value==="annotate"&&o.activeTool.value!=="select"&&(o.activeTool.value="select")}}),Ct(Y,G=>{o.viewFit.value=G},{immediate:!0}),yc({rotateCW:Dn,rotateCCW:zn,flipHorizontal:Hn,flipVertical:On,applyCrop:Fn,resetCrop:Vn,revert:Nn}),Ct(()=>i.src,Qe),Ct([()=>o.state.value.rotation,()=>o.state.value.flipX,()=>o.state.value.flipY,()=>o.state.value.fineRotation,()=>o.state.value.zoom],Te),Ct([o.state,o.activeTool,o.activeMode,o.viewZoom,o.viewPan,o.interacting,u,d],yt),Ct(o.cropAspect,Pe),Ct(o.selectedId,G=>{const D=o.state.value.annotations.find(Q=>Q.id===G);D!==void 0&&"color"in D&&D.type!=="sticker"&&(o.drawColor.value=D.color)}),Ct([o.state,o.interacting],()=>{o.interacting.value||n("change",structuredClone(o.state.value))}),Ue(()=>{v=new et.Stage({container:l.value,width:1,height:1}),X=new ResizeObserver(()=>{const{clientWidth:G,clientHeight:D}=l.value;d.value={width:G,height:D}}),X.observe(l.value),Qe()}),Li(()=>{X?.disconnect(),E?.(),P?.detach(),A?.destroy(),w?.destroy(),w=null,v?.destroy(),v=null}),t({exportImage:K,reset:G=>o.reset(G)}),(G,D)=>(b(),S("div",{class:"image-editor",style:re({"--editor-ambient":M(g),"--editor-backdrop":M(y)?`url(${M(y)})`:"none"})},[H("div",ou,[H("div",lu,[H("div",hu,[H("div",{ref_key:"container",ref:l,class:"image-editor__canvas",style:re({cursor:U.value}),role:"img","aria-label":a.label??r.canvas},null,12,cu),!h.value&&!c.value?(b(),dt(M(Ha),{key:0,class:"image-editor__loading",size:44})):Z("",!0),c.value?(b(),S("div",du,[H("p",null,B(r.failed),1),j(M(ut),{variant:"secondary","data-test":"retry",onClick:D[0]||(D[0]=Q=>Qe())},{default:J(()=>[wt(B(r.retry),1)]),_:1})])):Z("",!0),M(z)!==null?(b(),dt(G0,{key:2,x:M(z).screenX,y:M(z).screenY,"font-size":M(z).screenFontSize,color:M(z).color,initial:M(z).value,onConfirm:M(ft),onCancel:D[1]||(D[1]=Q=>z.value=null)},null,8,["x","y","font-size","color","initial","onConfirm"])):Z("",!0),C.value!==null?(b(),dt(E0,{key:3,box:C.value,onDuplicate:Bn,onDelete:Oi},null,8,["box"])):Z("",!0)]),j(p0,{class:"image-editor__topbar",loaded:h.value,saving:M($)||a.saving===!0,onSave:M(q),onCancel:D[2]||(D[2]=Q=>n("cancel"))},null,8,["loaded","saving","onSave"]),j(md,{class:qe(M(o).activeMode.value==="filter"?"image-editor__strip":"image-editor__controls"),loaded:h.value,oriented:u.value},null,8,["class","loaded","oriented"]),j(o1,{class:"image-editor__rail",loaded:h.value},null,8,["loaded"]),H("span",uu,B(M(m)),1)])])],4))}}),fu=W(gu,[["__scopeId","data-v-5225c517"]]),pu=_t({__name:"ImageEditor",props:{file:{}},emits:["close","saved"],setup(a,{emit:t}){const e=a,i=t,n=Dt(!1),r=vt(()=>e.file.mime==="image/jpeg"||e.file.mime==="image/webp"?{format:e.file.mime,quality:.9}:{format:"image/png"});async function s(h){n.value=!0;try{const c=await Jn.put(e.file.encodedSource,h.blob),d=c.headers?.["oc-etag"]??c.headers?.etag;d&&(e.file.attributes.etag=String(d).replace(/"/g,"")),i("saved",URL.createObjectURL(h.blob)),tr("files:node:updated",e.file),er(Je("viewer","Image saved")),i("close")}catch(c){Vi.error("Failed to save the edited image",{error:c}),Wi(Je("viewer","Could not save the image"))}finally{n.value=!1}}function o(){i("close")}function l(h){Vi.error("Image editor error",{error:h}),Wi(Je("viewer","The image could not be edited."))}return(h,c)=>(b(),dt(M(fu),{src:a.file.source,label:a.file.basename,"export-options":r.value,saving:n.value,class:"viewer__image-editor",onSave:s,onCancel:o,onError:l},null,8,["src","label","export-options","saving"]))}}),vu=ir(pu,[["__scopeId","data-v-f21f14ab"]]);export{vu as default}; +//# sourceMappingURL=ImageEditor-DIhUEMQt.chunk.mjs.map diff --git a/js/ImageEditor-DIhUEMQt.chunk.mjs.license b/js/ImageEditor-DIhUEMQt.chunk.mjs.license new file mode 100644 index 000000000..c4380c764 --- /dev/null +++ b/js/ImageEditor-DIhUEMQt.chunk.mjs.license @@ -0,0 +1,16 @@ +SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Anton Lavrenov +SPDX-FileCopyrightText: John Molakvoæ +SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors + +This file is generated from multiple sources. Included packages: +- @nextcloud/image-editor + - version: 1.0.0-beta.2 + - license: AGPL-3.0-or-later +- konva + - version: 10.3.2 + - license: MIT +- viewer + - version: 6.0.0-dev.0 + - license: AGPL-3.0-or-later diff --git a/js/ImageEditor-DIhUEMQt.chunk.mjs.map b/js/ImageEditor-DIhUEMQt.chunk.mjs.map new file mode 100644 index 000000000..ad91a0619 --- /dev/null +++ b/js/ImageEditor-DIhUEMQt.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"ImageEditor-DIhUEMQt.chunk.mjs","sources":["../node_modules/konva/lib/Global.js","../node_modules/konva/lib/Util.js","../node_modules/konva/lib/Context.js","../node_modules/konva/lib/Canvas.js","../node_modules/konva/lib/DragAndDrop.js","../node_modules/konva/lib/Validators.js","../node_modules/konva/lib/Factory.js","../node_modules/konva/lib/Node.js","../node_modules/konva/lib/Container.js","../node_modules/konva/lib/PointerEvents.js","../node_modules/konva/lib/Stage.js","../node_modules/konva/lib/Shape.js","../node_modules/konva/lib/Layer.js","../node_modules/konva/lib/FastLayer.js","../node_modules/konva/lib/Group.js","../node_modules/konva/lib/Animation.js","../node_modules/konva/lib/Tween.js","../node_modules/konva/lib/_CoreInternals.js","../node_modules/konva/lib/shapes/Arc.js","../node_modules/konva/lib/BezierFunctions.js","../node_modules/konva/lib/shapes/Line.js","../node_modules/konva/lib/shapes/Path.js","../node_modules/konva/lib/shapes/Arrow.js","../node_modules/konva/lib/shapes/Circle.js","../node_modules/konva/lib/shapes/Ellipse.js","../node_modules/konva/lib/shapes/Image.js","../node_modules/konva/lib/shapes/Label.js","../node_modules/konva/lib/shapes/Rect.js","../node_modules/konva/lib/shapes/RegularPolygon.js","../node_modules/konva/lib/shapes/Ring.js","../node_modules/konva/lib/shapes/Sprite.js","../node_modules/konva/lib/shapes/Star.js","../node_modules/konva/lib/shapes/Text.js","../node_modules/konva/lib/shapes/TextPath.js","../node_modules/konva/lib/shapes/Transformer.js","../node_modules/konva/lib/shapes/Wedge.js","../node_modules/konva/lib/filters/Blur.js","../node_modules/konva/lib/filters/Brighten.js","../node_modules/konva/lib/filters/Brightness.js","../node_modules/konva/lib/filters/Contrast.js","../node_modules/konva/lib/filters/Emboss.js","../node_modules/konva/lib/filters/Enhance.js","../node_modules/konva/lib/filters/Grayscale.js","../node_modules/konva/lib/filters/HSL.js","../node_modules/konva/lib/filters/HSV.js","../node_modules/konva/lib/filters/Invert.js","../node_modules/konva/lib/filters/Kaleidoscope.js","../node_modules/konva/lib/filters/Mask.js","../node_modules/konva/lib/filters/Noise.js","../node_modules/konva/lib/filters/Pixelate.js","../node_modules/konva/lib/filters/Posterize.js","../node_modules/konva/lib/filters/RGB.js","../node_modules/konva/lib/filters/RGBA.js","../node_modules/konva/lib/filters/Sepia.js","../node_modules/konva/lib/filters/Solarize.js","../node_modules/konva/lib/filters/Threshold.js","../node_modules/konva/lib/_FullInternals.js","../node_modules/@nextcloud/image-editor/dist/index.mjs","../src/components/ImageEditor.vue"],"sourcesContent":["const PI_OVER_180 = Math.PI / 180;\nfunction detectBrowser() {\n return (typeof window !== 'undefined' &&\n ({}.toString.call(window) === '[object Window]' ||\n {}.toString.call(window) === '[object global]'));\n}\nexport const glob = typeof global !== 'undefined'\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof WorkerGlobalScope !== 'undefined'\n ? self\n : {};\nexport const Konva = {\n _global: glob,\n version: '10.3.2',\n isBrowser: detectBrowser(),\n isUnminified: /param/.test(function (param) { }.toString()),\n dblClickWindow: 400,\n getAngle(angle) {\n return Konva.angleDeg ? angle * PI_OVER_180 : angle;\n },\n enableTrace: false,\n pointerEventsEnabled: true,\n autoDrawEnabled: true,\n hitOnDragEnabled: false,\n capturePointerEventsEnabled: false,\n _mouseListenClick: false,\n _touchListenClick: false,\n _pointerListenClick: false,\n _mouseInDblClickWindow: false,\n _touchInDblClickWindow: false,\n _pointerInDblClickWindow: false,\n _mouseDblClickPointerId: null,\n _touchDblClickPointerId: null,\n _pointerDblClickPointerId: null,\n _renderBackend: 'web',\n legacyTextRendering: false,\n pixelRatio: (typeof window !== 'undefined' && window.devicePixelRatio) || 1,\n dragDistance: 3,\n angleDeg: true,\n showWarnings: true,\n dragButtons: [0, 1],\n isDragging() {\n return Konva['DD'].isDragging;\n },\n isTransforming() {\n var _a, _b;\n return (_b = (_a = Konva['Transformer']) === null || _a === void 0 ? void 0 : _a.isTransforming()) !== null && _b !== void 0 ? _b : false;\n },\n isDragReady() {\n return !!Konva['DD'].node;\n },\n releaseCanvasOnDestroy: true,\n document: glob.document,\n _injectGlobal(Konva) {\n if (typeof glob.Konva !== 'undefined') {\n console.error('Several Konva instances detected. It is not recommended to use multiple Konva instances in the same environment.');\n }\n glob.Konva = Konva;\n },\n};\nexport const _registerNode = (NodeClass) => {\n Konva[NodeClass.prototype.getClassName()] = NodeClass;\n};\nKonva._injectGlobal(Konva);\n","import { Konva } from \"./Global.js\";\nconst NODE_ERROR = `Konva.js unsupported environment.\n\nLooks like you are trying to use Konva.js in Node.js environment. because \"document\" object is undefined.\n\nTo use Konva.js in Node.js environment, you need to use the \"canvas-backend\" or \"skia-backend\" module.\n\nbash: npm install canvas\njs: import \"konva/canvas-backend\";\n\nor\n\nbash: npm install skia-canvas\njs: import \"konva/skia-backend\";\n`;\nconst ensureBrowser = () => {\n if (typeof document === 'undefined') {\n throw new Error(NODE_ERROR);\n }\n};\nexport class Transform {\n constructor(m = [1, 0, 0, 1, 0, 0]) {\n this.dirty = false;\n this.m = (m && m.slice()) || [1, 0, 0, 1, 0, 0];\n }\n reset() {\n this.m[0] = 1;\n this.m[1] = 0;\n this.m[2] = 0;\n this.m[3] = 1;\n this.m[4] = 0;\n this.m[5] = 0;\n }\n copy() {\n return new Transform(this.m);\n }\n copyInto(tr) {\n tr.m[0] = this.m[0];\n tr.m[1] = this.m[1];\n tr.m[2] = this.m[2];\n tr.m[3] = this.m[3];\n tr.m[4] = this.m[4];\n tr.m[5] = this.m[5];\n }\n point(point) {\n const m = this.m;\n return {\n x: m[0] * point.x + m[2] * point.y + m[4],\n y: m[1] * point.x + m[3] * point.y + m[5],\n };\n }\n translate(x, y) {\n this.m[4] += this.m[0] * x + this.m[2] * y;\n this.m[5] += this.m[1] * x + this.m[3] * y;\n return this;\n }\n scale(sx, sy) {\n this.m[0] *= sx;\n this.m[1] *= sx;\n this.m[2] *= sy;\n this.m[3] *= sy;\n return this;\n }\n rotate(rad) {\n const c = Math.cos(rad);\n const s = Math.sin(rad);\n const m11 = this.m[0] * c + this.m[2] * s;\n const m12 = this.m[1] * c + this.m[3] * s;\n const m21 = this.m[0] * -s + this.m[2] * c;\n const m22 = this.m[1] * -s + this.m[3] * c;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n getTranslation() {\n return {\n x: this.m[4],\n y: this.m[5],\n };\n }\n skew(sx, sy) {\n const m11 = this.m[0] + this.m[2] * sy;\n const m12 = this.m[1] + this.m[3] * sy;\n const m21 = this.m[2] + this.m[0] * sx;\n const m22 = this.m[3] + this.m[1] * sx;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n multiply(matrix) {\n const m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];\n const m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];\n const m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];\n const m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];\n const dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];\n const dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n this.m[4] = dx;\n this.m[5] = dy;\n return this;\n }\n invert() {\n const d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);\n const m0 = this.m[3] * d;\n const m1 = -this.m[1] * d;\n const m2 = -this.m[2] * d;\n const m3 = this.m[0] * d;\n const m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);\n const m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);\n this.m[0] = m0;\n this.m[1] = m1;\n this.m[2] = m2;\n this.m[3] = m3;\n this.m[4] = m4;\n this.m[5] = m5;\n return this;\n }\n getMatrix() {\n return this.m;\n }\n decompose() {\n const a = this.m[0];\n const b = this.m[1];\n const c = this.m[2];\n const d = this.m[3];\n const e = this.m[4];\n const f = this.m[5];\n const delta = a * d - b * c;\n const result = {\n x: e,\n y: f,\n rotation: 0,\n scaleX: 0,\n scaleY: 0,\n skewX: 0,\n skewY: 0,\n };\n if (a != 0 || b != 0) {\n const r = Math.sqrt(a * a + b * b);\n result.rotation = b > 0 ? Math.acos(a / r) : -Math.acos(a / r);\n result.scaleX = r;\n result.scaleY = delta / r;\n result.skewX = (a * c + b * d) / delta;\n result.skewY = 0;\n }\n else if (c != 0 || d != 0) {\n const s = Math.sqrt(c * c + d * d);\n result.rotation =\n Math.PI / 2 - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s));\n result.scaleX = delta / s;\n result.scaleY = s;\n result.skewX = 0;\n result.skewY = (a * c + b * d) / delta;\n }\n else {\n }\n result.rotation = Util._getRotation(result.rotation);\n return result;\n }\n}\nconst OBJECT_ARRAY = '[object Array]', OBJECT_NUMBER = '[object Number]', OBJECT_STRING = '[object String]', OBJECT_BOOLEAN = '[object Boolean]', PI_OVER_DEG180 = Math.PI / 180, DEG180_OVER_PI = 180 / Math.PI, HASH = '#', EMPTY_STRING = '', ZERO = '0', KONVA_WARNING = 'Konva warning: ', KONVA_ERROR = 'Konva error: ', COLORS = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n transparent: [255, 255, 255, 0],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50],\n};\nlet _isCanvasFarblingActive = null;\nconst defaultWindow = typeof window !== 'undefined' ? window : {};\nconst animQueues = new WeakMap();\nconst requestFrame = (win, f) => {\n if (typeof win.requestAnimationFrame === 'function') {\n win.requestAnimationFrame(f);\n }\n else if (typeof requestAnimationFrame !== 'undefined') {\n requestAnimationFrame(f);\n }\n else {\n setTimeout(f, 16);\n }\n};\nconst capitalizeCache = new Map();\nconst splitColorComponents = (str) => {\n const components = str.trim();\n return components.indexOf(',') === -1\n ? components.split(/\\s*\\/\\s*|\\s+/)\n : components.split(/\\s*,\\s*/);\n};\nconst NUMBER_SOURCE = '[+-]?(?:\\\\d+\\\\.?\\\\d*|\\\\.\\\\d+)(?:e[+-]?\\\\d+)?';\nconst COLOR_COMPONENT_REGEX = new RegExp(`^(${NUMBER_SOURCE})(%?)$`, 'i');\nconst parseColorComponent = (value, max) => {\n const match = COLOR_COMPONENT_REGEX.exec(value);\n if (!match) {\n return NaN;\n }\n return match[2] ? (Number(match[1]) / 100) * max : Number(match[1]);\n};\nconst HEX_COLOR_REGEX = /^#[0-9a-f]+$/i;\nconst clamp01 = (value) => Math.min(Math.max(value, 0), 1);\nconst HUE_REGEX = new RegExp(`^(${NUMBER_SOURCE})(deg|grad|rad|turn)?$`, 'i');\nconst HUE_UNITS = {\n deg: 1,\n grad: 0.9,\n rad: DEG180_OVER_PI,\n turn: 360,\n};\nexport const Util = {\n _isElement(obj) {\n return !!(obj && obj.nodeType == 1);\n },\n _isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n },\n _isPlainObject(obj) {\n return !!obj && obj.constructor === Object;\n },\n _isArray(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_ARRAY;\n },\n _isNumber(obj) {\n return (Object.prototype.toString.call(obj) === OBJECT_NUMBER &&\n !isNaN(obj) &&\n isFinite(obj));\n },\n _isString(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_STRING;\n },\n _isBoolean(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;\n },\n isObject(val) {\n return val instanceof Object;\n },\n isValidSelector(selector) {\n if (typeof selector !== 'string') {\n return false;\n }\n const firstChar = selector[0];\n return (firstChar === '#' ||\n firstChar === '.' ||\n firstChar === firstChar.toUpperCase());\n },\n _sign(number) {\n if (number === 0) {\n return 1;\n }\n if (number > 0) {\n return 1;\n }\n else {\n return -1;\n }\n },\n requestAnimFrame(callback, win) {\n const target = (win && !win.closed && win) || defaultWindow;\n let queue = animQueues.get(target);\n if (!queue) {\n queue = [];\n animQueues.set(target, queue);\n requestFrame(target, function () {\n animQueues.delete(target);\n queue.forEach(function (cb) {\n cb();\n });\n });\n }\n queue.push(callback);\n },\n createCanvasElement() {\n ensureBrowser();\n const canvas = document.createElement('canvas');\n try {\n canvas.style = canvas.style || {};\n }\n catch (e) { }\n return canvas;\n },\n createImageElement() {\n ensureBrowser();\n return document.createElement('img');\n },\n _isInDocument(el) {\n return !!el.isConnected;\n },\n _urlToImage(url, callback) {\n const imageObj = Util.createImageElement();\n imageObj.onload = function () {\n callback(imageObj);\n };\n imageObj.src = url;\n },\n _rgbToHex(r, g, b) {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n },\n _hexToRgb(hex) {\n hex = hex.replace(HASH, EMPTY_STRING);\n const bigint = parseInt(hex, 16);\n return {\n r: (bigint >> 16) & 255,\n g: (bigint >> 8) & 255,\n b: bigint & 255,\n };\n },\n getRandomColor() {\n let randColor = ((Math.random() * 0xffffff) << 0).toString(16);\n while (randColor.length < 6) {\n randColor = ZERO + randColor;\n }\n return HASH + randColor;\n },\n isCanvasFarblingActive() {\n if (_isCanvasFarblingActive !== null) {\n return _isCanvasFarblingActive;\n }\n if (typeof document === 'undefined') {\n _isCanvasFarblingActive = false;\n return false;\n }\n const c = this.createCanvasElement();\n c.width = 10;\n c.height = 10;\n const ctx = c.getContext('2d', {\n willReadFrequently: true,\n });\n ctx.clearRect(0, 0, 10, 10);\n ctx.fillStyle = '#282828';\n ctx.fillRect(0, 0, 10, 10);\n const d = ctx.getImageData(0, 0, 10, 10).data;\n let isFarbling = false;\n for (let i = 0; i < 100; i++) {\n if (d[i * 4] !== 40 ||\n d[i * 4 + 1] !== 40 ||\n d[i * 4 + 2] !== 40 ||\n d[i * 4 + 3] !== 255) {\n isFarbling = true;\n break;\n }\n }\n _isCanvasFarblingActive = isFarbling;\n this.releaseCanvas(c);\n return _isCanvasFarblingActive;\n },\n getHitColor() {\n const color = this.getRandomColor();\n return this.isCanvasFarblingActive()\n ? this.getSnappedHexColor(color)\n : color;\n },\n getHitColorKey(r, g, b) {\n if (this.isCanvasFarblingActive()) {\n r = Math.round(r / 5) * 5;\n g = Math.round(g / 5) * 5;\n b = Math.round(b / 5) * 5;\n }\n return HASH + this._rgbToHex(r, g, b);\n },\n getSnappedHexColor(hex) {\n const rgb = this._hexToRgb(hex);\n return (HASH +\n this._rgbToHex(Math.round(rgb.r / 5) * 5, Math.round(rgb.g / 5) * 5, Math.round(rgb.b / 5) * 5));\n },\n getRGB(color) {\n var _a;\n const { r = 0, g = 0, b = 0 } = (_a = Util.colorToRGBA(color)) !== null && _a !== void 0 ? _a : {};\n return { r, g, b };\n },\n colorToRGBA(str) {\n str = (str || '').trim() || 'black';\n const color = Util._namedColorToRBA(str) ||\n Util._hex3ColorToRGBA(str) ||\n Util._hex4ColorToRGBA(str) ||\n Util._hex6ColorToRGBA(str) ||\n Util._hex8ColorToRGBA(str) ||\n Util._rgbColorToRGBA(str) ||\n Util._hslColorToRGBA(str);\n if (color && [color.r, color.g, color.b, color.a].every(Util._isNumber)) {\n return color;\n }\n },\n _namedColorToRBA(str) {\n const c = COLORS[str.toLowerCase()];\n if (!c) {\n return null;\n }\n return {\n r: c[0],\n g: c[1],\n b: c[2],\n a: c.length > 3 ? c[3] : 1,\n };\n },\n _rgbColorToRGBA(str) {\n const match = /^rgba?\\(([^)]*)\\)$/i.exec(str);\n if (!match) {\n return;\n }\n const parts = splitColorComponents(match[1]);\n if (parts.length < 3 || parts.length > 4) {\n return;\n }\n return {\n r: parseColorComponent(parts[0], 255),\n g: parseColorComponent(parts[1], 255),\n b: parseColorComponent(parts[2], 255),\n a: parts.length > 3 ? parseColorComponent(parts[3], 1) : 1,\n };\n },\n _hex8ColorToRGBA(str) {\n if (str.length === 9 && HEX_COLOR_REGEX.test(str)) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: parseInt(str.slice(7, 9), 16) / 0xff,\n };\n }\n },\n _hex6ColorToRGBA(str) {\n if (str.length === 7 && HEX_COLOR_REGEX.test(str)) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: 1,\n };\n }\n },\n _hex4ColorToRGBA(str) {\n if (str.length === 5 && HEX_COLOR_REGEX.test(str)) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: parseInt(str[4] + str[4], 16) / 0xff,\n };\n }\n },\n _hex3ColorToRGBA(str) {\n if (str.length === 4 && HEX_COLOR_REGEX.test(str)) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: 1,\n };\n }\n },\n _hslColorToRGBA(str) {\n const match = /^hsla?\\(([^)]*)\\)$/i.exec(str);\n if (!match) {\n return;\n }\n const parts = splitColorComponents(match[1]);\n if (parts.length < 3 || parts.length > 4) {\n return;\n }\n const hue = HUE_REGEX.exec(parts[0]);\n if (!hue) {\n return;\n }\n const unit = hue[2];\n const degrees = Number(hue[1]) * (unit ? HUE_UNITS[unit.toLowerCase()] : 1);\n if (!isFinite(degrees)) {\n return;\n }\n const h = (((degrees % 360) + 360) % 360) / 360;\n const s = clamp01(parseColorComponent(parts[1], 100) / 100);\n const l = clamp01(parseColorComponent(parts[2], 100) / 100);\n const a = parts.length > 3 ? parseColorComponent(parts[3], 1) : 1;\n const t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const t1 = 2 * l - t2;\n const rgb = [0, 0, 0];\n for (let i = 0; i < 3; i++) {\n let t3 = h + (1 / 3) * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n let val;\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n }\n else if (2 * t3 < 1) {\n val = t2;\n }\n else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n }\n else {\n val = t1;\n }\n rgb[i] = val * 255;\n }\n return {\n r: Math.round(rgb[0]),\n g: Math.round(rgb[1]),\n b: Math.round(rgb[2]),\n a,\n };\n },\n haveIntersection(r1, r2) {\n return !(r2.x > r1.x + r1.width ||\n r2.x + r2.width < r1.x ||\n r2.y > r1.y + r1.height ||\n r2.y + r2.height < r1.y);\n },\n cloneObject(obj) {\n const retObj = {};\n for (const key in obj) {\n if (this._isPlainObject(obj[key])) {\n retObj[key] = this.cloneObject(obj[key]);\n }\n else if (this._isArray(obj[key])) {\n retObj[key] = this.cloneArray(obj[key]);\n }\n else {\n retObj[key] = obj[key];\n }\n }\n return retObj;\n },\n cloneArray(arr) {\n return arr.slice(0);\n },\n degToRad(deg) {\n return deg * PI_OVER_DEG180;\n },\n radToDeg(rad) {\n return rad * DEG180_OVER_PI;\n },\n _degToRad(deg) {\n Util.warn('Util._degToRad is removed. Please use public Util.degToRad instead.');\n return Util.degToRad(deg);\n },\n _radToDeg(rad) {\n Util.warn('Util._radToDeg is removed. Please use public Util.radToDeg instead.');\n return Util.radToDeg(rad);\n },\n _getRotation(radians) {\n return Konva.angleDeg ? Util.radToDeg(radians) : radians;\n },\n _capitalize(str) {\n const cached = capitalizeCache.get(str);\n if (cached !== undefined)\n return cached;\n const out = str.charAt(0).toUpperCase() + str.slice(1);\n capitalizeCache.set(str, out);\n return out;\n },\n throw(str) {\n throw new Error(KONVA_ERROR + str);\n },\n error(str) {\n console.error(KONVA_ERROR + str);\n },\n warn(str) {\n if (!Konva.showWarnings) {\n return;\n }\n console.warn(KONVA_WARNING + str);\n },\n each(obj, func) {\n for (const key in obj) {\n func(key, obj[key]);\n }\n },\n _inRange(val, left, right) {\n return left <= val && val < right;\n },\n _getProjectionToSegment(x1, y1, x2, y2, x3, y3) {\n let x, y, dist;\n const pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n if (pd2 == 0) {\n x = x1;\n y = y1;\n dist = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);\n }\n else {\n const u = ((x3 - x1) * (x2 - x1) + (y3 - y1) * (y2 - y1)) / pd2;\n if (u < 0) {\n x = x1;\n y = y1;\n dist = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);\n }\n else if (u > 1.0) {\n x = x2;\n y = y2;\n dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);\n }\n else {\n x = x1 + u * (x2 - x1);\n y = y1 + u * (y2 - y1);\n dist = (x - x3) * (x - x3) + (y - y3) * (y - y3);\n }\n }\n return [x, y, dist];\n },\n _getProjectionToLine(pt, line, isClosed) {\n const pc = Util.cloneObject(pt);\n let dist = Number.MAX_VALUE;\n line.forEach(function (p1, i) {\n if (!isClosed && i === line.length - 1) {\n return;\n }\n const p2 = line[(i + 1) % line.length];\n const proj = Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n const px = proj[0], py = proj[1], pdist = proj[2];\n if (pdist < dist) {\n pc.x = px;\n pc.y = py;\n dist = pdist;\n }\n });\n return pc;\n },\n _prepareArrayForTween(startArray, endArray, isClosed) {\n const start = [], end = [];\n if (startArray.length > endArray.length) {\n const temp = endArray;\n endArray = startArray;\n startArray = temp;\n }\n for (let n = 0; n < startArray.length; n += 2) {\n start.push({\n x: startArray[n],\n y: startArray[n + 1],\n });\n }\n for (let n = 0; n < endArray.length; n += 2) {\n end.push({\n x: endArray[n],\n y: endArray[n + 1],\n });\n }\n const newStart = [];\n end.forEach(function (point) {\n const pr = Util._getProjectionToLine(point, start, isClosed);\n newStart.push(pr.x);\n newStart.push(pr.y);\n });\n return newStart;\n },\n _prepareToStringify(obj) {\n let desc;\n obj.visitedByCircularReferenceRemoval = true;\n for (const key in obj) {\n if (!(obj.hasOwnProperty(key) && obj[key] && typeof obj[key] == 'object')) {\n continue;\n }\n desc = Object.getOwnPropertyDescriptor(obj, key);\n if (obj[key].visitedByCircularReferenceRemoval ||\n Util._isElement(obj[key])) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n else if (Util._prepareToStringify(obj[key]) === null) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n }\n delete obj.visitedByCircularReferenceRemoval;\n return obj;\n },\n _assign(target, source) {\n for (const key in source) {\n target[key] = source[key];\n }\n return target;\n },\n _getFirstPointerId(evt) {\n if (!evt.touches) {\n return evt.pointerId || 999;\n }\n else {\n return evt.changedTouches[0].identifier;\n }\n },\n releaseCanvas(...canvases) {\n if (!Konva.releaseCanvasOnDestroy)\n return;\n canvases.forEach((c) => {\n c.width = 0;\n c.height = 0;\n });\n },\n drawRoundedRectPath(context, width, height, cornerRadius) {\n let xOrigin = width < 0 ? width : 0;\n let yOrigin = height < 0 ? height : 0;\n width = Math.abs(width);\n height = Math.abs(height);\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft =\n topRight =\n bottomLeft =\n bottomRight =\n Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.moveTo(xOrigin + topLeft, yOrigin);\n context.lineTo(xOrigin + width - topRight, yOrigin);\n context.arc(xOrigin + width - topRight, yOrigin + topRight, topRight, (Math.PI * 3) / 2, 0, false);\n context.lineTo(xOrigin + width, yOrigin + height - bottomRight);\n context.arc(xOrigin + width - bottomRight, yOrigin + height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n context.lineTo(xOrigin + bottomLeft, yOrigin + height);\n context.arc(xOrigin + bottomLeft, yOrigin + height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n context.lineTo(xOrigin, yOrigin + topLeft);\n context.arc(xOrigin + topLeft, yOrigin + topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n },\n drawRoundedPolygonPath(context, points, sides, radius, cornerRadius) {\n radius = Math.abs(radius);\n for (let i = 0; i < sides; i++) {\n const prev = points[(i - 1 + sides) % sides];\n const curr = points[i];\n const next = points[(i + 1) % sides];\n const vec1 = { x: curr.x - prev.x, y: curr.y - prev.y };\n const vec2 = { x: next.x - curr.x, y: next.y - curr.y };\n const len1 = Math.hypot(vec1.x, vec1.y);\n const len2 = Math.hypot(vec2.x, vec2.y);\n let currCornerRadius;\n if (typeof cornerRadius === 'number') {\n currCornerRadius = cornerRadius;\n }\n else {\n currCornerRadius = i < cornerRadius.length ? cornerRadius[i] : 0;\n }\n const maxCornerRadius = radius * Math.cos(Math.PI / sides);\n currCornerRadius =\n maxCornerRadius * Math.min(1, (currCornerRadius / radius) * 2);\n const normalVec1 = { x: vec1.x / len1, y: vec1.y / len1 };\n const normalVec2 = { x: vec2.x / len2, y: vec2.y / len2 };\n const p1 = {\n x: curr.x - normalVec1.x * currCornerRadius,\n y: curr.y - normalVec1.y * currCornerRadius,\n };\n const p2 = {\n x: curr.x + normalVec2.x * currCornerRadius,\n y: curr.y + normalVec2.y * currCornerRadius,\n };\n if (i === 0) {\n context.moveTo(p1.x, p1.y);\n }\n else {\n context.lineTo(p1.x, p1.y);\n }\n context.arcTo(curr.x, curr.y, p2.x, p2.y, currCornerRadius);\n }\n },\n};\n","import { Util } from \"./Util.js\";\nimport { Konva } from \"./Global.js\";\nfunction simplifyArray(arr) {\n const retArr = [], len = arr.length, util = Util;\n for (let n = 0; n < len; n++) {\n let val = arr[n];\n if (util._isNumber(val)) {\n val = Math.round(val * 1000) / 1000;\n }\n else if (!util._isString(val)) {\n val = val + '';\n }\n retArr.push(val);\n }\n return retArr;\n}\nconst COMMA = ',', OPEN_PAREN = '(', CLOSE_PAREN = ')', OPEN_PAREN_BRACKET = '([', CLOSE_BRACKET_PAREN = '])', SEMICOLON = ';', DOUBLE_PAREN = '()', EQUALS = '=', CONTEXT_METHODS = [\n 'arc',\n 'arcTo',\n 'beginPath',\n 'bezierCurveTo',\n 'clearRect',\n 'clip',\n 'closePath',\n 'createLinearGradient',\n 'createPattern',\n 'createRadialGradient',\n 'drawImage',\n 'ellipse',\n 'fill',\n 'fillText',\n 'getImageData',\n 'createImageData',\n 'lineTo',\n 'moveTo',\n 'putImageData',\n 'quadraticCurveTo',\n 'rect',\n 'roundRect',\n 'restore',\n 'rotate',\n 'save',\n 'scale',\n 'setLineDash',\n 'setTransform',\n 'stroke',\n 'strokeText',\n 'transform',\n 'translate',\n];\nconst CONTEXT_PROPERTIES = [\n 'fillStyle',\n 'strokeStyle',\n 'shadowColor',\n 'shadowBlur',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'letterSpacing',\n 'lineCap',\n 'lineDashOffset',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit',\n 'direction',\n 'font',\n 'textAlign',\n 'textBaseline',\n 'globalAlpha',\n 'globalCompositeOperation',\n 'imageSmoothingEnabled',\n 'filter',\n];\nconst traceArrMax = 100;\nlet _cssFiltersSupported = null;\nexport function isCSSFiltersSupported() {\n if (_cssFiltersSupported !== null) {\n return _cssFiltersSupported;\n }\n try {\n const canvas = Util.createCanvasElement();\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n _cssFiltersSupported = false;\n return false;\n }\n return !!ctx && 'filter' in ctx;\n }\n catch (e) {\n _cssFiltersSupported = false;\n return false;\n }\n}\nexport class Context {\n constructor(canvas) {\n this.canvas = canvas;\n if (Konva.enableTrace) {\n this.traceArr = [];\n this._enableTrace();\n }\n }\n fillShape(shape) {\n if (shape.fillEnabled()) {\n this._fill(shape);\n }\n }\n _fill(shape) {\n }\n strokeShape(shape) {\n if (shape.hasStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n }\n fillStrokeShape(shape) {\n if (shape.attrs.fillAfterStrokeEnabled) {\n this.strokeShape(shape);\n this.fillShape(shape);\n }\n else {\n this.fillShape(shape);\n this.strokeShape(shape);\n }\n }\n getTrace(relaxed, rounded) {\n let traceArr = this.traceArr, len = traceArr.length, str = '', n, trace, method, args;\n for (n = 0; n < len; n++) {\n trace = traceArr[n];\n method = trace.method;\n if (method) {\n args = trace.args;\n str += method;\n if (relaxed) {\n str += DOUBLE_PAREN;\n }\n else {\n if (Util._isArray(args[0])) {\n str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;\n }\n else {\n if (rounded) {\n args = args.map((a) => typeof a === 'number' ? Math.floor(a) : a);\n }\n str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;\n }\n }\n }\n else {\n str += trace.property;\n if (!relaxed) {\n str += EQUALS + trace.val;\n }\n }\n str += SEMICOLON;\n }\n return str;\n }\n clearTrace() {\n this.traceArr = [];\n }\n _trace(str) {\n let traceArr = this.traceArr, len;\n traceArr.push(str);\n len = traceArr.length;\n if (len >= traceArrMax) {\n traceArr.shift();\n }\n }\n reset() {\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(1 * pixelRatio, 0, 0, 1 * pixelRatio, 0, 0);\n }\n getCanvas() {\n return this.canvas;\n }\n clear(bounds) {\n const canvas = this.getCanvas();\n if (bounds) {\n this.clearRect(bounds.x || 0, bounds.y || 0, bounds.width || 0, bounds.height || 0);\n }\n else {\n this.clearRect(0, 0, canvas.getWidth() / canvas.pixelRatio, canvas.getHeight() / canvas.pixelRatio);\n }\n }\n _applyLineCap(shape) {\n const lineCap = shape.attrs.lineCap;\n if (lineCap) {\n this.setAttr('lineCap', lineCap);\n }\n }\n _applyOpacity(shape) {\n const absOpacity = shape.getAbsoluteOpacity();\n if (absOpacity !== 1) {\n this.setAttr('globalAlpha', absOpacity);\n }\n }\n _applyLineJoin(shape) {\n const lineJoin = shape.attrs.lineJoin;\n if (lineJoin) {\n this.setAttr('lineJoin', lineJoin);\n }\n }\n _applyMiterLimit(shape) {\n const miterLimit = shape.attrs.miterLimit;\n if (miterLimit != null) {\n this.setAttr('miterLimit', miterLimit);\n }\n }\n setAttr(attr, val) {\n this._context[attr] = val;\n }\n arc(x, y, radius, startAngle, endAngle, counterClockwise) {\n this._context.arc(x, y, radius, startAngle, endAngle, counterClockwise);\n }\n arcTo(x1, y1, x2, y2, radius) {\n this._context.arcTo(x1, y1, x2, y2, radius);\n }\n beginPath() {\n this._context.beginPath();\n }\n bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {\n this._context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n }\n clearRect(x, y, width, height) {\n this._context.clearRect(x, y, width, height);\n }\n clip(...args) {\n this._context.clip.apply(this._context, args);\n }\n closePath() {\n this._context.closePath();\n }\n createImageData(width, height) {\n const a = arguments;\n if (a.length === 2) {\n return this._context.createImageData(width, height);\n }\n else if (a.length === 1) {\n return this._context.createImageData(width);\n }\n }\n createLinearGradient(x0, y0, x1, y1) {\n return this._context.createLinearGradient(x0, y0, x1, y1);\n }\n createPattern(image, repetition) {\n return this._context.createPattern(image, repetition);\n }\n createRadialGradient(x0, y0, r0, x1, y1, r1) {\n return this._context.createRadialGradient(x0, y0, r0, x1, y1, r1);\n }\n drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) {\n const a = arguments, _context = this._context;\n if (a.length === 3) {\n _context.drawImage(image, sx, sy);\n }\n else if (a.length === 5) {\n _context.drawImage(image, sx, sy, sWidth, sHeight);\n }\n else if (a.length === 9) {\n _context.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);\n }\n }\n ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise) {\n this._context.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise);\n }\n isPointInPath(x, y, path, fillRule) {\n if (path) {\n return this._context.isPointInPath(path, x, y, fillRule);\n }\n return this._context.isPointInPath(x, y, fillRule);\n }\n fill(...args) {\n this._context.fill.apply(this._context, args);\n }\n fillRect(x, y, width, height) {\n this._context.fillRect(x, y, width, height);\n }\n strokeRect(x, y, width, height) {\n this._context.strokeRect(x, y, width, height);\n }\n fillText(text, x, y, maxWidth) {\n if (maxWidth) {\n this._context.fillText(text, x, y, maxWidth);\n }\n else {\n this._context.fillText(text, x, y);\n }\n }\n measureText(text) {\n return this._context.measureText(text);\n }\n getImageData(sx, sy, sw, sh) {\n return this._context.getImageData(sx, sy, sw, sh);\n }\n lineTo(x, y) {\n this._context.lineTo(x, y);\n }\n moveTo(x, y) {\n this._context.moveTo(x, y);\n }\n rect(x, y, width, height) {\n this._context.rect(x, y, width, height);\n }\n roundRect(x, y, width, height, radii) {\n this._context.roundRect(x, y, width, height, radii);\n }\n putImageData(imageData, dx, dy) {\n this._context.putImageData(imageData, dx, dy);\n }\n quadraticCurveTo(cpx, cpy, x, y) {\n this._context.quadraticCurveTo(cpx, cpy, x, y);\n }\n restore() {\n this._context.restore();\n }\n rotate(angle) {\n this._context.rotate(angle);\n }\n save() {\n this._context.save();\n }\n scale(x, y) {\n this._context.scale(x, y);\n }\n setLineDash(segments) {\n if (this._context.setLineDash) {\n this._context.setLineDash(segments);\n }\n else if ('mozDash' in this._context) {\n this._context['mozDash'] = segments;\n }\n else if ('webkitLineDash' in this._context) {\n this._context['webkitLineDash'] = segments;\n }\n }\n getLineDash() {\n return this._context.getLineDash();\n }\n setTransform(a, b, c, d, e, f) {\n this._context.setTransform(a, b, c, d, e, f);\n }\n stroke(path2d) {\n if (path2d) {\n this._context.stroke(path2d);\n }\n else {\n this._context.stroke();\n }\n }\n strokeText(text, x, y, maxWidth) {\n this._context.strokeText(text, x, y, maxWidth);\n }\n transform(a, b, c, d, e, f) {\n this._context.transform(a, b, c, d, e, f);\n }\n translate(x, y) {\n this._context.translate(x, y);\n }\n _enableTrace() {\n let that = this, len = CONTEXT_METHODS.length, origSetter = this.setAttr, n, args;\n const func = function (methodName) {\n let origMethod = that[methodName], ret;\n that[methodName] = function () {\n args = simplifyArray(Array.prototype.slice.call(arguments, 0));\n ret = origMethod.apply(that, arguments);\n that._trace({\n method: methodName,\n args: args,\n });\n return ret;\n };\n };\n for (n = 0; n < len; n++) {\n func(CONTEXT_METHODS[n]);\n }\n that.setAttr = function () {\n origSetter.apply(that, arguments);\n const prop = arguments[0];\n let val = arguments[1];\n if (prop === 'shadowOffsetX' ||\n prop === 'shadowOffsetY' ||\n prop === 'shadowBlur') {\n val = val / this.canvas.getPixelRatio();\n }\n that._trace({\n property: prop,\n val: val,\n });\n };\n }\n _applyGlobalCompositeOperation(node) {\n const op = node.attrs.globalCompositeOperation;\n const def = !op || op === 'source-over';\n if (!def) {\n this.setAttr('globalCompositeOperation', op);\n }\n }\n}\nCONTEXT_PROPERTIES.forEach(function (prop) {\n Object.defineProperty(Context.prototype, prop, {\n get() {\n return this._context[prop];\n },\n set(val) {\n this._context[prop] = val;\n },\n });\n});\nexport class SceneContext extends Context {\n constructor(canvas, { willReadFrequently = false } = {}) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently,\n });\n }\n _fillColor(shape) {\n const fill = shape.fill();\n this.setAttr('fillStyle', fill);\n shape._fillFunc(this);\n }\n _fillPattern(shape) {\n const context = this._context;\n if ('patternQuality' in context) {\n context.patternQuality = context.imageSmoothingEnabled\n ? 'good'\n : 'nearest';\n }\n this.setAttr('fillStyle', shape._getFillPattern());\n shape._fillFunc(this);\n }\n _fillLinearGradient(shape) {\n const grd = shape._getLinearGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fillRadialGradient(shape) {\n const grd = shape._getRadialGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fill(shape) {\n const hasColor = shape.fill(), fillPriority = shape.getFillPriority();\n if (hasColor && fillPriority === 'color') {\n this._fillColor(shape);\n return;\n }\n const hasPattern = shape.getFillPatternImage();\n if (hasPattern && fillPriority === 'pattern') {\n this._fillPattern(shape);\n return;\n }\n const hasLinearGradient = shape.getFillLinearGradientColorStops();\n if (hasLinearGradient && fillPriority === 'linear-gradient') {\n this._fillLinearGradient(shape);\n return;\n }\n const hasRadialGradient = shape.getFillRadialGradientColorStops();\n if (hasRadialGradient && fillPriority === 'radial-gradient') {\n this._fillRadialGradient(shape);\n return;\n }\n if (hasColor) {\n this._fillColor(shape);\n }\n else if (hasPattern) {\n this._fillPattern(shape);\n }\n else if (hasLinearGradient) {\n this._fillLinearGradient(shape);\n }\n else if (hasRadialGradient) {\n this._fillRadialGradient(shape);\n }\n }\n _strokeLinearGradient(shape) {\n const start = shape.getStrokeLinearGradientStartPoint(), end = shape.getStrokeLinearGradientEndPoint(), colorStops = shape.getStrokeLinearGradientColorStops(), grd = this.createLinearGradient(start.x, start.y, end.x, end.y);\n if (colorStops) {\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n this.setAttr('strokeStyle', grd);\n }\n }\n _stroke(shape) {\n const dash = shape.dash(), strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (shape.hasStroke()) {\n if (!strokeScaleEnabled) {\n this.save();\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n if (dash && shape.dashEnabled()) {\n this.setLineDash(dash);\n this.setAttr('lineDashOffset', shape.dashOffset());\n }\n this.setAttr('lineWidth', shape.strokeWidth());\n if (!shape.getShadowForStrokeEnabled()) {\n this.setAttr('shadowColor', 'rgba(0,0,0,0)');\n }\n const hasLinearGradient = shape.getStrokeLinearGradientColorStops();\n if (hasLinearGradient) {\n this._strokeLinearGradient(shape);\n }\n else {\n this.setAttr('strokeStyle', shape.stroke());\n }\n shape._strokeFunc(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n _applyShadow(shape) {\n var _a, _b, _c;\n const color = (_a = shape.getShadowRGBA()) !== null && _a !== void 0 ? _a : 'black', blur = (_b = shape.getShadowBlur()) !== null && _b !== void 0 ? _b : 5, offset = (_c = shape.getShadowOffset()) !== null && _c !== void 0 ? _c : {\n x: 0,\n y: 0,\n }, scale = shape.getAbsoluteScale(), ratio = this.canvas.getPixelRatio(), scaleX = scale.x * ratio, scaleY = scale.y * ratio;\n this.setAttr('shadowColor', color);\n this.setAttr('shadowBlur', blur * Math.min(Math.abs(scaleX), Math.abs(scaleY)));\n this.setAttr('shadowOffsetX', offset.x * scaleX);\n this.setAttr('shadowOffsetY', offset.y * scaleY);\n }\n}\nexport class HitContext extends Context {\n constructor(canvas) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently: true,\n });\n }\n _fill(shape) {\n this.save();\n this.setAttr('fillStyle', shape.colorKey);\n shape._fillFuncHit(this);\n this.restore();\n }\n strokeShape(shape) {\n if (shape.hasHitStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n if (shape.hasHitStroke()) {\n const strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (!strokeScaleEnabled) {\n this.save();\n const pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n const hitStrokeWidth = shape.hitStrokeWidth();\n const strokeWidth = hitStrokeWidth === 'auto' ? shape.strokeWidth() : hitStrokeWidth;\n this.setAttr('lineWidth', strokeWidth);\n this.setAttr('strokeStyle', shape.colorKey);\n shape._strokeFuncHit(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n}\n","import { Util } from \"./Util.js\";\nimport { SceneContext, HitContext } from \"./Context.js\";\nimport { Konva } from \"./Global.js\";\nlet _pixelRatio;\nfunction getDevicePixelRatio() {\n if (_pixelRatio) {\n return _pixelRatio;\n }\n const canvas = Util.createCanvasElement();\n const context = canvas.getContext('2d');\n _pixelRatio = (function () {\n const devicePixelRatio = Konva._global.devicePixelRatio || 1, backingStoreRatio = context.webkitBackingStorePixelRatio ||\n context.mozBackingStorePixelRatio ||\n context.msBackingStorePixelRatio ||\n context.oBackingStorePixelRatio ||\n context.backingStorePixelRatio ||\n 1;\n return devicePixelRatio / backingStoreRatio;\n })();\n Util.releaseCanvas(canvas);\n return _pixelRatio;\n}\nexport class Canvas {\n constructor(config) {\n this.pixelRatio = 1;\n this.width = 0;\n this.height = 0;\n this.isCache = false;\n const conf = config || {};\n const pixelRatio = conf.pixelRatio || Konva.pixelRatio || getDevicePixelRatio();\n this.pixelRatio = pixelRatio;\n this._canvas = Util.createCanvasElement();\n this._canvas.style.padding = '0';\n this._canvas.style.margin = '0';\n this._canvas.style.border = '0';\n this._canvas.style.background = 'transparent';\n this._canvas.style.position = 'absolute';\n this._canvas.style.top = '0';\n this._canvas.style.left = '0';\n }\n getContext() {\n return this.context;\n }\n getPixelRatio() {\n return this.pixelRatio;\n }\n setPixelRatio(pixelRatio) {\n const previousRatio = this.pixelRatio;\n this.pixelRatio = pixelRatio;\n this.setSize(this.getWidth() / previousRatio, this.getHeight() / previousRatio);\n }\n setWidth(width) {\n this.width = this._canvas.width = width * this.pixelRatio;\n this._canvas.style.width = width + 'px';\n const pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n setHeight(height) {\n this.height = this._canvas.height = height * this.pixelRatio;\n this._canvas.style.height = height + 'px';\n const pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n getWidth() {\n return this.width;\n }\n getHeight() {\n return this.height;\n }\n setSize(width, height) {\n this.setWidth(width || 0);\n this.setHeight(height || 0);\n }\n setSizeIfChanged(width, height) {\n if (this.width !== width * this.pixelRatio ||\n this.height !== height * this.pixelRatio) {\n this.setSize(width, height);\n }\n }\n toDataURL(mimeType, quality) {\n try {\n return this._canvas.toDataURL(mimeType, quality);\n }\n catch (e) {\n try {\n return this._canvas.toDataURL();\n }\n catch (err) {\n Util.error('Unable to get data URL. ' +\n err.message +\n ' For more info read https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n return '';\n }\n }\n }\n}\nexport class SceneCanvas extends Canvas {\n constructor(config = { width: 0, height: 0, willReadFrequently: false }) {\n super(config);\n this.context = new SceneContext(this, {\n willReadFrequently: config.willReadFrequently,\n });\n this.setSize(config.width, config.height);\n }\n}\nexport class HitCanvas extends Canvas {\n constructor(config = { width: 0, height: 0 }) {\n super(config);\n this.hitCanvas = true;\n this.context = new HitContext(this);\n this.setSize(config.width, config.height);\n }\n}\n","import { Konva } from \"./Global.js\";\nimport { Util } from \"./Util.js\";\nexport const DD = {\n get isDragging() {\n let flag = false;\n DD._dragElements.forEach((elem) => {\n if (elem.dragStatus === 'dragging') {\n flag = true;\n }\n });\n return flag;\n },\n justDragged: false,\n get node() {\n let node;\n DD._dragElements.forEach((elem) => {\n node = elem.node;\n });\n return node;\n },\n _dragElements: new Map(),\n _listenToWindow(win) {\n const endDragBefore = (evt) => DD._endDragBefore(evt, win);\n const drag = (evt) => DD._drag(evt, win);\n win.addEventListener('mouseup', endDragBefore, true);\n win.addEventListener('touchend', endDragBefore, true);\n win.addEventListener('touchcancel', endDragBefore, true);\n win.addEventListener('mousemove', drag);\n win.addEventListener('touchmove', drag);\n win.addEventListener('mouseup', DD._endDragAfter, false);\n win.addEventListener('touchend', DD._endDragAfter, false);\n win.addEventListener('touchcancel', DD._endDragAfter, false);\n },\n _drag(evt, win) {\n const nodesToFireEvents = [];\n DD._dragElements.forEach((elem, key) => {\n const { node } = elem;\n const stage = node.getStage();\n if (win && stage._getOwnerWindow() !== win) {\n return;\n }\n stage.setPointersPositions(evt);\n if (elem.pointerId === undefined) {\n elem.pointerId = Util._getFirstPointerId(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus !== 'dragging') {\n const dragDistance = node.dragDistance();\n const distance = Math.max(Math.abs(pos.x - elem.startPointerPos.x), Math.abs(pos.y - elem.startPointerPos.y));\n if (distance < dragDistance) {\n return;\n }\n node.startDrag({ evt });\n if (!node.isDragging()) {\n return;\n }\n }\n node._setDragPosition(evt, elem);\n nodesToFireEvents.push(node);\n });\n nodesToFireEvents.forEach((node) => {\n if (!node.getStage()) {\n return;\n }\n node.fire('dragmove', {\n type: 'dragmove',\n target: node,\n evt: evt,\n }, true);\n });\n },\n _endDragBefore(evt, win) {\n const drawNodes = [];\n DD._dragElements.forEach((elem) => {\n const { node } = elem;\n const stage = node.getStage();\n if (evt && (!win || stage._getOwnerWindow() === win)) {\n stage.setPointersPositions(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus === 'dragging' || elem.dragStatus === 'stopped') {\n DD.justDragged = true;\n Konva._mouseListenClick = false;\n Konva._touchListenClick = false;\n Konva._pointerListenClick = false;\n elem.dragStatus = 'stopped';\n }\n const drawNode = elem.node.getLayer() ||\n (elem.node instanceof Konva['Stage'] && elem.node);\n if (drawNode && drawNodes.indexOf(drawNode) === -1) {\n drawNodes.push(drawNode);\n }\n });\n drawNodes.forEach((drawNode) => {\n drawNode.draw();\n });\n },\n _endDragAfter(evt) {\n DD._dragElements.forEach((elem, key) => {\n if (elem.dragStatus === 'stopped') {\n elem.node.fire('dragend', {\n type: 'dragend',\n target: elem.node,\n evt: evt,\n }, true);\n }\n if (elem.dragStatus !== 'dragging') {\n DD._dragElements.delete(key);\n }\n });\n },\n};\n","import { Konva } from \"./Global.js\";\nimport { Util } from \"./Util.js\";\nfunction _formatValue(val) {\n if (Util._isString(val)) {\n return '\"' + val + '\"';\n }\n if (Object.prototype.toString.call(val) === '[object Number]') {\n return val;\n }\n if (Util._isBoolean(val)) {\n return val;\n }\n return Object.prototype.toString.call(val);\n}\nexport function RGBComponent(val) {\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n return Math.round(val);\n}\nexport function alphaComponent(val) {\n if (val > 1) {\n return 1;\n }\n else if (val < 0.0001) {\n return 0.0001;\n }\n return val;\n}\nexport function getNumberValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (!Util._isNumber(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number.');\n }\n return val;\n };\n }\n}\nexport function getNumberOrArrayOfNumbersValidator(noOfElements) {\n if (Konva.isUnminified) {\n return function (val, attr) {\n let isNumber = Util._isNumber(val);\n let isValidArray = Util._isArray(val) && val.length == noOfElements;\n if (!isNumber && !isValidArray) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or Array(' +\n noOfElements +\n ')');\n }\n return val;\n };\n }\n}\nexport function getNumberOrAutoValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n const isNumber = Util._isNumber(val);\n const isAuto = val === 'auto';\n if (!(isNumber || isAuto)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or \"auto\".');\n }\n return val;\n };\n }\n}\nexport function getStringValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (!Util._isString(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string.');\n }\n return val;\n };\n }\n}\nexport function getStringOrGradientValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n const isString = Util._isString(val);\n const isGradient = Object.prototype.toString.call(val) === '[object CanvasGradient]' ||\n (val && val['addColorStop']);\n if (!(isString || isGradient)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string or a native gradient.');\n }\n return val;\n };\n }\n}\nexport function getFunctionValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (!Util._isFunction(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a function.');\n }\n return val;\n };\n }\n}\nexport function getNumberArrayValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n const TypedArray = Int8Array ? Object.getPrototypeOf(Int8Array) : null;\n if (TypedArray && val instanceof TypedArray) {\n return val;\n }\n if (!Util._isArray(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a array of numbers.');\n }\n else {\n val.forEach(function (item) {\n if (!Util._isNumber(item)) {\n Util.warn('\"' +\n attr +\n '\" attribute has non numeric element ' +\n item +\n '. Make sure that all elements are numbers.');\n }\n });\n }\n return val;\n };\n }\n}\nexport function getBooleanValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n const isBool = val === true || val === false;\n if (!isBool) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a boolean.');\n }\n return val;\n };\n }\n}\nexport function getComponentValidator(components) {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (val === undefined || val === null) {\n return val;\n }\n if (!Util.isObject(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be an object with properties ' +\n components);\n }\n return val;\n };\n }\n}\n","import { Util } from \"./Util.js\";\nimport { getComponentValidator } from \"./Validators.js\";\nconst GET = 'get';\nconst SET = 'set';\nexport const Factory = {\n addGetterSetter(constructor, attr, def, validator, after) {\n Factory.addGetter(constructor, attr, def);\n Factory.addSetter(constructor, attr, validator, after);\n Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addGetter(constructor, attr, def) {\n const method = GET + Util._capitalize(attr);\n constructor.prototype[method] =\n constructor.prototype[method] ||\n function () {\n const val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n },\n addSetter(constructor, attr, validator, after) {\n const method = SET + Util._capitalize(attr);\n if (!constructor.prototype[method]) {\n Factory.overWriteSetter(constructor, attr, validator, after);\n }\n },\n overWriteSetter(constructor, attr, validator, after) {\n const method = SET + Util._capitalize(attr);\n constructor.prototype[method] = function (val) {\n if (validator && val !== undefined && val !== null) {\n val = validator.call(this, val, attr);\n }\n this._setAttr(attr, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n },\n addComponentsGetterSetter(constructor, attr, components, validator, after) {\n const len = components.length, capitalize = Util._capitalize, getter = GET + capitalize(attr), setter = SET + capitalize(attr);\n constructor.prototype[getter] = function () {\n const ret = {};\n for (let n = 0; n < len; n++) {\n const component = components[n];\n ret[component] = this.getAttr(attr + capitalize(component));\n }\n return ret;\n };\n const basicValidator = getComponentValidator(components);\n constructor.prototype[setter] = function (val) {\n const oldVal = this.attrs[attr];\n if (validator) {\n val = validator.call(this, val, attr);\n }\n if (basicValidator) {\n basicValidator.call(this, val, attr);\n }\n for (const key in val) {\n if (!val.hasOwnProperty(key)) {\n continue;\n }\n this._setAttr(attr + capitalize(key), val[key]);\n }\n if (!val) {\n components.forEach((component) => {\n this._setAttr(attr + capitalize(component), undefined);\n });\n }\n this._fireChangeEvent(attr, oldVal, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addOverloadedGetterSetter(constructor, attr) {\n const capitalizedAttr = Util._capitalize(attr), setter = SET + capitalizedAttr, getter = GET + capitalizedAttr;\n constructor.prototype[attr] = function () {\n if (arguments.length) {\n this[setter](arguments[0]);\n return this;\n }\n return this[getter]();\n };\n },\n addDeprecatedGetterSetter(constructor, attr, def, validator) {\n Util.error('Adding deprecated ' + attr);\n const method = GET + Util._capitalize(attr);\n const message = attr +\n ' property is deprecated and will be removed soon. Look at Konva change log for more information.';\n constructor.prototype[method] = function () {\n Util.error(message);\n const val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n Factory.addSetter(constructor, attr, validator, function () {\n Util.error(message);\n });\n Factory.addOverloadedGetterSetter(constructor, attr);\n },\n backCompat(constructor, methods) {\n Util.each(methods, function (oldMethodName, newMethodName) {\n const method = constructor.prototype[newMethodName];\n const oldGetter = GET + Util._capitalize(oldMethodName);\n const oldSetter = SET + Util._capitalize(oldMethodName);\n function deprecated() {\n method.apply(this, arguments);\n Util.error('\"' +\n oldMethodName +\n '\" method is deprecated and will be removed soon. Use \"\"' +\n newMethodName +\n '\" instead.');\n }\n constructor.prototype[oldMethodName] = deprecated;\n constructor.prototype[oldGetter] = deprecated;\n constructor.prototype[oldSetter] = deprecated;\n });\n },\n afterSetFilter() {\n this._filterUpToDate = false;\n },\n};\n","import { HitCanvas, SceneCanvas } from \"./Canvas.js\";\nimport { isCSSFiltersSupported } from \"./Context.js\";\nimport { DD } from \"./DragAndDrop.js\";\nimport { Factory } from \"./Factory.js\";\nimport { Konva } from \"./Global.js\";\nimport { Transform, Util } from \"./Util.js\";\nimport { getBooleanValidator, getNumberValidator, getStringValidator, } from \"./Validators.js\";\nfunction parseCSSFilters(cssFilter) {\n const filterRegex = /(\\w+)\\(([^)]+)\\)/g;\n let match;\n while ((match = filterRegex.exec(cssFilter)) !== null) {\n const [, filterName, filterValue] = match;\n switch (filterName) {\n case 'blur': {\n const blurRadius = parseFloat(filterValue.replace('px', ''));\n return function (imageData) {\n this.blurRadius(blurRadius * 0.5);\n const KonvaFilters = Konva.Filters;\n if (KonvaFilters && KonvaFilters.Blur) {\n KonvaFilters.Blur.call(this, imageData);\n }\n };\n }\n case 'brightness': {\n const brightness = filterValue.includes('%')\n ? parseFloat(filterValue) / 100\n : parseFloat(filterValue);\n return function (imageData) {\n this.brightness(brightness);\n const KonvaFilters = Konva.Filters;\n if (KonvaFilters && KonvaFilters.Brightness) {\n KonvaFilters.Brightness.call(this, imageData);\n }\n };\n }\n case 'contrast': {\n const contrast = parseFloat(filterValue);\n return function (imageData) {\n const konvaContrast = 100 * (Math.sqrt(contrast) - 1);\n this.contrast(konvaContrast);\n const KonvaFilters = Konva.Filters;\n if (KonvaFilters && KonvaFilters.Contrast) {\n KonvaFilters.Contrast.call(this, imageData);\n }\n };\n }\n case 'grayscale': {\n return function (imageData) {\n const KonvaFilters = Konva.Filters;\n if (KonvaFilters && KonvaFilters.Grayscale) {\n KonvaFilters.Grayscale.call(this, imageData);\n }\n };\n }\n case 'sepia': {\n return function (imageData) {\n const KonvaFilters = Konva.Filters;\n if (KonvaFilters && KonvaFilters.Sepia) {\n KonvaFilters.Sepia.call(this, imageData);\n }\n };\n }\n case 'invert': {\n return function (imageData) {\n const KonvaFilters = Konva.Filters;\n if (KonvaFilters && KonvaFilters.Invert) {\n KonvaFilters.Invert.call(this, imageData);\n }\n };\n }\n default:\n Util.warn(`CSS filter \"${filterName}\" is not supported in fallback mode. Consider using function filters for better compatibility.`);\n break;\n }\n }\n return () => { };\n}\nconst ABSOLUTE_OPACITY = 'absoluteOpacity', ALL_LISTENERS = 'allEventListeners', ABSOLUTE_TRANSFORM = 'absoluteTransform', ABSOLUTE_SCALE = 'absoluteScale', CANVAS = 'canvas', CHANGE = 'Change', CHILDREN = 'children', KONVA = 'konva', LISTENING = 'listening', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', POINTERENTER = 'pointerenter', POINTERLEAVE = 'pointerleave', TOUCHENTER = 'touchenter', TOUCHLEAVE = 'touchleave', NAME = 'name', SET = 'set', SHAPE = 'Shape', SPACE = ' ', STAGE = 'stage', TRANSFORM = 'transform', UPPER_STAGE = 'Stage', VISIBLE = 'visible', TRANSFORM_CHANGE_STR = [\n 'xChange.konva',\n 'yChange.konva',\n 'scaleXChange.konva',\n 'scaleYChange.konva',\n 'skewXChange.konva',\n 'skewYChange.konva',\n 'rotationChange.konva',\n 'offsetXChange.konva',\n 'offsetYChange.konva',\n 'transformsEnabledChange.konva',\n].join(SPACE);\nlet idCounter = 1;\nexport class Node {\n constructor(config) {\n this._id = idCounter++;\n this.eventListeners = {};\n this.attrs = {};\n this.index = 0;\n this._allEventListeners = null;\n this.parent = null;\n this._cache = new Map();\n this._attachedDepsListeners = new Map();\n this._lastPos = null;\n this._batchingTransformChange = false;\n this._needClearTransformCache = false;\n this._filterUpToDate = false;\n this._isUnderCache = false;\n this._dragEventId = null;\n this._shouldFireChangeEvents = false;\n this.setAttrs(config);\n this._shouldFireChangeEvents = true;\n }\n hasChildren() {\n return false;\n }\n _clearCache(attr) {\n if ((attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM) &&\n this._cache.get(attr)) {\n this._cache.get(attr).dirty = true;\n }\n else if (attr) {\n this._cache.delete(attr);\n }\n else {\n this._cache.clear();\n }\n }\n _getCache(attr, privateGetter) {\n let cache = this._cache.get(attr);\n const isTransform = attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM;\n const invalid = cache === undefined || (isTransform && cache.dirty === true);\n if (invalid) {\n cache = privateGetter.call(this);\n this._cache.set(attr, cache);\n }\n return cache;\n }\n _calculate(name, deps, getter) {\n if (!this._attachedDepsListeners.get(name)) {\n const depsString = deps.map((dep) => dep + 'Change.konva').join(SPACE);\n this.on(depsString, () => {\n this._clearCache(name);\n });\n this._attachedDepsListeners.set(name, true);\n }\n return this._getCache(name, getter);\n }\n _getCanvasCache() {\n return this._cache.get(CANVAS);\n }\n _clearSelfAndDescendantCache(attr) {\n this._clearCache(attr);\n if (attr === ABSOLUTE_TRANSFORM) {\n this.fire('absoluteTransformChange');\n }\n }\n static _runAfterAbsTransformCascade(cb) {\n if (Node._absTransformCascadeDepth > 0) {\n Node._pendingAfterCascade.push(cb);\n }\n else {\n cb();\n }\n }\n clearCache() {\n if (this._cache.has(CANVAS)) {\n const { scene, filter, hit } = this._cache.get(CANVAS);\n Util.releaseCanvas(scene._canvas, filter._canvas, ...(hit ? [hit._canvas] : []));\n this._cache.delete(CANVAS);\n }\n this._clearSelfAndDescendantCache();\n this._requestDraw();\n return this;\n }\n cache(config) {\n const conf = config || {};\n let rect = {};\n if (conf.x === undefined ||\n conf.y === undefined ||\n conf.width === undefined ||\n conf.height === undefined) {\n rect = this.getClientRect({\n skipTransform: true,\n relativeTo: this.getParent() || undefined,\n });\n }\n let width = Math.ceil(conf.width || rect.width), height = Math.ceil(conf.height || rect.height), pixelRatio = conf.pixelRatio, x = conf.x === undefined ? Math.floor(rect.x) : conf.x, y = conf.y === undefined ? Math.floor(rect.y) : conf.y, offset = conf.offset || 0, drawBorder = conf.drawBorder || false, hitCanvasPixelRatio = conf.hitCanvasPixelRatio || 1;\n if (!width || !height) {\n Util.error('Can not cache the node. Width or height of the node equals 0. Caching is skipped.');\n return;\n }\n const extraPaddingX = Math.abs(Math.round(rect.x) - x) > 0.5 ? 1 : 0;\n const extraPaddingY = Math.abs(Math.round(rect.y) - y) > 0.5 ? 1 : 0;\n width += offset * 2 + extraPaddingX;\n height += offset * 2 + extraPaddingY;\n x -= offset;\n y -= offset;\n const cachedSceneCanvas = new SceneCanvas({\n pixelRatio: pixelRatio,\n width: width,\n height: height,\n }), cachedFilterCanvas = new SceneCanvas({\n pixelRatio: pixelRatio,\n width: 0,\n height: 0,\n willReadFrequently: true,\n }), sceneContext = cachedSceneCanvas.getContext();\n const bufferCanvas = new SceneCanvas({\n width: cachedSceneCanvas.width / cachedSceneCanvas.pixelRatio + Math.abs(x),\n height: cachedSceneCanvas.height / cachedSceneCanvas.pixelRatio + Math.abs(y),\n pixelRatio: cachedSceneCanvas.pixelRatio,\n }), bufferContext = bufferCanvas.getContext();\n cachedSceneCanvas.isCache = true;\n this._cache.delete(CANVAS);\n this._filterUpToDate = false;\n if (conf.imageSmoothingEnabled === false) {\n cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;\n cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;\n }\n sceneContext.save();\n bufferContext.save();\n sceneContext.translate(-x, -y);\n bufferContext.translate(-x, -y);\n bufferCanvas.x = x;\n bufferCanvas.y = y;\n this._isUnderCache = true;\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this.drawScene(cachedSceneCanvas, this, bufferCanvas);\n this._isUnderCache = false;\n sceneContext.restore();\n if (drawBorder) {\n sceneContext.save();\n sceneContext.beginPath();\n sceneContext.rect(0, 0, width, height);\n sceneContext.closePath();\n sceneContext.setAttr('strokeStyle', 'red');\n sceneContext.setAttr('lineWidth', 5);\n sceneContext.stroke();\n sceneContext.restore();\n }\n Util.releaseCanvas(bufferCanvas._canvas);\n this._cache.set(CANVAS, {\n scene: cachedSceneCanvas,\n filter: cachedFilterCanvas,\n hit: null,\n hitConfig: {\n pixelRatio: hitCanvasPixelRatio,\n width: width,\n height: height,\n },\n x: x,\n y: y,\n });\n this._requestDraw();\n return this;\n }\n _getCachedHitCanvas(top) {\n if (top === this) {\n return null;\n }\n const cache = this._getCanvasCache();\n if (!cache) {\n return null;\n }\n if (cache.hit) {\n return cache.hit;\n }\n const hitCanvas = new HitCanvas(cache.hitConfig);\n hitCanvas.isCache = true;\n const hitContext = hitCanvas.getContext();\n hitContext.save();\n hitContext.translate(-cache.x, -cache.y);\n this.drawHit(hitCanvas, this);\n hitContext.restore();\n cache.hit = hitCanvas;\n return hitCanvas;\n }\n isCached() {\n return this._cache.has(CANVAS);\n }\n getClientRect(config) {\n throw new Error('abstract \"getClientRect\" method call');\n }\n _transformedRect(rect, top) {\n const points = [\n { x: rect.x, y: rect.y },\n { x: rect.x + rect.width, y: rect.y },\n { x: rect.x + rect.width, y: rect.y + rect.height },\n { x: rect.x, y: rect.y + rect.height },\n ];\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n const trans = this.getAbsoluteTransform(top);\n points.forEach(function (point) {\n const transformed = trans.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n _drawCachedSceneCanvas(context) {\n context.save();\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n const canvasCache = this._getCanvasCache();\n context.translate(canvasCache.x, canvasCache.y);\n const cacheCanvas = this._getCachedSceneCanvas();\n const ratio = cacheCanvas.pixelRatio;\n context.drawImage(cacheCanvas._canvas, 0, 0, cacheCanvas.width / ratio, cacheCanvas.height / ratio);\n context.restore();\n }\n _drawCachedHitCanvas(context, hitCanvas) {\n const canvasCache = this._getCanvasCache();\n context.save();\n context.translate(canvasCache.x, canvasCache.y);\n context.drawImage(hitCanvas._canvas, 0, 0, hitCanvas.width / hitCanvas.pixelRatio, hitCanvas.height / hitCanvas.pixelRatio);\n context.restore();\n }\n _getCachedSceneCanvas() {\n let filters = this.filters(), cachedCanvas = this._getCanvasCache(), sceneCanvas = cachedCanvas.scene, filterCanvas = cachedCanvas.filter, filterContext = filterCanvas.getContext(), len, imageData, n, filter;\n if (!filters || filters.length === 0) {\n return sceneCanvas;\n }\n if (this._filterUpToDate) {\n return filterCanvas;\n }\n let useNativeOnly = true;\n for (let i = 0; i < filters.length; i++) {\n const fallbackRequired = typeof filters[i] === 'string' && !isCSSFiltersSupported();\n if (fallbackRequired) {\n }\n if (typeof filters[i] !== 'string' || !isCSSFiltersSupported()) {\n useNativeOnly = false;\n break;\n }\n }\n const ratio = sceneCanvas.pixelRatio;\n filterCanvas.setSize(sceneCanvas.width / sceneCanvas.pixelRatio, sceneCanvas.height / sceneCanvas.pixelRatio);\n if (useNativeOnly) {\n const finalFilter = filters.join(' ');\n filterContext.save();\n filterContext.setAttr('filter', finalFilter);\n filterContext.drawImage(sceneCanvas._canvas, 0, 0, sceneCanvas.getWidth() / ratio, sceneCanvas.getHeight() / ratio);\n filterContext.restore();\n this._filterUpToDate = true;\n return filterCanvas;\n }\n try {\n len = filters.length;\n filterContext.clear();\n filterContext.drawImage(sceneCanvas._canvas, 0, 0, sceneCanvas.getWidth() / ratio, sceneCanvas.getHeight() / ratio);\n imageData = filterContext.getImageData(0, 0, filterCanvas.getWidth(), filterCanvas.getHeight());\n for (n = 0; n < len; n++) {\n filter = filters[n];\n if (typeof filter === 'string') {\n filter = parseCSSFilters(filter);\n }\n filter.call(this, imageData);\n filterContext.putImageData(imageData, 0, 0);\n }\n }\n catch (e) {\n Util.error('Unable to apply filter. ' +\n e.message +\n ' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n }\n this._filterUpToDate = true;\n return filterCanvas;\n }\n on(...args) {\n const evtStr = args[0];\n const selectorOrHandler = args[1];\n const handler = args[2];\n if (this._cache) {\n this._cache.delete(ALL_LISTENERS);\n }\n if (args.length === 3) {\n return this._delegate.apply(this, args);\n }\n const events = evtStr.split(SPACE);\n for (let n = 0; n < events.length; n++) {\n const event = events[n];\n const parts = event.split('.');\n const baseEvent = parts[0];\n const name = parts[1] || '';\n if (!this.eventListeners[baseEvent]) {\n this.eventListeners[baseEvent] = [];\n }\n this.eventListeners[baseEvent].push({ name, handler: selectorOrHandler });\n }\n return this;\n }\n off(evtStr, callback) {\n let events = (evtStr || '').split(SPACE), len = events.length, n, t, event, parts, baseEvent, name;\n this._cache && this._cache.delete(ALL_LISTENERS);\n if (!evtStr) {\n for (t in this.eventListeners) {\n this._off(t);\n }\n }\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1];\n if (baseEvent) {\n if (this.eventListeners[baseEvent]) {\n this._off(baseEvent, name, callback);\n }\n }\n else {\n for (t in this.eventListeners) {\n this._off(t, name, callback);\n }\n }\n }\n return this;\n }\n dispatchEvent(evt) {\n const e = {\n target: this,\n type: evt.type,\n evt: evt,\n };\n this.fire(evt.type, e);\n return this;\n }\n addEventListener(type, handler) {\n this.on(type, function (evt) {\n handler.call(this, evt.evt);\n });\n return this;\n }\n removeEventListener(type) {\n this.off(type);\n return this;\n }\n _delegate(event, selector, handler) {\n const stopNode = this;\n this.on(event, function (evt) {\n const targets = evt.target.findAncestors(selector, true, stopNode);\n for (let i = 0; i < targets.length; i++) {\n evt = Util.cloneObject(evt);\n evt.currentTarget = targets[i];\n handler.call(targets[i], evt);\n }\n });\n return this;\n }\n remove() {\n if (this.isDragging()) {\n this.stopDrag();\n }\n DD._dragElements.delete(this._id);\n DD._dragElements.forEach((elem, key) => {\n if (this.isAncestorOf(elem.node)) {\n DD._dragElements.delete(key);\n }\n });\n this._remove();\n return this;\n }\n _clearCaches() {\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this._clearSelfAndDescendantCache(STAGE);\n this._clearSelfAndDescendantCache(VISIBLE);\n this._clearSelfAndDescendantCache(LISTENING);\n }\n _remove() {\n this._clearCaches();\n const parent = this.getParent();\n if (parent && parent.children) {\n parent.children.splice(this.index, 1);\n parent._setChildrenIndices();\n this.parent = null;\n }\n }\n destroy() {\n this.remove();\n this.clearCache();\n return this;\n }\n getAttr(attr) {\n const method = 'get' + Util._capitalize(attr);\n if (Util._isFunction(this[method])) {\n return this[method]();\n }\n return this.attrs[attr];\n }\n getAncestors() {\n let parent = this.getParent(), ancestors = [];\n while (parent) {\n ancestors.push(parent);\n parent = parent.getParent();\n }\n return ancestors;\n }\n getAttrs() {\n return this.attrs || {};\n }\n setAttrs(config) {\n this._batchTransformChanges(() => {\n let key, method;\n if (!config) {\n return this;\n }\n for (key in config) {\n if (key === CHILDREN) {\n continue;\n }\n method = SET + Util._capitalize(key);\n if (Util._isFunction(this[method])) {\n this[method](config[key]);\n }\n else {\n this._setAttr(key, config[key]);\n }\n }\n });\n return this;\n }\n isListening() {\n return this._getCache(LISTENING, this._isListening);\n }\n _isListening(relativeTo) {\n const listening = this.listening();\n if (!listening) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isListening(relativeTo);\n }\n else {\n return true;\n }\n }\n isVisible() {\n return this._getCache(VISIBLE, this._isVisible);\n }\n _isVisible(relativeTo) {\n const visible = this.visible();\n if (!visible) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isVisible(relativeTo);\n }\n else {\n return true;\n }\n }\n shouldDrawHit(top, skipDragCheck = false) {\n if (top) {\n return this._isVisible(top) && this._isListening(top);\n }\n const layer = this.getLayer();\n let layerUnderDrag = false;\n DD._dragElements.forEach((elem) => {\n if (elem.dragStatus !== 'dragging') {\n return;\n }\n else if (elem.node.nodeType === 'Stage') {\n layerUnderDrag = true;\n }\n else if (elem.node.getLayer() === layer) {\n layerUnderDrag = true;\n }\n });\n const dragSkip = !skipDragCheck &&\n !Konva.hitOnDragEnabled &&\n (layerUnderDrag || Konva.isTransforming());\n return this.isListening() && this.isVisible() && !dragSkip;\n }\n show() {\n this.visible(true);\n return this;\n }\n hide() {\n this.visible(false);\n return this;\n }\n getZIndex() {\n return this.index || 0;\n }\n getAbsoluteZIndex() {\n let depth = this.getDepth(), that = this, index = 0, nodes, len, n, child;\n function addChildren(children) {\n nodes = [];\n len = children.length;\n for (n = 0; n < len; n++) {\n child = children[n];\n index++;\n if (child.nodeType !== SHAPE) {\n nodes = nodes.concat(child.getChildren().slice());\n }\n if (child._id === that._id) {\n n = len;\n }\n }\n if (nodes.length > 0 && nodes[0].getDepth() <= depth) {\n addChildren(nodes);\n }\n }\n const stage = this.getStage();\n if (that.nodeType !== UPPER_STAGE && stage) {\n addChildren(stage.getChildren());\n }\n return index;\n }\n getDepth() {\n let depth = 0, parent = this.parent;\n while (parent) {\n depth++;\n parent = parent.parent;\n }\n return depth;\n }\n _batchTransformChanges(func) {\n this._batchingTransformChange = true;\n func();\n this._batchingTransformChange = false;\n if (this._needClearTransformCache) {\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n }\n this._needClearTransformCache = false;\n }\n setPosition(pos) {\n this._batchTransformChanges(() => {\n this.x(pos.x);\n this.y(pos.y);\n });\n return this;\n }\n getPosition() {\n return {\n x: this.x(),\n y: this.y(),\n };\n }\n getRelativePointerPosition() {\n const stage = this.getStage();\n if (!stage) {\n return null;\n }\n const pos = stage.getPointerPosition();\n if (!pos) {\n return null;\n }\n const transform = this.getAbsoluteTransform().copy();\n transform.invert();\n return transform.point(pos);\n }\n getAbsolutePosition(top) {\n let haveCachedParent = false;\n let parent = this.parent;\n while (parent) {\n if (parent.isCached()) {\n haveCachedParent = true;\n break;\n }\n parent = parent.parent;\n }\n if (haveCachedParent && !top) {\n top = true;\n }\n const absoluteMatrix = this.getAbsoluteTransform(top).getMatrix(), absoluteTransform = new Transform(), offset = this.offset();\n absoluteTransform.m = absoluteMatrix.slice();\n absoluteTransform.translate(offset.x, offset.y);\n return absoluteTransform.getTranslation();\n }\n setAbsolutePosition(pos) {\n const { x, y, ...origTrans } = this._clearTransform();\n this.attrs.x = x;\n this.attrs.y = y;\n this._clearCache(TRANSFORM);\n const it = this._getAbsoluteTransform().copy();\n it.invert();\n it.translate(pos.x, pos.y);\n pos = {\n x: this.attrs.x + it.getTranslation().x,\n y: this.attrs.y + it.getTranslation().y,\n };\n this._setTransform(origTrans);\n this.setPosition({ x: pos.x, y: pos.y });\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n return this;\n }\n _setTransform(trans) {\n let key;\n for (key in trans) {\n this.attrs[key] = trans[key];\n }\n }\n _clearTransform() {\n const trans = {\n x: this.x(),\n y: this.y(),\n rotation: this.rotation(),\n scaleX: this.scaleX(),\n scaleY: this.scaleY(),\n offsetX: this.offsetX(),\n offsetY: this.offsetY(),\n skewX: this.skewX(),\n skewY: this.skewY(),\n };\n this.attrs.x = 0;\n this.attrs.y = 0;\n this.attrs.rotation = 0;\n this.attrs.scaleX = 1;\n this.attrs.scaleY = 1;\n this.attrs.offsetX = 0;\n this.attrs.offsetY = 0;\n this.attrs.skewX = 0;\n this.attrs.skewY = 0;\n return trans;\n }\n move(change) {\n let changeX = change.x, changeY = change.y, x = this.x(), y = this.y();\n if (changeX !== undefined) {\n x += changeX;\n }\n if (changeY !== undefined) {\n y += changeY;\n }\n this.setPosition({ x: x, y: y });\n return this;\n }\n _eachAncestorReverse(func, top) {\n let family = [], parent = this.getParent(), len, n;\n if (top && top._id === this._id) {\n return;\n }\n family.unshift(this);\n while (parent && (!top || parent._id !== top._id)) {\n family.unshift(parent);\n parent = parent.parent;\n }\n len = family.length;\n for (n = 0; n < len; n++) {\n func(family[n]);\n }\n }\n rotate(theta) {\n this.rotation(this.rotation() + theta);\n return this;\n }\n moveToTop() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveToTop function is ignored.');\n return false;\n }\n const index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.push(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveUp() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveUp function is ignored.');\n return false;\n }\n const index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index + 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveDown() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveDown function is ignored.');\n return false;\n }\n const index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index - 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveToBottom function is ignored.');\n return false;\n }\n const index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.unshift(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n setZIndex(zIndex) {\n if (!this.parent) {\n Util.warn('Node has no parent. zIndex parameter is ignored.');\n return this;\n }\n if (zIndex < 0 || zIndex >= this.parent.children.length) {\n Util.warn('Unexpected value ' +\n zIndex +\n ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +\n (this.parent.children.length - 1) +\n '.');\n }\n const index = this.index;\n this.parent.children.splice(index, 1);\n this.parent.children.splice(zIndex, 0, this);\n this.parent._setChildrenIndices();\n return this;\n }\n getAbsoluteOpacity() {\n return this._getCache(ABSOLUTE_OPACITY, this._getAbsoluteOpacity);\n }\n _getAbsoluteOpacity() {\n let absOpacity = this.opacity();\n const parent = this.getParent();\n if (parent && !parent._isUnderCache) {\n absOpacity *= parent.getAbsoluteOpacity();\n }\n return absOpacity;\n }\n moveTo(newContainer) {\n if (this.getParent() !== newContainer) {\n this._remove();\n newContainer.add(this);\n }\n return this;\n }\n toObject() {\n let attrs = this.getAttrs(), key, val, getter, defaultValue, nonPlainObject;\n const obj = {\n attrs: {},\n className: this.getClassName(),\n };\n for (key in attrs) {\n val = attrs[key];\n nonPlainObject =\n Util.isObject(val) && !Util._isPlainObject(val) && !Util._isArray(val);\n if (nonPlainObject) {\n continue;\n }\n getter = typeof this[key] === 'function' && this[key];\n delete attrs[key];\n defaultValue = getter ? getter.call(this) : null;\n attrs[key] = val;\n if (defaultValue !== val) {\n obj.attrs[key] = val;\n }\n }\n return Util._prepareToStringify(obj);\n }\n toJSON() {\n return JSON.stringify(this.toObject());\n }\n getParent() {\n return this.parent;\n }\n findAncestors(selector, includeSelf, stopNode) {\n const res = [];\n if (includeSelf && this._isMatch(selector)) {\n res.push(this);\n }\n let ancestor = this.parent;\n while (ancestor) {\n if (ancestor === stopNode) {\n return res;\n }\n if (ancestor._isMatch(selector)) {\n res.push(ancestor);\n }\n ancestor = ancestor.parent;\n }\n return res;\n }\n isAncestorOf(node) {\n return false;\n }\n findAncestor(selector, includeSelf, stopNode) {\n return this.findAncestors(selector, includeSelf, stopNode)[0];\n }\n _isMatch(selector) {\n if (!selector) {\n return false;\n }\n if (typeof selector === 'function') {\n return selector(this);\n }\n let selectorArr = selector.replace(/ /g, '').split(','), len = selectorArr.length, n, sel;\n for (n = 0; n < len; n++) {\n sel = selectorArr[n];\n if (!Util.isValidSelector(sel)) {\n Util.warn('Selector \"' +\n sel +\n '\" is invalid. Allowed selectors examples are \"#foo\", \".bar\" or \"Group\".');\n Util.warn('If you have a custom shape with such className, please change it to start with upper letter like \"Triangle\".');\n Util.warn('Konva is awesome, right?');\n }\n if (sel.charAt(0) === '#') {\n if (this.id() === sel.slice(1)) {\n return true;\n }\n }\n else if (sel.charAt(0) === '.') {\n if (this.hasName(sel.slice(1))) {\n return true;\n }\n }\n else if (this.className === sel || this.nodeType === sel) {\n return true;\n }\n }\n return false;\n }\n getLayer() {\n const parent = this.getParent();\n return parent ? parent.getLayer() : null;\n }\n getStage() {\n return this._getCache(STAGE, this._getStage);\n }\n _getStage() {\n const parent = this.getParent();\n if (parent) {\n return parent.getStage();\n }\n else {\n return null;\n }\n }\n fire(eventType, evt = {}, bubble) {\n evt.target = evt.target || this;\n if (bubble) {\n this._fireAndBubble(eventType, evt);\n }\n else {\n this._fire(eventType, evt);\n }\n return this;\n }\n getAbsoluteTransform(top) {\n if (top) {\n return this._getAbsoluteTransform(top);\n }\n else {\n return this._getCache(ABSOLUTE_TRANSFORM, this._getAbsoluteTransform);\n }\n }\n _getAbsoluteTransform(top) {\n let at;\n if (top) {\n at = new Transform();\n this._eachAncestorReverse(function (node) {\n const transformsEnabled = node.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(node.getTransform());\n }\n else if (transformsEnabled === 'position') {\n at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());\n }\n }, top);\n return at;\n }\n else {\n at = this._cache.get(ABSOLUTE_TRANSFORM) || new Transform();\n if (this.parent) {\n this.parent.getAbsoluteTransform().copyInto(at);\n }\n else {\n at.reset();\n }\n const transformsEnabled = this.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(this.getTransform());\n }\n else if (transformsEnabled === 'position') {\n const x = this.attrs.x || 0;\n const y = this.attrs.y || 0;\n const offsetX = this.attrs.offsetX || 0;\n const offsetY = this.attrs.offsetY || 0;\n at.translate(x - offsetX, y - offsetY);\n }\n at.dirty = false;\n return at;\n }\n }\n getAbsoluteScale(top) {\n let parent = this;\n while (parent) {\n if (parent._isUnderCache) {\n top = parent;\n }\n parent = parent.getParent();\n }\n const transform = this.getAbsoluteTransform(top);\n const attrs = transform.decompose();\n return {\n x: attrs.scaleX,\n y: attrs.scaleY,\n };\n }\n getAbsoluteRotation() {\n return this.getAbsoluteTransform().decompose().rotation;\n }\n getTransform() {\n return this._getCache(TRANSFORM, this._getTransform);\n }\n _getTransform() {\n var _a, _b;\n const m = this._cache.get(TRANSFORM) || new Transform();\n m.reset();\n const x = this.x(), y = this.y(), rotation = Konva.getAngle(this.rotation()), scaleX = (_a = this.attrs.scaleX) !== null && _a !== void 0 ? _a : 1, scaleY = (_b = this.attrs.scaleY) !== null && _b !== void 0 ? _b : 1, skewX = this.attrs.skewX || 0, skewY = this.attrs.skewY || 0, offsetX = this.attrs.offsetX || 0, offsetY = this.attrs.offsetY || 0;\n if (x !== 0 || y !== 0) {\n m.translate(x, y);\n }\n if (rotation !== 0) {\n m.rotate(rotation);\n }\n if (skewX !== 0 || skewY !== 0) {\n m.skew(skewX, skewY);\n }\n if (scaleX !== 1 || scaleY !== 1) {\n m.scale(scaleX, scaleY);\n }\n if (offsetX !== 0 || offsetY !== 0) {\n m.translate(-1 * offsetX, -1 * offsetY);\n }\n m.dirty = false;\n return m;\n }\n clone(obj) {\n let attrs = Util.cloneObject(this.attrs), key, allListeners, len, n, listener;\n for (key in obj) {\n attrs[key] = obj[key];\n }\n const node = new this.constructor(attrs);\n for (key in this.eventListeners) {\n allListeners = this.eventListeners[key];\n len = allListeners.length;\n for (n = 0; n < len; n++) {\n listener = allListeners[n];\n if (listener.name.indexOf(KONVA) < 0) {\n if (!node.eventListeners[key]) {\n node.eventListeners[key] = [];\n }\n node.eventListeners[key].push(listener);\n }\n }\n }\n return node;\n }\n _toKonvaCanvas(config) {\n config = config || {};\n const box = this.getClientRect();\n const stage = this.getStage(), x = config.x !== undefined ? config.x : Math.floor(box.x), y = config.y !== undefined ? config.y : Math.floor(box.y), pixelRatio = config.pixelRatio || 1, canvas = new SceneCanvas({\n width: config.width || Math.ceil(box.width) || (stage ? stage.width() : 0),\n height: config.height ||\n Math.ceil(box.height) ||\n (stage ? stage.height() : 0),\n pixelRatio: pixelRatio,\n }), context = canvas.getContext();\n const bufferCanvas = new SceneCanvas({\n width: canvas.width / canvas.pixelRatio + Math.abs(x),\n height: canvas.height / canvas.pixelRatio + Math.abs(y),\n pixelRatio: canvas.pixelRatio,\n });\n if (config.imageSmoothingEnabled === false) {\n context._context.imageSmoothingEnabled = false;\n }\n context.save();\n if (x || y) {\n context.translate(-1 * x, -1 * y);\n }\n this.drawScene(canvas, undefined, bufferCanvas);\n context.restore();\n return canvas;\n }\n toCanvas(config) {\n return this._toKonvaCanvas(config)._canvas;\n }\n toDataURL(config) {\n config = config || {};\n const mimeType = config.mimeType || null, quality = config.quality || null;\n const url = this._toKonvaCanvas(config).toDataURL(mimeType, quality);\n if (config.callback) {\n config.callback(url);\n }\n return url;\n }\n toImage(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n Util._urlToImage(this.toDataURL(config), function (img) {\n resolve(img);\n callback === null || callback === void 0 ? void 0 : callback(img);\n });\n }\n catch (err) {\n reject(err);\n }\n });\n }\n toBlob(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n this.toCanvas(config).toBlob((blob) => {\n resolve(blob);\n callback === null || callback === void 0 ? void 0 : callback(blob);\n }, config === null || config === void 0 ? void 0 : config.mimeType, config === null || config === void 0 ? void 0 : config.quality);\n }\n catch (err) {\n reject(err);\n }\n });\n }\n setSize(size) {\n this.width(size.width);\n this.height(size.height);\n return this;\n }\n getSize() {\n return {\n width: this.width(),\n height: this.height(),\n };\n }\n getClassName() {\n return this.className || this.nodeType;\n }\n getType() {\n return this.nodeType;\n }\n getDragDistance() {\n if (this.attrs.dragDistance !== undefined) {\n return this.attrs.dragDistance;\n }\n else if (this.parent) {\n return this.parent.getDragDistance();\n }\n else {\n return Konva.dragDistance;\n }\n }\n _off(type, name, callback) {\n let evtListeners = this.eventListeners[type], i, evtName, handler;\n for (i = 0; i < evtListeners.length; i++) {\n evtName = evtListeners[i].name;\n handler = evtListeners[i].handler;\n if ((evtName !== 'konva' || name === 'konva') &&\n (!name || evtName === name) &&\n (!callback || callback === handler)) {\n evtListeners.splice(i, 1);\n if (evtListeners.length === 0) {\n delete this.eventListeners[type];\n break;\n }\n i--;\n }\n }\n }\n _fireChangeEvent(attr, oldVal, newVal) {\n this._fire(attr + CHANGE, {\n oldVal: oldVal,\n newVal: newVal,\n });\n }\n addName(name) {\n if (!this.hasName(name)) {\n const oldName = this.name();\n const newName = oldName ? oldName + ' ' + name : name;\n this.name(newName);\n }\n return this;\n }\n hasName(name) {\n if (!name) {\n return false;\n }\n const fullName = this.name();\n if (!fullName) {\n return false;\n }\n const names = (fullName || '').split(/\\s/g);\n return names.indexOf(name) !== -1;\n }\n removeName(name) {\n const names = (this.name() || '').split(/\\s/g);\n const index = names.indexOf(name);\n if (index !== -1) {\n names.splice(index, 1);\n this.name(names.join(' '));\n }\n return this;\n }\n setAttr(attr, val) {\n const func = this[SET + Util._capitalize(attr)];\n if (Util._isFunction(func)) {\n func.call(this, val);\n }\n else {\n this._setAttr(attr, val);\n }\n return this;\n }\n _requestDraw() {\n if (Konva.autoDrawEnabled) {\n const drawNode = this.getLayer() || this.getStage();\n drawNode === null || drawNode === void 0 ? void 0 : drawNode.batchDraw();\n }\n }\n _setAttr(key, val) {\n const oldVal = this.attrs[key];\n if (oldVal === val && !Util.isObject(val)) {\n return;\n }\n if (val === undefined || val === null) {\n delete this.attrs[key];\n }\n else {\n this.attrs[key] = val;\n }\n if (this._shouldFireChangeEvents) {\n this._fireChangeEvent(key, oldVal, val);\n }\n this._requestDraw();\n }\n _setComponentAttr(key, component, val) {\n let oldVal;\n if (val !== undefined) {\n oldVal = this.attrs[key];\n if (!oldVal) {\n this.attrs[key] = this.getAttr(key);\n }\n this.attrs[key][component] = val;\n this._fireChangeEvent(key, oldVal, val);\n }\n }\n _fireAndBubble(eventType, evt, compareShape) {\n if (evt && this.nodeType === SHAPE) {\n evt.target = this;\n }\n const nonBubbling = [\n MOUSEENTER,\n MOUSELEAVE,\n POINTERENTER,\n POINTERLEAVE,\n TOUCHENTER,\n TOUCHLEAVE,\n ];\n const shouldStop = nonBubbling.indexOf(eventType) !== -1 &&\n ((compareShape &&\n (this === compareShape ||\n (this.isAncestorOf && this.isAncestorOf(compareShape)))) ||\n (this.nodeType === 'Stage' && !compareShape));\n if (!shouldStop) {\n this._fire(eventType, evt);\n const stopBubble = nonBubbling.indexOf(eventType) !== -1 &&\n compareShape &&\n compareShape.isAncestorOf &&\n compareShape.isAncestorOf(this) &&\n !compareShape.isAncestorOf(this.parent);\n if (((evt && !evt.cancelBubble) || !evt) &&\n this.parent &&\n this.parent.isListening() &&\n !stopBubble) {\n if (compareShape && compareShape.parent) {\n this._fireAndBubble.call(this.parent, eventType, evt, compareShape);\n }\n else {\n this._fireAndBubble.call(this.parent, eventType, evt);\n }\n }\n }\n }\n _getProtoListeners(eventType) {\n var _a, _b;\n const { nodeType } = this;\n const allListeners = Node.protoListenerMap.get(nodeType) || {};\n let events = allListeners === null || allListeners === void 0 ? void 0 : allListeners[eventType];\n if (events === undefined) {\n events = [];\n const seen = new Set();\n let obj = Object.getPrototypeOf(this);\n while (obj) {\n const hierarchyEvents = (_b = (_a = obj.eventListeners) === null || _a === void 0 ? void 0 : _a[eventType]) !== null && _b !== void 0 ? _b : [];\n for (let i = 0; i < hierarchyEvents.length; i++) {\n const entry = hierarchyEvents[i];\n if (!seen.has(entry)) {\n seen.add(entry);\n events.push(entry);\n }\n }\n obj = Object.getPrototypeOf(obj);\n }\n allListeners[eventType] = events;\n Node.protoListenerMap.set(nodeType, allListeners);\n }\n return events;\n }\n _fire(eventType, evt) {\n evt = evt || {};\n evt.currentTarget = this;\n evt.type = eventType;\n const topListeners = this._getProtoListeners(eventType);\n if (topListeners) {\n for (let i = 0; i < topListeners.length; i++) {\n topListeners[i].handler.call(this, evt);\n }\n }\n const selfListeners = this.eventListeners[eventType];\n if (selfListeners) {\n const list = selfListeners.slice();\n const origLen = list.length;\n for (let i = 0; i < list.length; i++) {\n list[i].handler.call(this, evt);\n }\n const liveListeners = this.eventListeners[eventType];\n if (liveListeners) {\n for (let i = origLen; i < liveListeners.length; i++) {\n liveListeners[i].handler.call(this, evt);\n }\n }\n }\n }\n draw() {\n this.drawScene();\n this.drawHit();\n return this;\n }\n _createDragElement(evt) {\n const pointerId = evt ? evt.pointerId : undefined;\n const stage = this.getStage();\n const ap = this.getAbsolutePosition();\n if (!stage) {\n return;\n }\n const pos = stage._getPointerById(pointerId) ||\n stage._changedPointerPositions[0] ||\n ap;\n DD._dragElements.set(this._id, {\n node: this,\n startPointerPos: pos,\n offset: {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n },\n dragStatus: 'ready',\n pointerId,\n startEvent: evt,\n });\n }\n startDrag(evt, bubbleEvent = true) {\n if (!DD._dragElements.has(this._id)) {\n this._createDragElement(evt);\n }\n const elem = DD._dragElements.get(this._id);\n elem.dragStatus = 'dragging';\n this.fire('dragstart', {\n type: 'dragstart',\n target: this,\n evt: (elem.startEvent && elem.startEvent.evt) || (evt && evt.evt),\n }, bubbleEvent);\n }\n _setDragPosition(evt, elem) {\n const pos = this.getStage()._getPointerById(elem.pointerId);\n if (!pos) {\n return;\n }\n let newNodePos = {\n x: pos.x - elem.offset.x,\n y: pos.y - elem.offset.y,\n };\n const dbf = this.dragBoundFunc();\n if (dbf !== undefined) {\n const bounded = dbf.call(this, newNodePos, evt);\n if (!bounded) {\n Util.warn('dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.');\n }\n else {\n newNodePos = bounded;\n }\n }\n if (!this._lastPos ||\n this._lastPos.x !== newNodePos.x ||\n this._lastPos.y !== newNodePos.y) {\n this.setAbsolutePosition(newNodePos);\n this._requestDraw();\n }\n this._lastPos = newNodePos;\n }\n stopDrag(evt) {\n const elem = DD._dragElements.get(this._id);\n if (elem) {\n elem.dragStatus = 'stopped';\n }\n DD._endDragBefore(evt);\n DD._endDragAfter(evt);\n }\n setDraggable(draggable) {\n this._setAttr('draggable', draggable);\n this._dragChange();\n }\n isDragging() {\n const elem = DD._dragElements.get(this._id);\n return elem ? elem.dragStatus === 'dragging' : false;\n }\n _listenDrag() {\n this._dragCleanup();\n this.on('mousedown.konva touchstart.konva', function (evt) {\n const shouldCheckButton = evt.evt['button'] !== undefined;\n const canDrag = !shouldCheckButton || Konva.dragButtons.indexOf(evt.evt['button']) >= 0;\n if (!canDrag) {\n return;\n }\n if (this.isDragging()) {\n return;\n }\n let hasDraggingChild = false;\n DD._dragElements.forEach((elem) => {\n if (this.isAncestorOf(elem.node)) {\n hasDraggingChild = true;\n }\n });\n if (!hasDraggingChild) {\n this._createDragElement(evt);\n }\n });\n }\n _dragChange() {\n if (this.attrs.draggable) {\n this._listenDrag();\n }\n else {\n this._dragCleanup();\n const stage = this.getStage();\n if (!stage) {\n return;\n }\n const dragElement = DD._dragElements.get(this._id);\n const isDragging = dragElement && dragElement.dragStatus === 'dragging';\n const isReady = dragElement && dragElement.dragStatus === 'ready';\n if (isDragging) {\n this.stopDrag();\n }\n else if (isReady) {\n DD._dragElements.delete(this._id);\n }\n }\n }\n _dragCleanup() {\n this.off('mousedown.konva');\n this.off('touchstart.konva');\n }\n isClientRectOnScreen(margin = { x: 0, y: 0 }) {\n const stage = this.getStage();\n if (!stage) {\n return false;\n }\n const screenRect = {\n x: -margin.x,\n y: -margin.y,\n width: stage.width() + 2 * margin.x,\n height: stage.height() + 2 * margin.y,\n };\n return Util.haveIntersection(screenRect, this.getClientRect());\n }\n static create(data, container) {\n if (Util._isString(data)) {\n data = JSON.parse(data);\n }\n return this._createNode(data, container);\n }\n static _createNode(obj, container) {\n let className = Node.prototype.getClassName.call(obj), children = obj.children, no, len, n;\n if (container) {\n obj.attrs.container = container;\n }\n if (!Konva[className]) {\n Util.warn('Can not find a node with class name \"' +\n className +\n '\". Fallback to \"Shape\".');\n className = 'Shape';\n }\n const Class = Konva[className];\n no = new Class(obj.attrs);\n if (children) {\n len = children.length;\n for (n = 0; n < len; n++) {\n no.add(Node._createNode(children[n]));\n }\n }\n return no;\n }\n}\nNode._absTransformCascadeDepth = 0;\nNode._pendingAfterCascade = [];\nNode.protoListenerMap = new Map();\nNode.prototype.nodeType = 'Node';\nNode.prototype._attrsAffectingSize = [];\nNode.prototype.eventListeners = {};\nNode.prototype.on(TRANSFORM_CHANGE_STR, function () {\n if (this._batchingTransformChange) {\n this._needClearTransformCache = true;\n return;\n }\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n});\nNode.prototype.on('visibleChange.konva', function () {\n this._clearSelfAndDescendantCache(VISIBLE);\n});\nNode.prototype.on('listeningChange.konva', function () {\n this._clearSelfAndDescendantCache(LISTENING);\n});\nNode.prototype.on('opacityChange.konva', function () {\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n});\nconst addGetterSetter = Factory.addGetterSetter;\naddGetterSetter(Node, 'zIndex');\naddGetterSetter(Node, 'absolutePosition');\naddGetterSetter(Node, 'position');\naddGetterSetter(Node, 'x', 0, getNumberValidator());\naddGetterSetter(Node, 'y', 0, getNumberValidator());\naddGetterSetter(Node, 'globalCompositeOperation', 'source-over', getStringValidator());\naddGetterSetter(Node, 'opacity', 1, getNumberValidator());\naddGetterSetter(Node, 'name', '', getStringValidator());\naddGetterSetter(Node, 'id', '', getStringValidator());\naddGetterSetter(Node, 'rotation', 0, getNumberValidator());\nFactory.addComponentsGetterSetter(Node, 'scale', ['x', 'y']);\naddGetterSetter(Node, 'scaleX', 1, getNumberValidator());\naddGetterSetter(Node, 'scaleY', 1, getNumberValidator());\nFactory.addComponentsGetterSetter(Node, 'skew', ['x', 'y']);\naddGetterSetter(Node, 'skewX', 0, getNumberValidator());\naddGetterSetter(Node, 'skewY', 0, getNumberValidator());\nFactory.addComponentsGetterSetter(Node, 'offset', ['x', 'y']);\naddGetterSetter(Node, 'offsetX', 0, getNumberValidator());\naddGetterSetter(Node, 'offsetY', 0, getNumberValidator());\naddGetterSetter(Node, 'dragDistance', undefined, getNumberValidator());\naddGetterSetter(Node, 'width', 0, getNumberValidator());\naddGetterSetter(Node, 'height', 0, getNumberValidator());\naddGetterSetter(Node, 'listening', true, getBooleanValidator());\naddGetterSetter(Node, 'preventDefault', true, getBooleanValidator());\naddGetterSetter(Node, 'filters', undefined, function (val) {\n this._filterUpToDate = false;\n return val;\n});\naddGetterSetter(Node, 'visible', true, getBooleanValidator());\naddGetterSetter(Node, 'transformsEnabled', 'all', getStringValidator());\naddGetterSetter(Node, 'size');\naddGetterSetter(Node, 'dragBoundFunc');\naddGetterSetter(Node, 'draggable', false, getBooleanValidator());\nFactory.backCompat(Node, {\n rotateDeg: 'rotate',\n setRotationDeg: 'setRotation',\n getRotationDeg: 'getRotation',\n});\n","import { Factory } from \"./Factory.js\";\nimport { Node } from \"./Node.js\";\nimport { getNumberValidator } from \"./Validators.js\";\nexport class Container extends Node {\n constructor() {\n super(...arguments);\n this.children = [];\n }\n getChildren(filterFunc) {\n const children = this.children || [];\n if (filterFunc) {\n return children.filter(filterFunc);\n }\n return children;\n }\n hasChildren() {\n return this.getChildren().length > 0;\n }\n removeChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.remove();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n destroyChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.destroy();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n add(...children) {\n if (children.length === 0) {\n return this;\n }\n if (children.length > 1) {\n for (let i = 0; i < children.length; i++) {\n this.add(children[i]);\n }\n return this;\n }\n const child = children[0];\n if (child.getParent()) {\n child.moveTo(this);\n return this;\n }\n this._validateAdd(child);\n child.index = this.getChildren().length;\n child.parent = this;\n child._clearCaches();\n this.getChildren().push(child);\n this._fire('add', {\n child: child,\n });\n this._requestDraw();\n return this;\n }\n destroy() {\n if (this.hasChildren()) {\n this.destroyChildren();\n }\n super.destroy();\n return this;\n }\n find(selector) {\n return this._generalFind(selector, false);\n }\n findOne(selector) {\n const result = this._generalFind(selector, true);\n return result.length > 0 ? result[0] : undefined;\n }\n _generalFind(selector, findOne) {\n const retArr = [];\n this._descendants((node) => {\n const valid = node._isMatch(selector);\n if (valid) {\n retArr.push(node);\n }\n if (valid && findOne) {\n return true;\n }\n return false;\n });\n return retArr;\n }\n _descendants(fn) {\n let shouldStop = false;\n const children = this.getChildren();\n for (const child of children) {\n shouldStop = fn(child);\n if (shouldStop) {\n return true;\n }\n if (!child.hasChildren()) {\n continue;\n }\n shouldStop = child._descendants(fn);\n if (shouldStop) {\n return true;\n }\n }\n return false;\n }\n toObject() {\n const obj = Node.prototype.toObject.call(this);\n obj.children = [];\n this.getChildren().forEach((child) => {\n obj.children.push(child.toObject());\n });\n return obj;\n }\n isAncestorOf(node) {\n let parent = node.getParent();\n while (parent) {\n if (parent._id === this._id) {\n return true;\n }\n parent = parent.getParent();\n }\n return false;\n }\n clone(obj) {\n const node = Node.prototype.clone.call(this, obj);\n this.getChildren().forEach(function (no) {\n node.add(no.clone());\n });\n return node;\n }\n getAllIntersections(pos) {\n const arr = [];\n this.find('Shape').forEach((shape) => {\n if (shape.isVisible() && shape.intersects(pos)) {\n arr.push(shape);\n }\n });\n return arr;\n }\n _clearSelfAndDescendantCache(attr) {\n var _a;\n const isAbsTransform = attr === 'absoluteTransform';\n if (isAbsTransform)\n Node._absTransformCascadeDepth++;\n try {\n super._clearSelfAndDescendantCache(attr);\n if (this.isCached())\n return;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (node) {\n node._clearSelfAndDescendantCache(attr);\n });\n }\n finally {\n if (isAbsTransform && --Node._absTransformCascadeDepth === 0) {\n const callbacks = Node._pendingAfterCascade;\n if (callbacks.length) {\n Node._pendingAfterCascade = [];\n for (let i = 0; i < callbacks.length; i++)\n callbacks[i]();\n }\n }\n }\n }\n _setChildrenIndices() {\n var _a;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child, n) {\n child.index = n;\n });\n this._requestDraw();\n }\n drawScene(can, top, bufferCanvas) {\n const layer = this.getLayer(), canvas = can || (layer && layer.getCanvas()), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedSceneCanvas = cachedCanvas && cachedCanvas.scene;\n const caching = canvas && canvas.isCache;\n if (!this.isVisible() && !caching) {\n return this;\n }\n if (cachedSceneCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n }\n else {\n this._drawChildren('drawScene', canvas, top, bufferCanvas);\n }\n return this;\n }\n drawHit(can, top) {\n if (!this.shouldDrawHit(top)) {\n return this;\n }\n const layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas), context = canvas && canvas.getContext(), cachedHitCanvas = this._getCachedHitCanvas(top);\n if (cachedHitCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context, cachedHitCanvas);\n context.restore();\n }\n else {\n this._drawChildren('drawHit', canvas, top);\n }\n return this;\n }\n _drawChildren(drawMethod, canvas, top, bufferCanvas) {\n var _a;\n const context = canvas && canvas.getContext(), clipWidth = this.clipWidth(), clipHeight = this.clipHeight(), clipFunc = this.clipFunc(), hasClip = (typeof clipWidth === 'number' && typeof clipHeight === 'number') ||\n clipFunc;\n const selfCache = top === this;\n if (hasClip) {\n context.save();\n const transform = this.getAbsoluteTransform(top);\n let m = transform.getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n context.beginPath();\n let clipArgs;\n if (clipFunc) {\n clipArgs = clipFunc.call(this, context, this);\n }\n else {\n const clipX = this.clipX();\n const clipY = this.clipY();\n context.rect(clipX || 0, clipY || 0, clipWidth, clipHeight);\n }\n context.clip.apply(context, clipArgs);\n m = transform.copy().invert().getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n const hasComposition = !selfCache &&\n this.globalCompositeOperation() !== 'source-over' &&\n drawMethod === 'drawScene';\n if (hasComposition) {\n context.save();\n context._applyGlobalCompositeOperation(this);\n }\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n child[drawMethod](canvas, top, bufferCanvas);\n });\n if (hasComposition) {\n context.restore();\n }\n if (hasClip) {\n context.restore();\n }\n }\n getClientRect(config = {}) {\n var _a;\n const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo;\n let minX, minY, maxX, maxY;\n let selfRect = {\n x: Infinity,\n y: Infinity,\n width: 0,\n height: 0,\n };\n const that = this;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n if (!child.visible()) {\n return;\n }\n const rect = child.getClientRect({\n relativeTo: that,\n skipShadow: config.skipShadow,\n skipStroke: config.skipStroke,\n });\n if (rect.width === 0 && rect.height === 0) {\n return;\n }\n if (minX === undefined) {\n minX = rect.x;\n minY = rect.y;\n maxX = rect.x + rect.width;\n maxY = rect.y + rect.height;\n }\n else {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n });\n const shapes = this.find('Shape');\n let hasVisible = false;\n for (let i = 0; i < shapes.length; i++) {\n const shape = shapes[i];\n if (shape._isVisible(this)) {\n hasVisible = true;\n break;\n }\n }\n if (hasVisible && minX !== undefined) {\n selfRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n else {\n selfRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n if (!skipTransform) {\n return this._transformedRect(selfRect, relativeTo);\n }\n return selfRect;\n }\n}\nFactory.addComponentsGetterSetter(Container, 'clip', [\n 'x',\n 'y',\n 'width',\n 'height',\n]);\nFactory.addGetterSetter(Container, 'clipX', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipY', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipWidth', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipHeight', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipFunc');\n","import { Konva } from \"./Global.js\";\nconst Captures = new Map();\nconst SUPPORT_POINTER_EVENTS = Konva._global['PointerEvent'] !== undefined;\nexport function getCapturedShape(pointerId) {\n return Captures.get(pointerId);\n}\nexport function createEvent(evt) {\n return {\n evt,\n pointerId: evt.pointerId,\n };\n}\nexport function hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nexport function setPointerCapture(pointerId, shape) {\n var _a;\n releaseCapture(pointerId);\n const stage = shape.getStage();\n if (!stage)\n return;\n Captures.set(pointerId, shape);\n if (SUPPORT_POINTER_EVENTS) {\n try {\n (_a = stage.content) === null || _a === void 0 ? void 0 : _a.setPointerCapture(pointerId);\n }\n catch (e) {\n }\n shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));\n }\n}\nexport function releaseCapture(pointerId, target) {\n var _a;\n const shape = Captures.get(pointerId);\n if (!shape)\n return;\n const stage = shape.getStage();\n Captures.delete(pointerId);\n if (SUPPORT_POINTER_EVENTS) {\n try {\n (_a = stage === null || stage === void 0 ? void 0 : stage.content) === null || _a === void 0 ? void 0 : _a.releasePointerCapture(pointerId);\n }\n catch (e) {\n }\n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));\n }\n}\n","import { Util } from \"./Util.js\";\nimport { Factory } from \"./Factory.js\";\nimport { Container } from \"./Container.js\";\nimport { Konva } from \"./Global.js\";\nimport { SceneCanvas, HitCanvas } from \"./Canvas.js\";\nimport { DD } from \"./DragAndDrop.js\";\nimport { _registerNode } from \"./Global.js\";\nimport * as PointerEvents from \"./PointerEvents.js\";\nconst STAGE = 'Stage', STRING = 'string', PX = 'px', MOUSEOUT = 'mouseout', MOUSELEAVE = 'mouseleave', MOUSEOVER = 'mouseover', MOUSEENTER = 'mouseenter', MOUSEMOVE = 'mousemove', MOUSEDOWN = 'mousedown', MOUSEUP = 'mouseup', POINTERMOVE = 'pointermove', POINTERDOWN = 'pointerdown', POINTERUP = 'pointerup', POINTERCANCEL = 'pointercancel', LOSTPOINTERCAPTURE = 'lostpointercapture', POINTEROUT = 'pointerout', POINTERLEAVE = 'pointerleave', POINTEROVER = 'pointerover', POINTERENTER = 'pointerenter', CONTEXTMENU = 'contextmenu', TOUCHSTART = 'touchstart', TOUCHEND = 'touchend', TOUCHMOVE = 'touchmove', TOUCHCANCEL = 'touchcancel', WHEEL = 'wheel', MAX_LAYERS_NUMBER = 5, EVENTS = [\n [MOUSEENTER, '_pointerenter'],\n [MOUSEDOWN, '_pointerdown'],\n [MOUSEMOVE, '_pointermove'],\n [MOUSEUP, '_pointerup'],\n [MOUSELEAVE, '_pointerleave'],\n [TOUCHSTART, '_pointerdown'],\n [TOUCHMOVE, '_pointermove'],\n [TOUCHEND, '_pointerup'],\n [TOUCHCANCEL, '_pointercancel'],\n [MOUSEOVER, '_pointerover'],\n [WHEEL, '_wheel'],\n [CONTEXTMENU, '_contextmenu'],\n [POINTERDOWN, '_pointerdown'],\n [POINTERMOVE, '_pointermove'],\n [POINTERUP, '_pointerup'],\n [POINTERCANCEL, '_pointercancel'],\n [POINTERLEAVE, '_pointerleave'],\n [LOSTPOINTERCAPTURE, '_lostpointercapture'],\n];\nconst EVENTS_MAP = {\n mouse: {\n [POINTEROUT]: MOUSEOUT,\n [POINTERLEAVE]: MOUSELEAVE,\n [POINTEROVER]: MOUSEOVER,\n [POINTERENTER]: MOUSEENTER,\n [POINTERMOVE]: MOUSEMOVE,\n [POINTERDOWN]: MOUSEDOWN,\n [POINTERUP]: MOUSEUP,\n [POINTERCANCEL]: 'mousecancel',\n pointerclick: 'click',\n pointerdblclick: 'dblclick',\n },\n touch: {\n [POINTEROUT]: 'touchout',\n [POINTERLEAVE]: 'touchleave',\n [POINTEROVER]: 'touchover',\n [POINTERENTER]: 'touchenter',\n [POINTERMOVE]: TOUCHMOVE,\n [POINTERDOWN]: TOUCHSTART,\n [POINTERUP]: TOUCHEND,\n [POINTERCANCEL]: TOUCHCANCEL,\n pointerclick: 'tap',\n pointerdblclick: 'dbltap',\n },\n pointer: {\n [POINTEROUT]: POINTEROUT,\n [POINTERLEAVE]: POINTERLEAVE,\n [POINTEROVER]: POINTEROVER,\n [POINTERENTER]: POINTERENTER,\n [POINTERMOVE]: POINTERMOVE,\n [POINTERDOWN]: POINTERDOWN,\n [POINTERUP]: POINTERUP,\n [POINTERCANCEL]: POINTERCANCEL,\n pointerclick: 'pointerclick',\n pointerdblclick: 'pointerdblclick',\n },\n};\nconst getEventType = (type) => {\n if (type.indexOf('pointer') >= 0) {\n return 'pointer';\n }\n if (type.indexOf('touch') >= 0) {\n return 'touch';\n }\n return 'mouse';\n};\nconst getEventsMap = (eventType) => {\n const type = getEventType(eventType);\n if (type === 'pointer') {\n return Konva.pointerEventsEnabled && EVENTS_MAP.pointer;\n }\n if (type === 'touch') {\n return EVENTS_MAP.touch;\n }\n if (type === 'mouse') {\n return EVENTS_MAP.mouse;\n }\n};\nfunction checkNoClip(attrs = {}) {\n if (attrs.clipFunc || attrs.clipWidth || attrs.clipHeight) {\n Util.warn('Stage does not support clipping. Please use clip for Layers or Groups.');\n }\n return attrs;\n}\nconst NO_POINTERS_MESSAGE = `Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);`;\nexport const stages = [];\nconst listeningWindows = new WeakSet();\nconst listenToWindow = (win) => {\n if (!win || listeningWindows.has(win)) {\n return;\n }\n listeningWindows.add(win);\n DD._listenToWindow(win);\n win.document.addEventListener('visibilitychange', () => {\n stages.forEach((stage) => {\n stage.batchDraw();\n });\n });\n};\nexport class Stage extends Container {\n constructor(config) {\n super(checkNoClip(config));\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n this._buildDOM();\n this._bindContentEvents();\n stages.push(this);\n this.on('widthChange.konva heightChange.konva', this._resizeDOM);\n this.on('visibleChange.konva', this._checkVisibility);\n this.on('clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva', () => {\n checkNoClip(this.attrs);\n });\n this._checkVisibility();\n }\n _validateAdd(child) {\n const isLayer = child.getType() === 'Layer';\n const isFastLayer = child.getType() === 'FastLayer';\n const valid = isLayer || isFastLayer;\n if (!valid) {\n Util.throw('You may only add layers to the stage.');\n }\n }\n _checkVisibility() {\n if (!this.content) {\n return;\n }\n const style = this.visible() ? '' : 'none';\n this.content.style.display = style;\n }\n _getOwnerWindow() {\n var _a;\n const element = this.content || this.container();\n return (((_a = element === null || element === void 0 ? void 0 : element.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) || (Konva.isBrowser ? window : null));\n }\n setContainer(container) {\n if (typeof container === STRING) {\n let id;\n if (container.charAt(0) === '.') {\n const className = container.slice(1);\n container = document.getElementsByClassName(className)[0];\n }\n else {\n if (container.charAt(0) !== '#') {\n id = container;\n }\n else {\n id = container.slice(1);\n }\n container = document.getElementById(id);\n }\n if (!container) {\n throw 'Can not find container in document with id ' + id;\n }\n }\n this._setAttr('container', container);\n if (this.content) {\n if (this.content.parentElement) {\n this.content.parentElement.removeChild(this.content);\n }\n container.appendChild(this.content);\n listenToWindow(this._getOwnerWindow());\n }\n return this;\n }\n shouldDrawHit() {\n return true;\n }\n clear() {\n const layers = this.children, len = layers.length;\n for (let n = 0; n < len; n++) {\n layers[n].clear();\n }\n return this;\n }\n clone(obj) {\n if (!obj) {\n obj = {};\n }\n obj.container =\n typeof document !== 'undefined' && document.createElement('div');\n return Container.prototype.clone.call(this, obj);\n }\n destroy() {\n super.destroy();\n const content = this.content;\n if (content && Util._isInDocument(content)) {\n this.container().removeChild(content);\n }\n const index = stages.indexOf(this);\n if (index > -1) {\n stages.splice(index, 1);\n }\n Util.releaseCanvas(this.bufferCanvas._canvas, this.bufferHitCanvas._canvas);\n return this;\n }\n getPointerPosition() {\n const pos = this._pointerPositions[0] || this._changedPointerPositions[0];\n if (!pos) {\n Util.warn(NO_POINTERS_MESSAGE);\n return null;\n }\n return {\n x: pos.x,\n y: pos.y,\n };\n }\n _getPointerById(id) {\n return this._pointerPositions.find((p) => p.id === id);\n }\n getPointersPositions() {\n return this._pointerPositions;\n }\n getStage() {\n return this;\n }\n getContent() {\n return this.content;\n }\n _toKonvaCanvas(config) {\n config = { ...config };\n config.x = config.x || 0;\n config.y = config.y || 0;\n config.width = config.width || this.width();\n config.height = config.height || this.height();\n const canvas = new SceneCanvas({\n width: config.width,\n height: config.height,\n pixelRatio: config.pixelRatio || 1,\n });\n const _context = canvas.getContext()._context;\n const layers = this.children;\n if (config.x || config.y) {\n _context.translate(-1 * config.x, -1 * config.y);\n }\n layers.forEach(function (layer) {\n if (!layer.isVisible()) {\n return;\n }\n const layerCanvas = layer._toKonvaCanvas(config);\n _context.drawImage(layerCanvas._canvas, config.x, config.y, layerCanvas.getWidth() / layerCanvas.getPixelRatio(), layerCanvas.getHeight() / layerCanvas.getPixelRatio());\n });\n return canvas;\n }\n getIntersection(pos) {\n if (!pos) {\n return null;\n }\n const layers = this.children, len = layers.length, end = len - 1;\n for (let n = end; n >= 0; n--) {\n const shape = layers[n].getIntersection(pos);\n if (shape) {\n return shape;\n }\n }\n return null;\n }\n _resizeDOM() {\n const width = this.width();\n const height = this.height();\n if (this.content) {\n this.content.style.width = width + PX;\n this.content.style.height = height + PX;\n }\n this.children.forEach((layer) => {\n layer.setSize({ width, height });\n layer.draw();\n });\n }\n _syncBufferSize(canvas) {\n canvas.setSizeIfChanged(this.width(), this.height());\n return canvas;\n }\n add(layer, ...rest) {\n if (arguments.length > 1) {\n for (let i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n super.add(layer);\n const length = this.children.length;\n if (length > MAX_LAYERS_NUMBER) {\n Util.warn('The stage has ' +\n length +\n ' layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.');\n }\n layer.setSize({ width: this.width(), height: this.height() });\n layer.draw();\n if (Konva.isBrowser) {\n this.content.appendChild(layer.canvas._canvas);\n }\n return this;\n }\n getParent() {\n return null;\n }\n getLayer() {\n return null;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n getLayers() {\n return this.children;\n }\n _bindContentEvents() {\n if (!Konva.isBrowser) {\n return;\n }\n EVENTS.forEach(([event, methodName]) => {\n this.content.addEventListener(event, (evt) => {\n this[methodName](evt);\n }, { passive: false });\n });\n }\n _pointerenter(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n if (events) {\n this._fire(events.pointerenter, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _pointerover(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n if (events) {\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _getTargetShape(evenType) {\n let shape = this[evenType + 'targetShape'];\n if (shape && !shape.getStage()) {\n shape = null;\n }\n return shape;\n }\n _pointerleave(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n const targetShape = this._getTargetShape(eventType);\n const eventsEnabled = !(Konva.isDragging() || Konva.isTransforming()) || Konva.hitOnDragEnabled;\n if (targetShape && eventsEnabled) {\n targetShape._fireAndBubble(events.pointerout, { evt: evt });\n targetShape._fireAndBubble(events.pointerleave, { evt: evt });\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this[eventType + 'targetShape'] = null;\n }\n else if (eventsEnabled) {\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this._fire(events.pointerout, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n this.pointerPos = null;\n this._pointerPositions = [];\n }\n _pointerdown(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n let triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n const shape = this.getIntersection(pos);\n DD.justDragged = false;\n Konva['_' + eventType + 'ListenClick'] = true;\n if (!shape || !shape.isListening()) {\n this[eventType + 'ClickStartShape'] = undefined;\n return;\n }\n if (Konva.capturePointerEventsEnabled) {\n shape.setPointerCapture(pos.id);\n }\n this[eventType + 'ClickStartShape'] = shape;\n shape._fireAndBubble(events.pointerdown, {\n evt: evt,\n pointerId: pos.id,\n });\n triggeredOnShape = true;\n const isTouch = evt.type.indexOf('touch') >= 0;\n if (shape.preventDefault() && evt.cancelable && isTouch) {\n evt.preventDefault();\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointerdown, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._pointerPositions[0].id,\n });\n }\n }\n _pointermove(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n const isTouchPointer = evt.type.indexOf('touch') >= 0 ||\n evt.pointerType === 'touch';\n if (Konva.isDragging() &&\n DD.node.preventDefault() &&\n evt.cancelable &&\n isTouchPointer) {\n evt.preventDefault();\n }\n this.setPointersPositions(evt);\n const eventsEnabled = !(Konva.isDragging() || Konva.isTransforming()) || Konva.hitOnDragEnabled;\n if (!eventsEnabled) {\n return;\n }\n const processedShapesIds = {};\n let triggeredOnShape = false;\n const targetShape = this._getTargetShape(eventType);\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n const differentTarget = targetShape !== shape;\n if (differentTarget && targetShape) {\n targetShape._fireAndBubble(events.pointerout, { ...event }, shape);\n targetShape._fireAndBubble(events.pointerleave, { ...event }, shape);\n }\n if (shape) {\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n if (shape && shape.isListening()) {\n triggeredOnShape = true;\n if (differentTarget) {\n shape._fireAndBubble(events.pointerover, { ...event }, targetShape);\n shape._fireAndBubble(events.pointerenter, { ...event }, targetShape);\n this[eventType + 'targetShape'] = shape;\n }\n shape._fireAndBubble(events.pointermove, { ...event });\n }\n else {\n if (targetShape) {\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n this[eventType + 'targetShape'] = null;\n }\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointermove, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n }\n _pointerup(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n const wasDragged = DD.justDragged || (eventType === 'pointer' && Konva.isDragging());\n const listenClick = Konva['_' + eventType + 'ListenClick'] && !wasDragged;\n const clickStartShape = this[eventType + 'ClickStartShape'];\n const clickEndShape = this[eventType + 'ClickEndShape'];\n const processedShapesIds = {};\n let skipPointerUpTrigger = false;\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n if (shape) {\n shape.releaseCapture(pos.id);\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n let fireDblClick = false;\n if (Konva['_' + eventType + 'InDblClickWindow']) {\n fireDblClick = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n else if (!wasDragged) {\n Konva['_' + eventType + 'InDblClickWindow'] = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n this[eventType + 'DblTimeout'] = setTimeout(function () {\n Konva['_' + eventType + 'InDblClickWindow'] = false;\n }, Konva.dblClickWindow);\n if (shape && shape.isListening()) {\n skipPointerUpTrigger = true;\n this[eventType + 'ClickEndShape'] = shape;\n shape._fireAndBubble(events.pointerup, { ...event });\n if (listenClick && clickStartShape === shape) {\n shape._fireAndBubble(events.pointerclick, { ...event });\n if (fireDblClick && clickEndShape && clickEndShape === shape) {\n shape._fireAndBubble(events.pointerdblclick, { ...event });\n }\n }\n }\n else {\n this[eventType + 'ClickEndShape'] = null;\n if (!skipPointerUpTrigger) {\n this._fire(events.pointerup, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n skipPointerUpTrigger = true;\n }\n if (listenClick) {\n this._fire(events.pointerclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n if (fireDblClick) {\n this._fire(events.pointerdblclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n }\n });\n if (!skipPointerUpTrigger) {\n this._fire(events.pointerup, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n Konva['_' + eventType + 'ListenClick'] = false;\n if (evt.cancelable && eventType !== 'touch' && eventType !== 'pointer') {\n evt.preventDefault();\n }\n }\n _contextmenu(evt) {\n this.setPointersPositions(evt);\n const shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(CONTEXTMENU, { evt: evt });\n }\n else {\n this._fire(CONTEXTMENU, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _wheel(evt) {\n this.setPointersPositions(evt);\n const shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(WHEEL, { evt: evt });\n }\n else {\n this._fire(WHEEL, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _pointercancel(evt) {\n this.setPointersPositions(evt);\n const shape = PointerEvents.getCapturedShape(evt.pointerId) ||\n this.getIntersection(this.getPointerPosition());\n if (shape) {\n shape._fireAndBubble(POINTERUP, PointerEvents.createEvent(evt));\n }\n PointerEvents.releaseCapture(evt.pointerId);\n }\n _lostpointercapture(evt) {\n PointerEvents.releaseCapture(evt.pointerId);\n }\n setPointersPositions(evt) {\n const contentPosition = this._getContentPosition();\n let x = null, y = null;\n evt = evt ? evt : window.event;\n if (evt.touches !== undefined) {\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n Array.prototype.forEach.call(evt.touches, (touch) => {\n this._pointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n Array.prototype.forEach.call(evt.changedTouches || evt.touches, (touch) => {\n this._changedPointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n }\n else {\n x = (evt.clientX - contentPosition.left) / contentPosition.scaleX;\n y = (evt.clientY - contentPosition.top) / contentPosition.scaleY;\n this.pointerPos = {\n x: x,\n y: y,\n };\n this._pointerPositions = [{ x, y, id: Util._getFirstPointerId(evt) }];\n this._changedPointerPositions = [\n { x, y, id: Util._getFirstPointerId(evt) },\n ];\n }\n }\n _setPointerPosition(evt) {\n Util.warn('Method _setPointerPosition is deprecated. Use \"stage.setPointersPositions(event)\" instead.');\n this.setPointersPositions(evt);\n }\n _getContentPosition() {\n if (!this.content || !this.content.getBoundingClientRect) {\n return {\n top: 0,\n left: 0,\n scaleX: 1,\n scaleY: 1,\n };\n }\n const rect = this.content.getBoundingClientRect();\n return {\n top: rect.top,\n left: rect.left,\n scaleX: rect.width / this.content.clientWidth || 1,\n scaleY: rect.height / this.content.clientHeight || 1,\n };\n }\n _buildDOM() {\n this.bufferCanvas = new SceneCanvas({\n width: 0,\n height: 0,\n });\n this.bufferHitCanvas = new HitCanvas({\n pixelRatio: 1,\n width: 0,\n height: 0,\n });\n if (!Konva.isBrowser) {\n return;\n }\n const container = this.container();\n if (!container) {\n throw 'Stage has no container. A container is required.';\n }\n container.innerHTML = '';\n this.content = container.ownerDocument.createElement('div');\n this.content.style.position = 'relative';\n this.content.style.userSelect = 'none';\n this.content.className = 'konvajs-content';\n this.content.setAttribute('role', 'presentation');\n container.appendChild(this.content);\n listenToWindow(this._getOwnerWindow());\n this._resizeDOM();\n }\n cache() {\n Util.warn('Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.');\n return this;\n }\n clearCache() {\n return this;\n }\n batchDraw() {\n this.getChildren().forEach(function (layer) {\n layer.batchDraw();\n });\n return this;\n }\n}\nStage.prototype.nodeType = STAGE;\n_registerNode(Stage);\nFactory.addGetterSetter(Stage, 'container');\n","import { Konva } from \"./Global.js\";\nimport { Transform, Util } from \"./Util.js\";\nimport { Factory } from \"./Factory.js\";\nimport { Node } from \"./Node.js\";\nimport { getNumberValidator, getNumberOrAutoValidator, getStringValidator, getBooleanValidator, getStringOrGradientValidator, } from \"./Validators.js\";\nimport { _registerNode } from \"./Global.js\";\nimport * as PointerEvents from \"./PointerEvents.js\";\nconst HAS_SHADOW = 'hasShadow';\nconst SHADOW_RGBA = 'shadowRGBA';\nconst patternImage = 'patternImage';\nconst linearGradient = 'linearGradient';\nconst radialGradient = 'radialGradient';\nlet dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util.createCanvasElement().getContext('2d');\n return dummyContext;\n}\nexport const shapes = {};\nfunction _fillFunc(context) {\n const fillRule = this.attrs.fillRule;\n if (fillRule) {\n context.fill(fillRule);\n }\n else {\n context.fill();\n }\n}\nfunction _strokeFunc(context) {\n context.stroke();\n}\nfunction _fillFuncHit(context) {\n const fillRule = this.attrs.fillRule;\n if (fillRule) {\n context.fill(fillRule);\n }\n else {\n context.fill();\n }\n}\nfunction _strokeFuncHit(context) {\n context.stroke();\n}\nfunction _clearHasShadowCache() {\n this._clearCache(HAS_SHADOW);\n}\nfunction _clearGetShadowRGBACache() {\n this._clearCache(SHADOW_RGBA);\n}\nfunction _clearFillPatternCache() {\n this._clearCache(patternImage);\n}\nfunction _clearLinearGradientCache() {\n this._clearCache(linearGradient);\n}\nfunction _clearRadialGradientCache() {\n this._clearCache(radialGradient);\n}\nexport class Shape extends Node {\n constructor(config) {\n super(config);\n let key;\n let attempts = 0;\n while (true) {\n key = Util.getHitColor();\n if (key && !(key in shapes)) {\n break;\n }\n attempts++;\n if (attempts >= 10000) {\n Util.warn('Failed to find a unique color key for a shape. Konva may work incorrectly. Most likely your browser is using canvas farbling. Consider disabling it.');\n key = Util.getRandomColor();\n break;\n }\n }\n this.colorKey = key;\n shapes[key] = this;\n }\n getContext() {\n Util.warn('shape.getContext() method is deprecated. Please do not use it.');\n return this.getLayer().getContext();\n }\n getCanvas() {\n Util.warn('shape.getCanvas() method is deprecated. Please do not use it.');\n return this.getLayer().getCanvas();\n }\n getSceneFunc() {\n return this.attrs.sceneFunc || this['_sceneFunc'];\n }\n getHitFunc() {\n return this.attrs.hitFunc || this['_hitFunc'];\n }\n hasShadow() {\n return this._getCache(HAS_SHADOW, this._hasShadow);\n }\n _hasShadow() {\n return (this.shadowEnabled() &&\n this.shadowOpacity() !== 0 &&\n !!(this.shadowColor() ||\n this.shadowBlur() ||\n this.shadowOffsetX() ||\n this.shadowOffsetY()));\n }\n _getFillPattern() {\n return this._getCache(patternImage, this.__getFillPattern);\n }\n __getFillPattern() {\n if (this.fillPatternImage()) {\n const ctx = getDummyContext();\n const pattern = ctx.createPattern(this.fillPatternImage(), this.fillPatternRepeat() || 'repeat');\n if (pattern && pattern.setTransform) {\n const tr = new Transform();\n tr.translate(this.fillPatternX(), this.fillPatternY());\n tr.rotate(Konva.getAngle(this.fillPatternRotation()));\n tr.scale(this.fillPatternScaleX(), this.fillPatternScaleY());\n tr.translate(-1 * this.fillPatternOffsetX(), -1 * this.fillPatternOffsetY());\n const m = tr.getMatrix();\n const matrix = typeof DOMMatrix === 'undefined'\n ? {\n a: m[0],\n b: m[1],\n c: m[2],\n d: m[3],\n e: m[4],\n f: m[5],\n }\n : new DOMMatrix(m);\n pattern.setTransform(matrix);\n }\n return pattern;\n }\n }\n _getLinearGradient() {\n return this._getCache(linearGradient, this.__getLinearGradient);\n }\n __getLinearGradient() {\n const colorStops = this.fillLinearGradientColorStops();\n if (colorStops) {\n const ctx = getDummyContext();\n const start = this.fillLinearGradientStartPoint();\n const end = this.fillLinearGradientEndPoint();\n const grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n _getRadialGradient() {\n return this._getCache(radialGradient, this.__getRadialGradient);\n }\n __getRadialGradient() {\n const colorStops = this.fillRadialGradientColorStops();\n if (colorStops) {\n const ctx = getDummyContext();\n const start = this.fillRadialGradientStartPoint();\n const end = this.fillRadialGradientEndPoint();\n const grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());\n for (let n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n getShadowRGBA() {\n return this._getCache(SHADOW_RGBA, this._getShadowRGBA);\n }\n _getShadowRGBA() {\n if (!this.hasShadow()) {\n return;\n }\n const rgba = Util.colorToRGBA(this.shadowColor());\n if (rgba) {\n return ('rgba(' +\n rgba.r +\n ',' +\n rgba.g +\n ',' +\n rgba.b +\n ',' +\n rgba.a * (this.shadowOpacity() || 1) +\n ')');\n }\n }\n hasFill() {\n return this._calculate('hasFill', [\n 'fillEnabled',\n 'fill',\n 'fillPatternImage',\n 'fillLinearGradientColorStops',\n 'fillRadialGradientColorStops',\n ], () => {\n return (this.fillEnabled() &&\n !!(this.fill() ||\n this.fillPatternImage() ||\n this.fillLinearGradientColorStops() ||\n this.fillRadialGradientColorStops()));\n });\n }\n hasStroke() {\n return this._calculate('hasStroke', [\n 'strokeEnabled',\n 'strokeWidth',\n 'stroke',\n 'strokeLinearGradientColorStops',\n ], () => {\n return (this.strokeEnabled() &&\n this.strokeWidth() &&\n !!(this.stroke() || this.strokeLinearGradientColorStops()));\n });\n }\n hasHitStroke() {\n const width = this.hitStrokeWidth();\n if (width === 'auto') {\n return this.hasStroke();\n }\n return this.strokeEnabled() && !!width;\n }\n intersects(point) {\n const stage = this.getStage();\n if (!stage) {\n return false;\n }\n const bufferHitCanvas = stage._syncBufferSize(stage.bufferHitCanvas);\n bufferHitCanvas.getContext().clear();\n this.drawHit(bufferHitCanvas, undefined, true);\n const p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;\n return p[3] > 0;\n }\n destroy() {\n Node.prototype.destroy.call(this);\n delete shapes[this.colorKey];\n delete this.colorKey;\n return this;\n }\n _useBufferCanvas(forceFill) {\n var _a;\n const perfectDrawEnabled = (_a = this.attrs.perfectDrawEnabled) !== null && _a !== void 0 ? _a : true;\n if (!perfectDrawEnabled) {\n return false;\n }\n const hasFill = forceFill || this.hasFill();\n const hasStroke = this.hasStroke();\n const isTransparent = this.getAbsoluteOpacity() !== 1;\n if (hasFill && hasStroke && isTransparent) {\n return true;\n }\n const hasShadow = this.hasShadow();\n const strokeForShadow = this.shadowForStrokeEnabled();\n if (hasFill && hasStroke && hasShadow && strokeForShadow) {\n return true;\n }\n return false;\n }\n setStrokeHitEnabled(val) {\n Util.warn('strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.');\n if (val) {\n this.hitStrokeWidth('auto');\n }\n else {\n this.hitStrokeWidth(0);\n }\n }\n getStrokeHitEnabled() {\n if (this.hitStrokeWidth() === 0) {\n return false;\n }\n else {\n return true;\n }\n }\n getSelfRect() {\n const size = this.size();\n return {\n x: this._centroid ? -size.width / 2 : 0,\n y: this._centroid ? -size.height / 2 : 0,\n width: size.width,\n height: size.height,\n };\n }\n getClientRect(config = {}) {\n let hasCachedParent = false;\n let parent = this.getParent();\n while (parent) {\n if (parent.isCached()) {\n hasCachedParent = true;\n break;\n }\n parent = parent.getParent();\n }\n const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo || (hasCachedParent && this.getStage()) || undefined;\n const fillRect = this.getSelfRect();\n const applyStroke = !config.skipStroke && this.hasStroke();\n const strokeWidth = (applyStroke && this.strokeWidth()) || 0;\n const fillAndStrokeWidth = fillRect.width + strokeWidth;\n const fillAndStrokeHeight = fillRect.height + strokeWidth;\n const applyShadow = !config.skipShadow && this.hasShadow();\n const shadowOffsetX = applyShadow ? this.shadowOffsetX() : 0;\n const shadowOffsetY = applyShadow ? this.shadowOffsetY() : 0;\n const preWidth = fillAndStrokeWidth + Math.abs(shadowOffsetX);\n const preHeight = fillAndStrokeHeight + Math.abs(shadowOffsetY);\n const blurRadius = (applyShadow && this.shadowBlur()) || 0;\n const width = preWidth + blurRadius * 2;\n const height = preHeight + blurRadius * 2;\n const rect = {\n width: width,\n height: height,\n x: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetX, 0) +\n fillRect.x,\n y: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetY, 0) +\n fillRect.y,\n };\n if (!skipTransform) {\n return this._transformedRect(rect, relativeTo);\n }\n return rect;\n }\n drawScene(can, top, bufferCanvas) {\n const layer = this.getLayer();\n const canvas = can || layer.getCanvas(), context = canvas.getContext(), cachedCanvas = this._getCanvasCache(), drawFunc = this.getSceneFunc(), hasShadow = this.hasShadow();\n let stage;\n const skipBuffer = false;\n const cachingSelf = top === this;\n if (!this.isVisible() && !cachingSelf) {\n return this;\n }\n if (cachedCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n if (this._useBufferCanvas() && !skipBuffer) {\n stage = this.getStage();\n const bc = bufferCanvas || stage._syncBufferSize(stage.bufferCanvas);\n const bufferContext = bc.getContext();\n if (bufferCanvas) {\n bufferContext.save();\n bufferContext.setTransform(1, 0, 0, 1, 0, 0);\n bufferContext.clearRect(0, 0, bc.width, bc.height);\n bufferContext.restore();\n }\n else {\n bufferContext.clear();\n }\n bufferContext.save();\n bufferContext.imageSmoothingEnabled = context.imageSmoothingEnabled;\n bufferContext._applyLineJoin(this);\n bufferContext._applyMiterLimit(this);\n const o = this.getAbsoluteTransform(top).getMatrix();\n bufferContext.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n drawFunc.call(this, bufferContext, this);\n bufferContext.restore();\n const ratio = bc.pixelRatio;\n if (hasShadow) {\n context._applyShadow(this);\n }\n if (!cachingSelf) {\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n context.drawImage(bc._canvas, bc.x || 0, bc.y || 0, bc.width / ratio, bc.height / ratio);\n }\n else {\n context._applyLineJoin(this);\n context._applyMiterLimit(this);\n if (!cachingSelf) {\n const o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n if (hasShadow) {\n context._applyShadow(this);\n }\n drawFunc.call(this, context, this);\n }\n context.restore();\n return this;\n }\n drawHit(can, top, skipDragCheck = false) {\n if (!this.shouldDrawHit(top, skipDragCheck)) {\n return this;\n }\n const layer = this.getLayer(), canvas = can || layer.hitCanvas, context = canvas && canvas.getContext(), drawFunc = this.hitFunc() || this.sceneFunc(), cachedHitCanvas = this._getCachedHitCanvas(top);\n if (!this.colorKey) {\n Util.warn('Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()');\n }\n if (cachedHitCanvas) {\n context.save();\n const m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context, cachedHitCanvas);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n context._applyLineJoin(this);\n context._applyMiterLimit(this);\n const selfCache = this === top;\n if (!selfCache) {\n const o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n }\n drawFunc.call(this, context, this);\n context.restore();\n return this;\n }\n drawHitFromCache(alphaThreshold = 0) {\n const sceneCanvas = this._getCachedSceneCanvas(), hitCanvas = this._getCachedHitCanvas(), hitContext = hitCanvas.getContext(), hitWidth = hitCanvas.getWidth(), hitHeight = hitCanvas.getHeight();\n hitContext.clear();\n hitContext.drawImage(sceneCanvas._canvas, 0, 0, hitWidth, hitHeight);\n try {\n const hitImageData = hitContext.getImageData(0, 0, hitWidth, hitHeight);\n const hitData = hitImageData.data;\n const len = hitData.length;\n const rgbColorKey = Util._hexToRgb(this.colorKey);\n for (let i = 0; i < len; i += 4) {\n const alpha = hitData[i + 3];\n if (alpha > alphaThreshold) {\n hitData[i] = rgbColorKey.r;\n hitData[i + 1] = rgbColorKey.g;\n hitData[i + 2] = rgbColorKey.b;\n hitData[i + 3] = 255;\n }\n else {\n hitData[i + 3] = 0;\n }\n }\n hitContext.putImageData(hitImageData, 0, 0);\n }\n catch (e) {\n Util.error('Unable to draw hit graph from cached scene canvas. ' + e.message);\n }\n return this;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n}\nShape.prototype._fillFunc = _fillFunc;\nShape.prototype._strokeFunc = _strokeFunc;\nShape.prototype._fillFuncHit = _fillFuncHit;\nShape.prototype._strokeFuncHit = _strokeFuncHit;\nShape.prototype._centroid = false;\nShape.prototype.nodeType = 'Shape';\n_registerNode(Shape);\nShape.prototype.eventListeners = {};\nShape.prototype.on('shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearHasShadowCache);\nShape.prototype.on('shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearGetShadowRGBACache);\nShape.prototype.on('fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva', _clearFillPatternCache);\nShape.prototype.on('fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva', _clearLinearGradientCache);\nShape.prototype.on('fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva', _clearRadialGradientCache);\nFactory.addGetterSetter(Shape, 'stroke', undefined, getStringOrGradientValidator());\nFactory.addGetterSetter(Shape, 'strokeWidth', 2, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillAfterStrokeEnabled', false);\nFactory.addGetterSetter(Shape, 'hitStrokeWidth', 'auto', getNumberOrAutoValidator());\nFactory.addGetterSetter(Shape, 'strokeHitEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Shape, 'perfectDrawEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Shape, 'shadowForStrokeEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Shape, 'lineJoin');\nFactory.addGetterSetter(Shape, 'lineCap');\nFactory.addGetterSetter(Shape, 'miterLimit');\nFactory.addGetterSetter(Shape, 'sceneFunc');\nFactory.addGetterSetter(Shape, 'hitFunc');\nFactory.addGetterSetter(Shape, 'dash');\nFactory.addGetterSetter(Shape, 'dashOffset', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'shadowColor', undefined, getStringValidator());\nFactory.addGetterSetter(Shape, 'shadowBlur', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'shadowOpacity', 1, getNumberValidator());\nFactory.addComponentsGetterSetter(Shape, 'shadowOffset', ['x', 'y']);\nFactory.addGetterSetter(Shape, 'shadowOffsetX', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'shadowOffsetY', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternImage');\nFactory.addGetterSetter(Shape, 'fill', undefined, getStringOrGradientValidator());\nFactory.addGetterSetter(Shape, 'fillPatternX', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternY', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillLinearGradientColorStops');\nFactory.addGetterSetter(Shape, 'strokeLinearGradientColorStops');\nFactory.addGetterSetter(Shape, 'fillRadialGradientStartRadius', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientEndRadius', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientColorStops');\nFactory.addGetterSetter(Shape, 'fillPatternRepeat', 'repeat');\nFactory.addGetterSetter(Shape, 'fillEnabled', true);\nFactory.addGetterSetter(Shape, 'strokeEnabled', true);\nFactory.addGetterSetter(Shape, 'shadowEnabled', true);\nFactory.addGetterSetter(Shape, 'dashEnabled', true);\nFactory.addGetterSetter(Shape, 'strokeScaleEnabled', true);\nFactory.addGetterSetter(Shape, 'fillPriority', 'color');\nFactory.addComponentsGetterSetter(Shape, 'fillPatternOffset', ['x', 'y']);\nFactory.addGetterSetter(Shape, 'fillPatternOffsetX', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternOffsetY', 0, getNumberValidator());\nFactory.addComponentsGetterSetter(Shape, 'fillPatternScale', ['x', 'y']);\nFactory.addGetterSetter(Shape, 'fillPatternScaleX', 1, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternScaleY', 1, getNumberValidator());\nFactory.addComponentsGetterSetter(Shape, 'fillLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory.addComponentsGetterSetter(Shape, 'strokeLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillLinearGradientStartPointX', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientStartPointX', 0);\nFactory.addGetterSetter(Shape, 'fillLinearGradientStartPointY', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientStartPointY', 0);\nFactory.addComponentsGetterSetter(Shape, 'fillLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory.addComponentsGetterSetter(Shape, 'strokeLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillLinearGradientEndPointX', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientEndPointX', 0);\nFactory.addGetterSetter(Shape, 'fillLinearGradientEndPointY', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientEndPointY', 0);\nFactory.addComponentsGetterSetter(Shape, 'fillRadialGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillRadialGradientStartPointX', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientStartPointY', 0);\nFactory.addComponentsGetterSetter(Shape, 'fillRadialGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillRadialGradientEndPointX', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientEndPointY', 0);\nFactory.addGetterSetter(Shape, 'fillPatternRotation', 0);\nFactory.addGetterSetter(Shape, 'fillRule', undefined, getStringValidator());\nFactory.backCompat(Shape, {\n dashArray: 'dash',\n getDashArray: 'getDash',\n setDashArray: 'getDash',\n drawFunc: 'sceneFunc',\n getDrawFunc: 'getSceneFunc',\n setDrawFunc: 'setSceneFunc',\n drawHitFunc: 'hitFunc',\n getDrawHitFunc: 'getHitFunc',\n setDrawHitFunc: 'setHitFunc',\n});\n","import { Util } from \"./Util.js\";\nimport { Container } from \"./Container.js\";\nimport { Node } from \"./Node.js\";\nimport { Factory } from \"./Factory.js\";\nimport { SceneCanvas, HitCanvas } from \"./Canvas.js\";\nimport { getBooleanValidator } from \"./Validators.js\";\nimport { shapes } from \"./Shape.js\";\nimport { _registerNode } from \"./Global.js\";\nconst HASH = '#', BEFORE_DRAW = 'beforeDraw', DRAW = 'draw', INTERSECTION_OFFSETS = [\n { x: 0, y: 0 },\n { x: -1, y: -1 },\n { x: 1, y: -1 },\n { x: 1, y: 1 },\n { x: -1, y: 1 },\n], INTERSECTION_OFFSETS_LEN = INTERSECTION_OFFSETS.length;\nexport class Layer extends Container {\n constructor(config) {\n super(config);\n this.canvas = new SceneCanvas();\n this.hitCanvas = new HitCanvas({\n pixelRatio: 1,\n });\n this._waitingForDraw = false;\n this.on('visibleChange.konva', this._checkVisibility);\n this._checkVisibility();\n this.on('imageSmoothingEnabledChange.konva', this._setSmoothEnabled);\n this._setSmoothEnabled();\n }\n createPNGStream() {\n const c = this.canvas._canvas;\n return c.createPNGStream();\n }\n getCanvas() {\n return this.canvas;\n }\n getNativeCanvasElement() {\n return this.canvas._canvas;\n }\n getHitCanvas() {\n return this.hitCanvas;\n }\n getContext() {\n return this.getCanvas().getContext();\n }\n clear(bounds) {\n this.getContext().clear(bounds);\n this.getHitCanvas().getContext().clear(bounds);\n return this;\n }\n setZIndex(index) {\n super.setZIndex(index);\n const stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n if (index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n }\n return this;\n }\n moveToTop() {\n Node.prototype.moveToTop.call(this);\n const stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveUp() {\n const moved = Node.prototype.moveUp.call(this);\n if (!moved) {\n return false;\n }\n const stage = this.getStage();\n if (!stage || !stage.content) {\n return false;\n }\n stage.content.removeChild(this.getNativeCanvasElement());\n if (this.index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[this.index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveDown() {\n if (Node.prototype.moveDown.call(this)) {\n const stage = this.getStage();\n if (stage) {\n const children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[this.index + 1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (Node.prototype.moveToBottom.call(this)) {\n const stage = this.getStage();\n if (stage) {\n const children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n getLayer() {\n return this;\n }\n remove() {\n const _canvas = this.getNativeCanvasElement();\n Node.prototype.remove.call(this);\n if (_canvas && _canvas.parentNode && Util._isInDocument(_canvas)) {\n _canvas.parentNode.removeChild(_canvas);\n }\n return this;\n }\n getStage() {\n return this.parent;\n }\n setSize({ width, height }) {\n this.canvas.setSize(width, height);\n this._syncHitCanvasSize();\n this._setSmoothEnabled();\n return this;\n }\n _syncHitCanvasSize() {\n const listening = this.isListening();\n this.hitCanvas.setSizeIfChanged((listening ? this.getWidth() : 0) || 0, (listening ? this.getHeight() : 0) || 0);\n }\n _validateAdd(child) {\n const type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util.throw('You may only add groups and shapes to a layer.');\n }\n }\n _toKonvaCanvas(config) {\n config = { ...config };\n config.width = config.width || this.getWidth();\n config.height = config.height || this.getHeight();\n config.x = config.x !== undefined ? config.x : this.x();\n config.y = config.y !== undefined ? config.y : this.y();\n return Node.prototype._toKonvaCanvas.call(this, config);\n }\n _checkVisibility() {\n const visible = this.visible();\n if (visible) {\n this.canvas._canvas.style.display = 'block';\n }\n else {\n this.canvas._canvas.style.display = 'none';\n }\n }\n _setSmoothEnabled() {\n this.getContext()._context.imageSmoothingEnabled =\n this.imageSmoothingEnabled();\n }\n getWidth() {\n if (this.parent) {\n return this.parent.width();\n }\n }\n setWidth() {\n Util.warn('Can not change width of layer. Use \"stage.width(value)\" function instead.');\n }\n getHeight() {\n if (this.parent) {\n return this.parent.height();\n }\n }\n setHeight() {\n Util.warn('Can not change height of layer. Use \"stage.height(value)\" function instead.');\n }\n batchDraw() {\n var _a;\n if (!this._waitingForDraw) {\n this._waitingForDraw = true;\n Util.requestAnimFrame(() => {\n this.draw();\n this._waitingForDraw = false;\n }, (_a = this.getStage()) === null || _a === void 0 ? void 0 : _a._getOwnerWindow());\n }\n return this;\n }\n getIntersection(pos) {\n if (!this.isListening() || !this.isVisible()) {\n return null;\n }\n let spiralSearchDistance = 1;\n let continueSearch = false;\n while (true) {\n for (let i = 0; i < INTERSECTION_OFFSETS_LEN; i++) {\n const intersectionOffset = INTERSECTION_OFFSETS[i];\n const obj = this._getIntersection({\n x: pos.x + intersectionOffset.x * spiralSearchDistance,\n y: pos.y + intersectionOffset.y * spiralSearchDistance,\n });\n const shape = obj.shape;\n if (shape) {\n return shape;\n }\n continueSearch = !!obj.antialiased;\n if (!obj.antialiased) {\n break;\n }\n }\n if (continueSearch) {\n spiralSearchDistance += 1;\n }\n else {\n return null;\n }\n }\n }\n _getIntersection(pos) {\n if (!this.hitCanvas.width || !this.hitCanvas.height) {\n return {};\n }\n const ratio = this.hitCanvas.pixelRatio;\n const p = this.hitCanvas.context.getImageData(Math.round(pos.x * ratio), Math.round(pos.y * ratio), 1, 1).data;\n const p3 = p[3];\n if (p3 === 255) {\n const colorKey = Util.getHitColorKey(p[0], p[1], p[2]);\n const shape = shapes[colorKey];\n if (shape) {\n return {\n shape: shape,\n };\n }\n return {\n antialiased: true,\n };\n }\n else if (p3 > 0) {\n return {\n antialiased: true,\n };\n }\n return {};\n }\n drawScene(can, top, bufferCanvas) {\n const layer = this.getLayer(), canvas = can || (layer && layer.getCanvas());\n this._fire(BEFORE_DRAW, {\n node: this,\n });\n if (this.clearBeforeDraw()) {\n canvas.getContext().clear();\n }\n Container.prototype.drawScene.call(this, canvas, top, bufferCanvas);\n this._fire(DRAW, {\n node: this,\n });\n return this;\n }\n drawHit(can, top) {\n const layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas);\n if (!can && layer) {\n layer._syncHitCanvasSize();\n if (layer.clearBeforeDraw()) {\n layer.getHitCanvas().getContext().clear();\n }\n }\n Container.prototype.drawHit.call(this, canvas, top);\n return this;\n }\n enableHitGraph() {\n this.hitGraphEnabled(true);\n return this;\n }\n disableHitGraph() {\n this.hitGraphEnabled(false);\n return this;\n }\n setHitGraphEnabled(val) {\n Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n this.listening(val);\n }\n getHitGraphEnabled(val) {\n Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n return this.listening();\n }\n toggleHitCanvas() {\n if (!this.parent || !this.parent['content']) {\n return;\n }\n const parent = this.parent;\n const added = !!this.hitCanvas._canvas.parentNode;\n if (added) {\n parent.content.removeChild(this.hitCanvas._canvas);\n }\n else {\n parent.content.appendChild(this.hitCanvas._canvas);\n }\n }\n destroy() {\n Util.releaseCanvas(this.getNativeCanvasElement(), this.getHitCanvas()._canvas);\n return super.destroy();\n }\n}\nLayer.prototype.nodeType = 'Layer';\n_registerNode(Layer);\nFactory.addGetterSetter(Layer, 'imageSmoothingEnabled', true);\nFactory.addGetterSetter(Layer, 'clearBeforeDraw', true);\nFactory.addGetterSetter(Layer, 'hitGraphEnabled', true, getBooleanValidator());\n","import { Util } from \"./Util.js\";\nimport { Layer } from \"./Layer.js\";\nimport { _registerNode } from \"./Global.js\";\nexport class FastLayer extends Layer {\n constructor(attrs) {\n super(attrs);\n this.listening(false);\n Util.warn('Konva.Fast layer is deprecated. Please use \"new Konva.Layer({ listening: false })\" instead.');\n }\n}\nFastLayer.prototype.nodeType = 'FastLayer';\n_registerNode(FastLayer);\n","import { Util } from \"./Util.js\";\nimport { Container } from \"./Container.js\";\nimport { _registerNode } from \"./Global.js\";\nexport class Group extends Container {\n _validateAdd(child) {\n const type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util.throw('You may only add groups and shapes to groups.');\n }\n }\n}\nGroup.prototype.nodeType = 'Group';\n_registerNode(Group);\n","import { glob } from \"./Global.js\";\nimport { Util } from \"./Util.js\";\nconst now = (function () {\n if (glob.performance && glob.performance.now) {\n return function () {\n return glob.performance.now();\n };\n }\n return function () {\n return new Date().getTime();\n };\n})();\nexport class Animation {\n constructor(func, layers) {\n this.id = Animation.animIdCounter++;\n this.frame = {\n time: 0,\n timeDiff: 0,\n lastTime: now(),\n frameRate: 0,\n };\n this.func = func;\n this.setLayers(layers);\n }\n setLayers(layers) {\n let lays = [];\n if (layers) {\n lays = Array.isArray(layers) ? layers : [layers];\n }\n this.layers = lays;\n return this;\n }\n getLayers() {\n return this.layers;\n }\n addLayer(layer) {\n const layers = this.layers;\n const len = layers.length;\n for (let n = 0; n < len; n++) {\n if (layers[n]._id === layer._id) {\n return false;\n }\n }\n this.layers.push(layer);\n return true;\n }\n isRunning() {\n const a = Animation;\n const animations = a.animations;\n const len = animations.length;\n for (let n = 0; n < len; n++) {\n if (animations[n].id === this.id) {\n return true;\n }\n }\n return false;\n }\n start() {\n this.stop();\n this.frame.timeDiff = 0;\n this.frame.lastTime = now();\n Animation._addAnimation(this);\n return this;\n }\n stop() {\n Animation._removeAnimation(this);\n return this;\n }\n _updateFrameObject(time) {\n this.frame.timeDiff = time - this.frame.lastTime;\n this.frame.lastTime = time;\n this.frame.time += this.frame.timeDiff;\n this.frame.frameRate = 1000 / this.frame.timeDiff;\n }\n static _addAnimation(anim) {\n this.animations.push(anim);\n this._handleAnimation();\n }\n static _removeAnimation(anim) {\n const id = anim.id;\n const animations = this.animations;\n const len = animations.length;\n for (let n = 0; n < len; n++) {\n if (animations[n].id === id) {\n this.animations.splice(n, 1);\n break;\n }\n }\n }\n static _runFrames() {\n const layerHash = {};\n const animations = this.animations;\n for (let n = 0; n < animations.length; n++) {\n const anim = animations[n];\n const layers = anim.layers;\n const func = anim.func;\n anim._updateFrameObject(now());\n const layersLen = layers.length;\n let needRedraw;\n if (func) {\n needRedraw = func.call(anim, anim.frame) !== false;\n }\n else {\n needRedraw = true;\n }\n if (!needRedraw) {\n continue;\n }\n for (let i = 0; i < layersLen; i++) {\n const layer = layers[i];\n if (layer._id !== undefined) {\n layerHash[layer._id] = layer;\n }\n }\n }\n for (const key in layerHash) {\n if (!layerHash.hasOwnProperty(key)) {\n continue;\n }\n layerHash[key].batchDraw();\n }\n }\n static _animationLoop() {\n const Anim = Animation;\n if (Anim.animations.length) {\n Anim._runFrames();\n Util.requestAnimFrame(Anim._animationLoop);\n }\n else {\n Anim.animRunning = false;\n }\n }\n static _handleAnimation() {\n if (!this.animRunning) {\n this.animRunning = true;\n Util.requestAnimFrame(this._animationLoop);\n }\n }\n}\nAnimation.animations = [];\nAnimation.animIdCounter = 0;\nAnimation.animRunning = false;\n","import { Util } from \"./Util.js\";\nimport { Animation } from \"./Animation.js\";\nimport { Node } from \"./Node.js\";\nimport { Konva } from \"./Global.js\";\nconst blacklist = {\n node: 1,\n duration: 1,\n easing: 1,\n onFinish: 1,\n yoyo: 1,\n}, PAUSED = 1, PLAYING = 2, REVERSING = 3, colorAttrs = ['fill', 'stroke', 'shadowColor'];\nlet idCounter = 0;\nfunction colorToRGBA(color) {\n return (Util.colorToRGBA(color) ||\n Util.throw('can not tween the color \"' +\n color +\n '\", because it is not a valid color.'));\n}\nclass TweenEngine {\n constructor(prop, propFunc, func, begin, finish, duration, yoyo) {\n this.prop = prop;\n this.propFunc = propFunc;\n this.begin = begin;\n this._pos = begin;\n this.duration = duration;\n this._change = 0;\n this.prevPos = 0;\n this.yoyo = yoyo;\n this._time = 0;\n this._position = 0;\n this._startTime = 0;\n this._finish = 0;\n this.func = func;\n this._change = finish - this.begin;\n this.pause();\n }\n fire(str) {\n const handler = this[str];\n if (handler) {\n handler();\n }\n }\n setTime(t) {\n if (t > this.duration) {\n if (this.yoyo) {\n this._time = this.duration;\n this.reverse();\n }\n else {\n this.finish();\n }\n }\n else if (t < 0) {\n if (this.yoyo) {\n this._time = 0;\n this.play();\n }\n else {\n this.reset();\n }\n }\n else {\n this._time = t;\n this.update();\n }\n }\n getTime() {\n return this._time;\n }\n setPosition(p) {\n this.prevPos = this._pos;\n this.propFunc(p);\n this._pos = p;\n }\n getPosition(t) {\n if (t === undefined) {\n t = this._time;\n }\n return this.func(t, this.begin, this._change, this.duration);\n }\n play() {\n this.state = PLAYING;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onPlay');\n }\n reverse() {\n this.state = REVERSING;\n this._time = this.duration - this._time;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onReverse');\n }\n seek(t) {\n this.pause();\n this._time = t;\n this.update();\n this.fire('onSeek');\n }\n reset() {\n this.pause();\n this._time = 0;\n this.update();\n this.fire('onReset');\n }\n finish() {\n this.pause();\n this._time = this.duration;\n this.update();\n this.fire('onFinish');\n }\n update() {\n this.setPosition(this.getPosition(this._time));\n this.fire('onUpdate');\n }\n onEnterFrame() {\n const t = this.getTimer() - this._startTime;\n if (this.state === PLAYING) {\n this.setTime(t);\n }\n else if (this.state === REVERSING) {\n this.setTime(this.duration - t);\n }\n }\n pause() {\n this.state = PAUSED;\n this.fire('onPause');\n }\n getTimer() {\n return new Date().getTime();\n }\n}\nexport class Tween {\n constructor(config) {\n const that = this, node = config.node, nodeId = node._id, easing = config.easing || Easings.Linear, yoyo = !!config.yoyo;\n let duration, key;\n if (typeof config.duration === 'undefined') {\n duration = 0.3;\n }\n else if (config.duration === 0) {\n duration = 0.001;\n }\n else {\n duration = config.duration;\n }\n this.node = node;\n this._id = idCounter++;\n const layers = node.getLayer() ||\n (node instanceof Konva['Stage'] ? node.getLayers() : null);\n if (!layers) {\n Util.error('Tween constructor have `node` that is not in a layer. Please add node into layer first.');\n }\n this.anim = new Animation(function () {\n that.tween.onEnterFrame();\n }, layers);\n this.tween = new TweenEngine(key, function (i) {\n that._tweenFunc(i);\n }, easing, 0, 1, duration * 1000, yoyo);\n this._addListeners();\n if (!Tween.attrs[nodeId]) {\n Tween.attrs[nodeId] = {};\n }\n if (!Tween.attrs[nodeId][this._id]) {\n Tween.attrs[nodeId][this._id] = {};\n }\n if (!Tween.tweens[nodeId]) {\n Tween.tweens[nodeId] = {};\n }\n for (key in config) {\n if (blacklist[key] === undefined) {\n this._addAttr(key, config[key]);\n }\n }\n this.reset();\n this.onFinish = config.onFinish;\n this.onReset = config.onReset;\n this.onUpdate = config.onUpdate;\n }\n _addAttr(key, end) {\n const node = this.node, nodeId = node._id;\n let diff, len, trueEnd, trueStart, endRGBA;\n const tweenId = Tween.tweens[nodeId][key];\n if (tweenId) {\n delete Tween.attrs[nodeId][tweenId][key];\n }\n let start = node.getAttr(key);\n if (Util._isArray(end)) {\n diff = [];\n len = Math.max(end.length, start.length);\n if (key === 'points' && end.length !== start.length) {\n if (end.length > start.length) {\n trueStart = start;\n start = Util._prepareArrayForTween(start, end, node.closed());\n }\n else {\n trueEnd = end;\n end = Util._prepareArrayForTween(end, start, node.closed());\n }\n }\n if (key.indexOf('fill') === 0) {\n for (let n = 0; n < len; n++) {\n if (n % 2 === 0) {\n diff.push(end[n] - start[n]);\n }\n else {\n const startRGBA = colorToRGBA(start[n]);\n endRGBA = colorToRGBA(end[n]);\n start[n] = startRGBA;\n diff.push({\n r: endRGBA.r - startRGBA.r,\n g: endRGBA.g - startRGBA.g,\n b: endRGBA.b - startRGBA.b,\n a: endRGBA.a - startRGBA.a,\n });\n }\n }\n }\n else {\n for (let n = 0; n < len; n++) {\n diff.push(end[n] - start[n]);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n start = colorToRGBA(start);\n endRGBA = colorToRGBA(end);\n diff = {\n r: endRGBA.r - start.r,\n g: endRGBA.g - start.g,\n b: endRGBA.b - start.b,\n a: endRGBA.a - start.a,\n };\n }\n else {\n diff = end - start;\n }\n Tween.attrs[nodeId][this._id][key] = {\n start: start,\n diff: diff,\n end: end,\n trueEnd: trueEnd,\n trueStart: trueStart,\n };\n Tween.tweens[nodeId][key] = this._id;\n }\n _tweenFunc(i) {\n const node = this.node, attrs = Tween.attrs[node._id][this._id];\n let key, attr, start, diff, newVal, n, len, end;\n for (key in attrs) {\n attr = attrs[key];\n start = attr.start;\n diff = attr.diff;\n end = attr.end;\n if (Util._isArray(start)) {\n newVal = [];\n len = Math.max(start.length, end.length);\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n else {\n newVal.push('rgba(' +\n Math.round(start[n].r + diff[n].r * i) +\n ',' +\n Math.round(start[n].g + diff[n].g * i) +\n ',' +\n Math.round(start[n].b + diff[n].b * i) +\n ',' +\n (start[n].a + diff[n].a * i) +\n ')');\n }\n }\n }\n else {\n for (n = 0; n < len; n++) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n newVal =\n 'rgba(' +\n Math.round(start.r + diff.r * i) +\n ',' +\n Math.round(start.g + diff.g * i) +\n ',' +\n Math.round(start.b + diff.b * i) +\n ',' +\n (start.a + diff.a * i) +\n ')';\n }\n else {\n newVal = start + diff * i;\n }\n node.setAttr(key, newVal);\n }\n }\n _addListeners() {\n this.tween.onPlay = () => {\n this.anim.start();\n };\n this.tween.onReverse = () => {\n this.anim.start();\n };\n this.tween.onPause = () => {\n this.anim.stop();\n };\n this.tween.onFinish = () => {\n const node = this.node;\n const attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueEnd) {\n node.setAttr('points', attrs.points.trueEnd);\n }\n if (this.onFinish) {\n this.onFinish.call(this);\n }\n };\n this.tween.onReset = () => {\n const node = this.node;\n const attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueStart) {\n node.points(attrs.points.trueStart);\n }\n if (this.onReset) {\n this.onReset();\n }\n };\n this.tween.onUpdate = () => {\n if (this.onUpdate) {\n this.onUpdate.call(this);\n }\n };\n }\n play() {\n this.tween.play();\n return this;\n }\n reverse() {\n this.tween.reverse();\n return this;\n }\n reset() {\n this.tween.reset();\n return this;\n }\n seek(t) {\n this.tween.seek(t * 1000);\n return this;\n }\n pause() {\n this.tween.pause();\n return this;\n }\n finish() {\n this.tween.finish();\n return this;\n }\n destroy() {\n const nodeId = this.node._id, thisId = this._id, attrs = Tween.tweens[nodeId];\n this.pause();\n if (this.anim) {\n this.anim.stop();\n }\n for (const key in attrs) {\n delete Tween.tweens[nodeId][key];\n }\n delete Tween.attrs[nodeId][thisId];\n if (Tween.tweens[nodeId]) {\n if (Object.keys(Tween.tweens[nodeId]).length === 0) {\n delete Tween.tweens[nodeId];\n }\n if (Object.keys(Tween.attrs[nodeId]).length === 0) {\n delete Tween.attrs[nodeId];\n }\n }\n }\n}\nTween.attrs = {};\nTween.tweens = {};\nNode.prototype.to = function (params) {\n const onFinish = params.onFinish;\n params.node = this;\n params.onFinish = function () {\n this.destroy();\n if (onFinish) {\n onFinish();\n }\n };\n const tween = new Tween(params);\n tween.play();\n};\nexport const Easings = {\n BackEaseIn(t, b, c, d) {\n const s = 1.70158;\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n BackEaseOut(t, b, c, d) {\n const s = 1.70158;\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n BackEaseInOut(t, b, c, d) {\n let s = 1.70158;\n if ((t /= d / 2) < 1) {\n return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n }\n return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n },\n ElasticEaseIn(t, b, c, d, a, p) {\n let s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (-(a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) + b);\n },\n ElasticEaseOut(t, b, c, d, a, p) {\n let s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (a * Math.pow(2, -10 * t) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) +\n c +\n b);\n },\n ElasticEaseInOut(t, b, c, d, a, p) {\n let s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n if (t < 1) {\n return (-0.5 *\n (a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +\n b);\n }\n return (a *\n Math.pow(2, -10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p) *\n 0.5 +\n c +\n b);\n },\n BounceEaseOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n }\n else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n }\n else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n }\n else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n BounceEaseIn(t, b, c, d) {\n return c - Easings.BounceEaseOut(d - t, 0, c, d) + b;\n },\n BounceEaseInOut(t, b, c, d) {\n if (t < d / 2) {\n return Easings.BounceEaseIn(t * 2, 0, c, d) * 0.5 + b;\n }\n else {\n return Easings.BounceEaseOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n },\n EaseIn(t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n EaseOut(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n EaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t + b;\n }\n return (-c / 2) * (--t * (t - 2) - 1) + b;\n },\n StrongEaseIn(t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n },\n StrongEaseOut(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n StrongEaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t * t * t * t + b;\n }\n return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;\n },\n Linear(t, b, c, d) {\n return (c * t) / d + b;\n },\n};\n","import { Konva as Global } from \"./Global.js\";\nimport { Util, Transform } from \"./Util.js\";\nimport { Node } from \"./Node.js\";\nimport { Container } from \"./Container.js\";\nimport { Stage, stages } from \"./Stage.js\";\nimport { Layer } from \"./Layer.js\";\nimport { FastLayer } from \"./FastLayer.js\";\nimport { Group } from \"./Group.js\";\nimport { DD } from \"./DragAndDrop.js\";\nimport { Shape, shapes } from \"./Shape.js\";\nimport { Animation } from \"./Animation.js\";\nimport { Tween, Easings } from \"./Tween.js\";\nimport { Context } from \"./Context.js\";\nimport { Canvas } from \"./Canvas.js\";\nexport const Konva = Util._assign(Global, {\n Util,\n Transform,\n Node,\n Container,\n Stage,\n stages,\n Layer,\n FastLayer,\n Group,\n DD,\n Shape,\n shapes,\n Animation,\n Tween,\n Easings,\n Context,\n Canvas,\n});\nexport default Konva;\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { Konva } from \"../Global.js\";\nimport { getNumberValidator, getBooleanValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nexport class Arc extends Shape {\n _sceneFunc(context) {\n const angle = Konva.getAngle(this.angle()), clockwise = this.clockwise();\n context.beginPath();\n context.arc(0, 0, this.outerRadius(), 0, angle, clockwise);\n context.arc(0, 0, this.innerRadius(), angle, 0, !clockwise);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n getSelfRect() {\n const innerRadius = this.innerRadius();\n const outerRadius = this.outerRadius();\n const clockwise = this.clockwise();\n const rawAngle = Konva.getAngle(this.angle());\n if (rawAngle % (Math.PI * 2) === 0) {\n return rawAngle !== 0\n ? {\n x: -outerRadius,\n y: -outerRadius,\n width: outerRadius * 2,\n height: outerRadius * 2,\n }\n : { x: innerRadius, y: 0, width: outerRadius - innerRadius, height: 0 };\n }\n const angle = Konva.getAngle(clockwise ? 360 - this.angle() : this.angle());\n const boundLeftRatio = Math.cos(Math.min(angle, Math.PI));\n const boundRightRatio = 1;\n const boundTopRatio = Math.sin(Math.min(Math.max(Math.PI, angle), (3 * Math.PI) / 2));\n const boundBottomRatio = Math.sin(Math.min(angle, Math.PI / 2));\n const boundLeft = boundLeftRatio * (boundLeftRatio > 0 ? innerRadius : outerRadius);\n const boundRight = boundRightRatio * (boundRightRatio > 0 ? outerRadius : innerRadius);\n const boundTop = boundTopRatio * (boundTopRatio > 0 ? innerRadius : outerRadius);\n const boundBottom = boundBottomRatio * (boundBottomRatio > 0 ? outerRadius : innerRadius);\n return {\n x: boundLeft,\n y: clockwise ? -1 * boundBottom : boundTop,\n width: boundRight - boundLeft,\n height: boundBottom - boundTop,\n };\n }\n}\nArc.prototype._centroid = true;\nArc.prototype.className = 'Arc';\nArc.prototype._attrsAffectingSize = [\n 'innerRadius',\n 'outerRadius',\n 'angle',\n 'clockwise',\n];\n_registerNode(Arc);\nFactory.addGetterSetter(Arc, 'innerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Arc, 'outerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Arc, 'angle', 0, getNumberValidator());\nFactory.addGetterSetter(Arc, 'clockwise', false, getBooleanValidator());\n","export const tValues = [\n [],\n [],\n [\n -0.5773502691896257645091487805019574556476,\n 0.5773502691896257645091487805019574556476,\n ],\n [\n 0, -0.7745966692414833770358530799564799221665,\n 0.7745966692414833770358530799564799221665,\n ],\n [\n -0.3399810435848562648026657591032446872005,\n 0.3399810435848562648026657591032446872005,\n -0.8611363115940525752239464888928095050957,\n 0.8611363115940525752239464888928095050957,\n ],\n [\n 0, -0.5384693101056830910363144207002088049672,\n 0.5384693101056830910363144207002088049672,\n -0.9061798459386639927976268782993929651256,\n 0.9061798459386639927976268782993929651256,\n ],\n [\n 0.6612093864662645136613995950199053470064,\n -0.6612093864662645136613995950199053470064,\n -0.2386191860831969086305017216807119354186,\n 0.2386191860831969086305017216807119354186,\n -0.9324695142031520278123015544939946091347,\n 0.9324695142031520278123015544939946091347,\n ],\n [\n 0, 0.4058451513773971669066064120769614633473,\n -0.4058451513773971669066064120769614633473,\n -0.7415311855993944398638647732807884070741,\n 0.7415311855993944398638647732807884070741,\n -0.9491079123427585245261896840478512624007,\n 0.9491079123427585245261896840478512624007,\n ],\n [\n -0.1834346424956498049394761423601839806667,\n 0.1834346424956498049394761423601839806667,\n -0.5255324099163289858177390491892463490419,\n 0.5255324099163289858177390491892463490419,\n -0.7966664774136267395915539364758304368371,\n 0.7966664774136267395915539364758304368371,\n -0.9602898564975362316835608685694729904282,\n 0.9602898564975362316835608685694729904282,\n ],\n [\n 0, -0.8360311073266357942994297880697348765441,\n 0.8360311073266357942994297880697348765441,\n -0.9681602395076260898355762029036728700494,\n 0.9681602395076260898355762029036728700494,\n -0.3242534234038089290385380146433366085719,\n 0.3242534234038089290385380146433366085719,\n -0.6133714327005903973087020393414741847857,\n 0.6133714327005903973087020393414741847857,\n ],\n [\n -0.1488743389816312108848260011297199846175,\n 0.1488743389816312108848260011297199846175,\n -0.4333953941292471907992659431657841622,\n 0.4333953941292471907992659431657841622,\n -0.6794095682990244062343273651148735757692,\n 0.6794095682990244062343273651148735757692,\n -0.8650633666889845107320966884234930485275,\n 0.8650633666889845107320966884234930485275,\n -0.9739065285171717200779640120844520534282,\n 0.9739065285171717200779640120844520534282,\n ],\n [\n 0, -0.2695431559523449723315319854008615246796,\n 0.2695431559523449723315319854008615246796,\n -0.5190961292068118159257256694586095544802,\n 0.5190961292068118159257256694586095544802,\n -0.7301520055740493240934162520311534580496,\n 0.7301520055740493240934162520311534580496,\n -0.8870625997680952990751577693039272666316,\n 0.8870625997680952990751577693039272666316,\n -0.9782286581460569928039380011228573907714,\n 0.9782286581460569928039380011228573907714,\n ],\n [\n -0.1252334085114689154724413694638531299833,\n 0.1252334085114689154724413694638531299833,\n -0.3678314989981801937526915366437175612563,\n 0.3678314989981801937526915366437175612563,\n -0.587317954286617447296702418940534280369,\n 0.587317954286617447296702418940534280369,\n -0.7699026741943046870368938332128180759849,\n 0.7699026741943046870368938332128180759849,\n -0.9041172563704748566784658661190961925375,\n 0.9041172563704748566784658661190961925375,\n -0.9815606342467192506905490901492808229601,\n 0.9815606342467192506905490901492808229601,\n ],\n [\n 0, -0.2304583159551347940655281210979888352115,\n 0.2304583159551347940655281210979888352115,\n -0.4484927510364468528779128521276398678019,\n 0.4484927510364468528779128521276398678019,\n -0.6423493394403402206439846069955156500716,\n 0.6423493394403402206439846069955156500716,\n -0.8015780907333099127942064895828598903056,\n 0.8015780907333099127942064895828598903056,\n -0.9175983992229779652065478365007195123904,\n 0.9175983992229779652065478365007195123904,\n -0.9841830547185881494728294488071096110649,\n 0.9841830547185881494728294488071096110649,\n ],\n [\n -0.1080549487073436620662446502198347476119,\n 0.1080549487073436620662446502198347476119,\n -0.3191123689278897604356718241684754668342,\n 0.3191123689278897604356718241684754668342,\n -0.5152486363581540919652907185511886623088,\n 0.5152486363581540919652907185511886623088,\n -0.6872929048116854701480198030193341375384,\n 0.6872929048116854701480198030193341375384,\n -0.8272013150697649931897947426503949610397,\n 0.8272013150697649931897947426503949610397,\n -0.928434883663573517336391139377874264477,\n 0.928434883663573517336391139377874264477,\n -0.986283808696812338841597266704052801676,\n 0.986283808696812338841597266704052801676,\n ],\n [\n 0, -0.2011940939974345223006283033945962078128,\n 0.2011940939974345223006283033945962078128,\n -0.3941513470775633698972073709810454683627,\n 0.3941513470775633698972073709810454683627,\n -0.5709721726085388475372267372539106412383,\n 0.5709721726085388475372267372539106412383,\n -0.7244177313601700474161860546139380096308,\n 0.7244177313601700474161860546139380096308,\n -0.8482065834104272162006483207742168513662,\n 0.8482065834104272162006483207742168513662,\n -0.9372733924007059043077589477102094712439,\n 0.9372733924007059043077589477102094712439,\n -0.9879925180204854284895657185866125811469,\n 0.9879925180204854284895657185866125811469,\n ],\n [\n -0.0950125098376374401853193354249580631303,\n 0.0950125098376374401853193354249580631303,\n -0.281603550779258913230460501460496106486,\n 0.281603550779258913230460501460496106486,\n -0.45801677765722738634241944298357757354,\n 0.45801677765722738634241944298357757354,\n -0.6178762444026437484466717640487910189918,\n 0.6178762444026437484466717640487910189918,\n -0.7554044083550030338951011948474422683538,\n 0.7554044083550030338951011948474422683538,\n -0.8656312023878317438804678977123931323873,\n 0.8656312023878317438804678977123931323873,\n -0.9445750230732325760779884155346083450911,\n 0.9445750230732325760779884155346083450911,\n -0.9894009349916499325961541734503326274262,\n 0.9894009349916499325961541734503326274262,\n ],\n [\n 0, -0.1784841814958478558506774936540655574754,\n 0.1784841814958478558506774936540655574754,\n -0.3512317634538763152971855170953460050405,\n 0.3512317634538763152971855170953460050405,\n -0.5126905370864769678862465686295518745829,\n 0.5126905370864769678862465686295518745829,\n -0.6576711592166907658503022166430023351478,\n 0.6576711592166907658503022166430023351478,\n -0.7815140038968014069252300555204760502239,\n 0.7815140038968014069252300555204760502239,\n -0.8802391537269859021229556944881556926234,\n 0.8802391537269859021229556944881556926234,\n -0.9506755217687677612227169578958030214433,\n 0.9506755217687677612227169578958030214433,\n -0.9905754753144173356754340199406652765077,\n 0.9905754753144173356754340199406652765077,\n ],\n [\n -0.0847750130417353012422618529357838117333,\n 0.0847750130417353012422618529357838117333,\n -0.2518862256915055095889728548779112301628,\n 0.2518862256915055095889728548779112301628,\n -0.4117511614628426460359317938330516370789,\n 0.4117511614628426460359317938330516370789,\n -0.5597708310739475346078715485253291369276,\n 0.5597708310739475346078715485253291369276,\n -0.6916870430603532078748910812888483894522,\n 0.6916870430603532078748910812888483894522,\n -0.8037049589725231156824174550145907971032,\n 0.8037049589725231156824174550145907971032,\n -0.8926024664975557392060605911271455154078,\n 0.8926024664975557392060605911271455154078,\n -0.9558239495713977551811958929297763099728,\n 0.9558239495713977551811958929297763099728,\n -0.9915651684209309467300160047061507702525,\n 0.9915651684209309467300160047061507702525,\n ],\n [\n 0, -0.1603586456402253758680961157407435495048,\n 0.1603586456402253758680961157407435495048,\n -0.3165640999636298319901173288498449178922,\n 0.3165640999636298319901173288498449178922,\n -0.4645707413759609457172671481041023679762,\n 0.4645707413759609457172671481041023679762,\n -0.6005453046616810234696381649462392798683,\n 0.6005453046616810234696381649462392798683,\n -0.7209661773352293786170958608237816296571,\n 0.7209661773352293786170958608237816296571,\n -0.8227146565371428249789224867127139017745,\n 0.8227146565371428249789224867127139017745,\n -0.9031559036148179016426609285323124878093,\n 0.9031559036148179016426609285323124878093,\n -0.960208152134830030852778840687651526615,\n 0.960208152134830030852778840687651526615,\n -0.9924068438435844031890176702532604935893,\n 0.9924068438435844031890176702532604935893,\n ],\n [\n -0.0765265211334973337546404093988382110047,\n 0.0765265211334973337546404093988382110047,\n -0.227785851141645078080496195368574624743,\n 0.227785851141645078080496195368574624743,\n -0.3737060887154195606725481770249272373957,\n 0.3737060887154195606725481770249272373957,\n -0.5108670019508270980043640509552509984254,\n 0.5108670019508270980043640509552509984254,\n -0.6360536807265150254528366962262859367433,\n 0.6360536807265150254528366962262859367433,\n -0.7463319064601507926143050703556415903107,\n 0.7463319064601507926143050703556415903107,\n -0.8391169718222188233945290617015206853296,\n 0.8391169718222188233945290617015206853296,\n -0.9122344282513259058677524412032981130491,\n 0.9122344282513259058677524412032981130491,\n -0.963971927277913791267666131197277221912,\n 0.963971927277913791267666131197277221912,\n -0.9931285991850949247861223884713202782226,\n 0.9931285991850949247861223884713202782226,\n ],\n [\n 0, -0.1455618541608950909370309823386863301163,\n 0.1455618541608950909370309823386863301163,\n -0.288021316802401096600792516064600319909,\n 0.288021316802401096600792516064600319909,\n -0.4243421202074387835736688885437880520964,\n 0.4243421202074387835736688885437880520964,\n -0.551618835887219807059018796724313286622,\n 0.551618835887219807059018796724313286622,\n -0.667138804197412319305966669990339162597,\n 0.667138804197412319305966669990339162597,\n -0.7684399634756779086158778513062280348209,\n 0.7684399634756779086158778513062280348209,\n -0.8533633645833172836472506385875676702761,\n 0.8533633645833172836472506385875676702761,\n -0.9200993341504008287901871337149688941591,\n 0.9200993341504008287901871337149688941591,\n -0.9672268385663062943166222149076951614246,\n 0.9672268385663062943166222149076951614246,\n -0.9937521706203895002602420359379409291933,\n 0.9937521706203895002602420359379409291933,\n ],\n [\n -0.0697392733197222212138417961186280818222,\n 0.0697392733197222212138417961186280818222,\n -0.2078604266882212854788465339195457342156,\n 0.2078604266882212854788465339195457342156,\n -0.3419358208920842251581474204273796195591,\n 0.3419358208920842251581474204273796195591,\n -0.4693558379867570264063307109664063460953,\n 0.4693558379867570264063307109664063460953,\n -0.5876404035069115929588769276386473488776,\n 0.5876404035069115929588769276386473488776,\n -0.6944872631866827800506898357622567712673,\n 0.6944872631866827800506898357622567712673,\n -0.7878168059792081620042779554083515213881,\n 0.7878168059792081620042779554083515213881,\n -0.8658125777203001365364256370193787290847,\n 0.8658125777203001365364256370193787290847,\n -0.9269567721871740005206929392590531966353,\n 0.9269567721871740005206929392590531966353,\n -0.9700604978354287271239509867652687108059,\n 0.9700604978354287271239509867652687108059,\n -0.994294585482399292073031421161298980393,\n 0.994294585482399292073031421161298980393,\n ],\n [\n 0, -0.1332568242984661109317426822417661370104,\n 0.1332568242984661109317426822417661370104,\n -0.264135680970344930533869538283309602979,\n 0.264135680970344930533869538283309602979,\n -0.390301038030290831421488872880605458578,\n 0.390301038030290831421488872880605458578,\n -0.5095014778460075496897930478668464305448,\n 0.5095014778460075496897930478668464305448,\n -0.6196098757636461563850973116495956533871,\n 0.6196098757636461563850973116495956533871,\n -0.7186613631319501944616244837486188483299,\n 0.7186613631319501944616244837486188483299,\n -0.8048884016188398921511184069967785579414,\n 0.8048884016188398921511184069967785579414,\n -0.8767523582704416673781568859341456716389,\n 0.8767523582704416673781568859341456716389,\n -0.9329710868260161023491969890384229782357,\n 0.9329710868260161023491969890384229782357,\n -0.9725424712181152319560240768207773751816,\n 0.9725424712181152319560240768207773751816,\n -0.9947693349975521235239257154455743605736,\n 0.9947693349975521235239257154455743605736,\n ],\n [\n -0.0640568928626056260850430826247450385909,\n 0.0640568928626056260850430826247450385909,\n -0.1911188674736163091586398207570696318404,\n 0.1911188674736163091586398207570696318404,\n -0.3150426796961633743867932913198102407864,\n 0.3150426796961633743867932913198102407864,\n -0.4337935076260451384870842319133497124524,\n 0.4337935076260451384870842319133497124524,\n -0.5454214713888395356583756172183723700107,\n 0.5454214713888395356583756172183723700107,\n -0.6480936519369755692524957869107476266696,\n 0.6480936519369755692524957869107476266696,\n -0.7401241915785543642438281030999784255232,\n 0.7401241915785543642438281030999784255232,\n -0.8200019859739029219539498726697452080761,\n 0.8200019859739029219539498726697452080761,\n -0.8864155270044010342131543419821967550873,\n 0.8864155270044010342131543419821967550873,\n -0.9382745520027327585236490017087214496548,\n 0.9382745520027327585236490017087214496548,\n -0.9747285559713094981983919930081690617411,\n 0.9747285559713094981983919930081690617411,\n -0.9951872199970213601799974097007368118745,\n 0.9951872199970213601799974097007368118745,\n ],\n];\nexport const cValues = [\n [],\n [],\n [1.0, 1.0],\n [\n 0.8888888888888888888888888888888888888888,\n 0.5555555555555555555555555555555555555555,\n 0.5555555555555555555555555555555555555555,\n ],\n [\n 0.6521451548625461426269360507780005927646,\n 0.6521451548625461426269360507780005927646,\n 0.3478548451374538573730639492219994072353,\n 0.3478548451374538573730639492219994072353,\n ],\n [\n 0.5688888888888888888888888888888888888888,\n 0.4786286704993664680412915148356381929122,\n 0.4786286704993664680412915148356381929122,\n 0.2369268850561890875142640407199173626432,\n 0.2369268850561890875142640407199173626432,\n ],\n [\n 0.3607615730481386075698335138377161116615,\n 0.3607615730481386075698335138377161116615,\n 0.4679139345726910473898703439895509948116,\n 0.4679139345726910473898703439895509948116,\n 0.1713244923791703450402961421727328935268,\n 0.1713244923791703450402961421727328935268,\n ],\n [\n 0.4179591836734693877551020408163265306122,\n 0.3818300505051189449503697754889751338783,\n 0.3818300505051189449503697754889751338783,\n 0.2797053914892766679014677714237795824869,\n 0.2797053914892766679014677714237795824869,\n 0.1294849661688696932706114326790820183285,\n 0.1294849661688696932706114326790820183285,\n ],\n [\n 0.3626837833783619829651504492771956121941,\n 0.3626837833783619829651504492771956121941,\n 0.3137066458778872873379622019866013132603,\n 0.3137066458778872873379622019866013132603,\n 0.2223810344533744705443559944262408844301,\n 0.2223810344533744705443559944262408844301,\n 0.1012285362903762591525313543099621901153,\n 0.1012285362903762591525313543099621901153,\n ],\n [\n 0.3302393550012597631645250692869740488788,\n 0.1806481606948574040584720312429128095143,\n 0.1806481606948574040584720312429128095143,\n 0.0812743883615744119718921581105236506756,\n 0.0812743883615744119718921581105236506756,\n 0.3123470770400028400686304065844436655987,\n 0.3123470770400028400686304065844436655987,\n 0.2606106964029354623187428694186328497718,\n 0.2606106964029354623187428694186328497718,\n ],\n [\n 0.295524224714752870173892994651338329421,\n 0.295524224714752870173892994651338329421,\n 0.2692667193099963550912269215694693528597,\n 0.2692667193099963550912269215694693528597,\n 0.2190863625159820439955349342281631924587,\n 0.2190863625159820439955349342281631924587,\n 0.1494513491505805931457763396576973324025,\n 0.1494513491505805931457763396576973324025,\n 0.0666713443086881375935688098933317928578,\n 0.0666713443086881375935688098933317928578,\n ],\n [\n 0.272925086777900630714483528336342189156,\n 0.2628045445102466621806888698905091953727,\n 0.2628045445102466621806888698905091953727,\n 0.2331937645919904799185237048431751394317,\n 0.2331937645919904799185237048431751394317,\n 0.1862902109277342514260976414316558916912,\n 0.1862902109277342514260976414316558916912,\n 0.1255803694649046246346942992239401001976,\n 0.1255803694649046246346942992239401001976,\n 0.0556685671161736664827537204425485787285,\n 0.0556685671161736664827537204425485787285,\n ],\n [\n 0.2491470458134027850005624360429512108304,\n 0.2491470458134027850005624360429512108304,\n 0.2334925365383548087608498989248780562594,\n 0.2334925365383548087608498989248780562594,\n 0.2031674267230659217490644558097983765065,\n 0.2031674267230659217490644558097983765065,\n 0.160078328543346226334652529543359071872,\n 0.160078328543346226334652529543359071872,\n 0.1069393259953184309602547181939962242145,\n 0.1069393259953184309602547181939962242145,\n 0.047175336386511827194615961485017060317,\n 0.047175336386511827194615961485017060317,\n ],\n [\n 0.2325515532308739101945895152688359481566,\n 0.2262831802628972384120901860397766184347,\n 0.2262831802628972384120901860397766184347,\n 0.2078160475368885023125232193060527633865,\n 0.2078160475368885023125232193060527633865,\n 0.1781459807619457382800466919960979955128,\n 0.1781459807619457382800466919960979955128,\n 0.1388735102197872384636017768688714676218,\n 0.1388735102197872384636017768688714676218,\n 0.0921214998377284479144217759537971209236,\n 0.0921214998377284479144217759537971209236,\n 0.0404840047653158795200215922009860600419,\n 0.0404840047653158795200215922009860600419,\n ],\n [\n 0.2152638534631577901958764433162600352749,\n 0.2152638534631577901958764433162600352749,\n 0.2051984637212956039659240656612180557103,\n 0.2051984637212956039659240656612180557103,\n 0.1855383974779378137417165901251570362489,\n 0.1855383974779378137417165901251570362489,\n 0.1572031671581935345696019386238421566056,\n 0.1572031671581935345696019386238421566056,\n 0.1215185706879031846894148090724766259566,\n 0.1215185706879031846894148090724766259566,\n 0.0801580871597602098056332770628543095836,\n 0.0801580871597602098056332770628543095836,\n 0.0351194603317518630318328761381917806197,\n 0.0351194603317518630318328761381917806197,\n ],\n [\n 0.2025782419255612728806201999675193148386,\n 0.1984314853271115764561183264438393248186,\n 0.1984314853271115764561183264438393248186,\n 0.1861610000155622110268005618664228245062,\n 0.1861610000155622110268005618664228245062,\n 0.1662692058169939335532008604812088111309,\n 0.1662692058169939335532008604812088111309,\n 0.1395706779261543144478047945110283225208,\n 0.1395706779261543144478047945110283225208,\n 0.1071592204671719350118695466858693034155,\n 0.1071592204671719350118695466858693034155,\n 0.0703660474881081247092674164506673384667,\n 0.0703660474881081247092674164506673384667,\n 0.0307532419961172683546283935772044177217,\n 0.0307532419961172683546283935772044177217,\n ],\n [\n 0.1894506104550684962853967232082831051469,\n 0.1894506104550684962853967232082831051469,\n 0.1826034150449235888667636679692199393835,\n 0.1826034150449235888667636679692199393835,\n 0.1691565193950025381893120790303599622116,\n 0.1691565193950025381893120790303599622116,\n 0.1495959888165767320815017305474785489704,\n 0.1495959888165767320815017305474785489704,\n 0.1246289712555338720524762821920164201448,\n 0.1246289712555338720524762821920164201448,\n 0.0951585116824927848099251076022462263552,\n 0.0951585116824927848099251076022462263552,\n 0.0622535239386478928628438369943776942749,\n 0.0622535239386478928628438369943776942749,\n 0.0271524594117540948517805724560181035122,\n 0.0271524594117540948517805724560181035122,\n ],\n [\n 0.1794464703562065254582656442618856214487,\n 0.1765627053669926463252709901131972391509,\n 0.1765627053669926463252709901131972391509,\n 0.1680041021564500445099706637883231550211,\n 0.1680041021564500445099706637883231550211,\n 0.1540457610768102880814315948019586119404,\n 0.1540457610768102880814315948019586119404,\n 0.1351363684685254732863199817023501973721,\n 0.1351363684685254732863199817023501973721,\n 0.1118838471934039710947883856263559267358,\n 0.1118838471934039710947883856263559267358,\n 0.0850361483171791808835353701910620738504,\n 0.0850361483171791808835353701910620738504,\n 0.0554595293739872011294401653582446605128,\n 0.0554595293739872011294401653582446605128,\n 0.0241483028685479319601100262875653246916,\n 0.0241483028685479319601100262875653246916,\n ],\n [\n 0.1691423829631435918406564701349866103341,\n 0.1691423829631435918406564701349866103341,\n 0.1642764837458327229860537764659275904123,\n 0.1642764837458327229860537764659275904123,\n 0.1546846751262652449254180038363747721932,\n 0.1546846751262652449254180038363747721932,\n 0.1406429146706506512047313037519472280955,\n 0.1406429146706506512047313037519472280955,\n 0.1225552067114784601845191268002015552281,\n 0.1225552067114784601845191268002015552281,\n 0.1009420441062871655628139849248346070628,\n 0.1009420441062871655628139849248346070628,\n 0.0764257302548890565291296776166365256053,\n 0.0764257302548890565291296776166365256053,\n 0.0497145488949697964533349462026386416808,\n 0.0497145488949697964533349462026386416808,\n 0.0216160135264833103133427102664524693876,\n 0.0216160135264833103133427102664524693876,\n ],\n [\n 0.1610544498487836959791636253209167350399,\n 0.1589688433939543476499564394650472016787,\n 0.1589688433939543476499564394650472016787,\n 0.152766042065859666778855400897662998461,\n 0.152766042065859666778855400897662998461,\n 0.1426067021736066117757461094419029724756,\n 0.1426067021736066117757461094419029724756,\n 0.1287539625393362276755157848568771170558,\n 0.1287539625393362276755157848568771170558,\n 0.1115666455473339947160239016817659974813,\n 0.1115666455473339947160239016817659974813,\n 0.0914900216224499994644620941238396526609,\n 0.0914900216224499994644620941238396526609,\n 0.0690445427376412265807082580060130449618,\n 0.0690445427376412265807082580060130449618,\n 0.0448142267656996003328381574019942119517,\n 0.0448142267656996003328381574019942119517,\n 0.0194617882297264770363120414644384357529,\n 0.0194617882297264770363120414644384357529,\n ],\n [\n 0.1527533871307258506980843319550975934919,\n 0.1527533871307258506980843319550975934919,\n 0.1491729864726037467878287370019694366926,\n 0.1491729864726037467878287370019694366926,\n 0.1420961093183820513292983250671649330345,\n 0.1420961093183820513292983250671649330345,\n 0.1316886384491766268984944997481631349161,\n 0.1316886384491766268984944997481631349161,\n 0.118194531961518417312377377711382287005,\n 0.118194531961518417312377377711382287005,\n 0.1019301198172404350367501354803498761666,\n 0.1019301198172404350367501354803498761666,\n 0.0832767415767047487247581432220462061001,\n 0.0832767415767047487247581432220462061001,\n 0.0626720483341090635695065351870416063516,\n 0.0626720483341090635695065351870416063516,\n 0.040601429800386941331039952274932109879,\n 0.040601429800386941331039952274932109879,\n 0.0176140071391521183118619623518528163621,\n 0.0176140071391521183118619623518528163621,\n ],\n [\n 0.1460811336496904271919851476833711882448,\n 0.1445244039899700590638271665537525436099,\n 0.1445244039899700590638271665537525436099,\n 0.1398873947910731547221334238675831108927,\n 0.1398873947910731547221334238675831108927,\n 0.132268938633337461781052574496775604329,\n 0.132268938633337461781052574496775604329,\n 0.1218314160537285341953671771257335983563,\n 0.1218314160537285341953671771257335983563,\n 0.1087972991671483776634745780701056420336,\n 0.1087972991671483776634745780701056420336,\n 0.0934444234560338615532897411139320884835,\n 0.0934444234560338615532897411139320884835,\n 0.0761001136283793020170516533001831792261,\n 0.0761001136283793020170516533001831792261,\n 0.0571344254268572082836358264724479574912,\n 0.0571344254268572082836358264724479574912,\n 0.0369537897708524937999506682993296661889,\n 0.0369537897708524937999506682993296661889,\n 0.0160172282577743333242246168584710152658,\n 0.0160172282577743333242246168584710152658,\n ],\n [\n 0.1392518728556319933754102483418099578739,\n 0.1392518728556319933754102483418099578739,\n 0.1365414983460151713525738312315173965863,\n 0.1365414983460151713525738312315173965863,\n 0.1311735047870623707329649925303074458757,\n 0.1311735047870623707329649925303074458757,\n 0.1232523768105124242855609861548144719594,\n 0.1232523768105124242855609861548144719594,\n 0.1129322960805392183934006074217843191142,\n 0.1129322960805392183934006074217843191142,\n 0.1004141444428809649320788378305362823508,\n 0.1004141444428809649320788378305362823508,\n 0.0859416062170677274144436813727028661891,\n 0.0859416062170677274144436813727028661891,\n 0.0697964684245204880949614189302176573987,\n 0.0697964684245204880949614189302176573987,\n 0.0522933351526832859403120512732112561121,\n 0.0522933351526832859403120512732112561121,\n 0.0337749015848141547933022468659129013491,\n 0.0337749015848141547933022468659129013491,\n 0.0146279952982722006849910980471854451902,\n 0.0146279952982722006849910980471854451902,\n ],\n [\n 0.1336545721861061753514571105458443385831,\n 0.132462039404696617371642464703316925805,\n 0.132462039404696617371642464703316925805,\n 0.1289057221880821499785953393997936532597,\n 0.1289057221880821499785953393997936532597,\n 0.1230490843067295304675784006720096548158,\n 0.1230490843067295304675784006720096548158,\n 0.1149966402224113649416435129339613014914,\n 0.1149966402224113649416435129339613014914,\n 0.1048920914645414100740861850147438548584,\n 0.1048920914645414100740861850147438548584,\n 0.0929157660600351474770186173697646486034,\n 0.0929157660600351474770186173697646486034,\n 0.0792814117767189549228925247420432269137,\n 0.0792814117767189549228925247420432269137,\n 0.0642324214085258521271696151589109980391,\n 0.0642324214085258521271696151589109980391,\n 0.0480376717310846685716410716320339965612,\n 0.0480376717310846685716410716320339965612,\n 0.0309880058569794443106942196418845053837,\n 0.0309880058569794443106942196418845053837,\n 0.0134118594871417720813094934586150649766,\n 0.0134118594871417720813094934586150649766,\n ],\n [\n 0.1279381953467521569740561652246953718517,\n 0.1279381953467521569740561652246953718517,\n 0.1258374563468282961213753825111836887264,\n 0.1258374563468282961213753825111836887264,\n 0.121670472927803391204463153476262425607,\n 0.121670472927803391204463153476262425607,\n 0.1155056680537256013533444839067835598622,\n 0.1155056680537256013533444839067835598622,\n 0.1074442701159656347825773424466062227946,\n 0.1074442701159656347825773424466062227946,\n 0.0976186521041138882698806644642471544279,\n 0.0976186521041138882698806644642471544279,\n 0.086190161531953275917185202983742667185,\n 0.086190161531953275917185202983742667185,\n 0.0733464814110803057340336152531165181193,\n 0.0733464814110803057340336152531165181193,\n 0.0592985849154367807463677585001085845412,\n 0.0592985849154367807463677585001085845412,\n 0.0442774388174198061686027482113382288593,\n 0.0442774388174198061686027482113382288593,\n 0.0285313886289336631813078159518782864491,\n 0.0285313886289336631813078159518782864491,\n 0.0123412297999871995468056670700372915759,\n 0.0123412297999871995468056670700372915759,\n ],\n];\nexport const binomialCoefficients = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]];\nexport const getCubicArcLength = (xs, ys, t) => {\n let sum;\n let correctedT;\n const n = 20;\n const z = t / 2;\n sum = 0;\n for (let i = 0; i < n; i++) {\n correctedT = z * tValues[n][i] + z;\n sum += cValues[n][i] * BFunc(xs, ys, correctedT);\n }\n return z * sum;\n};\nexport const getQuadraticArcLength = (xs, ys, t) => {\n if (t === undefined) {\n t = 1;\n }\n const ax = xs[0] - 2 * xs[1] + xs[2];\n const ay = ys[0] - 2 * ys[1] + ys[2];\n const bx = 2 * xs[1] - 2 * xs[0];\n const by = 2 * ys[1] - 2 * ys[0];\n const A = 4 * (ax * ax + ay * ay);\n const B = 4 * (ax * bx + ay * by);\n const C = bx * bx + by * by;\n if (A === 0) {\n return (t * Math.sqrt(Math.pow(xs[2] - xs[0], 2) + Math.pow(ys[2] - ys[0], 2)));\n }\n const b = B / (2 * A);\n const c = C / A;\n const u = t + b;\n const k = c - b * b;\n const uuk = u * u + k > 0 ? Math.sqrt(u * u + k) : 0;\n const bbk = b * b + k > 0 ? Math.sqrt(b * b + k) : 0;\n const term = b + Math.sqrt(b * b + k) !== 0\n ? k * Math.log(Math.abs((u + uuk) / (b + bbk)))\n : 0;\n return (Math.sqrt(A) / 2) * (u * uuk - b * bbk + term);\n};\nfunction BFunc(xs, ys, t) {\n const xbase = getDerivative(1, t, xs);\n const ybase = getDerivative(1, t, ys);\n const combined = xbase * xbase + ybase * ybase;\n return Math.sqrt(combined);\n}\nconst getDerivative = (derivative, t, vs) => {\n const n = vs.length - 1;\n let _vs;\n let value;\n if (n === 0) {\n return 0;\n }\n if (derivative === 0) {\n value = 0;\n for (let k = 0; k <= n; k++) {\n value +=\n binomialCoefficients[n][k] *\n Math.pow(1 - t, n - k) *\n Math.pow(t, k) *\n vs[k];\n }\n return value;\n }\n else {\n _vs = new Array(n);\n for (let k = 0; k < n; k++) {\n _vs[k] = n * (vs[k + 1] - vs[k]);\n }\n return getDerivative(derivative - 1, t, _vs);\n }\n};\nexport const t2length = (length, totalLength, func) => {\n let error = 1;\n let t = length / totalLength;\n let step = (length - func(t)) / totalLength;\n let numIterations = 0;\n while (error > 0.001) {\n const increasedTLength = func(t + step);\n const increasedTError = Math.abs(length - increasedTLength) / totalLength;\n if (increasedTError < error) {\n error = increasedTError;\n t += step;\n }\n else {\n const decreasedTLength = func(t - step);\n const decreasedTError = Math.abs(length - decreasedTLength) / totalLength;\n if (decreasedTError < error) {\n error = decreasedTError;\n t -= step;\n }\n else {\n step /= 2;\n }\n }\n numIterations++;\n if (numIterations > 500) {\n break;\n }\n }\n return t;\n};\nconst quadraticAt = (p0, p1, p2, t) => {\n const mt = 1 - t;\n return mt * mt * p0 + 2 * mt * t * p1 + t * t * p2;\n};\nexport const getQuadraticExtremaPoints = (x0, y0, x1, y1, x2, y2) => {\n const extrema = [];\n for (const axis of [\n [x0, x1, x2],\n [y0, y1, y2],\n ]) {\n const t = (axis[0] - axis[1]) / (axis[0] - 2 * axis[1] + axis[2]);\n if (t > 0 && t < 1) {\n extrema.push(quadraticAt(x0, x1, x2, t), quadraticAt(y0, y1, y2, t));\n }\n }\n return extrema;\n};\nconst cubicAt = (p0, p1, p2, p3, t) => {\n const mt = 1 - t;\n return (mt * mt * mt * p0 +\n 3 * mt * mt * t * p1 +\n 3 * mt * t * t * p2 +\n t * t * t * p3);\n};\nexport const getCubicExtremaPoints = (x0, y0, x1, y1, x2, y2, x3, y3) => {\n const extrema = [];\n for (const axis of [\n [x0, x1, x2, x3],\n [y0, y1, y2, y3],\n ]) {\n const a = -3 * axis[0] + 9 * axis[1] - 9 * axis[2] + 3 * axis[3];\n const b = 6 * axis[0] - 12 * axis[1] + 6 * axis[2];\n const c = -3 * axis[0] + 3 * axis[1];\n const discriminant = b * b - 4 * a * c;\n if (discriminant < 0) {\n continue;\n }\n const q = -(b + (b < 0 ? -1 : 1) * Math.sqrt(discriminant)) / 2;\n for (const t of [q / a, c / q]) {\n if (t > 0 && t < 1) {\n extrema.push(cubicAt(x0, x1, x2, x3, t), cubicAt(y0, y1, y2, y3, t));\n }\n }\n }\n return extrema;\n};\n","import { getCubicExtremaPoints, getQuadraticExtremaPoints, } from \"../BezierFunctions.js\";\nimport { Factory } from \"../Factory.js\";\nimport { _registerNode } from \"../Global.js\";\nimport { Shape } from \"../Shape.js\";\nimport { getNumberArrayValidator, getNumberValidator } from \"../Validators.js\";\nfunction getControlPoints(x0, y0, x1, y1, x2, y2, t) {\n const d01 = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)), d12 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)), dSum = d01 + d12;\n if (dSum === 0) {\n return [x1, y1, x1, y1];\n }\n const fa = (t * d01) / dSum, fb = (t * d12) / dSum, p1x = x1 - fa * (x2 - x0), p1y = y1 - fa * (y2 - y0), p2x = x1 + fb * (x2 - x0), p2y = y1 + fb * (y2 - y0);\n return [p1x, p1y, p2x, p2y];\n}\nfunction expandPoints(p, tension) {\n const len = p.length, allPoints = [];\n for (let n = 2; n < len - 2; n += 2) {\n const cp = getControlPoints(p[n - 2], p[n - 1], p[n], p[n + 1], p[n + 2], p[n + 3], tension);\n if (isNaN(cp[0])) {\n continue;\n }\n allPoints.push(cp[0]);\n allPoints.push(cp[1]);\n allPoints.push(p[n]);\n allPoints.push(p[n + 1]);\n allPoints.push(cp[2]);\n allPoints.push(cp[3]);\n }\n return allPoints;\n}\nfunction getBezierExtremaPoints(points) {\n const extrema = [];\n for (let n = 0; n + 7 < points.length; n += 6) {\n extrema.push(points[n + 6], points[n + 7], ...getCubicExtremaPoints(points[n], points[n + 1], points[n + 2], points[n + 3], points[n + 4], points[n + 5], points[n + 6], points[n + 7]));\n }\n return extrema;\n}\nexport class Line extends Shape {\n constructor(config) {\n super(config);\n this.on('pointsChange.konva tensionChange.konva closedChange.konva bezierChange.konva', function () {\n this._clearCache('tensionPoints');\n });\n }\n _hasTension() {\n return this.tension() !== 0 && this.points().length > 4;\n }\n _eachTensionSegment(onQuadratic, onCubic) {\n const points = this.points(), length = points.length, closed = this.closed(), tp = this.getTensionPoints(), len = tp.length;\n let x0 = points[0], y0 = points[1], n = closed ? 0 : 4;\n if (!closed) {\n onQuadratic(x0, y0, tp[0], tp[1], tp[2], tp[3]);\n x0 = tp[2];\n y0 = tp[3];\n }\n while (n < len - 2) {\n const cp1x = tp[n++], cp1y = tp[n++], cp2x = tp[n++], cp2y = tp[n++], x = tp[n++], y = tp[n++];\n onCubic(x0, y0, cp1x, cp1y, cp2x, cp2y, x, y);\n x0 = x;\n y0 = y;\n }\n if (!closed) {\n onQuadratic(x0, y0, tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);\n }\n }\n _sceneFunc(context) {\n const points = this.points(), length = points.length, closed = this.closed(), bezier = this.bezier();\n if (!length) {\n return;\n }\n let n = 0;\n context.beginPath();\n context.moveTo(points[0], points[1]);\n if (this._hasTension()) {\n this._eachTensionSegment((_x0, _y0, cpx, cpy, x, y) => context.quadraticCurveTo(cpx, cpy, x, y), (_x0, _y0, cp1x, cp1y, cp2x, cp2y, x, y) => context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y));\n }\n else if (bezier) {\n n = 2;\n while (n < length) {\n context.bezierCurveTo(points[n++], points[n++], points[n++], points[n++], points[n++], points[n++]);\n }\n }\n else {\n for (n = 2; n < length; n += 2) {\n context.lineTo(points[n], points[n + 1]);\n }\n }\n if (closed) {\n context.closePath();\n context.fillStrokeShape(this);\n }\n else {\n context.strokeShape(this);\n }\n }\n getTensionPoints() {\n return this._getCache('tensionPoints', this._getTensionPoints);\n }\n _getTensionPoints() {\n if (this.closed()) {\n return this._getTensionPointsClosed();\n }\n else {\n return expandPoints(this.points(), this.tension());\n }\n }\n _getTensionPointsClosed() {\n const p = this.points(), len = p.length, tension = this.tension(), firstControlPoints = getControlPoints(p[len - 2], p[len - 1], p[0], p[1], p[2], p[3], tension), lastControlPoints = getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p[0], p[1], tension), middle = expandPoints(p, tension), tp = [firstControlPoints[2], firstControlPoints[3]]\n .concat(middle)\n .concat([\n lastControlPoints[0],\n lastControlPoints[1],\n p[len - 2],\n p[len - 1],\n lastControlPoints[2],\n lastControlPoints[3],\n firstControlPoints[0],\n firstControlPoints[1],\n p[0],\n p[1],\n ]);\n return tp;\n }\n getWidth() {\n return this.getSelfRect().width;\n }\n getHeight() {\n return this.getSelfRect().height;\n }\n getSelfRect() {\n let points = this.points();\n if (points.length < 4) {\n return {\n x: points[0] || 0,\n y: points[1] || 0,\n width: 0,\n height: 0,\n };\n }\n if (this._hasTension()) {\n const bounds = [points[0], points[1]];\n this._eachTensionSegment((x0, y0, cpx, cpy, x, y) => bounds.push(x, y, ...getQuadraticExtremaPoints(x0, y0, cpx, cpy, x, y)), (x0, y0, cp1x, cp1y, cp2x, cp2y, x, y) => bounds.push(x, y, ...getCubicExtremaPoints(x0, y0, cp1x, cp1y, cp2x, cp2y, x, y)));\n points = bounds;\n }\n else if (this.bezier()) {\n points = [points[0], points[1], ...getBezierExtremaPoints(points)];\n }\n let minX = points[0];\n let maxX = points[0];\n let minY = points[1];\n let maxY = points[1];\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n}\nLine.prototype.className = 'Line';\nLine.prototype._attrsAffectingSize = ['points', 'bezier', 'tension'];\n_registerNode(Line);\nFactory.addGetterSetter(Line, 'closed', false);\nFactory.addGetterSetter(Line, 'bezier', false);\nFactory.addGetterSetter(Line, 'tension', 0, getNumberValidator());\nFactory.addGetterSetter(Line, 'points', [], getNumberArrayValidator());\n","import { Factory } from \"../Factory.js\";\nimport { _registerNode } from \"../Global.js\";\nimport { Shape } from \"../Shape.js\";\nimport { getCubicArcLength, getCubicExtremaPoints, getQuadraticArcLength, getQuadraticExtremaPoints, t2length, } from \"../BezierFunctions.js\";\nexport class Path extends Shape {\n constructor(config) {\n super(config);\n this.dataArray = [];\n this.pathLength = 0;\n this._readDataAttribute();\n this.on('dataChange.konva', function () {\n this._readDataAttribute();\n });\n }\n _readDataAttribute() {\n this.dataArray = Path.parsePathData(this.data());\n this.pathLength = Path.getPathLength(this.dataArray);\n }\n _sceneFunc(context) {\n const ca = this.dataArray;\n context.beginPath();\n let isClosed = false;\n for (let n = 0; n < ca.length; n++) {\n const c = ca[n].command;\n const p = ca[n].points;\n switch (c) {\n case 'L':\n context.lineTo(p[0], p[1]);\n break;\n case 'M':\n context.moveTo(p[0], p[1]);\n break;\n case 'C':\n context.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]);\n break;\n case 'Q':\n context.quadraticCurveTo(p[0], p[1], p[2], p[3]);\n break;\n case 'A':\n const cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6], fs = p[7];\n const r = rx > ry ? rx : ry;\n const scaleX = rx > ry ? 1 : rx / ry;\n const scaleY = rx > ry ? ry / rx : 1;\n context.translate(cx, cy);\n context.rotate(psi);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, theta, theta + dTheta, 1 - fs);\n context.scale(1 / scaleX, 1 / scaleY);\n context.rotate(-psi);\n context.translate(-cx, -cy);\n break;\n case 'z':\n isClosed = true;\n context.closePath();\n break;\n }\n }\n if (!isClosed && !this.hasFill()) {\n context.strokeShape(this);\n }\n else {\n context.fillStrokeShape(this);\n }\n }\n getSelfRect() {\n let points = [];\n this.dataArray.forEach(function (data) {\n if (data.command === 'A') {\n const start = data.points[4];\n const dTheta = data.points[5];\n const end = data.points[4] + dTheta;\n let inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n if (dTheta < 0) {\n for (let t = start - inc; t > end; t -= inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n else {\n for (let t = start + inc; t < end; t += inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n }\n else if (data.command === 'C') {\n points.push(data.start.x, data.start.y, data.points[4], data.points[5], ...getCubicExtremaPoints(data.start.x, data.start.y, data.points[0], data.points[1], data.points[2], data.points[3], data.points[4], data.points[5]));\n }\n else if (data.command === 'Q') {\n points.push(data.start.x, data.start.y, data.points[2], data.points[3], ...getQuadraticExtremaPoints(data.start.x, data.start.y, data.points[0], data.points[1], data.points[2], data.points[3]));\n }\n else {\n points = points.concat(data.points);\n }\n });\n let minX = points[0];\n let maxX = points[0];\n let minY = points[1];\n let maxY = points[1];\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n if (!isNaN(x)) {\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n }\n if (!isNaN(y)) {\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getLength() {\n return this.pathLength;\n }\n getPointAtLength(length) {\n return Path.getPointAtLengthOfDataArray(length, this.dataArray);\n }\n static getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n static getPathLength(dataArray) {\n let pathLength = 0;\n for (let i = 0; i < dataArray.length; ++i) {\n pathLength += dataArray[i].pathLength;\n }\n return pathLength;\n }\n static getPointAtLengthOfDataArray(length, dataArray) {\n let points, i = 0, ii = dataArray.length;\n if (!ii) {\n return null;\n }\n while (i < ii && length > dataArray[i].pathLength) {\n length -= dataArray[i].pathLength;\n ++i;\n }\n if (i === ii) {\n let j = i - 1;\n while (j > 0 && dataArray[j].points.length < 2) {\n j--;\n }\n points = dataArray[j].points.slice(-2);\n return {\n x: points[0],\n y: points[1],\n };\n }\n if (length < 0.01) {\n const cmd = dataArray[i].command;\n if (cmd === 'M') {\n points = dataArray[i].points.slice(0, 2);\n return {\n x: points[0],\n y: points[1],\n };\n }\n else {\n return {\n x: dataArray[i].start.x,\n y: dataArray[i].start.y,\n };\n }\n }\n const cp = dataArray[i];\n const p = cp.points;\n switch (cp.command) {\n case 'L':\n return Path.getPointOnLine(length, cp.start.x, cp.start.y, p[0], p[1]);\n case 'C':\n return Path.getPointOnCubicBezier(t2length(length, Path.getPathLength(dataArray), (i) => {\n return getCubicArcLength([cp.start.x, p[0], p[2], p[4]], [cp.start.y, p[1], p[3], p[5]], i);\n }), cp.start.x, cp.start.y, p[0], p[1], p[2], p[3], p[4], p[5]);\n case 'Q':\n return Path.getPointOnQuadraticBezier(t2length(length, Path.getPathLength(dataArray), (i) => {\n return getQuadraticArcLength([cp.start.x, p[0], p[2]], [cp.start.y, p[1], p[3]], i);\n }), cp.start.x, cp.start.y, p[0], p[1], p[2], p[3]);\n case 'A':\n const cx = p[0], cy = p[1], rx = p[2], ry = p[3], dTheta = p[5], psi = p[6];\n let theta = p[4];\n theta += (dTheta * length) / cp.pathLength;\n return Path.getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi);\n }\n return null;\n }\n static getPointOnLine(dist, P1x, P1y, P2x, P2y, fromX, fromY) {\n fromX = fromX !== null && fromX !== void 0 ? fromX : P1x;\n fromY = fromY !== null && fromY !== void 0 ? fromY : P1y;\n const len = this.getLineLength(P1x, P1y, P2x, P2y);\n if (len < 1e-10) {\n return { x: P1x, y: P1y };\n }\n if (P2x === P1x) {\n return { x: fromX, y: fromY + (P2y > P1y ? dist : -dist) };\n }\n const m = (P2y - P1y) / (P2x - P1x);\n const run = Math.sqrt((dist * dist) / (1 + m * m)) * (P2x < P1x ? -1 : 1);\n const rise = m * run;\n if (Math.abs(fromY - P1y - m * (fromX - P1x)) < 1e-10) {\n return { x: fromX + run, y: fromY + rise };\n }\n const u = ((fromX - P1x) * (P2x - P1x) + (fromY - P1y) * (P2y - P1y)) / (len * len);\n const ix = P1x + u * (P2x - P1x);\n const iy = P1y + u * (P2y - P1y);\n const pRise = this.getLineLength(fromX, fromY, ix, iy);\n const pRun = Math.sqrt(dist * dist - pRise * pRise);\n const adjustedRun = Math.sqrt((pRun * pRun) / (1 + m * m)) * (P2x < P1x ? -1 : 1);\n const adjustedRise = m * adjustedRun;\n return { x: ix + adjustedRun, y: iy + adjustedRise };\n }\n static getPointOnCubicBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y, P4x, P4y) {\n function CB1(t) {\n return t * t * t;\n }\n function CB2(t) {\n return 3 * t * t * (1 - t);\n }\n function CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n }\n function CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n }\n const x = P4x * CB1(pct) + P3x * CB2(pct) + P2x * CB3(pct) + P1x * CB4(pct);\n const y = P4y * CB1(pct) + P3y * CB2(pct) + P2y * CB3(pct) + P1y * CB4(pct);\n return { x, y };\n }\n static getPointOnQuadraticBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y) {\n function QB1(t) {\n return t * t;\n }\n function QB2(t) {\n return 2 * t * (1 - t);\n }\n function QB3(t) {\n return (1 - t) * (1 - t);\n }\n const x = P3x * QB1(pct) + P2x * QB2(pct) + P1x * QB3(pct);\n const y = P3y * QB1(pct) + P2y * QB2(pct) + P1y * QB3(pct);\n return { x, y };\n }\n static getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n const cosPsi = Math.cos(psi), sinPsi = Math.sin(psi);\n const pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta),\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi),\n };\n }\n static parsePathData(data) {\n if (!data) {\n return [];\n }\n let cs = data;\n const cc = [\n 'm',\n 'M',\n 'l',\n 'L',\n 'v',\n 'V',\n 'h',\n 'H',\n 'z',\n 'Z',\n 'c',\n 'C',\n 'q',\n 'Q',\n 't',\n 'T',\n 's',\n 'S',\n 'a',\n 'A',\n ];\n cs = cs.replace(new RegExp(' ', 'g'), ',');\n for (let n = 0; n < cc.length; n++) {\n cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n }\n const arr = cs.split('|');\n const ca = [];\n const coords = [];\n let cpx = 0;\n let cpy = 0;\n const re = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:e[-+]?\\d+)?)/gi;\n let match;\n for (let n = 1; n < arr.length; n++) {\n let str = arr[n];\n let c = str.charAt(0);\n str = str.slice(1);\n coords.length = 0;\n while ((match = re.exec(str))) {\n coords.push(match[0]);\n }\n let p = [];\n let arcParamIndex = c === 'A' || c === 'a' ? 0 : -1;\n for (let j = 0, jlen = coords.length; j < jlen; j++) {\n const token = coords[j];\n if (token === '00') {\n p.push(0, 0);\n if (arcParamIndex >= 0) {\n arcParamIndex += 2;\n if (arcParamIndex >= 7)\n arcParamIndex -= 7;\n }\n continue;\n }\n if (arcParamIndex >= 0) {\n if (arcParamIndex === 3) {\n if (/^[01]{2}\\d+(?:\\.\\d+)?$/.test(token)) {\n p.push(parseInt(token[0], 10));\n p.push(parseInt(token[1], 10));\n p.push(parseFloat(token.slice(2)));\n arcParamIndex += 3;\n if (arcParamIndex >= 7)\n arcParamIndex -= 7;\n continue;\n }\n if (token === '11' || token === '10' || token === '01') {\n p.push(parseInt(token[0], 10));\n p.push(parseInt(token[1], 10));\n arcParamIndex += 2;\n if (arcParamIndex >= 7)\n arcParamIndex -= 7;\n continue;\n }\n if (token === '0' || token === '1') {\n p.push(parseInt(token, 10));\n arcParamIndex += 1;\n if (arcParamIndex >= 7)\n arcParamIndex -= 7;\n continue;\n }\n }\n else if (arcParamIndex === 4) {\n if (/^[01]\\d+(?:\\.\\d+)?$/.test(token)) {\n p.push(parseInt(token[0], 10));\n p.push(parseFloat(token.slice(1)));\n arcParamIndex += 2;\n if (arcParamIndex >= 7)\n arcParamIndex -= 7;\n continue;\n }\n if (token === '0' || token === '1') {\n p.push(parseInt(token, 10));\n arcParamIndex += 1;\n if (arcParamIndex >= 7)\n arcParamIndex -= 7;\n continue;\n }\n }\n const parsedArc = parseFloat(token);\n if (!isNaN(parsedArc)) {\n p.push(parsedArc);\n }\n else {\n p.push(0);\n }\n arcParamIndex += 1;\n if (arcParamIndex >= 7)\n arcParamIndex -= 7;\n }\n else {\n const parsed = parseFloat(token);\n if (!isNaN(parsed)) {\n p.push(parsed);\n }\n else {\n p.push(0);\n }\n }\n }\n while (p.length > 0) {\n if (isNaN(p[0])) {\n break;\n }\n let cmd = '';\n let points = [];\n const startX = cpx, startY = cpy;\n let prevCmd, ctlPtx, ctlPty;\n let rx, ry, psi, fa, fs, x1, y1;\n switch (c) {\n case 'l':\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'L':\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'm':\n const dx = p.shift();\n const dy = p.shift();\n cpx += dx;\n cpy += dy;\n cmd = 'M';\n if (ca.length > 2 && ca[ca.length - 1].command === 'z') {\n for (let idx = ca.length - 2; idx >= 0; idx--) {\n if (ca[idx].command === 'M') {\n cpx = ca[idx].points[0] + dx;\n cpy = ca[idx].points[1] + dy;\n break;\n }\n }\n }\n points.push(cpx, cpy);\n c = 'l';\n break;\n case 'M':\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'M';\n points.push(cpx, cpy);\n c = 'L';\n break;\n case 'h':\n cpx += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'H':\n cpx = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'v':\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'V':\n cpy = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'C':\n points.push(p.shift(), p.shift(), p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'c':\n points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'Q':\n points.push(p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'q':\n points.push(cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n case 'a':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n }\n ca.push({\n command: cmd || c,\n points: points,\n start: {\n x: startX,\n y: startY,\n },\n pathLength: this.calcLength(startX, startY, cmd || c, points),\n });\n }\n if (c === 'z' || c === 'Z') {\n ca.push({\n command: 'z',\n points: [],\n start: undefined,\n pathLength: 0,\n });\n }\n }\n return ca;\n }\n static calcLength(x, y, cmd, points) {\n let len, p1, p2, t;\n const path = Path;\n switch (cmd) {\n case 'L':\n return path.getLineLength(x, y, points[0], points[1]);\n case 'C':\n return getCubicArcLength([x, points[0], points[2], points[4]], [y, points[1], points[3], points[5]], 1);\n case 'Q':\n return getQuadraticArcLength([x, points[0], points[2]], [y, points[1], points[3]], 1);\n case 'A':\n len = 0.0;\n const start = points[4];\n const dTheta = points[5];\n const end = points[4] + dTheta;\n let inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n p1 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n if (dTheta < 0) {\n for (t = start - inc; t > end; t -= inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n else {\n for (t = start + inc; t < end; t += inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n return 0;\n }\n static convertEndpointToCenterParameterization(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) {\n const psi = psiDeg * (Math.PI / 180.0);\n const xp = (Math.cos(psi) * (x1 - x2)) / 2.0 + (Math.sin(psi) * (y1 - y2)) / 2.0;\n const yp = (-1 * Math.sin(psi) * (x1 - x2)) / 2.0 +\n (Math.cos(psi) * (y1 - y2)) / 2.0;\n const lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n let f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) /\n (rx * rx * (yp * yp) + ry * ry * (xp * xp)));\n if (fa === fs) {\n f *= -1;\n }\n if (isNaN(f)) {\n f = 0;\n }\n const cxp = (f * rx * yp) / ry;\n const cyp = (f * -ry * xp) / rx;\n const cx = (x1 + x2) / 2.0 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;\n const cy = (y1 + y2) / 2.0 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;\n const vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n };\n const vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n };\n const vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n };\n const theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n const u = [(xp - cxp) / rx, (yp - cyp) / ry];\n const v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n let dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n return [cx, cy, rx, ry, theta, dTheta, psi, fs];\n }\n}\nPath.prototype.className = 'Path';\nPath.prototype._attrsAffectingSize = ['data'];\n_registerNode(Path);\nFactory.addGetterSetter(Path, 'data');\n","import { Factory } from \"../Factory.js\";\nimport { Line } from \"./Line.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nimport { Path } from \"./Path.js\";\nexport class Arrow extends Line {\n _sceneFunc(ctx) {\n super._sceneFunc(ctx);\n const PI2 = Math.PI * 2;\n const points = this.points();\n let tp = points;\n const fromTension = this.tension() !== 0 && points.length > 4;\n if (fromTension) {\n tp = this.getTensionPoints();\n }\n const length = this.pointerLength();\n const n = points.length;\n let dx, dy;\n if (fromTension) {\n const lp = [\n tp[tp.length - 4],\n tp[tp.length - 3],\n tp[tp.length - 2],\n tp[tp.length - 1],\n points[n - 2],\n points[n - 1],\n ];\n const lastLength = Path.calcLength(tp[tp.length - 4], tp[tp.length - 3], 'C', lp);\n const previous = Path.getPointOnQuadraticBezier(Math.min(1, 1 - length / lastLength), lp[0], lp[1], lp[2], lp[3], lp[4], lp[5]);\n dx = points[n - 2] - previous.x;\n dy = points[n - 1] - previous.y;\n }\n else {\n dx = points[n - 2] - points[n - 4];\n dy = points[n - 1] - points[n - 3];\n }\n const radians = (Math.atan2(dy, dx) + PI2) % PI2;\n const width = this.pointerWidth();\n if (this.pointerAtEnding()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[n - 2], points[n - 1]);\n ctx.rotate(radians);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n if (this.pointerAtBeginning()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[0], points[1]);\n if (fromTension) {\n dx = (tp[0] + tp[2]) / 2 - points[0];\n dy = (tp[1] + tp[3]) / 2 - points[1];\n }\n else {\n dx = points[2] - points[0];\n dy = points[3] - points[1];\n }\n ctx.rotate((Math.atan2(-dy, -dx) + PI2) % PI2);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n }\n __fillStroke(ctx) {\n const isDashEnabled = this.dashEnabled();\n if (isDashEnabled) {\n this.attrs.dashEnabled = false;\n ctx.setLineDash([]);\n }\n ctx.fillStrokeShape(this);\n if (isDashEnabled) {\n this.attrs.dashEnabled = true;\n }\n }\n getSelfRect() {\n const lineRect = super.getSelfRect();\n const offset = this.pointerWidth() / 2;\n return {\n x: lineRect.x,\n y: lineRect.y - offset,\n width: lineRect.width,\n height: lineRect.height + offset * 2,\n };\n }\n}\nArrow.prototype.className = 'Arrow';\n_registerNode(Arrow);\nFactory.addGetterSetter(Arrow, 'pointerLength', 10, getNumberValidator());\nFactory.addGetterSetter(Arrow, 'pointerWidth', 10, getNumberValidator());\nFactory.addGetterSetter(Arrow, 'pointerAtBeginning', false);\nFactory.addGetterSetter(Arrow, 'pointerAtEnding', true);\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nexport class Circle extends Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.attrs.radius || 0, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n if (this.radius() !== width / 2) {\n this.radius(width / 2);\n }\n }\n setHeight(height) {\n if (this.radius() !== height / 2) {\n this.radius(height / 2);\n }\n }\n}\nCircle.prototype._centroid = true;\nCircle.prototype.className = 'Circle';\nCircle.prototype._attrsAffectingSize = ['radius'];\n_registerNode(Circle);\nFactory.addGetterSetter(Circle, 'radius', 0, getNumberValidator());\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nexport class Ellipse extends Shape {\n _sceneFunc(context) {\n const rx = this.radiusX(), ry = this.radiusY();\n context.beginPath();\n context.save();\n if (rx !== ry) {\n context.scale(1, ry / rx);\n }\n context.arc(0, 0, rx, 0, Math.PI * 2, false);\n context.restore();\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radiusX() * 2;\n }\n getHeight() {\n return this.radiusY() * 2;\n }\n setWidth(width) {\n this.radiusX(width / 2);\n }\n setHeight(height) {\n this.radiusY(height / 2);\n }\n}\nEllipse.prototype.className = 'Ellipse';\nEllipse.prototype._centroid = true;\nEllipse.prototype._attrsAffectingSize = ['radiusX', 'radiusY'];\n_registerNode(Ellipse);\nFactory.addComponentsGetterSetter(Ellipse, 'radius', ['x', 'y']);\nFactory.addGetterSetter(Ellipse, 'radiusX', 0, getNumberValidator());\nFactory.addGetterSetter(Ellipse, 'radiusY', 0, getNumberValidator());\n","import { Util } from \"../Util.js\";\nimport { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { _registerNode } from \"../Global.js\";\nimport { getNumberOrArrayOfNumbersValidator, getNumberValidator, } from \"../Validators.js\";\nexport class Image extends Shape {\n constructor(attrs) {\n super(attrs);\n this._loadListener = () => {\n this._requestDraw();\n };\n this.on('imageChange.konva', (props) => {\n this._removeImageLoad(props.oldVal);\n this._setImageLoad();\n });\n this._setImageLoad();\n }\n _setImageLoad() {\n const image = this.image();\n if (image && image.complete) {\n return;\n }\n if (image && image.readyState === 4) {\n return;\n }\n if (image && image['addEventListener']) {\n image['addEventListener']('load', this._loadListener);\n }\n }\n _removeImageLoad(image) {\n if (image && image['removeEventListener']) {\n image['removeEventListener']('load', this._loadListener);\n }\n }\n destroy() {\n this._removeImageLoad(this.image());\n super.destroy();\n return this;\n }\n _useBufferCanvas() {\n const hasCornerRadius = !!this.cornerRadius();\n const hasShadow = this.hasShadow();\n if (hasCornerRadius && hasShadow) {\n return true;\n }\n return super._useBufferCanvas(true);\n }\n _sceneFunc(context) {\n const width = this.getWidth();\n const height = this.getHeight();\n const cornerRadius = this.cornerRadius();\n const image = this.attrs.image;\n let params;\n if (image) {\n const cropWidth = this.attrs.cropWidth;\n const cropHeight = this.attrs.cropHeight;\n if (cropWidth && cropHeight) {\n params = [\n image,\n this.cropX(),\n this.cropY(),\n cropWidth,\n cropHeight,\n 0,\n 0,\n width,\n height,\n ];\n }\n else {\n params = [image, 0, 0, width, height];\n }\n }\n if (this.hasFill() || this.hasStroke() || cornerRadius) {\n context.beginPath();\n cornerRadius\n ? Util.drawRoundedRectPath(context, width, height, cornerRadius)\n : context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (cornerRadius) {\n context.clip();\n }\n context.drawImage.apply(context, params);\n }\n }\n _hitFunc(context) {\n const width = this.width(), height = this.height(), cornerRadius = this.cornerRadius();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n }\n else {\n Util.drawRoundedRectPath(context, width, height, cornerRadius);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n var _a, _b, _c;\n return (_c = (_a = this.attrs.width) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.width) !== null && _c !== void 0 ? _c : 0;\n }\n getHeight() {\n var _a, _b, _c;\n return (_c = (_a = this.attrs.height) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.height) !== null && _c !== void 0 ? _c : 0;\n }\n static fromURL(url, callback, onError = null) {\n const img = Util.createImageElement();\n img.onload = function () {\n const image = new Image({\n image: img,\n });\n callback(image);\n };\n img.onerror = onError;\n img.crossOrigin = 'Anonymous';\n img.src = url;\n }\n}\nImage.prototype.className = 'Image';\nImage.prototype._attrsAffectingSize = ['image'];\n_registerNode(Image);\nFactory.addGetterSetter(Image, 'cornerRadius', 0, getNumberOrArrayOfNumbersValidator(4));\nFactory.addGetterSetter(Image, 'image');\nFactory.addComponentsGetterSetter(Image, 'crop', ['x', 'y', 'width', 'height']);\nFactory.addGetterSetter(Image, 'cropX', 0, getNumberValidator());\nFactory.addGetterSetter(Image, 'cropY', 0, getNumberValidator());\nFactory.addGetterSetter(Image, 'cropWidth', 0, getNumberValidator());\nFactory.addGetterSetter(Image, 'cropHeight', 0, getNumberValidator());\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { Group } from \"../Group.js\";\nimport { getNumberOrArrayOfNumbersValidator, getNumberValidator, } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nconst ATTR_CHANGE_LIST = [\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'padding',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'pointerDirection',\n 'pointerWidth',\n 'pointerHeight',\n], CHANGE_KONVA = 'Change.konva', NONE = 'none', UP = 'up', RIGHT = 'right', DOWN = 'down', LEFT = 'left', attrChangeListLen = ATTR_CHANGE_LIST.length;\nexport class Label extends Group {\n constructor(config) {\n super(config);\n this.on('add.konva', function (evt) {\n this._addListeners(evt.child);\n this._sync();\n });\n }\n getText() {\n return this.find('Text')[0];\n }\n getTag() {\n return this.find('Tag')[0];\n }\n _addListeners(text) {\n let that = this, n;\n const func = function () {\n that._sync();\n };\n for (n = 0; n < attrChangeListLen; n++) {\n text.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, func);\n }\n }\n getWidth() {\n return this.getText().width();\n }\n getHeight() {\n return this.getText().height();\n }\n _sync() {\n let text = this.getText(), tag = this.getTag(), width, height, pointerDirection, pointerWidth, x, y, pointerHeight;\n if (text && tag) {\n width = text.width();\n height = text.height();\n pointerDirection = tag.pointerDirection();\n pointerWidth = tag.pointerWidth();\n pointerHeight = tag.pointerHeight();\n x = 0;\n y = 0;\n switch (pointerDirection) {\n case UP:\n x = width / 2;\n y = -1 * pointerHeight;\n break;\n case RIGHT:\n x = width + pointerWidth;\n y = height / 2;\n break;\n case DOWN:\n x = width / 2;\n y = height + pointerHeight;\n break;\n case LEFT:\n x = -1 * pointerWidth;\n y = height / 2;\n break;\n }\n tag.setAttrs({\n x: -1 * x,\n y: -1 * y,\n width: width,\n height: height,\n });\n text.setAttrs({\n x: -1 * x,\n y: -1 * y,\n });\n }\n }\n}\nLabel.prototype.className = 'Label';\n_registerNode(Label);\nexport class Tag extends Shape {\n _sceneFunc(context) {\n const width = this.width(), height = this.height(), pointerDirection = this.pointerDirection(), pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), cornerRadius = this.cornerRadius();\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft =\n topRight =\n bottomLeft =\n bottomRight =\n Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.beginPath();\n context.moveTo(topLeft, 0);\n if (pointerDirection === UP) {\n context.lineTo((width - pointerWidth) / 2, 0);\n context.lineTo(width / 2, -1 * pointerHeight);\n context.lineTo((width + pointerWidth) / 2, 0);\n }\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);\n if (pointerDirection === RIGHT) {\n context.lineTo(width, (height - pointerHeight) / 2);\n context.lineTo(width + pointerWidth, height / 2);\n context.lineTo(width, (height + pointerHeight) / 2);\n }\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n if (pointerDirection === DOWN) {\n context.lineTo((width + pointerWidth) / 2, height);\n context.lineTo(width / 2, height + pointerHeight);\n context.lineTo((width - pointerWidth) / 2, height);\n }\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n if (pointerDirection === LEFT) {\n context.lineTo(0, (height + pointerHeight) / 2);\n context.lineTo(-1 * pointerWidth, height / 2);\n context.lineTo(0, (height - pointerHeight) / 2);\n }\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getSelfRect() {\n let x = 0, y = 0, pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), direction = this.pointerDirection(), width = this.width(), height = this.height();\n if (direction === UP) {\n y -= pointerHeight;\n height += pointerHeight;\n }\n else if (direction === DOWN) {\n height += pointerHeight;\n }\n else if (direction === LEFT) {\n x -= pointerWidth * 1.5;\n width += pointerWidth;\n }\n else if (direction === RIGHT) {\n width += pointerWidth * 1.5;\n }\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n };\n }\n}\nTag.prototype.className = 'Tag';\n_registerNode(Tag);\nFactory.addGetterSetter(Tag, 'pointerDirection', NONE);\nFactory.addGetterSetter(Tag, 'pointerWidth', 0, getNumberValidator());\nFactory.addGetterSetter(Tag, 'pointerHeight', 0, getNumberValidator());\nFactory.addGetterSetter(Tag, 'cornerRadius', 0, getNumberOrArrayOfNumbersValidator(4));\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { _registerNode } from \"../Global.js\";\nimport { Util } from \"../Util.js\";\nimport { getNumberOrArrayOfNumbersValidator } from \"../Validators.js\";\nexport class Rect extends Shape {\n _sceneFunc(context) {\n const cornerRadius = this.cornerRadius(), width = this.width(), height = this.height();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n }\n else {\n Util.drawRoundedRectPath(context, width, height, cornerRadius);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n}\nRect.prototype.className = 'Rect';\n_registerNode(Rect);\nFactory.addGetterSetter(Rect, 'cornerRadius', 0, getNumberOrArrayOfNumbersValidator(4));\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { getNumberOrArrayOfNumbersValidator, getNumberValidator, } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nimport { Util } from \"../Util.js\";\nexport class RegularPolygon extends Shape {\n _sceneFunc(context) {\n const points = this._getPoints(), radius = this.radius(), sides = this.sides(), cornerRadius = this.cornerRadius();\n context.beginPath();\n if (!cornerRadius) {\n context.moveTo(points[0].x, points[0].y);\n for (let n = 1; n < points.length; n++) {\n context.lineTo(points[n].x, points[n].y);\n }\n }\n else {\n Util.drawRoundedPolygonPath(context, points, sides, radius, cornerRadius);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n _getPoints() {\n const sides = this.attrs.sides;\n const radius = this.attrs.radius || 0;\n const points = [];\n for (let n = 0; n < sides; n++) {\n points.push({\n x: radius * Math.sin((n * 2 * Math.PI) / sides),\n y: -1 * radius * Math.cos((n * 2 * Math.PI) / sides),\n });\n }\n return points;\n }\n getSelfRect() {\n const points = this._getPoints();\n let minX = points[0].x;\n let maxX = points[0].x;\n let minY = points[0].y;\n let maxY = points[0].y;\n points.forEach((point) => {\n minX = Math.min(minX, point.x);\n maxX = Math.max(maxX, point.x);\n minY = Math.min(minY, point.y);\n maxY = Math.max(maxY, point.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n this.radius(width / 2);\n }\n setHeight(height) {\n this.radius(height / 2);\n }\n}\nRegularPolygon.prototype.className = 'RegularPolygon';\nRegularPolygon.prototype._centroid = true;\nRegularPolygon.prototype._attrsAffectingSize = ['radius'];\n_registerNode(RegularPolygon);\nFactory.addGetterSetter(RegularPolygon, 'radius', 0, getNumberValidator());\nFactory.addGetterSetter(RegularPolygon, 'sides', 0, getNumberValidator());\nFactory.addGetterSetter(RegularPolygon, 'cornerRadius', 0, getNumberOrArrayOfNumbersValidator(4));\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nconst PIx2 = Math.PI * 2;\nexport class Ring extends Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.innerRadius(), 0, PIx2, false);\n context.moveTo(this.outerRadius(), 0);\n context.arc(0, 0, this.outerRadius(), PIx2, 0, true);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nRing.prototype.className = 'Ring';\nRing.prototype._centroid = true;\nRing.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n_registerNode(Ring);\nFactory.addGetterSetter(Ring, 'innerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Ring, 'outerRadius', 0, getNumberValidator());\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { Animation } from \"../Animation.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nexport class Sprite extends Shape {\n constructor(config) {\n super(config);\n this._updated = true;\n this.anim = new Animation(() => {\n const updated = this._updated;\n this._updated = false;\n return updated;\n });\n this.on('animationChange.konva', function () {\n this.frameIndex(0);\n });\n this.on('frameIndexChange.konva', function () {\n this._updated = true;\n });\n this.on('frameRateChange.konva', function () {\n if (!this.anim.isRunning()) {\n return;\n }\n clearInterval(this.interval);\n this._setInterval();\n });\n }\n _sceneFunc(context) {\n const anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), x = set[ix4 + 0], y = set[ix4 + 1], width = set[ix4 + 2], height = set[ix4 + 3], image = this.image();\n if (this.hasFill() || this.hasStroke()) {\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (offsets) {\n const offset = offsets[anim], ix2 = index * 2;\n context.drawImage(image, x, y, width, height, offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.drawImage(image, x, y, width, height, 0, 0, width, height);\n }\n }\n }\n _hitFunc(context) {\n const anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), width = set[ix4 + 2], height = set[ix4 + 3];\n context.beginPath();\n if (offsets) {\n const offset = offsets[anim];\n const ix2 = index * 2;\n context.rect(offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.rect(0, 0, width, height);\n }\n context.closePath();\n context.fillShape(this);\n }\n _useBufferCanvas() {\n return super._useBufferCanvas(true);\n }\n _setInterval() {\n const that = this;\n this.interval = setInterval(function () {\n that._updateIndex();\n }, 1000 / this.frameRate());\n }\n start() {\n if (this.isRunning()) {\n return;\n }\n const layer = this.getLayer();\n this.anim.setLayers(layer);\n this._setInterval();\n this.anim.start();\n }\n stop() {\n this.anim.stop();\n clearInterval(this.interval);\n }\n isRunning() {\n return this.anim.isRunning();\n }\n _updateIndex() {\n const index = this.frameIndex(), animation = this.animation(), animations = this.animations(), anim = animations[animation], len = anim.length / 4;\n if (index < len - 1) {\n this.frameIndex(index + 1);\n }\n else {\n this.frameIndex(0);\n }\n }\n}\nSprite.prototype.className = 'Sprite';\n_registerNode(Sprite);\nFactory.addGetterSetter(Sprite, 'animation');\nFactory.addGetterSetter(Sprite, 'animations');\nFactory.addGetterSetter(Sprite, 'frameOffsets');\nFactory.addGetterSetter(Sprite, 'image');\nFactory.addGetterSetter(Sprite, 'frameIndex', 0, getNumberValidator());\nFactory.addGetterSetter(Sprite, 'frameRate', 17, getNumberValidator());\nFactory.backCompat(Sprite, {\n index: 'frameIndex',\n getIndex: 'getFrameIndex',\n setIndex: 'setFrameIndex',\n});\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nexport class Star extends Shape {\n _sceneFunc(context) {\n const innerRadius = this.innerRadius(), outerRadius = this.outerRadius(), numPoints = this.numPoints();\n context.beginPath();\n context.moveTo(0, 0 - outerRadius);\n for (let n = 1; n < numPoints * 2; n++) {\n const radius = n % 2 === 0 ? outerRadius : innerRadius;\n const x = radius * Math.sin((n * Math.PI) / numPoints);\n const y = -1 * radius * Math.cos((n * Math.PI) / numPoints);\n context.lineTo(x, y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nStar.prototype.className = 'Star';\nStar.prototype._centroid = true;\nStar.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n_registerNode(Star);\nFactory.addGetterSetter(Star, 'numPoints', 5, getNumberValidator());\nFactory.addGetterSetter(Star, 'innerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Star, 'outerRadius', 0, getNumberValidator());\n","import { Util } from \"../Util.js\";\nimport { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { Konva } from \"../Global.js\";\nimport { getNumberValidator, getStringValidator, getNumberOrAutoValidator, getBooleanValidator, } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nexport function stringToArray(string) {\n return [...string].reduce((acc, char, index, array) => {\n if (/\\p{Emoji}/u.test(char)) {\n const nextChar = array[index + 1];\n if (nextChar && /\\p{Emoji_Modifier}|\\u200D/u.test(nextChar)) {\n acc.push(char + nextChar);\n array[index + 1] = '';\n }\n else {\n acc.push(char);\n }\n }\n else if (/\\p{Regional_Indicator}{2}/u.test(char + (array[index + 1] || ''))) {\n acc.push(char + array[index + 1]);\n }\n else if (index > 0 && /\\p{Mn}|\\p{Me}|\\p{Mc}/u.test(char)) {\n acc[acc.length - 1] += char;\n }\n else if (char) {\n acc.push(char);\n }\n return acc;\n }, []);\n}\nconst AUTO = 'auto', CENTER = 'center', INHERIT = 'inherit', JUSTIFY = 'justify', CHANGE_KONVA = 'Change.konva', CONTEXT_2D = '2d', DASH = '-', LEFT = 'left', TEXT = 'text', TEXT_UPPER = 'Text', TOP = 'top', BOTTOM = 'bottom', MIDDLE = 'middle', NORMAL = 'normal', PX_SPACE = 'px ', SPACE = ' ', RIGHT = 'right', RTL = 'rtl', WORD = 'word', CHAR = 'char', NONE = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST = [\n 'direction',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontVariant',\n 'padding',\n 'align',\n 'verticalAlign',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'wrap',\n 'ellipsis',\n 'letterSpacing',\n], attrChangeListLen = ATTR_CHANGE_LIST.length;\nlet _shadowOpacityBuggy = null;\nfunction hasShadowOpacityBug() {\n if (_shadowOpacityBuggy !== null) {\n return _shadowOpacityBuggy;\n }\n _shadowOpacityBuggy = false;\n try {\n const c = document.createElement('canvas');\n c.width = 10;\n c.height = 10;\n const ctx = c.getContext(CONTEXT_2D);\n if (ctx) {\n ctx.globalAlpha = 0;\n ctx.shadowColor = 'black';\n ctx.shadowBlur = 5;\n ctx.shadowOffsetX = 5;\n ctx.shadowOffsetY = 5;\n ctx.fillStyle = 'black';\n ctx.font = '10px Arial';\n ctx.fillText('X', 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0) {\n _shadowOpacityBuggy = true;\n break;\n }\n }\n }\n }\n catch (e) {\n }\n return _shadowOpacityBuggy;\n}\nfunction normalizeFontFamily(fontFamily) {\n return fontFamily\n .split(',')\n .map((family) => {\n family = family.trim();\n const hasSpace = family.indexOf(' ') >= 0;\n const hasQuotes = family.indexOf('\"') >= 0 || family.indexOf(\"'\") >= 0;\n if (hasSpace && !hasQuotes) {\n family = `\"${family}\"`;\n }\n return family;\n })\n .join(', ');\n}\nlet dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util.createCanvasElement().getContext(CONTEXT_2D);\n return dummyContext;\n}\nfunction _fillFunc(context) {\n if (this._partialFillStyle) {\n context.setAttr('fillStyle', this._partialFillStyle);\n }\n context.fillText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction _strokeFunc(context) {\n context.setAttr('miterLimit', 2);\n if (this._partialStrokeStyle) {\n context.setAttr('strokeStyle', this._partialStrokeStyle);\n }\n context.strokeText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction checkDefaultFill(config) {\n config = config || {};\n if (!config.fillLinearGradientColorStops &&\n !config.fillRadialGradientColorStops &&\n !config.fillPatternImage) {\n config.fill = config.fill || 'black';\n }\n return config;\n}\nexport class Text extends Shape {\n constructor(config) {\n super(checkDefaultFill(config));\n this._partialTextX = 0;\n this._partialTextY = 0;\n for (let n = 0; n < attrChangeListLen; n++) {\n this.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, this._setTextData);\n }\n this._setTextData();\n }\n _sceneFunc(context) {\n var _a, _b;\n const textArr = this.textArr, textArrLen = textArr.length;\n if (!this.text()) {\n return;\n }\n let padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, verticalAlign = this.verticalAlign(), direction = this.direction(), alignY = 0, align = this.align(), totalWidth = this.getWidth(), letterSpacing = this.letterSpacing(), charRenderFunc = this.charRenderFunc(), fill = this.fill(), textDecoration = this.textDecoration(), underlineOffset = this.underlineOffset(), shouldUnderline = textDecoration.indexOf('underline') !== -1, shouldLineThrough = textDecoration.indexOf('line-through') !== -1, n;\n direction = direction === INHERIT ? context.direction : direction;\n let translateY = lineHeightPx / 2;\n let baseline = MIDDLE;\n if (!Konva.legacyTextRendering) {\n const metrics = this.measureSize('M');\n baseline = 'alphabetic';\n const ascent = (_a = metrics.fontBoundingBoxAscent) !== null && _a !== void 0 ? _a : metrics.actualBoundingBoxAscent;\n const descent = (_b = metrics.fontBoundingBoxDescent) !== null && _b !== void 0 ? _b : metrics.actualBoundingBoxDescent;\n translateY = (ascent - descent) / 2 + lineHeightPx / 2;\n }\n if (direction === RTL) {\n context.setAttr('direction', direction);\n }\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', baseline);\n context.setAttr('textAlign', LEFT);\n if (verticalAlign === MIDDLE) {\n alignY = (this.getHeight() - textArrLen * lineHeightPx - padding * 2) / 2;\n }\n else if (verticalAlign === BOTTOM) {\n alignY = this.getHeight() - textArrLen * lineHeightPx - padding * 2;\n }\n context.translate(padding, alignY + padding);\n const fillStyleBefore = charRenderFunc ? context.fillStyle : undefined;\n const strokeStyleBefore = charRenderFunc ? context.strokeStyle : undefined;\n for (n = 0; n < textArrLen; n++) {\n let lineTranslateX = 0;\n let lineTranslateY = 0;\n const obj = textArr[n], text = obj.text, width = obj.width, lastLine = obj.lastInParagraph;\n context.save();\n if (align === RIGHT) {\n lineTranslateX += totalWidth - width - padding * 2;\n }\n else if (align === CENTER) {\n lineTranslateX += (totalWidth - width - padding * 2) / 2;\n }\n if (shouldUnderline) {\n context.save();\n context.beginPath();\n const yOffset = underlineOffset !== null && underlineOffset !== void 0 ? underlineOffset : (!Konva.legacyTextRendering\n ? Math.round(fontSize / 4)\n : Math.round(fontSize / 2));\n const x = lineTranslateX;\n const y = translateY + lineTranslateY + yOffset;\n context.moveTo(x, y);\n const lineWidth = align === JUSTIFY && !lastLine ? totalWidth - padding * 2 : width;\n context.lineTo(x + Math.round(lineWidth), y);\n context.lineWidth = fontSize / 15;\n const gradient = this._getLinearGradient();\n context.strokeStyle = gradient || fill;\n context.stroke();\n context.restore();\n }\n const lineThroughStartX = lineTranslateX;\n if (direction !== RTL &&\n (letterSpacing !== 0 || align === JUSTIFY || charRenderFunc)) {\n const spacesNumber = text.split(' ').length - 1;\n const array = stringToArray(text);\n for (let li = 0; li < array.length; li++) {\n const letter = array[li];\n if (letter === ' ' && !lastLine && align === JUSTIFY) {\n lineTranslateX += (totalWidth - padding * 2 - width) / spacesNumber;\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = letter;\n if (charRenderFunc) {\n context.save();\n const previousLines = textArr.slice(0, n);\n const previousGraphemes = previousLines.reduce((acc, line) => acc + stringToArray(line.text).length, 0);\n const charIndex = li + previousGraphemes;\n charRenderFunc({\n char: letter,\n index: charIndex,\n x: lineTranslateX,\n y: translateY + lineTranslateY,\n lineIndex: n,\n column: li,\n isLastInLine: lastLine,\n width: this.measureSize(letter).width,\n context,\n });\n const fillStyleAfter = context.fillStyle;\n if (fillStyleAfter !== fillStyleBefore) {\n this._partialFillStyle = fillStyleAfter;\n }\n const strokeStyleAfter = context.strokeStyle;\n if (strokeStyleAfter !== strokeStyleBefore) {\n this._partialStrokeStyle = strokeStyleAfter;\n }\n }\n context.fillStrokeShape(this);\n if (charRenderFunc) {\n this._partialFillStyle = undefined;\n this._partialStrokeStyle = undefined;\n context.restore();\n }\n lineTranslateX += this.measureSize(letter).width + letterSpacing;\n }\n }\n else {\n if (letterSpacing !== 0) {\n context.setAttr('letterSpacing', `${letterSpacing}px`);\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = text;\n context.fillStrokeShape(this);\n }\n if (shouldLineThrough) {\n context.save();\n context.beginPath();\n const yOffset = !Konva.legacyTextRendering\n ? -Math.round(fontSize / 4)\n : 0;\n const x = lineThroughStartX;\n context.moveTo(x, translateY + lineTranslateY + yOffset);\n const lineWidth = align === JUSTIFY && !lastLine ? totalWidth - padding * 2 : width;\n context.lineTo(x + Math.round(lineWidth), translateY + lineTranslateY + yOffset);\n context.lineWidth = fontSize / 15;\n const gradient = this._getLinearGradient();\n context.strokeStyle = gradient || fill;\n context.stroke();\n context.restore();\n }\n context.restore();\n if (textArrLen > 1) {\n translateY += lineHeightPx;\n }\n }\n }\n _hitFunc(context) {\n const width = this.getWidth(), height = this.getHeight();\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n setText(text) {\n const str = Util._isString(text)\n ? text\n : text === null || text === undefined\n ? ''\n : text + '';\n this._setAttr(TEXT, str);\n return this;\n }\n getWidth() {\n const isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;\n return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;\n }\n getHeight() {\n const isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;\n return isAuto\n ? this.fontSize() * this.textArr.length * this.lineHeight() +\n this.padding() * 2\n : this.attrs.height;\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n measureSize(text) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n let _context = getDummyContext(), fontSize = this.fontSize(), metrics;\n _context.save();\n _context.font = this._getContextFont();\n metrics = _context.measureText(text);\n _context.restore();\n const scaleFactor = fontSize / 100;\n return {\n actualBoundingBoxAscent: (_a = metrics.actualBoundingBoxAscent) !== null && _a !== void 0 ? _a : 71.58203125 * scaleFactor,\n actualBoundingBoxDescent: (_b = metrics.actualBoundingBoxDescent) !== null && _b !== void 0 ? _b : 0,\n actualBoundingBoxLeft: (_c = metrics.actualBoundingBoxLeft) !== null && _c !== void 0 ? _c : -7.421875 * scaleFactor,\n actualBoundingBoxRight: (_d = metrics.actualBoundingBoxRight) !== null && _d !== void 0 ? _d : 75.732421875 * scaleFactor,\n alphabeticBaseline: (_e = metrics.alphabeticBaseline) !== null && _e !== void 0 ? _e : 0,\n emHeightAscent: (_f = metrics.emHeightAscent) !== null && _f !== void 0 ? _f : 100 * scaleFactor,\n emHeightDescent: (_g = metrics.emHeightDescent) !== null && _g !== void 0 ? _g : -20 * scaleFactor,\n fontBoundingBoxAscent: (_h = metrics.fontBoundingBoxAscent) !== null && _h !== void 0 ? _h : 91 * scaleFactor,\n fontBoundingBoxDescent: (_j = metrics.fontBoundingBoxDescent) !== null && _j !== void 0 ? _j : 21 * scaleFactor,\n hangingBaseline: (_k = metrics.hangingBaseline) !== null && _k !== void 0 ? _k : 72.80000305175781 * scaleFactor,\n ideographicBaseline: (_l = metrics.ideographicBaseline) !== null && _l !== void 0 ? _l : -21 * scaleFactor,\n width: metrics.width,\n height: fontSize,\n };\n }\n _getContextFont() {\n return (this.fontStyle() +\n SPACE +\n this.fontVariant() +\n SPACE +\n (this.fontSize() + PX_SPACE) +\n normalizeFontFamily(this.fontFamily()));\n }\n _addTextLine(line) {\n const align = this.align();\n if (align === JUSTIFY) {\n line = line.trim();\n }\n const width = this._getTextWidth(line);\n return this.textArr.push({\n text: line,\n width: width,\n lastInParagraph: false,\n });\n }\n _getTextWidth(text) {\n const letterSpacing = this.letterSpacing();\n const length = text.length;\n return getDummyContext().measureText(text).width + letterSpacing * length;\n }\n _setTextData() {\n let lines = this.text().split('\\n'), fontSize = +this.fontSize(), textWidth = 0, lineHeightPx = this.lineHeight() * fontSize, width = this.attrs.width, height = this.attrs.height, fixedWidth = width !== AUTO && width !== undefined, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxWidth = width - padding * 2, maxHeightPx = height - padding * 2, currentHeightPx = 0, wrap = this.wrap(), shouldWrap = wrap !== NONE, wrapAtWord = wrap !== CHAR && shouldWrap, shouldAddEllipsis = this.ellipsis();\n this.textArr = [];\n getDummyContext().font = this._getContextFont();\n const additionalWidth = shouldAddEllipsis\n ? this._getTextWidth(ELLIPSIS)\n : 0;\n for (let i = 0, max = lines.length; i < max; ++i) {\n let line = lines[i];\n let lineWidth = this._getTextWidth(line);\n if (fixedWidth && lineWidth > maxWidth) {\n while (line.length > 0) {\n const lineArray = stringToArray(line);\n let low = 0, high = lineArray.length, match = '', matchWidth = 0;\n while (low < high) {\n const mid = (low + high) >>> 1, substr = lineArray.slice(0, mid + 1).join(''), substrWidth = this._getTextWidth(substr);\n const shouldConsiderEllipsis = shouldAddEllipsis &&\n fixedHeight &&\n currentHeightPx + lineHeightPx > maxHeightPx;\n const effectiveWidth = shouldConsiderEllipsis\n ? substrWidth + additionalWidth\n : substrWidth;\n if (effectiveWidth <= maxWidth) {\n low = mid + 1;\n match = substr;\n matchWidth = substrWidth;\n }\n else {\n high = mid;\n }\n }\n if (match) {\n if (wrapAtWord) {\n const matchArray = stringToArray(match);\n const nextChar = lineArray[matchArray.length];\n const nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;\n let wrapIndex;\n if (nextIsSpaceOrDash && matchWidth <= maxWidth) {\n wrapIndex = matchArray.length;\n }\n else {\n const lastSpaceIndex = matchArray.lastIndexOf(SPACE);\n const lastDashIndex = matchArray.lastIndexOf(DASH);\n wrapIndex = Math.max(lastSpaceIndex, lastDashIndex) + 1;\n }\n if (wrapIndex > 0) {\n low = wrapIndex;\n match = lineArray.slice(0, low).join('');\n matchWidth = this._getTextWidth(match);\n }\n }\n match = match.trimRight();\n this._addTextLine(match);\n textWidth = Math.max(textWidth, matchWidth);\n currentHeightPx += lineHeightPx;\n const shouldHandleEllipsis = this._shouldHandleEllipsis(currentHeightPx);\n if (shouldHandleEllipsis) {\n this._tryToAddEllipsisToLastLine();\n break;\n }\n line = lineArray.slice(low).join('').trimLeft();\n if (line.length > 0) {\n lineWidth = this._getTextWidth(line);\n if (lineWidth <= maxWidth) {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n break;\n }\n }\n }\n else {\n break;\n }\n }\n }\n else {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n if (this._shouldHandleEllipsis(currentHeightPx) && i < max - 1) {\n this._tryToAddEllipsisToLastLine();\n }\n }\n if (this.textArr[this.textArr.length - 1]) {\n this.textArr[this.textArr.length - 1].lastInParagraph = true;\n }\n if (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {\n break;\n }\n }\n this.textHeight = fontSize;\n this.textWidth = textWidth;\n }\n _shouldHandleEllipsis(currentHeightPx) {\n const fontSize = +this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, height = this.attrs.height, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxHeightPx = height - padding * 2, wrap = this.wrap(), shouldWrap = wrap !== NONE;\n return (!shouldWrap ||\n (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx));\n }\n _tryToAddEllipsisToLastLine() {\n const width = this.attrs.width, fixedWidth = width !== AUTO && width !== undefined, padding = this.padding(), maxWidth = width - padding * 2, shouldAddEllipsis = this.ellipsis();\n const lastLine = this.textArr[this.textArr.length - 1];\n if (!lastLine || !shouldAddEllipsis) {\n return;\n }\n if (fixedWidth) {\n const haveSpace = this._getTextWidth(lastLine.text + ELLIPSIS) < maxWidth;\n if (!haveSpace) {\n lastLine.text = lastLine.text.slice(0, lastLine.text.length - 3);\n }\n }\n this.textArr.splice(this.textArr.length - 1, 1);\n this._addTextLine(lastLine.text + ELLIPSIS);\n }\n getStrokeScaleEnabled() {\n return true;\n }\n _useBufferCanvas() {\n const hasLine = this.textDecoration().indexOf('underline') !== -1 ||\n this.textDecoration().indexOf('line-through') !== -1;\n const hasShadow = this.hasShadow();\n if (hasLine && hasShadow) {\n return true;\n }\n if (hasShadow && this.getAbsoluteOpacity() !== 1 && hasShadowOpacityBug()) {\n return true;\n }\n return super._useBufferCanvas();\n }\n}\nText.prototype._fillFunc = _fillFunc;\nText.prototype._strokeFunc = _strokeFunc;\nText.prototype.className = TEXT_UPPER;\nText.prototype._attrsAffectingSize = [\n 'text',\n 'fontSize',\n 'padding',\n 'wrap',\n 'lineHeight',\n 'letterSpacing',\n];\n_registerNode(Text);\nFactory.overWriteSetter(Text, 'width', getNumberOrAutoValidator());\nFactory.overWriteSetter(Text, 'height', getNumberOrAutoValidator());\nFactory.addGetterSetter(Text, 'direction', INHERIT);\nFactory.addGetterSetter(Text, 'fontFamily', 'Arial');\nFactory.addGetterSetter(Text, 'fontSize', 12, getNumberValidator());\nFactory.addGetterSetter(Text, 'fontStyle', NORMAL);\nFactory.addGetterSetter(Text, 'fontVariant', NORMAL);\nFactory.addGetterSetter(Text, 'padding', 0, getNumberValidator());\nFactory.addGetterSetter(Text, 'align', LEFT);\nFactory.addGetterSetter(Text, 'verticalAlign', TOP);\nFactory.addGetterSetter(Text, 'lineHeight', 1, getNumberValidator());\nFactory.addGetterSetter(Text, 'wrap', WORD);\nFactory.addGetterSetter(Text, 'ellipsis', false, getBooleanValidator());\nFactory.addGetterSetter(Text, 'letterSpacing', 0, getNumberValidator());\nFactory.addGetterSetter(Text, 'text', '', getStringValidator());\nFactory.addGetterSetter(Text, 'textDecoration', '');\nFactory.addGetterSetter(Text, 'underlineOffset', undefined, getNumberValidator());\nFactory.addGetterSetter(Text, 'charRenderFunc', undefined);\n","import { Util } from \"../Util.js\";\nimport { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { Path } from \"./Path.js\";\nimport { Text, stringToArray } from \"./Text.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nconst EMPTY_STRING = '', NORMAL = 'normal';\nfunction _fillFunc(context) {\n context.fillText(this.partialText, 0, 0);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this.partialText, 0, 0);\n}\nexport class TextPath extends Shape {\n constructor(config) {\n super(config);\n this.dummyCanvas = Util.createCanvasElement();\n this.dataArray = [];\n this._readDataAttribute();\n this.on('dataChange.konva', function () {\n this._readDataAttribute();\n this._setTextData();\n });\n this.on('textChange.konva alignChange.konva letterSpacingChange.konva kerningFuncChange.konva fontSizeChange.konva fontFamilyChange.konva directionChange.konva', this._setTextData);\n this._setTextData();\n }\n _getTextPathLength() {\n return Path.getPathLength(this.dataArray);\n }\n _getPointAtLength(length) {\n if (!this.attrs.data) {\n return null;\n }\n const totalLength = this.pathLength;\n if (length > totalLength) {\n return null;\n }\n return Path.getPointAtLengthOfDataArray(length, this.dataArray);\n }\n _readDataAttribute() {\n this.dataArray = Path.parsePathData(this.attrs.data);\n this.pathLength = this._getTextPathLength();\n }\n _sceneFunc(context) {\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', this.textBaseline());\n context.setAttr('textAlign', 'left');\n context.save();\n const textDecoration = this.textDecoration();\n const fill = this.fill();\n const fontSize = this.fontSize();\n const glyphInfo = this.glyphInfo;\n const hasUnderline = textDecoration.indexOf('underline') !== -1;\n const hasLineThrough = textDecoration.indexOf('line-through') !== -1;\n if (hasUnderline) {\n context.beginPath();\n }\n for (let i = 0; i < glyphInfo.length; i++) {\n context.save();\n const p0 = glyphInfo[i].p0;\n context.translate(p0.x, p0.y);\n context.rotate(glyphInfo[i].rotation);\n this.partialText = glyphInfo[i].text;\n context.fillStrokeShape(this);\n if (hasUnderline) {\n if (i === 0) {\n context.moveTo(0, fontSize / 2 + 1);\n }\n context.lineTo(glyphInfo[i].width, fontSize / 2 + 1);\n }\n context.restore();\n }\n if (hasUnderline) {\n context.strokeStyle = fill;\n context.lineWidth = fontSize / 20;\n context.stroke();\n }\n if (hasLineThrough) {\n context.beginPath();\n for (let i = 0; i < glyphInfo.length; i++) {\n context.save();\n const p0 = glyphInfo[i].p0;\n context.translate(p0.x, p0.y);\n context.rotate(glyphInfo[i].rotation);\n if (i === 0) {\n context.moveTo(0, 0);\n }\n context.lineTo(glyphInfo[i].width, 0);\n context.restore();\n }\n context.strokeStyle = fill;\n context.lineWidth = fontSize / 20;\n context.stroke();\n }\n context.restore();\n }\n _hitFunc(context) {\n context.beginPath();\n const glyphInfo = this.glyphInfo;\n if (glyphInfo.length >= 1) {\n const p0 = glyphInfo[0].p0;\n context.moveTo(p0.x, p0.y);\n }\n for (let i = 0; i < glyphInfo.length; i++) {\n const p1 = glyphInfo[i].p1;\n context.lineTo(p1.x, p1.y);\n }\n context.setAttr('lineWidth', this.fontSize());\n context.setAttr('strokeStyle', this.colorKey);\n context.stroke();\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n setText(text) {\n return Text.prototype.setText.call(this, text);\n }\n _getContextFont() {\n return Text.prototype._getContextFont.call(this);\n }\n _getTextSize(text) {\n const dummyCanvas = this.dummyCanvas;\n const _context = dummyCanvas.getContext('2d');\n _context.save();\n _context.font = this._getContextFont();\n const metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: parseInt(`${this.fontSize()}`, 10),\n };\n }\n _setTextData() {\n const charArr = stringToArray(this.text());\n if (this.direction() === 'rtl') {\n charArr.reverse();\n }\n const chars = [];\n let width = 0;\n for (let i = 0; i < charArr.length; i++) {\n chars.push({\n char: charArr[i],\n width: this._getTextSize(charArr[i]).width,\n });\n width += chars[i].width;\n }\n const { width: fullTextWidth, height } = this._getTextSize(this.attrs.text);\n this.textWidth = width;\n this.textHeight = height;\n this.glyphInfo = [];\n if (!this.attrs.data) {\n return null;\n }\n const letterSpacing = this.letterSpacing();\n const align = this.align();\n const kerningFunc = this.kerningFunc();\n const kerningAdjustment = Math.max(0, width - fullTextWidth);\n const textWidth = Math.max(this.textWidth + ((this.attrs.text || '').length - 1) * letterSpacing, 0);\n let offset = 0;\n if (align === 'center') {\n offset = Math.max(0, this.pathLength / 2 - textWidth / 2);\n }\n if (align === 'right') {\n offset = Math.max(0, this.pathLength - textWidth);\n }\n let offsetToGlyph = offset;\n for (let i = 0; i < chars.length; i++) {\n const charStartPoint = this._getPointAtLength(offsetToGlyph);\n if (!charStartPoint)\n return;\n const char = chars[i].char;\n let glyphWidth = chars[i].width + letterSpacing;\n if (char === ' ' && align === 'justify') {\n const numberOfSpaces = this.text().split(' ').length - 1;\n glyphWidth += (this.pathLength - textWidth) / numberOfSpaces;\n }\n const charEndLength = offsetToGlyph + glyphWidth;\n const charEndPoint = this._getPointAtLength(charEndLength > this.pathLength &&\n charEndLength - this.pathLength <= kerningAdjustment\n ? this.pathLength\n : charEndLength);\n if (!charEndPoint) {\n return;\n }\n const width = Path.getLineLength(charStartPoint.x, charStartPoint.y, charEndPoint.x, charEndPoint.y);\n let kern = 0;\n if (kerningFunc) {\n try {\n kern = kerningFunc(chars[i - 1].char, char) * this.fontSize();\n }\n catch (e) {\n kern = 0;\n }\n }\n charStartPoint.x += kern;\n charEndPoint.x += kern;\n this.textWidth += kern;\n const midpoint = Path.getPointOnLine(kern + width / 2.0, charStartPoint.x, charStartPoint.y, charEndPoint.x, charEndPoint.y);\n const rotation = Math.atan2(charEndPoint.y - charStartPoint.y, charEndPoint.x - charStartPoint.x);\n this.glyphInfo.push({\n transposeX: midpoint.x,\n transposeY: midpoint.y,\n text: charArr[i],\n rotation: rotation,\n p0: charStartPoint,\n p1: charEndPoint,\n width: width,\n });\n offsetToGlyph += glyphWidth;\n }\n }\n getSelfRect() {\n if (!this.glyphInfo.length) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n const points = [];\n this.glyphInfo.forEach(function (info) {\n points.push(info.p0.x);\n points.push(info.p0.y);\n points.push(info.p1.x);\n points.push(info.p1.y);\n });\n let minX = points[0] || 0;\n let maxX = points[0] || 0;\n let minY = points[1] || 0;\n let maxY = points[1] || 0;\n let x, y;\n for (let i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n const fontSize = this.fontSize();\n return {\n x: minX - fontSize / 2,\n y: minY - fontSize / 2,\n width: maxX - minX + fontSize,\n height: maxY - minY + fontSize,\n };\n }\n destroy() {\n Util.releaseCanvas(this.dummyCanvas);\n return super.destroy();\n }\n}\nTextPath.prototype._fillFunc = _fillFunc;\nTextPath.prototype._strokeFunc = _strokeFunc;\nTextPath.prototype._fillFuncHit = _fillFunc;\nTextPath.prototype._strokeFuncHit = _strokeFunc;\nTextPath.prototype.className = 'TextPath';\nTextPath.prototype._attrsAffectingSize = ['text', 'fontSize', 'data'];\n_registerNode(TextPath);\nFactory.addGetterSetter(TextPath, 'data');\nFactory.addGetterSetter(TextPath, 'fontFamily', 'Arial');\nFactory.addGetterSetter(TextPath, 'fontSize', 12, getNumberValidator());\nFactory.addGetterSetter(TextPath, 'fontStyle', NORMAL);\nFactory.addGetterSetter(TextPath, 'align', 'left');\nFactory.addGetterSetter(TextPath, 'letterSpacing', 0, getNumberValidator());\nFactory.addGetterSetter(TextPath, 'textBaseline', 'middle');\nFactory.addGetterSetter(TextPath, 'fontVariant', NORMAL);\nFactory.addGetterSetter(TextPath, 'text', EMPTY_STRING);\nFactory.addGetterSetter(TextPath, 'textDecoration', '');\nFactory.addGetterSetter(TextPath, 'kerningFunc', undefined);\nFactory.addGetterSetter(TextPath, 'direction', 'inherit');\n","import { Util, Transform } from \"../Util.js\";\nimport { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { Shape } from \"../Shape.js\";\nimport { Rect } from \"./Rect.js\";\nimport { Group } from \"../Group.js\";\nimport { Konva } from \"../Global.js\";\nimport { getBooleanValidator, getNumberValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nconst EVENTS_NAME = 'tr-konva';\nconst ATTR_CHANGE_LIST = [\n 'resizeEnabledChange',\n 'rotateAnchorOffsetChange',\n 'rotateAnchorAngleChange',\n 'rotateEnabledChange',\n 'enabledAnchorsChange',\n 'anchorSizeChange',\n 'borderEnabledChange',\n 'borderStrokeChange',\n 'borderStrokeWidthChange',\n 'borderDashChange',\n 'anchorStrokeChange',\n 'anchorStrokeWidthChange',\n 'anchorFillChange',\n 'anchorCornerRadiusChange',\n 'ignoreStrokeChange',\n 'anchorStyleFuncChange',\n]\n .map((e) => e + `.${EVENTS_NAME}`)\n .join(' ');\nconst NODES_RECT = 'nodesRect';\nconst TRANSFORM_CHANGE_STR = [\n 'widthChange',\n 'heightChange',\n 'scaleXChange',\n 'scaleYChange',\n 'skewXChange',\n 'skewYChange',\n 'rotationChange',\n 'offsetXChange',\n 'offsetYChange',\n 'transformsEnabledChange',\n 'strokeWidthChange',\n 'draggableChange',\n];\nconst ANGLES = {\n 'top-left': -45,\n 'top-center': 0,\n 'top-right': 45,\n 'middle-right': -90,\n 'middle-left': 90,\n 'bottom-left': -135,\n 'bottom-center': 180,\n 'bottom-right': 135,\n};\nconst TOUCH_DEVICE = 'ontouchstart' in Konva._global;\nfunction getCursor(anchorName, rad, rotateCursor) {\n if (anchorName === 'rotater') {\n return rotateCursor;\n }\n rad += Util.degToRad(ANGLES[anchorName] || 0);\n const angle = ((Util.radToDeg(rad) % 360) + 360) % 360;\n if (Util._inRange(angle, 315 + 22.5, 360) || Util._inRange(angle, 0, 22.5)) {\n return 'ns-resize';\n }\n else if (Util._inRange(angle, 45 - 22.5, 45 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util._inRange(angle, 90 - 22.5, 90 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util._inRange(angle, 135 - 22.5, 135 + 22.5)) {\n return 'nwse-resize';\n }\n else if (Util._inRange(angle, 180 - 22.5, 180 + 22.5)) {\n return 'ns-resize';\n }\n else if (Util._inRange(angle, 225 - 22.5, 225 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util._inRange(angle, 270 - 22.5, 270 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util._inRange(angle, 315 - 22.5, 315 + 22.5)) {\n return 'nwse-resize';\n }\n else {\n Util.error('Transformer has unknown angle for cursor detection: ' + angle);\n return 'pointer';\n }\n}\nconst ANCHORS_NAMES = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'middle-right',\n 'middle-left',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n];\nconst MAX_SAFE_INTEGER = 100000000;\nfunction getCenter(shape) {\n return {\n x: shape.x +\n (shape.width / 2) * Math.cos(shape.rotation) +\n (shape.height / 2) * Math.sin(-shape.rotation),\n y: shape.y +\n (shape.height / 2) * Math.cos(shape.rotation) +\n (shape.width / 2) * Math.sin(shape.rotation),\n };\n}\nfunction rotateAroundPoint(shape, angleRad, point) {\n const x = point.x +\n (shape.x - point.x) * Math.cos(angleRad) -\n (shape.y - point.y) * Math.sin(angleRad);\n const y = point.y +\n (shape.x - point.x) * Math.sin(angleRad) +\n (shape.y - point.y) * Math.cos(angleRad);\n return {\n ...shape,\n rotation: shape.rotation + angleRad,\n x,\n y,\n };\n}\nfunction rotateAroundCenter(shape, deltaRad) {\n const center = getCenter(shape);\n return rotateAroundPoint(shape, deltaRad, center);\n}\nfunction getSnap(snaps, newRotationRad, tol) {\n let snapped = newRotationRad;\n for (let i = 0; i < snaps.length; i++) {\n const angle = Konva.getAngle(snaps[i]);\n const absDiff = Math.abs(angle - newRotationRad) % (Math.PI * 2);\n const dif = Math.min(absDiff, Math.PI * 2 - absDiff);\n if (dif < tol) {\n snapped = angle;\n }\n }\n return snapped;\n}\nlet activeTransformersCount = 0;\nexport class Transformer extends Group {\n constructor(config) {\n super(config);\n this._movingAnchorName = null;\n this._transforming = false;\n this._transformWindow = null;\n this._elementsCreated = false;\n this._updateScheduled = false;\n this._createElements();\n this._handleMouseMove = this._handleMouseMove.bind(this);\n this._handleMouseUp = this._handleMouseUp.bind(this);\n this.update = this.update.bind(this);\n this.on(ATTR_CHANGE_LIST, this.update);\n if (this.getNode()) {\n this.update();\n }\n }\n attachTo(node) {\n this.setNode(node);\n return this;\n }\n setNode(node) {\n Util.warn('tr.setNode(shape), tr.node(shape) and tr.attachTo(shape) methods are deprecated. Please use tr.nodes(nodesArray) instead.');\n return this.setNodes([node]);\n }\n getNode() {\n return this._nodes && this._nodes[0];\n }\n _getEventNamespace() {\n return EVENTS_NAME + this._id;\n }\n setNodes(nodes = []) {\n if (this._nodes && this._nodes.length) {\n this.detach();\n }\n const filteredNodes = nodes.filter((node) => {\n if (node.isAncestorOf(this)) {\n Util.error('Konva.Transformer cannot be an a child of the node you are trying to attach');\n return false;\n }\n return true;\n });\n this._nodes = nodes = filteredNodes;\n if (nodes.length === 1 && this.useSingleNodeRotation()) {\n this.rotation(nodes[0].getAbsoluteRotation());\n }\n else {\n this.rotation(0);\n }\n this._nodes.forEach((node) => {\n const onChange = () => {\n if (this._transforming)\n return;\n if (this.nodes().length === 1 && this.useSingleNodeRotation()) {\n this.rotation(this.nodes()[0].getAbsoluteRotation());\n }\n this._resetTransformCache();\n if (!this.isDragging()) {\n this._scheduleUpdate();\n }\n };\n if (node._attrsAffectingSize.length) {\n const additionalEvents = node._attrsAffectingSize\n .map((prop) => prop + 'Change.' + this._getEventNamespace())\n .join(' ');\n node.on(additionalEvents, onChange);\n }\n node.on(TRANSFORM_CHANGE_STR.map((e) => e + `.${this._getEventNamespace()}`).join(' '), onChange);\n node.on(`absoluteTransformChange.${this._getEventNamespace()}`, onChange);\n this._proxyDrag(node);\n });\n this._resetTransformCache();\n const elementsCreated = !!this.findOne('.top-left');\n if (elementsCreated) {\n this.update();\n }\n return this;\n }\n _proxyDrag(node) {\n let lastPos;\n node.on(`dragstart.${this._getEventNamespace()}`, (e) => {\n lastPos = node.getAbsolutePosition();\n if (!this.isDragging() && node !== this.findOne('.back')) {\n this.startDrag(e, false);\n }\n });\n node.on(`dragmove.${this._getEventNamespace()}`, (e) => {\n if (!lastPos) {\n return;\n }\n const abs = node.getAbsolutePosition();\n const dx = abs.x - lastPos.x;\n const dy = abs.y - lastPos.y;\n this.nodes().forEach((otherNode) => {\n if (otherNode === node) {\n return;\n }\n if (otherNode.isDragging()) {\n return;\n }\n const otherAbs = otherNode.getAbsolutePosition();\n otherNode.setAbsolutePosition({\n x: otherAbs.x + dx,\n y: otherAbs.y + dy,\n });\n otherNode.startDrag(e);\n });\n lastPos = null;\n });\n }\n getNodes() {\n return this._nodes || [];\n }\n getActiveAnchor() {\n return this._movingAnchorName;\n }\n detach() {\n if (this._nodes) {\n this._nodes.forEach((node) => {\n node.off('.' + this._getEventNamespace());\n });\n }\n this._nodes = [];\n this._resetTransformCache();\n }\n _resetTransformCache() {\n this._clearCache(NODES_RECT);\n this._clearCache('transform');\n this._clearSelfAndDescendantCache('absoluteTransform');\n }\n _getNodeRect() {\n return this._getCache(NODES_RECT, this.__getNodeRect);\n }\n __getNodeShape(node, rot = this.rotation(), relative) {\n const rect = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n const absScale = node.getAbsoluteScale(relative);\n const absPos = node.getAbsolutePosition(relative);\n const dx = rect.x * absScale.x - node.offsetX() * absScale.x;\n const dy = rect.y * absScale.y - node.offsetY() * absScale.y;\n const rotation = (Konva.getAngle(node.getAbsoluteRotation()) + Math.PI * 2) %\n (Math.PI * 2);\n const box = {\n x: absPos.x + dx * Math.cos(rotation) + dy * Math.sin(-rotation),\n y: absPos.y + dy * Math.cos(rotation) + dx * Math.sin(rotation),\n width: rect.width * absScale.x,\n height: rect.height * absScale.y,\n rotation: rotation,\n };\n return rotateAroundPoint(box, -Konva.getAngle(rot), {\n x: 0,\n y: 0,\n });\n }\n __getNodeRect() {\n const node = this.getNode();\n if (!node) {\n return {\n x: -MAX_SAFE_INTEGER,\n y: -MAX_SAFE_INTEGER,\n width: 0,\n height: 0,\n rotation: 0,\n };\n }\n const totalPoints = [];\n this.nodes().map((node) => {\n const box = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n const points = [\n { x: box.x, y: box.y },\n { x: box.x + box.width, y: box.y },\n { x: box.x + box.width, y: box.y + box.height },\n { x: box.x, y: box.y + box.height },\n ];\n const trans = node.getAbsoluteTransform();\n points.forEach(function (point) {\n const transformed = trans.point(point);\n totalPoints.push(transformed);\n });\n });\n const tr = new Transform();\n tr.rotate(-Konva.getAngle(this.rotation()));\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n totalPoints.forEach(function (point) {\n const transformed = tr.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n tr.invert();\n const p = tr.point({ x: minX, y: minY });\n return {\n x: p.x,\n y: p.y,\n width: maxX - minX,\n height: maxY - minY,\n rotation: Konva.getAngle(this.rotation()),\n };\n }\n getX() {\n return this._getNodeRect().x;\n }\n getY() {\n return this._getNodeRect().y;\n }\n getWidth() {\n return this._getNodeRect().width;\n }\n getHeight() {\n return this._getNodeRect().height;\n }\n _createElements() {\n this._createBack();\n ANCHORS_NAMES.forEach((name) => {\n this._createAnchor(name);\n });\n this._createAnchor('rotater');\n this._elementsCreated = true;\n }\n _createAnchor(name) {\n const anchor = new Rect({\n stroke: 'rgb(0, 161, 255)',\n fill: 'white',\n strokeWidth: 1,\n name: name + ' _anchor',\n dragDistance: 0,\n draggable: true,\n hitStrokeWidth: TOUCH_DEVICE ? 10 : 'auto',\n });\n const self = this;\n anchor.on('mousedown touchstart', function (e) {\n self._handleMouseDown(e);\n });\n anchor.on('dragstart', (e) => {\n anchor.stopDrag();\n e.cancelBubble = true;\n });\n anchor.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n anchor.on('mouseenter', () => {\n const rad = Konva.getAngle(this.rotation());\n const rotateCursor = this.rotateAnchorCursor();\n const cursor = getCursor(name, rad, rotateCursor);\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = cursor);\n this._cursorChange = true;\n });\n anchor.on('mouseout', () => {\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = '');\n this._cursorChange = false;\n });\n this.add(anchor);\n }\n _createBack() {\n const back = new Shape({\n name: 'back',\n width: 0,\n height: 0,\n sceneFunc(ctx, shape) {\n const tr = shape.getParent();\n const padding = tr.padding();\n const width = shape.width();\n const height = shape.height();\n ctx.beginPath();\n ctx.rect(-padding, -padding, width + padding * 2, height + padding * 2);\n if (tr.rotateEnabled() && tr.rotateLineVisible()) {\n const rotateAnchorAngle = tr.rotateAnchorAngle();\n const rotateAnchorOffset = tr.rotateAnchorOffset();\n const rad = Util.degToRad(rotateAnchorAngle);\n const dirX = Math.sin(rad);\n const dirY = -Math.cos(rad);\n const cx = width / 2;\n const cy = height / 2;\n let t = Infinity;\n if (dirY < 0) {\n t = Math.min(t, -cy / dirY);\n }\n else if (dirY > 0) {\n t = Math.min(t, (height - cy) / dirY);\n }\n if (dirX < 0) {\n t = Math.min(t, -cx / dirX);\n }\n else if (dirX > 0) {\n t = Math.min(t, (width - cx) / dirX);\n }\n const edgeX = cx + dirX * t;\n const edgeY = cy + dirY * t;\n const sign = Util._sign(height);\n const endX = edgeX + dirX * rotateAnchorOffset * sign;\n const endY = edgeY + dirY * rotateAnchorOffset * sign;\n ctx.moveTo(edgeX, edgeY);\n ctx.lineTo(endX, endY);\n }\n ctx.fillStrokeShape(shape);\n },\n hitFunc: (ctx, shape) => {\n if (!this.shouldOverdrawWholeArea()) {\n return;\n }\n const padding = this.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, shape.width() + padding * 2, shape.height() + padding * 2);\n ctx.fillStrokeShape(shape);\n },\n });\n this.add(back);\n this._proxyDrag(back);\n back.on('dragstart', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragmove', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n this.on('dragmove', (e) => {\n this.update();\n });\n }\n _handleMouseDown(e) {\n var _a;\n if (this._transforming) {\n return;\n }\n this._movingAnchorName = e.target.name().split(' ')[0];\n const attrs = this._getNodeRect();\n const width = attrs.width;\n const height = attrs.height;\n const hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));\n this.sin = Math.abs(height / hypotenuse);\n this.cos = Math.abs(width / hypotenuse);\n const win = (_a = this.getStage()) === null || _a === void 0 ? void 0 : _a._getOwnerWindow();\n this._transformWindow = win || null;\n if (win) {\n win.addEventListener('mousemove', this._handleMouseMove);\n win.addEventListener('touchmove', this._handleMouseMove);\n win.addEventListener('mouseup', this._handleMouseUp, true);\n win.addEventListener('touchend', this._handleMouseUp, true);\n }\n this._transforming = true;\n const ap = e.target.getAbsolutePosition();\n const pos = e.target.getStage().getPointerPosition();\n this._anchorDragOffset = {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n };\n activeTransformersCount++;\n this._fire('transformstart', { evt: e.evt, target: this.getNode() });\n this._nodes.forEach((target) => {\n target._fire('transformstart', { evt: e.evt, target });\n });\n }\n _handleMouseMove(e) {\n let x, y, newHypotenuse;\n const anchorNode = this.findOne('.' + this._movingAnchorName);\n const stage = anchorNode.getStage();\n stage.setPointersPositions(e);\n const pp = stage.getPointerPosition();\n let newNodePos = {\n x: pp.x - this._anchorDragOffset.x,\n y: pp.y - this._anchorDragOffset.y,\n };\n const oldAbs = anchorNode.getAbsolutePosition();\n if (this.anchorDragBoundFunc()) {\n newNodePos = this.anchorDragBoundFunc()(oldAbs, newNodePos, e);\n }\n anchorNode.setAbsolutePosition(newNodePos);\n const newAbs = anchorNode.getAbsolutePosition();\n if (oldAbs.x === newAbs.x && oldAbs.y === newAbs.y) {\n return;\n }\n if (this._movingAnchorName === 'rotater') {\n const attrs = this._getNodeRect();\n x = anchorNode.x() - attrs.width / 2;\n y = -anchorNode.y() + attrs.height / 2;\n const rotateAnchorAngleRad = Konva.getAngle(this.rotateAnchorAngle());\n let delta = Math.atan2(-y, x) + Math.PI / 2 - rotateAnchorAngleRad;\n if (attrs.height < 0) {\n delta -= Math.PI;\n }\n const oldRotation = Konva.getAngle(this.rotation());\n const newRotation = oldRotation + delta;\n const tol = Konva.getAngle(this.rotationSnapTolerance());\n const snappedRot = getSnap(this.rotationSnaps(), newRotation, tol);\n const diff = snappedRot - attrs.rotation;\n const shape = rotateAroundCenter(attrs, diff);\n this._fitNodesInto(shape, e);\n return;\n }\n const shiftBehavior = this.shiftBehavior();\n let keepProportion;\n if (shiftBehavior === 'inverted') {\n keepProportion = this.keepRatio() && !e.shiftKey;\n }\n else if (shiftBehavior === 'none') {\n keepProportion = this.keepRatio();\n }\n else {\n keepProportion = this.keepRatio() || e.shiftKey;\n }\n let centeredScaling = this.centeredScaling() || e.altKey;\n let anchorProjected = false;\n if (this._movingAnchorName === 'top-left') {\n if (keepProportion) {\n anchorProjected = true;\n const comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-right').x(),\n y: this.findOne('.bottom-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n const reverseX = this.findOne('.top-left').x() > comparePoint.x ? -1 : 1;\n const reverseY = this.findOne('.top-left').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-left').x(comparePoint.x - x);\n this.findOne('.top-left').y(comparePoint.y - y);\n }\n }\n else if (this._movingAnchorName === 'top-center') {\n this.findOne('.top-left').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'top-right') {\n if (keepProportion) {\n anchorProjected = true;\n const comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-left').x(),\n y: this.findOne('.bottom-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n const reverseX = this.findOne('.top-right').x() < comparePoint.x ? -1 : 1;\n const reverseY = this.findOne('.top-right').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-right').x(comparePoint.x + x);\n this.findOne('.top-right').y(comparePoint.y - y);\n }\n var pos = anchorNode.position();\n this.findOne('.top-left').y(pos.y);\n this.findOne('.bottom-right').x(pos.x);\n }\n else if (this._movingAnchorName === 'middle-left') {\n this.findOne('.top-left').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'middle-right') {\n this.findOne('.bottom-right').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'bottom-left') {\n if (keepProportion) {\n anchorProjected = true;\n const comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-right').x(),\n y: this.findOne('.top-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n const reverseX = comparePoint.x < anchorNode.x() ? -1 : 1;\n const reverseY = anchorNode.y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n anchorNode.x(comparePoint.x - x);\n anchorNode.y(comparePoint.y + y);\n }\n pos = anchorNode.position();\n this.findOne('.top-left').x(pos.x);\n this.findOne('.bottom-right').y(pos.y);\n }\n else if (this._movingAnchorName === 'bottom-center') {\n this.findOne('.bottom-right').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'bottom-right') {\n if (keepProportion) {\n anchorProjected = true;\n const comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-left').x(),\n y: this.findOne('.top-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n const reverseX = this.findOne('.bottom-right').x() < comparePoint.x ? -1 : 1;\n const reverseY = this.findOne('.bottom-right').y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.bottom-right').x(comparePoint.x + x);\n this.findOne('.bottom-right').y(comparePoint.y + y);\n }\n }\n else {\n console.error(new Error('Wrong position argument of selection resizer: ' +\n this._movingAnchorName));\n }\n centeredScaling = this.centeredScaling() || e.altKey;\n if (centeredScaling) {\n const topLeft = this.findOne('.top-left');\n const bottomRight = this.findOne('.bottom-right');\n const topOffsetX = topLeft.x();\n const topOffsetY = topLeft.y();\n const bottomOffsetX = this.getWidth() - bottomRight.x();\n const bottomOffsetY = this.getHeight() - bottomRight.y();\n bottomRight.move({\n x: -topOffsetX,\n y: -topOffsetY,\n });\n topLeft.move({\n x: bottomOffsetX,\n y: bottomOffsetY,\n });\n }\n const absPos = this.findOne('.top-left').getAbsolutePosition();\n x = absPos.x;\n y = absPos.y;\n const width = this.findOne('.bottom-right').x() - this.findOne('.top-left').x();\n const height = this.findOne('.bottom-right').y() - this.findOne('.top-left').y();\n this._fitNodesInto({\n x: x,\n y: y,\n width: width,\n height: height,\n rotation: Konva.getAngle(this.rotation()),\n }, e, anchorProjected);\n }\n _handleMouseUp(e) {\n this._removeEvents(e);\n }\n getAbsoluteTransform() {\n return this.getTransform();\n }\n _removeEvents(e) {\n var _a;\n if (this._transforming) {\n this._transforming = false;\n const win = this._transformWindow;\n this._transformWindow = null;\n if (win) {\n win.removeEventListener('mousemove', this._handleMouseMove);\n win.removeEventListener('touchmove', this._handleMouseMove);\n win.removeEventListener('mouseup', this._handleMouseUp, true);\n win.removeEventListener('touchend', this._handleMouseUp, true);\n }\n const node = this.getNode();\n activeTransformersCount--;\n this._fire('transformend', { evt: e, target: node });\n (_a = this.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n if (node) {\n this._nodes.forEach((target) => {\n var _a;\n target._fire('transformend', { evt: e, target });\n (_a = target.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n });\n }\n this._movingAnchorName = null;\n }\n }\n _fitNodesInto(newAttrs, evt, anchorProjected = false) {\n const prevAutoDraw = Konva.autoDrawEnabled;\n Konva.autoDrawEnabled = false;\n try {\n return this._doFitNodesInto(newAttrs, evt, anchorProjected);\n }\n finally {\n Konva.autoDrawEnabled = prevAutoDraw;\n }\n }\n _doFitNodesInto(newAttrs, evt, anchorProjected = false) {\n const oldAttrs = this._getNodeRect();\n const minSize = 1;\n if (Util._inRange(newAttrs.width, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n if (Util._inRange(newAttrs.height, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n const t = new Transform();\n t.rotate(Konva.getAngle(this.rotation()));\n const flipPadding = anchorProjected ? 0 : this.padding() * 2;\n let widthFlip = null;\n let heightFlip = null;\n if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('left') >= 0) {\n const offset = t.point({\n x: -flipPadding,\n y: 0,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n newAttrs.width += flipPadding;\n widthFlip = { axis: 'width', from: 'left', to: 'right', offset };\n }\n else if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('right') >= 0) {\n const offset = t.point({\n x: flipPadding,\n y: 0,\n });\n newAttrs.width += flipPadding;\n widthFlip = { axis: 'width', from: 'right', to: 'left', offset };\n }\n if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('top') >= 0) {\n const offset = t.point({\n x: 0,\n y: -flipPadding,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n newAttrs.height += flipPadding;\n heightFlip = { axis: 'height', from: 'top', to: 'bottom', offset };\n }\n else if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('bottom') >= 0) {\n const offset = t.point({\n x: 0,\n y: flipPadding,\n });\n newAttrs.height += flipPadding;\n heightFlip = { axis: 'height', from: 'bottom', to: 'top', offset };\n }\n if (this.boundBoxFunc()) {\n const bounded = this.boundBoxFunc()(oldAttrs, newAttrs);\n if (bounded) {\n newAttrs = bounded;\n }\n else {\n Util.warn('boundBoxFunc returned falsy. You should return new bound rect from it!');\n }\n }\n for (const flip of [widthFlip, heightFlip]) {\n if (flip && newAttrs[flip.axis] < 0 && this._movingAnchorName) {\n this._movingAnchorName = this._movingAnchorName.replace(flip.from, flip.to);\n this._anchorDragOffset.x -= flip.offset.x;\n this._anchorDragOffset.y -= flip.offset.y;\n }\n }\n const baseSize = 10000000;\n const oldTr = new Transform();\n oldTr.translate(oldAttrs.x, oldAttrs.y);\n oldTr.rotate(oldAttrs.rotation);\n oldTr.scale(oldAttrs.width / baseSize, oldAttrs.height / baseSize);\n const newTr = new Transform();\n const newScaleX = newAttrs.width / baseSize;\n const newScaleY = newAttrs.height / baseSize;\n if (this.flipEnabled() === false) {\n newTr.translate(newAttrs.x, newAttrs.y);\n newTr.rotate(newAttrs.rotation);\n newTr.translate(newAttrs.width < 0 ? newAttrs.width : 0, newAttrs.height < 0 ? newAttrs.height : 0);\n newTr.scale(Math.abs(newScaleX), Math.abs(newScaleY));\n }\n else {\n newTr.translate(newAttrs.x, newAttrs.y);\n newTr.rotate(newAttrs.rotation);\n newTr.scale(newScaleX, newScaleY);\n }\n const delta = newTr.multiply(oldTr.invert());\n const layersToDraw = new Set();\n this._nodes.forEach((node) => {\n if (!node.getStage()) {\n return;\n }\n const parentTransform = node.getParent().getAbsoluteTransform();\n const localTransform = node.getTransform().copy();\n localTransform.translate(node.offsetX(), node.offsetY());\n const newLocalTransform = new Transform();\n newLocalTransform\n .multiply(parentTransform.copy().invert())\n .multiply(delta)\n .multiply(parentTransform)\n .multiply(localTransform);\n const attrs = newLocalTransform.decompose();\n node.setAttrs(attrs);\n const layer = node.getLayer();\n if (layer) {\n layersToDraw.add(layer);\n }\n });\n this.rotation(Util._getRotation(newAttrs.rotation));\n this._nodes.forEach((node) => {\n this._fire('transform', { evt: evt, target: node });\n node._fire('transform', { evt: evt, target: node });\n });\n this._resetTransformCache();\n this.update();\n layersToDraw.add(this.getLayer());\n layersToDraw.forEach((layer) => layer && layer.batchDraw());\n }\n _scheduleUpdate() {\n if (this._updateScheduled)\n return;\n this._updateScheduled = true;\n Node._runAfterAbsTransformCascade(() => {\n var _a;\n this._updateScheduled = false;\n if (!((_a = this._nodes) === null || _a === void 0 ? void 0 : _a.length) || this._transforming || this.isDragging()) {\n return;\n }\n this.update();\n });\n }\n forceUpdate() {\n this._resetTransformCache();\n this.update();\n }\n _batchChangeChild(selector, attrs) {\n const anchor = this.findOne(selector);\n anchor.setAttrs(attrs);\n }\n update() {\n var _a;\n const attrs = this._getNodeRect();\n this.rotation(Util._getRotation(attrs.rotation));\n const width = attrs.width;\n const height = attrs.height;\n const enabledAnchors = this.enabledAnchors();\n const resizeEnabled = this.resizeEnabled();\n const padding = this.padding();\n const anchorSize = this.anchorSize();\n const anchors = this.find('._anchor');\n anchors.forEach((node) => {\n node.setAttrs({\n width: anchorSize,\n height: anchorSize,\n offsetX: anchorSize / 2,\n offsetY: anchorSize / 2,\n stroke: this.anchorStroke(),\n strokeWidth: this.anchorStrokeWidth(),\n fill: this.anchorFill(),\n cornerRadius: this.anchorCornerRadius(),\n });\n });\n this._batchChangeChild('.top-left', {\n x: 0,\n y: 0,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-left') >= 0,\n });\n this._batchChangeChild('.top-center', {\n x: width / 2,\n y: 0,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-center') >= 0,\n });\n this._batchChangeChild('.top-right', {\n x: width,\n y: 0,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-right') >= 0,\n });\n this._batchChangeChild('.middle-left', {\n x: 0,\n y: height / 2,\n offsetX: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-left') >= 0,\n });\n this._batchChangeChild('.middle-right', {\n x: width,\n y: height / 2,\n offsetX: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-right') >= 0,\n });\n this._batchChangeChild('.bottom-left', {\n x: 0,\n y: height,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-left') >= 0,\n });\n this._batchChangeChild('.bottom-center', {\n x: width / 2,\n y: height,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-center') >= 0,\n });\n this._batchChangeChild('.bottom-right', {\n x: width,\n y: height,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-right') >= 0,\n });\n const rotateAnchorAngle = this.rotateAnchorAngle();\n const rotateAnchorOffset = this.rotateAnchorOffset();\n const rad = Util.degToRad(rotateAnchorAngle);\n const dirX = Math.sin(rad);\n const dirY = -Math.cos(rad);\n const cx = width / 2;\n const cy = height / 2;\n let t = Infinity;\n if (dirY < 0) {\n t = Math.min(t, -cy / dirY);\n }\n else if (dirY > 0) {\n t = Math.min(t, (height - cy) / dirY);\n }\n if (dirX < 0) {\n t = Math.min(t, -cx / dirX);\n }\n else if (dirX > 0) {\n t = Math.min(t, (width - cx) / dirX);\n }\n const edgeX = cx + dirX * t;\n const edgeY = cy + dirY * t;\n const sign = Util._sign(height);\n this._batchChangeChild('.rotater', {\n x: edgeX + dirX * rotateAnchorOffset * sign,\n y: edgeY + dirY * rotateAnchorOffset * sign - padding * dirY,\n visible: this.rotateEnabled(),\n });\n this._batchChangeChild('.back', {\n width: width,\n height: height,\n visible: this.borderEnabled(),\n stroke: this.borderStroke(),\n strokeWidth: this.borderStrokeWidth(),\n dash: this.borderDash(),\n draggable: this.nodes().some((node) => node.draggable()),\n x: 0,\n y: 0,\n });\n const styleFunc = this.anchorStyleFunc();\n if (styleFunc) {\n anchors.forEach((node) => {\n styleFunc(node);\n });\n }\n (_a = this.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n }\n isTransforming() {\n return this._transforming;\n }\n stopTransform() {\n if (this._transforming) {\n this._removeEvents();\n const anchorNode = this.findOne('.' + this._movingAnchorName);\n if (anchorNode) {\n anchorNode.stopDrag();\n }\n }\n }\n destroy() {\n if (this.getStage() && this._cursorChange) {\n this.getStage().content && (this.getStage().content.style.cursor = '');\n }\n Group.prototype.destroy.call(this);\n this.detach();\n this._removeEvents();\n return this;\n }\n add(...children) {\n if (this._elementsCreated) {\n Util.error('You cannot add external nodes to the Transformer. Use tr.nodes([node]) instead.');\n return this;\n }\n return super.add(...children);\n }\n toObject() {\n return Node.prototype.toObject.call(this);\n }\n clone(obj) {\n const node = Node.prototype.clone.call(this, obj);\n return node;\n }\n getClientRect() {\n if (this.nodes().length > 0) {\n return super.getClientRect();\n }\n else {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n }\n}\nTransformer.isTransforming = () => {\n return activeTransformersCount > 0;\n};\nfunction validateAnchors(val) {\n if (!(val instanceof Array)) {\n Util.warn('enabledAnchors value should be an array');\n }\n if (val instanceof Array) {\n val.forEach(function (name) {\n if (ANCHORS_NAMES.indexOf(name) === -1) {\n Util.warn('Unknown anchor name: ' +\n name +\n '. Available names are: ' +\n ANCHORS_NAMES.join(', '));\n }\n });\n }\n return val || [];\n}\nTransformer.prototype.className = 'Transformer';\n_registerNode(Transformer);\nFactory.addGetterSetter(Transformer, 'enabledAnchors', ANCHORS_NAMES, validateAnchors);\nFactory.addGetterSetter(Transformer, 'flipEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Transformer, 'resizeEnabled', true);\nFactory.addGetterSetter(Transformer, 'anchorSize', 10, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'rotateEnabled', true);\nFactory.addGetterSetter(Transformer, 'rotateLineVisible', true);\nFactory.addGetterSetter(Transformer, 'rotationSnaps', []);\nFactory.addGetterSetter(Transformer, 'rotateAnchorOffset', 50, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'rotateAnchorAngle', 0, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'rotateAnchorCursor', 'crosshair');\nFactory.addGetterSetter(Transformer, 'rotationSnapTolerance', 5, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'borderEnabled', true);\nFactory.addGetterSetter(Transformer, 'anchorStroke', 'rgb(0, 161, 255)');\nFactory.addGetterSetter(Transformer, 'anchorStrokeWidth', 1, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'anchorFill', 'white');\nFactory.addGetterSetter(Transformer, 'anchorCornerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'borderStroke', 'rgb(0, 161, 255)');\nFactory.addGetterSetter(Transformer, 'borderStrokeWidth', 1, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'borderDash');\nFactory.addGetterSetter(Transformer, 'keepRatio', true);\nFactory.addGetterSetter(Transformer, 'shiftBehavior', 'default');\nFactory.addGetterSetter(Transformer, 'centeredScaling', false);\nFactory.addGetterSetter(Transformer, 'ignoreStroke', false);\nFactory.addGetterSetter(Transformer, 'padding', 0, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'nodes');\nFactory.addGetterSetter(Transformer, 'node');\nFactory.addGetterSetter(Transformer, 'boundBoxFunc');\nFactory.addGetterSetter(Transformer, 'anchorDragBoundFunc');\nFactory.addGetterSetter(Transformer, 'anchorStyleFunc');\nFactory.addGetterSetter(Transformer, 'shouldOverdrawWholeArea', false);\nFactory.addGetterSetter(Transformer, 'useSingleNodeRotation', true);\nFactory.backCompat(Transformer, {\n lineEnabled: 'borderEnabled',\n rotateHandlerOffset: 'rotateAnchorOffset',\n enabledHandlers: 'enabledAnchors',\n});\n","import { Factory } from \"../Factory.js\";\nimport { Shape } from \"../Shape.js\";\nimport { Konva } from \"../Global.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nimport { _registerNode } from \"../Global.js\";\nexport class Wedge extends Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.radius(), 0, Konva.getAngle(this.angle()), this.clockwise());\n context.lineTo(0, 0);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n this.radius(width / 2);\n }\n setHeight(height) {\n this.radius(height / 2);\n }\n}\nWedge.prototype.className = 'Wedge';\nWedge.prototype._centroid = true;\nWedge.prototype._attrsAffectingSize = ['radius'];\n_registerNode(Wedge);\nFactory.addGetterSetter(Wedge, 'radius', 0, getNumberValidator());\nFactory.addGetterSetter(Wedge, 'angle', 0, getNumberValidator());\nFactory.addGetterSetter(Wedge, 'clockwise', false);\nFactory.backCompat(Wedge, {\n angleDeg: 'angle',\n getAngleDeg: 'getAngle',\n setAngleDeg: 'setAngle',\n});\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nfunction BlurStack() {\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n}\nconst mul_table = [\n 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292,\n 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292,\n 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259,\n 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292,\n 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373,\n 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259,\n 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381,\n 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292,\n 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461,\n 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373,\n 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309,\n 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259,\n 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442,\n 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381,\n 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332,\n 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292,\n 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259,\n];\nconst shg_table = [\n 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17,\n 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19,\n 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24,\n];\nfunction filterGaussBlurRGBA(imageData, radius) {\n const pixels = imageData.data, width = imageData.width, height = imageData.height;\n let p, yi, yw, r_sum, g_sum, b_sum, a_sum, r_out_sum, g_out_sum, b_out_sum, a_out_sum, r_in_sum, g_in_sum, b_in_sum, a_in_sum, pr, pg, pb, pa, rbs;\n const div = radius + radius + 1, widthMinus1 = width - 1, heightMinus1 = height - 1, radiusPlus1 = radius + 1, sumFactor = (radiusPlus1 * (radiusPlus1 + 1)) / 2, stackStart = new BlurStack(), mul_sum = mul_table[radius], shg_sum = shg_table[radius];\n let stackEnd = null, stack = stackStart, stackIn = null, stackOut = null;\n for (let i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n stack.next = stackStart;\n yw = yi = 0;\n for (let y = 0; y < height; y++) {\n r_in_sum =\n g_in_sum =\n b_in_sum =\n a_in_sum =\n r_sum =\n g_sum =\n b_sum =\n a_sum =\n 0;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (let i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n for (let i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[p + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[p + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[p + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n }\n stackIn = stackStart;\n stackOut = stackEnd;\n for (let x = 0; x < width; x++) {\n pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa !== 0) {\n pa = 255 / pa;\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n r_in_sum += stackIn.r = pixels[p];\n g_in_sum += stackIn.g = pixels[p + 1];\n b_in_sum += stackIn.b = pixels[p + 2];\n a_in_sum += stackIn.a = pixels[p + 3];\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += 4;\n }\n yw += width;\n }\n for (let x = 0; x < width; x++) {\n g_in_sum =\n b_in_sum =\n a_in_sum =\n r_in_sum =\n g_sum =\n b_sum =\n a_sum =\n r_sum =\n 0;\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (let i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n let yp = width;\n for (let i = 1; i <= radius; i++) {\n yi = (yp + x) << 2;\n r_sum += (stack.r = pr = pixels[yi]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[yi + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[yi + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[yi + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n if (i < heightMinus1) {\n yp += width;\n }\n }\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (let y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa > 0) {\n pa = 255 / pa;\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p =\n (x +\n ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width) <<\n 2;\n r_sum += r_in_sum += stackIn.r = pixels[p];\n g_sum += g_in_sum += stackIn.g = pixels[p + 1];\n b_sum += b_in_sum += stackIn.b = pixels[p + 2];\n a_sum += a_in_sum += stackIn.a = pixels[p + 3];\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n}\nexport const Blur = function Blur(imageData) {\n const radius = Math.round(this.blurRadius());\n if (radius > 0) {\n filterGaussBlurRGBA(imageData, radius);\n }\n};\nFactory.addGetterSetter(Node, 'blurRadius', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nexport const Brighten = function (imageData) {\n const brightness = this.brightness() * 255, data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n data[i] += brightness;\n data[i + 1] += brightness;\n data[i + 2] += brightness;\n }\n};\nFactory.addGetterSetter(Node, 'brightness', 0, getNumberValidator(), Factory.afterSetFilter);\n","export const Brightness = function (imageData) {\n const brightness = this.brightness(), data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n data[i] = Math.min(255, data[i] * brightness);\n data[i + 1] = Math.min(255, data[i + 1] * brightness);\n data[i + 2] = Math.min(255, data[i + 2] * brightness);\n }\n};\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nexport const Contrast = function (imageData) {\n const adjust = Math.pow((this.contrast() + 100) / 100, 2);\n const data = imageData.data, nPixels = data.length;\n let red = 150, green = 150, blue = 150;\n for (let i = 0; i < nPixels; i += 4) {\n red = data[i];\n green = data[i + 1];\n blue = data[i + 2];\n red /= 255;\n red -= 0.5;\n red *= adjust;\n red += 0.5;\n red *= 255;\n green /= 255;\n green -= 0.5;\n green *= adjust;\n green += 0.5;\n green *= 255;\n blue /= 255;\n blue -= 0.5;\n blue *= adjust;\n blue += 0.5;\n blue *= 255;\n red = red < 0 ? 0 : red > 255 ? 255 : red;\n green = green < 0 ? 0 : green > 255 ? 255 : green;\n blue = blue < 0 ? 0 : blue > 255 ? 255 : blue;\n data[i] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n }\n};\nFactory.addGetterSetter(Node, 'contrast', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nexport const Emboss = function (imageData) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const data = imageData.data;\n const w = imageData.width;\n const h = imageData.height;\n const strength01 = Math.min(1, Math.max(0, (_b = (_a = this.embossStrength) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : 0.5));\n const whiteLevel01 = Math.min(1, Math.max(0, (_d = (_c = this.embossWhiteLevel) === null || _c === void 0 ? void 0 : _c.call(this)) !== null && _d !== void 0 ? _d : 0.5));\n const directionMap = {\n 'top-left': 315,\n top: 270,\n 'top-right': 225,\n right: 180,\n 'bottom-right': 135,\n bottom: 90,\n 'bottom-left': 45,\n left: 0,\n };\n const directionDeg = (_g = directionMap[(_f = (_e = this.embossDirection) === null || _e === void 0 ? void 0 : _e.call(this)) !== null && _f !== void 0 ? _f : 'top-left']) !== null && _g !== void 0 ? _g : 315;\n const blend = !!((_j = (_h = this.embossBlend) === null || _h === void 0 ? void 0 : _h.call(this)) !== null && _j !== void 0 ? _j : false);\n const strength = strength01 * 10;\n const bias = whiteLevel01 * 255;\n const dirRad = (directionDeg * Math.PI) / 180;\n const cx = Math.cos(dirRad);\n const cy = Math.sin(dirRad);\n const SCALE = (128 / 1020) * strength;\n const src = new Uint8ClampedArray(data);\n const lum = new Float32Array(w * h);\n for (let p = 0, i = 0; i < data.length; i += 4, p++) {\n lum[p] = 0.2126 * src[i] + 0.7152 * src[i + 1] + 0.0722 * src[i + 2];\n }\n const Gx = [-1, 0, 1, -2, 0, 2, -1, 0, 1];\n const Gy = [-1, -2, -1, 0, 0, 0, 1, 2, 1];\n const OFF = [-w - 1, -w, -w + 1, -1, 0, 1, w - 1, w, w + 1];\n const clamp8 = (v) => (v < 0 ? 0 : v > 255 ? 255 : v);\n for (let y = 1; y < h - 1; y++) {\n for (let x = 1; x < w - 1; x++) {\n const p = y * w + x;\n let sx = 0, sy = 0;\n sx += lum[p + OFF[0]] * Gx[0];\n sy += lum[p + OFF[0]] * Gy[0];\n sx += lum[p + OFF[1]] * Gx[1];\n sy += lum[p + OFF[1]] * Gy[1];\n sx += lum[p + OFF[2]] * Gx[2];\n sy += lum[p + OFF[2]] * Gy[2];\n sx += lum[p + OFF[3]] * Gx[3];\n sy += lum[p + OFF[3]] * Gy[3];\n sx += lum[p + OFF[5]] * Gx[5];\n sy += lum[p + OFF[5]] * Gy[5];\n sx += lum[p + OFF[6]] * Gx[6];\n sy += lum[p + OFF[6]] * Gy[6];\n sx += lum[p + OFF[7]] * Gx[7];\n sy += lum[p + OFF[7]] * Gy[7];\n sx += lum[p + OFF[8]] * Gx[8];\n sy += lum[p + OFF[8]] * Gy[8];\n const r = cx * sx + cy * sy;\n const outGray = clamp8(bias + r * SCALE);\n const o = p * 4;\n if (blend) {\n const delta = outGray - bias;\n data[o] = clamp8(src[o] + delta);\n data[o + 1] = clamp8(src[o + 1] + delta);\n data[o + 2] = clamp8(src[o + 2] + delta);\n data[o + 3] = src[o + 3];\n }\n else {\n data[o] = data[o + 1] = data[o + 2] = outGray;\n data[o + 3] = src[o + 3];\n }\n }\n }\n for (let x = 0; x < w; x++) {\n let oTop = x * 4, oBot = ((h - 1) * w + x) * 4;\n data[oTop] = src[oTop];\n data[oTop + 1] = src[oTop + 1];\n data[oTop + 2] = src[oTop + 2];\n data[oTop + 3] = src[oTop + 3];\n data[oBot] = src[oBot];\n data[oBot + 1] = src[oBot + 1];\n data[oBot + 2] = src[oBot + 2];\n data[oBot + 3] = src[oBot + 3];\n }\n for (let y = 1; y < h - 1; y++) {\n let oL = y * w * 4, oR = (y * w + (w - 1)) * 4;\n data[oL] = src[oL];\n data[oL + 1] = src[oL + 1];\n data[oL + 2] = src[oL + 2];\n data[oL + 3] = src[oL + 3];\n data[oR] = src[oR];\n data[oR + 1] = src[oR + 1];\n data[oR + 2] = src[oR + 2];\n data[oR + 3] = src[oR + 3];\n }\n return imageData;\n};\nFactory.addGetterSetter(Node, 'embossStrength', 0.5, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'embossWhiteLevel', 0.5, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'embossDirection', 'top-left', undefined, Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'embossBlend', false, undefined, Factory.afterSetFilter);\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nfunction remap(fromValue, fromMin, fromMax, toMin, toMax) {\n const fromRange = fromMax - fromMin, toRange = toMax - toMin;\n if (fromRange === 0) {\n return toMin + toRange / 2;\n }\n if (toRange === 0) {\n return toMin;\n }\n let toValue = (fromValue - fromMin) / fromRange;\n toValue = toRange * toValue + toMin;\n return toValue;\n}\nexport const Enhance = function (imageData) {\n const data = imageData.data, nSubPixels = data.length;\n let rMin = data[0], rMax = rMin, r, gMin = data[1], gMax = gMin, g, bMin = data[2], bMax = bMin, b;\n const enhanceAmount = this.enhance();\n if (enhanceAmount === 0) {\n return;\n }\n for (let i = 0; i < nSubPixels; i += 4) {\n r = data[i + 0];\n if (r < rMin) {\n rMin = r;\n }\n else if (r > rMax) {\n rMax = r;\n }\n g = data[i + 1];\n if (g < gMin) {\n gMin = g;\n }\n else if (g > gMax) {\n gMax = g;\n }\n b = data[i + 2];\n if (b < bMin) {\n bMin = b;\n }\n else if (b > bMax) {\n bMax = b;\n }\n }\n if (rMax === rMin) {\n rMax = 255;\n rMin = 0;\n }\n if (gMax === gMin) {\n gMax = 255;\n gMin = 0;\n }\n if (bMax === bMin) {\n bMax = 255;\n bMin = 0;\n }\n let rGoalMax, rGoalMin, gGoalMax, gGoalMin, bGoalMax, bGoalMin;\n if (enhanceAmount > 0) {\n rGoalMax = rMax + enhanceAmount * (255 - rMax);\n rGoalMin = rMin - enhanceAmount * (rMin - 0);\n gGoalMax = gMax + enhanceAmount * (255 - gMax);\n gGoalMin = gMin - enhanceAmount * (gMin - 0);\n bGoalMax = bMax + enhanceAmount * (255 - bMax);\n bGoalMin = bMin - enhanceAmount * (bMin - 0);\n }\n else {\n const rMid = (rMax + rMin) * 0.5;\n rGoalMax = rMax + enhanceAmount * (rMax - rMid);\n rGoalMin = rMin + enhanceAmount * (rMin - rMid);\n const gMid = (gMax + gMin) * 0.5;\n gGoalMax = gMax + enhanceAmount * (gMax - gMid);\n gGoalMin = gMin + enhanceAmount * (gMin - gMid);\n const bMid = (bMax + bMin) * 0.5;\n bGoalMax = bMax + enhanceAmount * (bMax - bMid);\n bGoalMin = bMin + enhanceAmount * (bMin - bMid);\n }\n for (let i = 0; i < nSubPixels; i += 4) {\n data[i + 0] = remap(data[i + 0], rMin, rMax, rGoalMin, rGoalMax);\n data[i + 1] = remap(data[i + 1], gMin, gMax, gGoalMin, gGoalMax);\n data[i + 2] = remap(data[i + 2], bMin, bMax, bGoalMin, bGoalMax);\n }\n};\nFactory.addGetterSetter(Node, 'enhance', 0, getNumberValidator(), Factory.afterSetFilter);\n","export const Grayscale = function (imageData) {\n const data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n const brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];\n data[i] = brightness;\n data[i + 1] = brightness;\n data[i + 2] = brightness;\n }\n};\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nFactory.addGetterSetter(Node, 'hue', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'saturation', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'luminance', 0, getNumberValidator(), Factory.afterSetFilter);\nexport const HSL = function (imageData) {\n const data = imageData.data, nPixels = data.length, v = 1, s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, l = this.luminance() * 127;\n const vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n const rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n const gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n const br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n let r, g, b, a;\n for (let i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b + l;\n data[i + 1] = gr * r + gg * g + gb * b + l;\n data[i + 2] = br * r + bg * g + bb * b + l;\n data[i + 3] = a;\n }\n};\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nexport const HSV = function (imageData) {\n const data = imageData.data, nPixels = data.length, v = Math.pow(2, this.value()), s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360;\n const vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n const rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n const gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n const br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n for (let i = 0; i < nPixels; i += 4) {\n const r = data[i + 0];\n const g = data[i + 1];\n const b = data[i + 2];\n const a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b;\n data[i + 1] = gr * r + gg * g + gb * b;\n data[i + 2] = br * r + bg * g + bb * b;\n data[i + 3] = a;\n }\n};\nFactory.addGetterSetter(Node, 'hue', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'saturation', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'value', 0, getNumberValidator(), Factory.afterSetFilter);\n","export const Invert = function (imageData) {\n const data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n }\n};\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { Util } from \"../Util.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nconst ToPolar = function (src, dst, opt) {\n const srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2;\n let rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n let x = xSize - xMid;\n let y = ySize - yMid;\n const rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n const rSize = ySize, tSize = xSize;\n const conversion = ((360 / tSize) * Math.PI) / 180;\n for (let theta = 0; theta < tSize; theta += 1) {\n const sin = Math.sin(theta * conversion);\n const cos = Math.cos(theta * conversion);\n for (let radius = 0; radius < rSize; radius += 1) {\n x = Math.floor(xMid + ((rMax * radius) / rSize) * cos);\n y = Math.floor(yMid + ((rMax * radius) / rSize) * sin);\n let i = (y * xSize + x) * 4;\n const r = srcPixels[i + 0];\n const g = srcPixels[i + 1];\n const b = srcPixels[i + 2];\n const a = srcPixels[i + 3];\n i = (theta + radius * xSize) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nconst FromPolar = function (src, dst, opt) {\n const srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2;\n let rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n let x = xSize - xMid;\n let y = ySize - yMid;\n const rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n const rSize = ySize, tSize = xSize, phaseShift = opt.polarRotation || 0;\n let x1, y1;\n for (x = 0; x < xSize; x += 1) {\n for (y = 0; y < ySize; y += 1) {\n const dx = x - xMid;\n const dy = y - yMid;\n const radius = (Math.sqrt(dx * dx + dy * dy) * rSize) / rMax;\n let theta = ((Math.atan2(dy, dx) * 180) / Math.PI + 360 + phaseShift) % 360;\n theta = (theta * tSize) / 360;\n x1 = Math.floor(theta);\n y1 = Math.floor(radius);\n let i = (y1 * xSize + x1) * 4;\n const r = srcPixels[i + 0];\n const g = srcPixels[i + 1];\n const b = srcPixels[i + 2];\n const a = srcPixels[i + 3];\n i = (y * xSize + x) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nexport const Kaleidoscope = function (imageData) {\n const xSize = imageData.width, ySize = imageData.height;\n let x, y, xoff, i, r, g, b, a, srcPos, dstPos;\n let power = Math.round(this.kaleidoscopePower());\n const angle = Math.round(this.kaleidoscopeAngle());\n const offset = Math.floor((xSize * (angle % 360)) / 360);\n if (power < 1) {\n return;\n }\n const tempCanvas = Util.createCanvasElement();\n tempCanvas.width = xSize;\n tempCanvas.height = ySize;\n const scratchData = tempCanvas\n .getContext('2d')\n .getImageData(0, 0, xSize, ySize);\n Util.releaseCanvas(tempCanvas);\n ToPolar(imageData, scratchData, {\n polarCenterX: xSize / 2,\n polarCenterY: ySize / 2,\n });\n let minSectionSize = xSize / Math.pow(2, power);\n while (minSectionSize <= 8) {\n minSectionSize = minSectionSize * 2;\n power -= 1;\n }\n minSectionSize = Math.ceil(minSectionSize);\n let sectionSize = minSectionSize;\n let xStart = 0, xEnd = sectionSize, xDelta = 1;\n if (offset + minSectionSize > xSize) {\n xStart = sectionSize;\n xEnd = 0;\n xDelta = -1;\n }\n for (y = 0; y < ySize; y += 1) {\n for (x = xStart; x !== xEnd; x += xDelta) {\n xoff = Math.round(x + offset) % xSize;\n srcPos = (xSize * y + xoff) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + x) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n }\n for (y = 0; y < ySize; y += 1) {\n sectionSize = Math.floor(minSectionSize);\n for (i = 0; i < power; i += 1) {\n for (x = 0; x < sectionSize + 1; x += 1) {\n srcPos = (xSize * y + x) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + sectionSize * 2 - x - 1) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n sectionSize *= 2;\n }\n }\n FromPolar(scratchData, imageData, { polarRotation: 0 });\n};\nFactory.addGetterSetter(Node, 'kaleidoscopePower', 2, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'kaleidoscopeAngle', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nfunction pixelAt(idata, x, y) {\n let idx = (y * idata.width + x) * 4;\n const d = [];\n d.push(idata.data[idx++], idata.data[idx++], idata.data[idx++], idata.data[idx++]);\n return d;\n}\nfunction rgbDistance(p1, p2) {\n return Math.sqrt(Math.pow(p1[0] - p2[0], 2) +\n Math.pow(p1[1] - p2[1], 2) +\n Math.pow(p1[2] - p2[2], 2));\n}\nfunction rgbMean(pTab) {\n const m = [0, 0, 0];\n for (let i = 0; i < pTab.length; i++) {\n m[0] += pTab[i][0];\n m[1] += pTab[i][1];\n m[2] += pTab[i][2];\n }\n m[0] /= pTab.length;\n m[1] /= pTab.length;\n m[2] /= pTab.length;\n return m;\n}\nfunction backgroundMask(idata, threshold) {\n const rgbv_no = pixelAt(idata, 0, 0);\n const rgbv_ne = pixelAt(idata, idata.width - 1, 0);\n const rgbv_so = pixelAt(idata, 0, idata.height - 1);\n const rgbv_se = pixelAt(idata, idata.width - 1, idata.height - 1);\n const thres = threshold || 10;\n if (rgbDistance(rgbv_no, rgbv_ne) < thres &&\n rgbDistance(rgbv_ne, rgbv_se) < thres &&\n rgbDistance(rgbv_se, rgbv_so) < thres &&\n rgbDistance(rgbv_so, rgbv_no) < thres) {\n const mean = rgbMean([rgbv_ne, rgbv_no, rgbv_se, rgbv_so]);\n const mask = [];\n for (let i = 0; i < idata.width * idata.height; i++) {\n const d = rgbDistance(mean, [\n idata.data[i * 4],\n idata.data[i * 4 + 1],\n idata.data[i * 4 + 2],\n ]);\n mask[i] = d < thres ? 0 : 255;\n }\n return mask;\n }\n}\nfunction applyMask(idata, mask) {\n for (let i = 0; i < idata.width * idata.height; i++) {\n idata.data[4 * i + 3] = mask[i];\n }\n}\nfunction erodeMask(mask, sw, sh) {\n const weights = [1, 1, 1, 1, 0, 1, 1, 1, 1];\n const side = Math.round(Math.sqrt(weights.length));\n const halfSide = Math.floor(side / 2);\n const maskResult = [];\n for (let y = 0; y < sh; y++) {\n for (let x = 0; x < sw; x++) {\n const so = y * sw + x;\n let a = 0;\n for (let cy = 0; cy < side; cy++) {\n for (let cx = 0; cx < side; cx++) {\n const scy = y + cy - halfSide;\n const scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n const srcOff = scy * sw + scx;\n const wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a === 255 * 8 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction dilateMask(mask, sw, sh) {\n const weights = [1, 1, 1, 1, 1, 1, 1, 1, 1];\n const side = Math.round(Math.sqrt(weights.length));\n const halfSide = Math.floor(side / 2);\n const maskResult = [];\n for (let y = 0; y < sh; y++) {\n for (let x = 0; x < sw; x++) {\n const so = y * sw + x;\n let a = 0;\n for (let cy = 0; cy < side; cy++) {\n for (let cx = 0; cx < side; cx++) {\n const scy = y + cy - halfSide;\n const scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n const srcOff = scy * sw + scx;\n const wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a >= 255 * 4 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction smoothEdgeMask(mask, sw, sh) {\n const weights = [\n 1 / 9,\n 1 / 9,\n 1 / 9,\n 1 / 9,\n 1 / 9,\n 1 / 9,\n 1 / 9,\n 1 / 9,\n 1 / 9,\n ];\n const side = Math.round(Math.sqrt(weights.length));\n const halfSide = Math.floor(side / 2);\n const maskResult = [];\n for (let y = 0; y < sh; y++) {\n for (let x = 0; x < sw; x++) {\n const so = y * sw + x;\n let a = 0;\n for (let cy = 0; cy < side; cy++) {\n for (let cx = 0; cx < side; cx++) {\n const scy = y + cy - halfSide;\n const scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n const srcOff = scy * sw + scx;\n const wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a;\n }\n }\n return maskResult;\n}\nexport const Mask = function (imageData) {\n const threshold = this.threshold();\n let mask = backgroundMask(imageData, threshold);\n if (mask) {\n mask = erodeMask(mask, imageData.width, imageData.height);\n mask = dilateMask(mask, imageData.width, imageData.height);\n mask = smoothEdgeMask(mask, imageData.width, imageData.height);\n applyMask(imageData, mask);\n }\n return imageData;\n};\nFactory.addGetterSetter(Node, 'threshold', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nexport const Noise = function (imageData) {\n const amount = this.noise() * 255, data = imageData.data, nPixels = data.length, half = amount / 2;\n for (let i = 0; i < nPixels; i += 4) {\n data[i + 0] += half - 2 * half * Math.random();\n data[i + 1] += half - 2 * half * Math.random();\n data[i + 2] += half - 2 * half * Math.random();\n }\n};\nFactory.addGetterSetter(Node, 'noise', 0.2, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from \"../Factory.js\";\nimport { Util } from \"../Util.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nexport const Pixelate = function (imageData) {\n let pixelSize = Math.ceil(this.pixelSize()), width = imageData.width, height = imageData.height, nBinsX = Math.ceil(width / pixelSize), nBinsY = Math.ceil(height / pixelSize), data = imageData.data;\n if (pixelSize <= 0) {\n Util.error('pixelSize value can not be <= 0');\n return;\n }\n for (let xBin = 0; xBin < nBinsX; xBin += 1) {\n for (let yBin = 0; yBin < nBinsY; yBin += 1) {\n let red = 0;\n let green = 0;\n let blue = 0;\n let alpha = 0;\n const xBinStart = xBin * pixelSize;\n const xBinEnd = xBinStart + pixelSize;\n const yBinStart = yBin * pixelSize;\n const yBinEnd = yBinStart + pixelSize;\n let pixelsInBin = 0;\n for (let x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (let y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n const i = (width * y + x) * 4;\n red += data[i + 0];\n green += data[i + 1];\n blue += data[i + 2];\n alpha += data[i + 3];\n pixelsInBin += 1;\n }\n }\n red = red / pixelsInBin;\n green = green / pixelsInBin;\n blue = blue / pixelsInBin;\n alpha = alpha / pixelsInBin;\n for (let x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (let y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n const i = (width * y + x) * 4;\n data[i + 0] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = alpha;\n }\n }\n }\n }\n};\nFactory.addGetterSetter(Node, 'pixelSize', 8, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nexport const Posterize = function (imageData) {\n const levels = Math.round(this.levels() * 254) + 1, data = imageData.data, len = data.length, scale = 255 / levels;\n for (let i = 0; i < len; i += 1) {\n data[i] = Math.floor(data[i] / scale) * scale;\n }\n};\nFactory.addGetterSetter(Node, 'levels', 0.5, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { RGBComponent } from \"../Validators.js\";\nexport const RGB = function (imageData) {\n const data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue();\n for (let i = 0; i < nPixels; i += 4) {\n const brightness = (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2]) / 255;\n data[i] = brightness * red;\n data[i + 1] = brightness * green;\n data[i + 2] = brightness * blue;\n data[i + 3] = data[i + 3];\n }\n};\nFactory.addGetterSetter(Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'blue', 0, RGBComponent, Factory.afterSetFilter);\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { RGBComponent } from \"../Validators.js\";\nexport const RGBA = function (imageData) {\n const data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), alpha = this.alpha();\n for (let i = 0; i < nPixels; i += 4) {\n const ia = 1 - alpha;\n data[i] = red * alpha + data[i] * ia;\n data[i + 1] = green * alpha + data[i + 1] * ia;\n data[i + 2] = blue * alpha + data[i + 2] * ia;\n }\n};\nFactory.addGetterSetter(Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'blue', 0, RGBComponent, Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'alpha', 1, function (val) {\n this._filterUpToDate = false;\n if (val > 1) {\n return 1;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return val;\n }\n});\n","export const Sepia = function (imageData) {\n const data = imageData.data, nPixels = data.length;\n for (let i = 0; i < nPixels; i += 4) {\n const r = data[i + 0];\n const g = data[i + 1];\n const b = data[i + 2];\n data[i + 0] = Math.min(255, r * 0.393 + g * 0.769 + b * 0.189);\n data[i + 1] = Math.min(255, r * 0.349 + g * 0.686 + b * 0.168);\n data[i + 2] = Math.min(255, r * 0.272 + g * 0.534 + b * 0.131);\n }\n};\n","export const Solarize = function (imageData) {\n const threshold = 128;\n const d = imageData.data;\n for (let i = 0; i < d.length; i += 4) {\n const r = d[i], g = d[i + 1], b = d[i + 2];\n const L = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n if (L >= threshold) {\n d[i] = 255 - r;\n d[i + 1] = 255 - g;\n d[i + 2] = 255 - b;\n }\n }\n return imageData;\n};\n","import { Factory } from \"../Factory.js\";\nimport { Node } from \"../Node.js\";\nimport { getNumberValidator } from \"../Validators.js\";\nexport const Threshold = function (imageData) {\n const level = this.threshold() * 255, data = imageData.data, len = data.length;\n for (let i = 0; i < len; i += 1) {\n data[i] = data[i] < level ? 0 : 255;\n }\n};\nFactory.addGetterSetter(Node, 'threshold', 0.5, getNumberValidator(), Factory.afterSetFilter);\n","import { Konva as Core } from \"./_CoreInternals.js\";\nimport { Arc } from \"./shapes/Arc.js\";\nimport { Arrow } from \"./shapes/Arrow.js\";\nimport { Circle } from \"./shapes/Circle.js\";\nimport { Ellipse } from \"./shapes/Ellipse.js\";\nimport { Image } from \"./shapes/Image.js\";\nimport { Label, Tag } from \"./shapes/Label.js\";\nimport { Line } from \"./shapes/Line.js\";\nimport { Path } from \"./shapes/Path.js\";\nimport { Rect } from \"./shapes/Rect.js\";\nimport { RegularPolygon } from \"./shapes/RegularPolygon.js\";\nimport { Ring } from \"./shapes/Ring.js\";\nimport { Sprite } from \"./shapes/Sprite.js\";\nimport { Star } from \"./shapes/Star.js\";\nimport { Text } from \"./shapes/Text.js\";\nimport { TextPath } from \"./shapes/TextPath.js\";\nimport { Transformer } from \"./shapes/Transformer.js\";\nimport { Wedge } from \"./shapes/Wedge.js\";\nimport { Blur } from \"./filters/Blur.js\";\nimport { Brighten } from \"./filters/Brighten.js\";\nimport { Brightness } from \"./filters/Brightness.js\";\nimport { Contrast } from \"./filters/Contrast.js\";\nimport { Emboss } from \"./filters/Emboss.js\";\nimport { Enhance } from \"./filters/Enhance.js\";\nimport { Grayscale } from \"./filters/Grayscale.js\";\nimport { HSL } from \"./filters/HSL.js\";\nimport { HSV } from \"./filters/HSV.js\";\nimport { Invert } from \"./filters/Invert.js\";\nimport { Kaleidoscope } from \"./filters/Kaleidoscope.js\";\nimport { Mask } from \"./filters/Mask.js\";\nimport { Noise } from \"./filters/Noise.js\";\nimport { Pixelate } from \"./filters/Pixelate.js\";\nimport { Posterize } from \"./filters/Posterize.js\";\nimport { RGB } from \"./filters/RGB.js\";\nimport { RGBA } from \"./filters/RGBA.js\";\nimport { Sepia } from \"./filters/Sepia.js\";\nimport { Solarize } from \"./filters/Solarize.js\";\nimport { Threshold } from \"./filters/Threshold.js\";\nexport const Konva = Core.Util._assign(Core, {\n Arc,\n Arrow,\n Circle,\n Ellipse,\n Image,\n Label,\n Tag,\n Line,\n Path,\n Rect,\n RegularPolygon,\n Ring,\n Sprite,\n Star,\n Text,\n TextPath,\n Transformer,\n Wedge,\n Filters: {\n Blur,\n Brightness,\n Brighten,\n Contrast,\n Emboss,\n Enhance,\n Grayscale,\n HSL,\n HSV,\n Invert,\n Kaleidoscope,\n Mask,\n Noise,\n Pixelate,\n Posterize,\n RGB,\n RGBA,\n Sepia,\n Solarize,\n Threshold,\n },\n});\n","import './assets/index.css';\nimport { shallowRef, computed, defineComponent, openBlock, createElementBlock, normalizeClass, renderSlot, mergeProps, createElementVNode, toDisplayString, createCommentVNode, createTextVNode, watch, provide, inject, Fragment, renderList, createVNode, withCtx, createBlock, resolveDynamicComponent, unref, normalizeStyle, createSlots, ref, useTemplateRef, onMounted, withDirectives, withKeys, withModifiers, vModelText, onBeforeUnmount } from \"vue\";\nimport Konva from \"konva\";\nimport NcButton from \"@nextcloud/vue/components/NcButton\";\nimport NcLoadingIcon from \"@nextcloud/vue/components/NcLoadingIcon\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { emojiSearch } from \"@nextcloud/vue/functions/emoji\";\nimport NcEmojiPicker from \"@nextcloud/vue/components/NcEmojiPicker\";\nimport { showConfirmation } from \"@nextcloud/dialogs\";\nimport NcActionButton from \"@nextcloud/vue/components/NcActionButton\";\nimport NcActions from \"@nextcloud/vue/components/NcActions\";\nfunction useHistory(capacity = 100) {\n if (!Number.isInteger(capacity) || capacity < 1) {\n throw new RangeError(\"History capacity must be a positive integer\");\n }\n const entries = shallowRef([]);\n const index = shallowRef(-1);\n const canUndo = computed(() => index.value > 0);\n const canRedo = computed(() => index.value < entries.value.length - 1);\n const current = computed(() => entries.value[index.value]?.snapshot);\n function push(snapshot, label) {\n const kept = [...entries.value.slice(0, index.value + 1), { snapshot, label }];\n entries.value = kept.slice(Math.max(0, kept.length - capacity));\n index.value = entries.value.length - 1;\n }\n function jumpTo(target) {\n if (target === index.value || target < 0 || target >= entries.value.length) {\n return void 0;\n }\n index.value = target;\n return current.value;\n }\n function undo() {\n return canUndo.value ? jumpTo(index.value - 1) : void 0;\n }\n function redo() {\n return canRedo.value ? jumpTo(index.value + 1) : void 0;\n }\n function clear() {\n entries.value = [];\n index.value = -1;\n }\n return {\n canUndo,\n canRedo,\n current,\n entries: computed(() => entries.value),\n index: computed(() => index.value),\n push,\n undo,\n redo,\n jumpTo,\n clear\n };\n}\nfunction newId() {\n if (typeof crypto.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n return [...crypto.getRandomValues(new Uint8Array(16))].map((byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n}\nfunction createInitialState() {\n return {\n rotation: 0,\n fineRotation: 0,\n zoom: 1,\n flipX: false,\n flipY: false,\n crop: null,\n adjustments: {\n exposure: 0,\n brightness: 0,\n contrast: 0,\n saturation: 0,\n temperature: 0,\n tint: 0,\n sharpen: 0\n },\n preset: \"none\",\n annotations: []\n };\n}\nfunction isPristine(state) {\n return state.rotation === 0 && state.fineRotation === 0 && state.zoom === 1 && !state.flipX && !state.flipY && state.crop === null && Object.values(state.adjustments).every((value) => value === 0) && state.preset === \"none\" && state.annotations.length === 0;\n}\nfunction orientedSize(natural, rotation) {\n return rotation % 180 === 0 ? { width: natural.width, height: natural.height } : { width: natural.height, height: natural.width };\n}\nfunction clampRect(rect, bounds) {\n const x = Math.min(Math.max(rect.x, 0), bounds.width - 1);\n const y = Math.min(Math.max(rect.y, 0), bounds.height - 1);\n return {\n x,\n y,\n width: Math.max(1, Math.min(rect.width, bounds.width - x)),\n height: Math.max(1, Math.min(rect.height, bounds.height - y))\n };\n}\nfunction mapPointsCW(points, height) {\n const mapped = [];\n for (let i = 0; i < points.length; i += 2) {\n mapped.push(height - (points[i + 1] ?? 0), points[i] ?? 0);\n }\n return mapped;\n}\nfunction mapRectCW(rect, height) {\n return {\n x: height - rect.y - rect.height,\n y: rect.x,\n width: rect.height,\n height: rect.width\n };\n}\nfunction mapAnnotationCW(annotation, height) {\n switch (annotation.type) {\n case \"draw\":\n return { ...annotation, points: mapPointsCW(annotation.points, height) };\n case \"arrow\":\n case \"line\":\n return { ...annotation, points: mapPointsCW(annotation.points, height) };\n case \"rectangle\":\n case \"ellipse\":\n return {\n ...annotation,\n rect: { ...annotation.rect, x: height - annotation.rect.y, y: annotation.rect.x },\n rotation: (annotation.rotation + 90) % 360\n };\n case \"redact\":\n return { ...annotation, rect: mapRectCW(annotation.rect, height) };\n case \"text\":\n case \"sticker\":\n return {\n ...annotation,\n x: height - annotation.y,\n y: annotation.x,\n rotation: (annotation.rotation + 90) % 360\n };\n }\n}\nfunction rotateCW(state, oriented) {\n return {\n ...state,\n rotation: (state.rotation + 90) % 360,\n crop: state.crop && mapRectCW(state.crop, oriented.height),\n annotations: state.annotations.map((annotation) => mapAnnotationCW(annotation, oriented.height))\n };\n}\nfunction mapAnnotationFlipX(annotation, width) {\n switch (annotation.type) {\n case \"draw\":\n case \"arrow\":\n case \"line\": {\n const points = annotation.points.map((value, i) => i % 2 === 0 ? width - value : value);\n return { ...annotation, points };\n }\n case \"rectangle\":\n case \"ellipse\": {\n const radians = annotation.rotation * Math.PI / 180;\n return {\n ...annotation,\n rect: {\n ...annotation.rect,\n x: width - annotation.rect.x - annotation.rect.width * Math.cos(radians),\n y: annotation.rect.y + annotation.rect.width * Math.sin(radians)\n },\n rotation: (360 - annotation.rotation) % 360\n };\n }\n case \"redact\":\n return {\n ...annotation,\n rect: { ...annotation.rect, x: width - annotation.rect.x - annotation.rect.width }\n };\n case \"text\":\n case \"sticker\":\n return {\n ...annotation,\n x: width - annotation.x,\n rotation: (360 - annotation.rotation) % 360\n };\n }\n}\nfunction flipHorizontal(state, oriented) {\n const sideways = state.rotation % 180 !== 0;\n return {\n ...state,\n flipX: sideways ? state.flipX : !state.flipX,\n flipY: sideways ? !state.flipY : state.flipY,\n fineRotation: -state.fineRotation,\n crop: state.crop && { ...state.crop, x: oriented.width - state.crop.x - state.crop.width },\n annotations: state.annotations.map((annotation) => mapAnnotationFlipX(annotation, oriented.width))\n };\n}\nfunction mapAnnotationFlipY(annotation, height) {\n switch (annotation.type) {\n case \"draw\":\n case \"arrow\":\n case \"line\": {\n const points = annotation.points.map((value, i) => i % 2 === 1 ? height - value : value);\n return { ...annotation, points };\n }\n case \"rectangle\":\n case \"ellipse\": {\n const radians = annotation.rotation * Math.PI / 180;\n return {\n ...annotation,\n rect: {\n ...annotation.rect,\n x: annotation.rect.x - annotation.rect.height * Math.sin(radians),\n y: height - annotation.rect.y - annotation.rect.height * Math.cos(radians)\n },\n rotation: (360 - annotation.rotation) % 360\n };\n }\n case \"redact\":\n return {\n ...annotation,\n rect: { ...annotation.rect, y: height - annotation.rect.y - annotation.rect.height }\n };\n case \"text\":\n case \"sticker\":\n return {\n ...annotation,\n y: height - annotation.y,\n rotation: (360 - annotation.rotation) % 360\n };\n }\n}\nfunction flipVertical(state, oriented) {\n const sideways = state.rotation % 180 !== 0;\n return {\n ...state,\n flipX: sideways ? !state.flipX : state.flipX,\n flipY: sideways ? state.flipY : !state.flipY,\n fineRotation: -state.fineRotation,\n crop: state.crop && { ...state.crop, y: oriented.height - state.crop.y - state.crop.height },\n annotations: state.annotations.map((annotation) => mapAnnotationFlipY(annotation, oriented.height))\n };\n}\nfunction translateAnnotation(annotation, dx, dy) {\n switch (annotation.type) {\n case \"draw\":\n case \"arrow\":\n case \"line\": {\n const points = annotation.points.map((value, i) => value + (i % 2 === 0 ? dx : dy));\n return { ...annotation, points };\n }\n case \"rectangle\":\n case \"ellipse\":\n case \"redact\":\n return {\n ...annotation,\n rect: { ...annotation.rect, x: annotation.rect.x + dx, y: annotation.rect.y + dy }\n };\n case \"text\":\n case \"sticker\":\n return { ...annotation, x: annotation.x + dx, y: annotation.y + dy };\n }\n}\nfunction duplicateAnnotation(annotation, offset = 16) {\n return { ...translateAnnotation(annotation, offset, offset), id: newId() };\n}\nconst _sfc_main$N = /* @__PURE__ */ defineComponent({\n __name: \"GlassSurface\",\n props: {\n variant: {}\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"glass-surface\", `glass-surface--${__props.variant ?? \"card\"}`])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2);\n };\n }\n});\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst GlassSurface = /* @__PURE__ */ _export_sfc(_sfc_main$N, [[\"__scopeId\", \"data-v-b60e81d9\"]]);\nconst _sfc_main$M = {\n name: \"CameraIrisIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$J = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$E = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$B = { d: \"M13.73,15L9.83,21.76C10.53,21.91 11.25,22 12,22C14.4,22 16.6,21.15 18.32,19.75L14.66,13.4M2.46,15C3.38,17.92 5.61,20.26 8.45,21.34L12.12,15M8.54,12L4.64,5.25C3,7 2,9.39 2,12C2,12.68 2.07,13.35 2.2,14H9.69M21.8,10H14.31L14.6,10.5L19.36,18.75C21,16.97 22,14.6 22,12C22,11.31 21.93,10.64 21.8,10M21.54,9C20.62,6.07 18.39,3.74 15.55,2.66L11.88,9M9.4,10.5L14.17,2.24C13.47,2.09 12.75,2 12,2C9.6,2 7.4,2.84 5.68,4.25L9.34,10.6L9.4,10.5Z\" };\nconst _hoisted_4$A = { key: 0 };\nfunction _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon camera-iris-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$B, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$A, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$E))\n ], 16, _hoisted_1$J);\n}\nconst CameraIris = /* @__PURE__ */ _export_sfc(_sfc_main$M, [[\"render\", _sfc_render$w]]);\nconst _sfc_main$L = {\n name: \"ContrastCircleIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$I = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$D = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$A = { d: \"M12,20C9.79,20 7.79,19.1 6.34,17.66L17.66,6.34C19.1,7.79 20,9.79 20,12A8,8 0 0,1 12,20M6,8H8V6H9.5V8H11.5V9.5H9.5V11.5H8V9.5H6M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,16H17V14.5H12V16Z\" };\nconst _hoisted_4$z = { key: 0 };\nfunction _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon contrast-circle-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$A, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$z, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$D))\n ], 16, _hoisted_1$I);\n}\nconst ContrastCircle = /* @__PURE__ */ _export_sfc(_sfc_main$L, [[\"render\", _sfc_render$v]]);\nconst _sfc_main$K = {\n name: \"ImageFilterCenterFocusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$H = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$C = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$z = { d: \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M19,19H15V21H19A2,2 0 0,0 21,19V15H19M19,3H15V5H19V9H21V5A2,2 0 0,0 19,3M5,5H9V3H5A2,2 0 0,0 3,5V9H5M5,15H3V19A2,2 0 0,0 5,21H9V19H5V15Z\" };\nconst _hoisted_4$y = { key: 0 };\nfunction _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon image-filter-center-focus-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$z, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$y, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$C))\n ], 16, _hoisted_1$H);\n}\nconst ImageFilterCenterFocus = /* @__PURE__ */ _export_sfc(_sfc_main$K, [[\"render\", _sfc_render$u]]);\nconst _sfc_main$J = {\n name: \"InvertColorsIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$G = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$B = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$y = { d: \"M12,19.58V19.58C10.4,19.58 8.89,18.96 7.76,17.83C6.62,16.69 6,15.19 6,13.58C6,12 6.62,10.47 7.76,9.34L12,5.1M17.66,7.93L12,2.27V2.27L6.34,7.93C3.22,11.05 3.22,16.12 6.34,19.24C7.9,20.8 9.95,21.58 12,21.58C14.05,21.58 16.1,20.8 17.66,19.24C20.78,16.12 20.78,11.05 17.66,7.93Z\" };\nconst _hoisted_4$x = { key: 0 };\nfunction _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon invert-colors-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$y, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$x, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$B))\n ], 16, _hoisted_1$G);\n}\nconst InvertColors = /* @__PURE__ */ _export_sfc(_sfc_main$J, [[\"render\", _sfc_render$t]]);\nconst _sfc_main$I = {\n name: \"ThermometerIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$F = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$A = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$x = { d: \"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z\" };\nconst _hoisted_4$w = { key: 0 };\nfunction _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon thermometer-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$x, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$w, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$A))\n ], 16, _hoisted_1$F);\n}\nconst Thermometer = /* @__PURE__ */ _export_sfc(_sfc_main$I, [[\"render\", _sfc_render$s]]);\nconst _sfc_main$H = {\n name: \"WhiteBalanceIridescentIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$E = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$z = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$w = { d: \"M4.96,19.95L6.76,18.15L5.34,16.74L3.55,18.53M3.55,4.46L5.34,6.26L6.76,4.84L4.96,3.05M20.45,18.53L18.66,16.74L17.24,18.15L19.04,19.95M13,22.45V19.5H11V22.45C11.32,22.45 13,22.45 13,22.45M19.04,3.05L17.24,4.84L18.66,6.26L20.45,4.46M11,3.5H13V0.55H11M5,14.5H19V8.5H5V14.5Z\" };\nconst _hoisted_4$v = { key: 0 };\nfunction _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon white-balance-iridescent-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$w, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$v, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$z))\n ], 16, _hoisted_1$E);\n}\nconst WhiteBalanceIridescent = /* @__PURE__ */ _export_sfc(_sfc_main$H, [[\"render\", _sfc_render$r]]);\nconst _sfc_main$G = {\n name: \"WhiteBalanceSunnyIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$D = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$y = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$v = { d: \"M3.55 19.09L4.96 20.5L6.76 18.71L5.34 17.29M12 6C8.69 6 6 8.69 6 12S8.69 18 12 18 18 15.31 18 12C18 8.68 15.31 6 12 6M20 13H23V11H20M17.24 18.71L19.04 20.5L20.45 19.09L18.66 17.29M20.45 5L19.04 3.6L17.24 5.39L18.66 6.81M13 1H11V4H13M6.76 5.39L4.96 3.6L3.55 5L5.34 6.81L6.76 5.39M1 13H4V11H1M13 20H11V23H13\" };\nconst _hoisted_4$u = { key: 0 };\nfunction _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon white-balance-sunny-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$v, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$u, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$y))\n ], 16, _hoisted_1$D);\n}\nconst WhiteBalanceSunny = /* @__PURE__ */ _export_sfc(_sfc_main$G, [[\"render\", _sfc_render$q]]);\nconst _hoisted_1$C = { class: \"editor-slider\" };\nconst _hoisted_2$x = [\"value\", \"data-test\", \"disabled\", \"aria-label\", \"min\", \"max\", \"step\"];\nconst _sfc_main$F = /* @__PURE__ */ defineComponent({\n __name: \"EditorSlider\",\n props: {\n value: {},\n min: {},\n max: {},\n step: {},\n label: {},\n display: {},\n dataTest: {},\n disabled: { type: Boolean }\n },\n emits: [\"input\", \"commit\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n function onInput(event) {\n emit(\"input\", Number(event.target.value));\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$C, [\n createElementVNode(\"input\", {\n value: props.value,\n \"data-test\": __props.dataTest,\n disabled: __props.disabled,\n \"aria-label\": __props.label,\n type: \"range\",\n min: __props.min,\n max: __props.max,\n step: __props.step,\n onInput,\n onChange: _cache[0] || (_cache[0] = ($event) => emit(\"commit\"))\n }, null, 40, _hoisted_2$x),\n createElementVNode(\"output\", null, [\n renderSlot(_ctx.$slots, \"preview\", {}, () => [\n createTextVNode(toDisplayString(__props.display ?? props.value), 1)\n ], true)\n ])\n ]);\n };\n }\n});\nconst EditorSlider = /* @__PURE__ */ _export_sfc(_sfc_main$F, [[\"__scopeId\", \"data-v-6562ea60\"]]);\nconst _hoisted_1$B = [\"disabled\", \"data-test\", \"aria-pressed\"];\nconst _sfc_main$E = /* @__PURE__ */ defineComponent({\n __name: \"IconTab\",\n props: {\n label: {},\n active: { type: Boolean },\n disabled: { type: Boolean },\n dataTest: {}\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n type: \"button\",\n class: normalizeClass([\"icon-tab\", { \"icon-tab--active\": __props.active }]),\n disabled: __props.disabled,\n \"data-test\": __props.dataTest,\n \"aria-pressed\": __props.active,\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\"))\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true),\n createElementVNode(\"span\", null, toDisplayString(__props.label), 1)\n ], 10, _hoisted_1$B);\n };\n }\n});\nconst IconTab = /* @__PURE__ */ _export_sfc(_sfc_main$E, [[\"__scopeId\", \"data-v-95889662\"]]);\nconst gtBuilder = getGettextBuilder().detectLocale();\n[].map((data) => gtBuilder.addTranslation(data.locale, data.json));\nconst gt = gtBuilder.build();\ngt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\nconst VIEW_MARGIN = 16;\nconst MIN_ZOOM = 1;\nconst MAX_ZOOM = 4;\nconst ZOOM_SNAP = 1.05;\nconst PINCH_TOLERANCE = 0.01;\nconst WHEEL_LINE = 16;\nconst WHEEL_CLAMP = 300;\nconst WHEEL_SENSITIVITY = 15e-4;\nfunction panBounds(visible, scale, container) {\n return {\n x: Math.max(0, (visible.width * scale - container.width) / 2 + VIEW_MARGIN),\n y: Math.max(0, (visible.height * scale - container.height) / 2 + VIEW_MARGIN)\n };\n}\nfunction clampPan(pan, bounds) {\n return {\n x: Math.min(bounds.x, Math.max(-bounds.x, pan.x)),\n y: Math.min(bounds.y, Math.max(-bounds.y, pan.y))\n };\n}\nfunction clampZoom(zoom) {\n return zoom < ZOOM_SNAP ? MIN_ZOOM : Math.min(MAX_ZOOM, zoom);\n}\nfunction anchoredPan(pan, cursor, factor) {\n return {\n x: cursor.x - factor * (cursor.x - pan.x),\n y: cursor.y - factor * (cursor.y - pan.y)\n };\n}\nfunction wheelZoomFactor(deltaY, deltaMode, pageHeight) {\n const scaled = deltaMode === 1 ? deltaY * WHEEL_LINE : deltaMode === 2 ? deltaY * pageHeight : deltaY;\n const bounded = Math.min(WHEEL_CLAMP, Math.max(-WHEEL_CLAMP, scaled));\n return Math.exp(-bounded * WHEEL_SENSITIVITY);\n}\nconst MODE_DEFAULT_TOOL = {\n select: \"select\",\n crop: \"crop\",\n finetune: \"adjust\",\n filter: \"adjust\",\n annotate: \"draw\",\n sticker: \"sticker\",\n redact: \"redact\"\n};\nconst EDITOR_CONTEXT = /* @__PURE__ */ Symbol(\"nextcloud:image-editor\");\nfunction createEditorContext() {\n const history = useHistory();\n const state = shallowRef(createInitialState());\n const viewZoom = shallowRef(MIN_ZOOM);\n const viewPan = shallowRef({ x: 0, y: 0 });\n const viewFit = shallowRef(null);\n const boundsAt = (zoom) => {\n const fit = viewFit.value;\n return fit === null ? { x: 0, y: 0 } : panBounds(fit.visible, fit.scale * zoom, fit.container);\n };\n const activeMode = shallowRef(\"crop\");\n const activeTool = shallowRef(MODE_DEFAULT_TOOL.crop);\n history.push(state.value, t(\"Original\"));\n const context = {\n state,\n activeMode,\n activeTool,\n setMode(mode) {\n activeMode.value = mode;\n activeTool.value = MODE_DEFAULT_TOOL[mode];\n context.selectedId.value = null;\n },\n drawColor: shallowRef(\"#ff0000\"),\n strokeWidth: shallowRef(6),\n fontSize: shallowRef(24),\n sticker: shallowRef(\"😀\"),\n redactStyle: shallowRef(\"pixelate\"),\n cropAspect: shallowRef(null),\n viewZoom,\n viewPan,\n viewFit,\n panning: shallowRef(false),\n setViewZoom(zoom, anchor) {\n const previous = viewZoom.value;\n const next = clampZoom(zoom);\n viewZoom.value = next;\n if (next === MIN_ZOOM) {\n viewPan.value = { x: 0, y: 0 };\n return;\n }\n const panned = anchor === void 0 ? viewPan.value : anchoredPan(viewPan.value, anchor, next / previous);\n viewPan.value = clampPan(panned, boundsAt(next));\n },\n setViewPan(pan) {\n viewPan.value = clampPan(pan, boundsAt(viewZoom.value));\n },\n interacting: shallowRef(false),\n selectedId: shallowRef(null),\n canUndo: history.canUndo,\n canRedo: history.canRedo,\n historyEntries: history.entries,\n historyIndex: history.index,\n commit(next, label) {\n context.interacting.value = false;\n state.value = next;\n history.push(next, label);\n },\n preview(next) {\n context.interacting.value = true;\n state.value = next;\n },\n undo() {\n const snapshot = history.undo();\n if (snapshot !== void 0) {\n state.value = snapshot;\n }\n },\n redo() {\n const snapshot = history.redo();\n if (snapshot !== void 0) {\n state.value = snapshot;\n }\n },\n jumpTo(index) {\n const snapshot = history.jumpTo(index);\n if (snapshot !== void 0) {\n state.value = snapshot;\n }\n },\n reset(next) {\n history.clear();\n state.value = next ?? createInitialState();\n activeMode.value = \"crop\";\n activeTool.value = MODE_DEFAULT_TOOL.crop;\n context.selectedId.value = null;\n viewZoom.value = MIN_ZOOM;\n viewPan.value = { x: 0, y: 0 };\n context.panning.value = false;\n history.push(state.value, next === void 0 ? t(\"Original\") : t(\"Restored\"));\n }\n };\n watch(activeTool, (tool) => {\n if (tool !== \"select\") {\n context.selectedId.value = null;\n }\n });\n provide(EDITOR_CONTEXT, context);\n return context;\n}\nfunction useEditorContext() {\n const context = inject(EDITOR_CONTEXT, null);\n if (context === null) {\n throw new Error(\"useEditorContext() called outside of an ImageEditor tree\");\n }\n return context;\n}\nconst _hoisted_1$A = { class: \"adjust-panel\" };\nconst _hoisted_2$w = { class: \"adjust-panel__tabs\" };\nconst _sfc_main$D = /* @__PURE__ */ defineComponent({\n __name: \"AdjustPanel\",\n props: {\n loaded: { type: Boolean }\n },\n setup(__props) {\n const context = useEditorContext();\n const adjustments = [\n { id: \"exposure\", label: t(\"Exposure\"), icon: CameraIris },\n { id: \"brightness\", label: t(\"Brightness\"), icon: WhiteBalanceSunny },\n { id: \"contrast\", label: t(\"Contrast\"), icon: ContrastCircle },\n { id: \"saturation\", label: t(\"Saturation\"), icon: InvertColors },\n { id: \"temperature\", label: t(\"Temperature\"), icon: Thermometer },\n { id: \"tint\", label: t(\"Tint\"), icon: WhiteBalanceIridescent },\n { id: \"sharpen\", label: t(\"Sharpen\"), icon: ImageFilterCenterFocus }\n ];\n const activeAdjustment = shallowRef(\"exposure\");\n const display = computed(() => {\n const value = context.state.value.adjustments[activeAdjustment.value];\n return value > 0 ? `+${value}` : `${value}`;\n });\n function onAdjustInput(value) {\n const state = context.state.value;\n context.preview({\n ...state,\n adjustments: { ...state.adjustments, [activeAdjustment.value]: value }\n });\n }\n function onSliderCommit() {\n context.commit(context.state.value, adjustments.find((entry) => entry.id === activeAdjustment.value).label);\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$A, [\n createElementVNode(\"div\", _hoisted_2$w, [\n (openBlock(), createElementBlock(Fragment, null, renderList(adjustments, (adjustment) => {\n return createVNode(IconTab, {\n key: adjustment.id,\n label: adjustment.label,\n active: activeAdjustment.value === adjustment.id,\n disabled: !__props.loaded,\n \"data-test\": `tab-${adjustment.id}`,\n onClick: ($event) => activeAdjustment.value = adjustment.id\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent(adjustment.icon), { size: 20 }))\n ]),\n _: 2\n }, 1032, [\"label\", \"active\", \"disabled\", \"data-test\", \"onClick\"]);\n }), 64))\n ]),\n createVNode(EditorSlider, {\n value: unref(context).state.value.adjustments[activeAdjustment.value],\n min: -100,\n max: 100,\n step: 1,\n label: adjustments.find((entry) => entry.id === activeAdjustment.value).label,\n display: display.value,\n \"data-test\": `adjust-${activeAdjustment.value}`,\n disabled: !__props.loaded,\n onInput: onAdjustInput,\n onCommit: onSliderCommit\n }, null, 8, [\"value\", \"label\", \"display\", \"data-test\", \"disabled\"])\n ]);\n };\n }\n});\nconst AdjustPanel = /* @__PURE__ */ _export_sfc(_sfc_main$D, [[\"__scopeId\", \"data-v-3ad63bd8\"]]);\nconst _sfc_main$C = {\n name: \"ArrowTopRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$z = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$v = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$u = { d: \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\" };\nconst _hoisted_4$t = { key: 0 };\nfunction _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon arrow-top-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$u, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$t, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$v))\n ], 16, _hoisted_1$z);\n}\nconst ArrowTopRight = /* @__PURE__ */ _export_sfc(_sfc_main$C, [[\"render\", _sfc_render$p]]);\nconst _sfc_main$B = {\n name: \"EllipseOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$y = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$u = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$t = { d: \"M12,6C16.41,6 20,8.69 20,12C20,15.31 16.41,18 12,18C7.59,18 4,15.31 4,12C4,8.69 7.59,6 12,6M12,4C6.5,4 2,7.58 2,12C2,16.42 6.5,20 12,20C17.5,20 22,16.42 22,12C22,7.58 17.5,4 12,4Z\" };\nconst _hoisted_4$s = { key: 0 };\nfunction _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon ellipse-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$t, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$s, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$u))\n ], 16, _hoisted_1$y);\n}\nconst EllipseOutline = /* @__PURE__ */ _export_sfc(_sfc_main$B, [[\"render\", _sfc_render$o]]);\nconst _sfc_main$A = {\n name: \"FormatTextIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$x = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$t = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$s = { d: \"M18.5,4L19.66,8.35L18.7,8.61C18.25,7.74 17.79,6.87 17.26,6.43C16.73,6 16.11,6 15.5,6H13V16.5C13,17 13,17.5 13.33,17.75C13.67,18 14.33,18 15,18V19H9V18C9.67,18 10.33,18 10.67,17.75C11,17.5 11,17 11,16.5V6H8.5C7.89,6 7.27,6 6.74,6.43C6.21,6.87 5.75,7.74 5.3,8.61L4.34,8.35L5.5,4H18.5Z\" };\nconst _hoisted_4$r = { key: 0 };\nfunction _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon format-text-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$s, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$r, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$t))\n ], 16, _hoisted_1$x);\n}\nconst FormatText = /* @__PURE__ */ _export_sfc(_sfc_main$A, [[\"render\", _sfc_render$n]]);\nconst _sfc_main$z = {\n name: \"PencilIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$w = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$s = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$r = { d: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" };\nconst _hoisted_4$q = { key: 0 };\nfunction _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon pencil-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$r, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$q, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$s))\n ], 16, _hoisted_1$w);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$z, [[\"render\", _sfc_render$m]]);\nconst _sfc_main$y = {\n name: \"RectangleOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$v = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$r = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$q = { d: \"M4,6V19H20V6H4M18,17H6V8H18V17Z\" };\nconst _hoisted_4$p = { key: 0 };\nfunction _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon rectangle-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$q, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$p, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$r))\n ], 16, _hoisted_1$v);\n}\nconst RectangleOutline = /* @__PURE__ */ _export_sfc(_sfc_main$y, [[\"render\", _sfc_render$l]]);\nconst _sfc_main$x = {\n name: \"VectorLineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$u = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$q = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$p = { d: \"M15,3V7.59L7.59,15H3V21H9V16.42L16.42,9H21V3M17,5H19V7H17M5,17H7V19H5\" };\nconst _hoisted_4$o = { key: 0 };\nfunction _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon vector-line-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$p, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$o, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$q))\n ], 16, _hoisted_1$u);\n}\nconst VectorLine = /* @__PURE__ */ _export_sfc(_sfc_main$x, [[\"render\", _sfc_render$k]]);\nfunction useAnnotationColor(context) {\n function recolorable() {\n const annotation = context.state.value.annotations.find((entry) => entry.id === context.selectedId.value);\n return annotation !== void 0 && \"color\" in annotation && annotation.type !== \"sticker\" ? annotation : void 0;\n }\n function apply(color) {\n const annotation = recolorable();\n if (annotation === void 0 || annotation.color === color) {\n return;\n }\n const state = context.state.value;\n context.preview({\n ...state,\n annotations: state.annotations.map((entry) => entry.id === annotation.id ? { ...entry, color } : entry)\n });\n }\n return {\n preview(color) {\n context.drawColor.value = color;\n apply(color);\n },\n commit(color) {\n context.drawColor.value = color;\n apply(color);\n if (recolorable() !== void 0) {\n context.commit(context.state.value, t(\"Color\"));\n }\n }\n };\n}\nconst _hoisted_1$t = { class: \"annotate-panel\" };\nconst _hoisted_2$p = { class: \"annotate-panel__row\" };\nconst _hoisted_3$o = { class: \"annotate-panel__option\" };\nconst _hoisted_4$n = [\"value\"];\nconst FONT_SAMPLE = \"A\";\nconst PREVIEW_CAP = 44;\nconst _sfc_main$w = /* @__PURE__ */ defineComponent({\n __name: \"AnnotatePanel\",\n props: {\n loaded: { type: Boolean }\n },\n setup(__props) {\n const context = useEditorContext();\n const color = useAnnotationColor(context);\n const labels = {\n color: t(\"Color\"),\n strokeWidth: t(\"Stroke width\"),\n fontSize: t(\"Font size\")\n };\n const subTools = [\n { id: \"draw\", label: t(\"Draw\"), icon: Pencil },\n { id: \"rectangle\", label: t(\"Rectangle\"), icon: RectangleOutline },\n { id: \"ellipse\", label: t(\"Ellipse\"), icon: EllipseOutline },\n { id: \"arrow\", label: t(\"Arrow\"), icon: ArrowTopRight },\n { id: \"line\", label: t(\"Line\"), icon: VectorLine },\n { id: \"text\", label: t(\"Text\"), icon: FormatText }\n ];\n const showStrokeOptions = computed(() => [\"draw\", \"rectangle\", \"ellipse\", \"arrow\", \"line\"].includes(context.activeTool.value));\n const viewScale = computed(() => (context.viewFit.value?.scale ?? 1) * context.viewZoom.value);\n const strokePreview = computed(() => Math.min(PREVIEW_CAP, Math.max(2, context.strokeWidth.value * viewScale.value)));\n const fontPreview = computed(() => Math.min(PREVIEW_CAP, Math.max(8, context.fontSize.value * viewScale.value)));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$t, [\n createElementVNode(\"div\", _hoisted_2$p, [\n (openBlock(), createElementBlock(Fragment, null, renderList(subTools, (tool) => {\n return createVNode(unref(NcButton), {\n key: tool.id,\n \"aria-label\": tool.label,\n title: tool.label,\n disabled: !__props.loaded,\n pressed: unref(context).activeTool.value === tool.id,\n variant: \"tertiary\",\n onClick: ($event) => unref(context).activeTool.value = tool.id\n }, {\n icon: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent(tool.icon), { size: 20 }))\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"title\", \"disabled\", \"pressed\", \"onClick\"]);\n }), 64)),\n _cache[4] || (_cache[4] = createElementVNode(\"span\", { class: \"annotate-panel__divider\" }, null, -1)),\n createElementVNode(\"label\", _hoisted_3$o, [\n createTextVNode(toDisplayString(labels.color) + \" \", 1),\n createElementVNode(\"input\", {\n value: unref(context).drawColor.value,\n type: \"color\",\n \"data-test\": \"color\",\n onInput: _cache[0] || (_cache[0] = ($event) => unref(color).preview($event.target.value)),\n onChange: _cache[1] || (_cache[1] = ($event) => unref(color).commit($event.target.value))\n }, null, 40, _hoisted_4$n)\n ])\n ]),\n showStrokeOptions.value ? (openBlock(), createBlock(EditorSlider, {\n key: 0,\n value: unref(context).strokeWidth.value,\n min: 1,\n max: 32,\n step: 1,\n label: labels.strokeWidth,\n onInput: _cache[2] || (_cache[2] = ($event) => unref(context).strokeWidth.value = $event),\n onCommit: () => {\n }\n }, {\n preview: withCtx(() => [\n createElementVNode(\"span\", {\n class: \"annotate-panel__dot\",\n \"data-test\": \"stroke-preview\",\n style: normalizeStyle({\n inlineSize: `${strokePreview.value}px`,\n blockSize: `${strokePreview.value}px`,\n backgroundColor: unref(context).drawColor.value\n })\n }, null, 4)\n ]),\n _: 1\n }, 8, [\"value\", \"label\"])) : unref(context).activeTool.value === \"text\" ? (openBlock(), createBlock(EditorSlider, {\n key: 1,\n value: unref(context).fontSize.value,\n min: 8,\n max: 128,\n step: 1,\n label: labels.fontSize,\n onInput: _cache[3] || (_cache[3] = ($event) => unref(context).fontSize.value = $event),\n onCommit: () => {\n }\n }, {\n preview: withCtx(() => [\n createElementVNode(\"span\", {\n class: \"annotate-panel__glyph\",\n \"data-test\": \"font-preview\",\n style: normalizeStyle({\n fontSize: `${fontPreview.value}px`,\n color: unref(context).drawColor.value\n })\n }, toDisplayString(FONT_SAMPLE), 4)\n ]),\n _: 1\n }, 8, [\"value\", \"label\"])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\nconst AnnotatePanel = /* @__PURE__ */ _export_sfc(_sfc_main$w, [[\"__scopeId\", \"data-v-f7e8a194\"]]);\nconst _sfc_main$v = {\n name: \"FlipHorizontalIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$s = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$o = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$n = { d: \"M15 21H17V19H15M19 9H21V7H19M3 5V19C3 20.1 3.9 21 5 21H9V19H5V5H9V3H5C3.9 3 3 3.9 3 5M19 3V5H21C21 3.9 20.1 3 19 3M11 23H13V1H11M19 17H21V15H19M15 5H17V3H15M19 13H21V11H19M19 21C20.1 21 21 20.1 21 19H19Z\" };\nconst _hoisted_4$m = { key: 0 };\nfunction _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon flip-horizontal-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$n, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$m, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$o))\n ], 16, _hoisted_1$s);\n}\nconst FlipHorizontal = /* @__PURE__ */ _export_sfc(_sfc_main$v, [[\"render\", _sfc_render$j]]);\nconst _sfc_main$u = {\n name: \"FlipVerticalIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$r = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$n = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$m = { d: \"M3 15V17H5V15M15 19V21H17V19M19 3H5C3.9 3 3 3.9 3 5V9H5V5H19V9H21V5C21 3.9 20.1 3 19 3M21 19H19V21C20.1 21 21 20.1 21 19M1 11V13H23V11M7 19V21H9V19M19 15V17H21V15M11 19V21H13V19M3 19C3 20.1 3.9 21 5 21V19Z\" };\nconst _hoisted_4$l = { key: 0 };\nfunction _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon flip-vertical-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$m, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$l, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$n))\n ], 16, _hoisted_1$r);\n}\nconst FlipVertical = /* @__PURE__ */ _export_sfc(_sfc_main$u, [[\"render\", _sfc_render$i]]);\nconst _sfc_main$t = {\n name: \"RotateLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$q = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$m = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$l = { d: \"M13,4.07V1L8.45,5.55L13,10V6.09C15.84,6.57 18,9.03 18,12C18,14.97 15.84,17.43 13,17.91V19.93C16.95,19.44 20,16.08 20,12C20,7.92 16.95,4.56 13,4.07M7.1,18.32C8.26,19.22 9.61,19.76 11,19.93V17.9C10.13,17.75 9.29,17.41 8.54,16.87L7.1,18.32M6.09,13H4.07C4.24,14.39 4.79,15.73 5.69,16.89L7.1,15.47C6.58,14.72 6.23,13.88 6.09,13M7.11,8.53L5.7,7.11C4.8,8.27 4.24,9.61 4.07,11H6.09C6.23,10.13 6.58,9.28 7.11,8.53Z\" };\nconst _hoisted_4$k = { key: 0 };\nfunction _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon rotate-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$l, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$k, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$m))\n ], 16, _hoisted_1$q);\n}\nconst RotateLeft = /* @__PURE__ */ _export_sfc(_sfc_main$t, [[\"render\", _sfc_render$h]]);\nconst _sfc_main$s = {\n name: \"RotateRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$p = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$l = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$k = { d: \"M16.89,15.5L18.31,16.89C19.21,15.73 19.76,14.39 19.93,13H17.91C17.77,13.87 17.43,14.72 16.89,15.5M13,17.9V19.92C14.39,19.75 15.74,19.21 16.9,18.31L15.46,16.87C14.71,17.41 13.87,17.76 13,17.9M19.93,11C19.76,9.61 19.21,8.27 18.31,7.11L16.89,8.53C17.43,9.28 17.77,10.13 17.91,11M15.55,5.55L11,1V4.07C7.06,4.56 4,7.92 4,12C4,16.08 7.05,19.44 11,19.93V17.91C8.16,17.43 6,14.97 6,12C6,9.03 8.16,6.57 11,6.09V10L15.55,5.55Z\" };\nconst _hoisted_4$j = { key: 0 };\nfunction _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon rotate-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$k, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$j, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$l))\n ], 16, _hoisted_1$p);\n}\nconst RotateRight = /* @__PURE__ */ _export_sfc(_sfc_main$s, [[\"render\", _sfc_render$g]]);\nconst EDITOR_COMMANDS = /* @__PURE__ */ Symbol(\"nextcloud:image-editor:commands\");\nfunction provideEditorCommands(commands) {\n provide(EDITOR_COMMANDS, commands);\n return commands;\n}\nfunction useEditorCommands() {\n const commands = inject(EDITOR_COMMANDS, null);\n if (commands === null) {\n throw new Error(\"useEditorCommands() called outside of an ImageEditor tree\");\n }\n return commands;\n}\nconst _hoisted_1$o = { class: \"crop-panel\" };\nconst _hoisted_2$k = { class: \"crop-panel__row\" };\nconst _hoisted_3$j = { class: \"crop-panel__row\" };\nconst _sfc_main$r = /* @__PURE__ */ defineComponent({\n __name: \"CropPanel\",\n props: {\n loaded: { type: Boolean }\n },\n setup(__props) {\n const context = useEditorContext();\n const commands = useEditorCommands();\n const labels = {\n rotateLeft: t(\"Rotate left\"),\n rotateRight: t(\"Rotate right\"),\n flipHorizontal: t(\"Flip horizontal\"),\n flipVertical: t(\"Flip vertical\"),\n applyCrop: t(\"Apply crop\"),\n resetCrop: t(\"Reset crop\"),\n rotation: t(\"Rotation\"),\n scale: t(\"Scale\")\n };\n const aspectPresets = [\n { id: null, label: t(\"Free\") },\n { id: \"original\", label: t(\"Original\") },\n { id: 1, label: \"1:1\" },\n { id: 4 / 3, label: \"4:3\" },\n { id: 16 / 9, label: \"16:9\" }\n ];\n const cropControls = [\n { id: \"rotation\", label: labels.rotation },\n { id: \"scale\", label: labels.scale }\n ];\n const activeCropControl = shallowRef(\"rotation\");\n const display = computed(() => activeCropControl.value === \"rotation\" ? `${context.state.value.fineRotation}°` : `×${context.state.value.zoom.toFixed(2)}`);\n function onTransformInput(value) {\n context.preview(activeCropControl.value === \"rotation\" ? { ...context.state.value, fineRotation: value } : { ...context.state.value, zoom: value });\n }\n function onSliderCommit() {\n context.commit(context.state.value, activeCropControl.value === \"rotation\" ? labels.rotation : labels.scale);\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$o, [\n createElementVNode(\"div\", _hoisted_2$k, [\n (openBlock(), createElementBlock(Fragment, null, renderList(aspectPresets, (preset) => {\n return createVNode(unref(NcButton), {\n key: String(preset.id),\n \"data-test\": `aspect-${preset.id === null ? \"free\" : preset.id === \"original\" ? \"original\" : preset.label}`,\n pressed: unref(context).cropAspect.value === preset.id,\n disabled: !__props.loaded,\n variant: \"tertiary\",\n onClick: ($event) => unref(context).cropAspect.value = preset.id\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(preset.label), 1)\n ]),\n _: 2\n }, 1032, [\"data-test\", \"pressed\", \"disabled\", \"onClick\"]);\n }), 64))\n ]),\n createElementVNode(\"div\", _hoisted_3$j, [\n createVNode(unref(NcButton), {\n \"aria-label\": labels.rotateLeft,\n title: labels.rotateLeft,\n disabled: !__props.loaded,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => unref(commands).rotateCCW())\n }, {\n icon: withCtx(() => [\n createVNode(RotateLeft, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"]),\n createVNode(unref(NcButton), {\n \"aria-label\": labels.rotateRight,\n title: labels.rotateRight,\n disabled: !__props.loaded,\n variant: \"tertiary\",\n onClick: _cache[1] || (_cache[1] = ($event) => unref(commands).rotateCW())\n }, {\n icon: withCtx(() => [\n createVNode(RotateRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"]),\n createVNode(unref(NcButton), {\n \"aria-label\": labels.flipHorizontal,\n title: labels.flipHorizontal,\n disabled: !__props.loaded,\n variant: \"tertiary\",\n onClick: _cache[2] || (_cache[2] = ($event) => unref(commands).flipHorizontal())\n }, {\n icon: withCtx(() => [\n createVNode(FlipHorizontal, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"]),\n createVNode(unref(NcButton), {\n \"aria-label\": labels.flipVertical,\n title: labels.flipVertical,\n disabled: !__props.loaded,\n variant: \"tertiary\",\n onClick: _cache[3] || (_cache[3] = ($event) => unref(commands).flipVertical())\n }, {\n icon: withCtx(() => [\n createVNode(FlipVertical, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"]),\n _cache[6] || (_cache[6] = createElementVNode(\"span\", { class: \"crop-panel__divider\" }, null, -1)),\n (openBlock(), createElementBlock(Fragment, null, renderList(cropControls, (control) => {\n return createVNode(unref(NcButton), {\n key: control.id,\n \"data-test\": `tab-${control.id}`,\n pressed: activeCropControl.value === control.id,\n disabled: !__props.loaded,\n variant: \"tertiary\",\n onClick: ($event) => activeCropControl.value = control.id\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(control.label), 1)\n ]),\n _: 2\n }, 1032, [\"data-test\", \"pressed\", \"disabled\", \"onClick\"]);\n }), 64)),\n _cache[7] || (_cache[7] = createElementVNode(\"span\", { class: \"crop-panel__divider\" }, null, -1)),\n createVNode(unref(NcButton), {\n \"data-test\": \"reset-crop\",\n variant: \"tertiary\",\n disabled: !__props.loaded || unref(context).state.value.crop === null,\n onClick: _cache[4] || (_cache[4] = ($event) => unref(commands).resetCrop())\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(labels.resetCrop), 1)\n ]),\n _: 1\n }, 8, [\"disabled\"]),\n createVNode(unref(NcButton), {\n \"data-test\": \"apply-crop\",\n variant: \"secondary\",\n disabled: !__props.loaded,\n onClick: _cache[5] || (_cache[5] = ($event) => unref(commands).applyCrop())\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(labels.applyCrop), 1)\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]),\n activeCropControl.value === \"rotation\" ? (openBlock(), createBlock(EditorSlider, {\n key: 0,\n value: unref(context).state.value.fineRotation,\n min: -45,\n max: 45,\n step: 1,\n label: labels.rotation,\n display: display.value,\n \"data-test\": \"fine-rotation\",\n disabled: !__props.loaded,\n onInput: onTransformInput,\n onCommit: onSliderCommit\n }, null, 8, [\"value\", \"label\", \"display\", \"disabled\"])) : (openBlock(), createBlock(EditorSlider, {\n key: 1,\n value: unref(context).state.value.zoom,\n min: 1,\n max: 3,\n step: 0.05,\n label: labels.scale,\n display: display.value,\n \"data-test\": \"zoom\",\n disabled: !__props.loaded,\n onInput: onTransformInput,\n onCommit: onSliderCommit\n }, null, 8, [\"value\", \"label\", \"display\", \"disabled\"]))\n ]);\n };\n }\n});\nconst CropPanel = /* @__PURE__ */ _export_sfc(_sfc_main$r, [[\"__scopeId\", \"data-v-30fdb9f8\"]]);\nconst _hoisted_1$n = [\"disabled\", \"data-test\", \"aria-pressed\", \"title\"];\nconst _hoisted_2$j = [\"src\", \"alt\"];\nconst _sfc_main$q = /* @__PURE__ */ defineComponent({\n __name: \"PresetChip\",\n props: {\n url: {},\n label: {},\n active: { type: Boolean },\n disabled: { type: Boolean },\n dataTest: {}\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n type: \"button\",\n class: normalizeClass([\"preset-chip\", { \"preset-chip--active\": __props.active }]),\n disabled: __props.disabled,\n \"data-test\": __props.dataTest,\n \"aria-pressed\": __props.active,\n title: __props.label,\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\"))\n }, [\n createElementVNode(\"img\", {\n src: __props.url,\n alt: __props.label\n }, null, 8, _hoisted_2$j),\n createElementVNode(\"span\", null, toDisplayString(__props.label), 1)\n ], 10, _hoisted_1$n);\n };\n }\n});\nconst PresetChip = /* @__PURE__ */ _export_sfc(_sfc_main$q, [[\"__scopeId\", \"data-v-b38cdab1\"]]);\nfunction luma(r, g, b) {\n return 0.299 * r + 0.587 * g + 0.114 * b;\n}\nconst EXPOSURE_RANGE = 2;\nconst TEMPERATURE_RANGE = 0.25;\nconst TINT_RANGE = 0.25;\nfunction tone(imageData) {\n const { data } = imageData;\n const exposure = 2 ** ((this.getAttr(\"exposure\") ?? 0) * EXPOSURE_RANGE);\n const temperature = (this.getAttr(\"temperature\") ?? 0) * TEMPERATURE_RANGE;\n const tint = (this.getAttr(\"tint\") ?? 0) * TINT_RANGE;\n const red = exposure * (1 + temperature) * (1 + tint / 2);\n const green = exposure * (1 - tint);\n const blue = exposure * (1 - temperature) * (1 + tint / 2);\n for (let i = 0; i < data.length; i += 4) {\n data[i] = data[i] * red;\n data[i + 1] = data[i + 1] * green;\n data[i + 2] = data[i + 2] * blue;\n }\n}\nconst SHARPEN_RANGE = 1.2;\nfunction sharpen(imageData) {\n const amount = (this.getAttr(\"sharpen\") ?? 0) * SHARPEN_RANGE;\n if (amount === 0) {\n return;\n }\n const { data, width, height } = imageData;\n const source = new Uint8ClampedArray(data);\n const stride = width * 4;\n for (let y = 1; y < height - 1; y++) {\n for (let x = 1; x < width - 1; x++) {\n const centre = y * stride + x * 4;\n for (let channel = 0; channel < 3; channel++) {\n const i = centre + channel;\n const neighbours = source[i - 4] + source[i + 4] + source[i - stride] + source[i + stride];\n data[i] = source[i] * (1 + 4 * amount) - amount * neighbours;\n }\n }\n }\n}\nfunction saturate(imageData) {\n const { data } = imageData;\n const factor = this.saturation() + 1;\n for (let i = 0; i < data.length; i += 4) {\n const gray = luma(data[i], data[i + 1], data[i + 2]);\n data[i] = gray + (data[i] - gray) * factor;\n data[i + 1] = gray + (data[i + 1] - gray) * factor;\n data[i + 2] = gray + (data[i + 2] - gray) * factor;\n }\n}\nfunction warm(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n data[i] = Math.min(255, data[i] * 1.12);\n data[i + 2] = data[i + 2] * 0.9;\n }\n}\nfunction cool(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n data[i] = data[i] * 0.9;\n data[i + 2] = Math.min(255, data[i + 2] * 1.12);\n }\n}\nfunction fade(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n const luma2 = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n data[i] = 28 + (0.7 * data[i] + 0.3 * luma2) * 0.86 * 1.04;\n data[i + 1] = 28 + (0.7 * data[i + 1] + 0.3 * luma2) * 0.86;\n data[i + 2] = 28 + (0.7 * data[i + 2] + 0.3 * luma2) * 0.86 * 0.96;\n }\n}\nfunction noir(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n const luma2 = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n const value = Math.min(255, Math.max(0, (luma2 - 128) * 1.35 + 118));\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n }\n}\nfunction golden(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n data[i] = data[i] * 1.12 + 12;\n data[i + 1] = data[i + 1] * 1.04 + 5;\n data[i + 2] = data[i + 2] * 0.82;\n }\n}\nfunction coast(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n const luma2 = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n const shadow = Math.max(0, 1 - luma2 / 140);\n data[i] = (data[i] - 128) * 1.12 + 132;\n data[i + 1] = (data[i + 1] - 128) * 1.12 + 132 + 10 * shadow;\n data[i + 2] = (data[i + 2] - 128) * 1.12 + 132 + 22 * shadow;\n }\n}\nfunction mist(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n const luma2 = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n data[i] = 22 + (0.6 * data[i] + 0.4 * luma2) * 0.84;\n data[i + 1] = 22 + (0.6 * data[i + 1] + 0.4 * luma2) * 0.84;\n data[i + 2] = 26 + (0.6 * data[i + 2] + 0.4 * luma2) * 0.84;\n }\n}\nfunction berry(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n data[i] = (data[i] - 128) * 1.08 + 128 + 10;\n data[i + 1] = (data[i + 1] - 128) * 1.08 + 128 - 12;\n data[i + 2] = (data[i + 2] - 128) * 1.08 + 128 + 8;\n }\n}\nfunction cinema(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n const luma2 = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n const balance = (luma2 - 128) / 128;\n data[i] = (data[i] - 128) * 1.06 + 128 + 16 * balance;\n data[i + 1] = (data[i + 1] - 128) * 1.06 + 128;\n data[i + 2] = (data[i + 2] - 128) * 1.06 + 128 - 20 * balance;\n }\n}\nfunction luna(imageData) {\n const { data } = imageData;\n for (let i = 0; i < data.length; i += 4) {\n const luma2 = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n const value = 18 + luma2 * 0.9;\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value + 4;\n }\n}\nfunction visibleRect(state, oriented) {\n return state.crop ?? { x: 0, y: 0, ...oriented };\n}\nfunction context2d(canvas) {\n const context = canvas.getContext(\"2d\");\n if (context === null) {\n throw new Error(\"Canvas 2D context unavailable\");\n }\n return context;\n}\nfunction supportsContextFilter(context) {\n if (context === null) {\n return false;\n }\n context.filter = \"blur(1px)\";\n return context.filter !== \"none\";\n}\nlet contextFilterSupport = null;\nfunction contextFilterAvailable() {\n contextFilterSupport ??= supportsContextFilter(document.createElement(\"canvas\").getContext(\"2d\"));\n return contextFilterSupport;\n}\nfunction obfuscate(oriented, rect, style) {\n const strength = Math.max(4, Math.round(Math.min(oriented.width, oriented.height) / 40));\n const out = document.createElement(\"canvas\");\n out.width = Math.max(1, Math.ceil(rect.width));\n out.height = Math.max(1, Math.ceil(rect.height));\n const context = context2d(out);\n if (style === \"blur\" && contextFilterAvailable()) {\n const pad = strength * 2;\n context.filter = `blur(${strength}px)`;\n context.drawImage(\n oriented,\n rect.x - pad,\n rect.y - pad,\n rect.width + pad * 2,\n rect.height + pad * 2,\n -pad,\n -pad,\n out.width + pad * 2,\n out.height + pad * 2\n );\n return out;\n }\n const small = document.createElement(\"canvas\");\n small.width = Math.max(1, Math.ceil(rect.width / strength));\n small.height = Math.max(1, Math.ceil(rect.height / strength));\n context2d(small).drawImage(oriented, rect.x, rect.y, rect.width, rect.height, 0, 0, small.width, small.height);\n context.imageSmoothingEnabled = false;\n context.drawImage(small, 0, 0, out.width, out.height);\n return out;\n}\nfunction buildAnnotationNode(annotation, oriented) {\n const base = { id: annotation.id, name: \"annotation\" };\n switch (annotation.type) {\n case \"draw\":\n return new Konva.Line({\n ...base,\n points: annotation.points,\n stroke: annotation.color,\n strokeWidth: annotation.strokeWidth,\n lineCap: \"round\",\n lineJoin: \"round\"\n });\n case \"line\":\n return new Konva.Line({\n ...base,\n points: [...annotation.points],\n stroke: annotation.color,\n strokeWidth: annotation.strokeWidth,\n lineCap: \"round\"\n });\n case \"arrow\":\n return new Konva.Arrow({\n ...base,\n points: [...annotation.points],\n stroke: annotation.color,\n fill: annotation.color,\n strokeWidth: annotation.strokeWidth,\n pointerLength: annotation.strokeWidth * 4,\n pointerWidth: annotation.strokeWidth * 4\n });\n case \"rectangle\":\n return new Konva.Rect({\n ...base,\n ...annotation.rect,\n rotation: annotation.rotation,\n stroke: annotation.color,\n strokeWidth: annotation.strokeWidth\n });\n case \"ellipse\":\n return new Konva.Ellipse({\n ...base,\n x: annotation.rect.x,\n y: annotation.rect.y,\n offsetX: -annotation.rect.width / 2,\n offsetY: -annotation.rect.height / 2,\n radiusX: annotation.rect.width / 2,\n radiusY: annotation.rect.height / 2,\n rotation: annotation.rotation,\n stroke: annotation.color,\n strokeWidth: annotation.strokeWidth\n });\n case \"text\":\n case \"sticker\":\n return new Konva.Text({\n ...base,\n x: annotation.x,\n y: annotation.y,\n text: annotation.text,\n fill: annotation.color,\n fontSize: annotation.fontSize,\n rotation: annotation.rotation,\n // Kept in sync with the text overlay for WYSIWYG editing\n fontFamily: \"Helvetica, Arial, sans-serif\"\n });\n case \"redact\": {\n if (oriented === void 0) {\n throw new Error(\"Redaction requires the oriented image\");\n }\n return new Konva.Image({\n ...base,\n image: obfuscate(oriented, annotation.rect, annotation.style),\n x: annotation.rect.x,\n y: annotation.rect.y\n });\n }\n }\n}\nfunction applyFilters(node, state, pixelRatio = 1) {\n const { exposure, brightness, contrast, saturation, temperature, tint } = state.adjustments;\n const filters = [];\n if (exposure !== 0 || temperature !== 0 || tint !== 0) {\n filters.push(tone);\n }\n if (brightness !== 0) {\n filters.push(Konva.Filters.Brighten);\n }\n if (contrast !== 0) {\n filters.push(Konva.Filters.Contrast);\n }\n if (saturation !== 0) {\n filters.push(saturate);\n }\n const presetFilters = {\n none: null,\n grayscale: Konva.Filters.Grayscale,\n noir,\n luna,\n sepia: Konva.Filters.Sepia,\n fade,\n warm,\n cool,\n golden,\n coast,\n mist,\n berry,\n cinema,\n invert: Konva.Filters.Invert,\n solarize: Konva.Filters.Solarize,\n posterize: Konva.Filters.Posterize,\n pop: Konva.Filters.Enhance\n }[state.preset];\n if (presetFilters !== null) {\n filters.push(presetFilters);\n }\n if (state.adjustments.sharpen !== 0) {\n filters.push(sharpen);\n }\n if (filters.length === 0) {\n node.filters([]);\n node.clearCache();\n return;\n }\n node.filters(filters);\n node.brightness(brightness / 100);\n node.contrast(contrast);\n node.saturation(saturation / 100);\n node.setAttr(\"exposure\", exposure / 100);\n node.setAttr(\"temperature\", temperature / 100);\n node.setAttr(\"tint\", tint / 100);\n node.setAttr(\"sharpen\", state.adjustments.sharpen / 100);\n if (state.preset === \"posterize\") {\n node.levels(0.02);\n }\n if (state.preset === \"pop\") {\n node.enhance(0.25);\n }\n node.cache({ pixelRatio });\n}\nfunction thumbnailKey(state) {\n const { crop, adjustments } = state;\n return [\n crop?.x,\n crop?.y,\n crop?.width,\n crop?.height,\n ...Object.values(adjustments)\n ].join(\"|\");\n}\nfunction presetThumbnail(oriented, state, preset, size = 96) {\n const visible = visibleRect(state, { width: oriented.width, height: oriented.height });\n const scale = Math.min(size / visible.width, size / visible.height);\n const thumb = document.createElement(\"canvas\");\n thumb.width = Math.max(1, Math.round(visible.width * scale));\n thumb.height = Math.max(1, Math.round(visible.height * scale));\n context2d(thumb).drawImage(oriented, visible.x, visible.y, visible.width, visible.height, 0, 0, thumb.width, thumb.height);\n const stage = new Konva.Stage({\n container: document.createElement(\"div\"),\n width: thumb.width,\n height: thumb.height\n });\n try {\n const node = new Konva.Image({ image: thumb, listening: false });\n applyFilters(node, { ...state, preset });\n const layer = new Konva.Layer();\n layer.add(node);\n stage.add(layer);\n return stage.toDataURL();\n } finally {\n stage.destroy();\n }\n}\nfunction createScene(stage) {\n const layer = new Konva.Layer();\n const viewGroup = new Konva.Group({ name: \"view\" });\n const contentGroup = new Konva.Group({ name: \"content\" });\n const imageNode = new Konva.Image({ image: void 0, listening: false });\n contentGroup.add(imageNode);\n viewGroup.add(contentGroup);\n layer.add(viewGroup);\n stage.add(layer);\n const built = /* @__PURE__ */ new Map();\n let filterKey = \"\";\n const update = (oriented, state, options) => {\n const orientedChanged = imageNode.image() !== oriented;\n if (orientedChanged) {\n imageNode.image(oriented);\n }\n const origin = options.showCropped ? visibleRect(state, { width: oriented.width, height: oriented.height }) : { x: 0, y: 0 };\n viewGroup.position({\n x: options.offset.x - origin.x * options.scale,\n y: options.offset.y - origin.y * options.scale\n });\n viewGroup.scale({ x: options.scale, y: options.scale });\n if (options.showCropped && state.crop !== null) {\n viewGroup.clip(state.crop);\n } else {\n viewGroup.clipWidth(void 0);\n viewGroup.clipHeight(void 0);\n }\n const pixelRatio = options.fastFilters ? Math.min(1, options.scale * (globalThis.devicePixelRatio || 1)) : 1;\n const nextFilterKey = `${Object.values(state.adjustments).join(\"|\")}|${state.preset}|${pixelRatio}`;\n if (orientedChanged || nextFilterKey !== filterKey) {\n applyFilters(imageNode, state, pixelRatio);\n filterKey = nextFilterKey;\n }\n const seen = /* @__PURE__ */ new Set();\n for (const annotation of state.annotations) {\n seen.add(annotation.id);\n const entry = built.get(annotation.id);\n if (entry !== void 0 && entry.annotation === annotation && !orientedChanged) {\n continue;\n }\n entry?.node.destroy();\n const node = buildAnnotationNode(annotation, oriented);\n contentGroup.add(node);\n built.set(annotation.id, { annotation, node });\n }\n for (const [id, entry] of built) {\n if (!seen.has(id)) {\n entry.node.destroy();\n built.delete(id);\n }\n }\n imageNode.zIndex(0);\n state.annotations.forEach((annotation, index) => built.get(annotation.id).node.zIndex(index + 1));\n };\n return {\n viewGroup,\n contentGroup,\n imageNode,\n update,\n destroy: () => {\n built.clear();\n layer.destroy();\n }\n };\n}\nfunction renderScene(stage, oriented, state, options) {\n const scene = createScene(stage);\n scene.update(oriented, state, options);\n return scene;\n}\nfunction renderToCanvas(oriented, state, maxSize) {\n const visible = visibleRect(state, { width: oriented.width, height: oriented.height });\n const pixelRatio = maxSize === void 0 ? 1 : Math.min(1, maxSize / Math.max(visible.width, visible.height));\n const stage = new Konva.Stage({\n // Detached container: the export stage is never displayed\n container: document.createElement(\"div\"),\n width: visible.width,\n height: visible.height\n });\n try {\n renderScene(stage, oriented, state, {\n scale: 1,\n offset: { x: 0, y: 0 },\n showCropped: true\n });\n return stage.toCanvas({ pixelRatio });\n } finally {\n stage.destroy();\n }\n}\nfunction toImageCoords(pointer, state, oriented, options) {\n const visible = visibleRect(state, oriented);\n return {\n x: (pointer.x - options.offset.x) / options.scale + (options.showCropped ? visible.x : 0),\n y: (pointer.y - options.offset.y) / options.scale + (options.showCropped ? visible.y : 0)\n };\n}\nconst _sfc_main$p = /* @__PURE__ */ defineComponent({\n __name: \"FilterStrip\",\n props: {\n loaded: { type: Boolean },\n oriented: {}\n },\n setup(__props) {\n const props = __props;\n const context = useEditorContext();\n const presets = [\n { id: \"none\", label: t(\"No filter\") },\n { id: \"pop\", label: t(\"Pop\") },\n { id: \"golden\", label: t(\"Golden\") },\n { id: \"coast\", label: t(\"Coast\") },\n { id: \"cinema\", label: t(\"Cinema\") },\n { id: \"berry\", label: t(\"Berry\") },\n { id: \"mist\", label: t(\"Mist\") },\n { id: \"warm\", label: t(\"Warm\") },\n { id: \"cool\", label: t(\"Cool\") },\n { id: \"fade\", label: t(\"Fade\") },\n { id: \"grayscale\", label: t(\"Grayscale\") },\n { id: \"noir\", label: t(\"Noir\") },\n { id: \"luna\", label: t(\"Luna\") },\n { id: \"sepia\", label: t(\"Sepia\") },\n { id: \"invert\", label: t(\"Invert\") },\n { id: \"solarize\", label: t(\"Solarize\") },\n { id: \"posterize\", label: t(\"Posterize\") }\n ];\n const presetPreviews = shallowRef([]);\n watch(\n [() => props.oriented, () => thumbnailKey(context.state.value)],\n ([oriented]) => {\n presetPreviews.value = oriented ? presets.map((preset) => ({\n ...preset,\n url: presetThumbnail(oriented, context.state.value, preset.id)\n })) : [];\n },\n { immediate: true }\n );\n function setPreset(preset, label) {\n context.commit({ ...context.state.value, preset }, label);\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(GlassSurface, {\n variant: \"strip\",\n class: \"filter-strip\"\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(presetPreviews.value, (preset) => {\n return openBlock(), createBlock(PresetChip, {\n key: preset.id,\n url: preset.url,\n label: preset.label,\n active: unref(context).state.value.preset === preset.id,\n disabled: !__props.loaded,\n \"data-test\": `preset-${preset.id}`,\n onClick: ($event) => setPreset(preset.id, preset.label)\n }, null, 8, [\"url\", \"label\", \"active\", \"disabled\", \"data-test\", \"onClick\"]);\n }), 128))\n ]),\n _: 1\n });\n };\n }\n});\nconst FilterStrip = /* @__PURE__ */ _export_sfc(_sfc_main$p, [[\"__scopeId\", \"data-v-44007efa\"]]);\nconst _hoisted_1$m = { class: \"redact-panel\" };\nconst _sfc_main$o = /* @__PURE__ */ defineComponent({\n __name: \"RedactPanel\",\n props: {\n loaded: { type: Boolean }\n },\n setup(__props) {\n const context = useEditorContext();\n const labels = {\n pixelate: t(\"Pixelate\"),\n blur: t(\"Blur\")\n };\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$m, [\n createVNode(unref(NcButton), {\n \"data-test\": \"redact-pixelate\",\n pressed: unref(context).redactStyle.value === \"pixelate\",\n disabled: !__props.loaded,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => unref(context).redactStyle.value = \"pixelate\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(labels.pixelate), 1)\n ]),\n _: 1\n }, 8, [\"pressed\", \"disabled\"]),\n createVNode(unref(NcButton), {\n \"data-test\": \"redact-blur\",\n pressed: unref(context).redactStyle.value === \"blur\",\n disabled: !__props.loaded,\n variant: \"tertiary\",\n onClick: _cache[1] || (_cache[1] = ($event) => unref(context).redactStyle.value = \"blur\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(labels.blur), 1)\n ]),\n _: 1\n }, 8, [\"pressed\", \"disabled\"])\n ]);\n };\n }\n});\nconst RedactPanel = /* @__PURE__ */ _export_sfc(_sfc_main$o, [[\"__scopeId\", \"data-v-ac701267\"]]);\nconst _hoisted_1$l = { class: \"select-panel\" };\nconst _hoisted_2$i = {\n key: 0,\n class: \"select-panel__option\"\n};\nconst _hoisted_3$i = [\"value\", \"disabled\"];\nconst _hoisted_4$i = {\n key: 1,\n class: \"select-panel__hint\"\n};\nconst _hoisted_5$1 = {\n key: 2,\n class: \"select-panel__hint\"\n};\nconst _sfc_main$n = /* @__PURE__ */ defineComponent({\n __name: \"SelectPanel\",\n props: {\n loaded: { type: Boolean }\n },\n setup(__props) {\n const context = useEditorContext();\n const color = useAnnotationColor(context);\n const colorLabel = t(\"Color\");\n const hint = t(\"Click an annotation to move, resize or recolor it\");\n const transformHint = t(\"Drag to move, use the handles to resize\");\n const selectedAnnotation = computed(() => context.state.value.annotations.find((annotation) => annotation.id === context.selectedId.value) ?? null);\n const recolorable = computed(() => selectedAnnotation.value !== null && selectedAnnotation.value.type !== \"sticker\" && selectedAnnotation.value.type !== \"redact\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$l, [\n recolorable.value ? (openBlock(), createElementBlock(\"label\", _hoisted_2$i, [\n createTextVNode(toDisplayString(unref(colorLabel)) + \" \", 1),\n createElementVNode(\"input\", {\n value: unref(context).drawColor.value,\n type: \"color\",\n disabled: !__props.loaded,\n \"data-test\": \"color\",\n onInput: _cache[0] || (_cache[0] = ($event) => unref(color).preview($event.target.value)),\n onChange: _cache[1] || (_cache[1] = ($event) => unref(color).commit($event.target.value))\n }, null, 40, _hoisted_3$i)\n ])) : selectedAnnotation.value !== null ? (openBlock(), createElementBlock(\"span\", _hoisted_4$i, toDisplayString(unref(transformHint)), 1)) : (openBlock(), createElementBlock(\"span\", _hoisted_5$1, toDisplayString(unref(hint)), 1))\n ]);\n };\n }\n});\nconst SelectPanel = /* @__PURE__ */ _export_sfc(_sfc_main$n, [[\"__scopeId\", \"data-v-2ca9996e\"]]);\nconst _hoisted_1$k = { class: \"sticker-panel\" };\nconst _sfc_main$m = /* @__PURE__ */ defineComponent({\n __name: \"StickerPanel\",\n props: {\n loaded: { type: Boolean }\n },\n setup(__props) {\n const context = useEditorContext();\n const moreLabel = t(\"More emojis\");\n const FALLBACK_STICKERS = [\"😀\", \"😍\", \"🎉\", \"👍\", \"❤️\", \"⭐\", \"🔥\", \"💡\", \"✅\", \"❌\", \"❓\", \"⚠️\"];\n function frequentStickers() {\n try {\n const frequent = emojiSearch(\"\", 12).map((emoji) => emoji.native).filter((native) => typeof native === \"string\" && native !== \"\");\n return frequent.length >= 6 ? frequent : FALLBACK_STICKERS;\n } catch {\n return FALLBACK_STICKERS;\n }\n }\n const DEFAULT_STICKERS = frequentStickers();\n const stickers = computed(() => DEFAULT_STICKERS.includes(context.sticker.value) ? DEFAULT_STICKERS : [context.sticker.value, ...DEFAULT_STICKERS.slice(0, 11)]);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$k, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(stickers.value, (sticker) => {\n return openBlock(), createBlock(unref(NcButton), {\n key: sticker,\n \"aria-label\": sticker,\n pressed: unref(context).sticker.value === sticker,\n disabled: !__props.loaded,\n class: \"sticker-panel__emoji\",\n variant: \"tertiary\",\n onClick: ($event) => unref(context).sticker.value = sticker\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(sticker), 1)\n ]),\n _: 2\n }, 1032, [\"aria-label\", \"pressed\", \"disabled\", \"onClick\"]);\n }), 128)),\n createVNode(unref(NcEmojiPicker), {\n onSelect: _cache[0] || (_cache[0] = ($event) => unref(context).sticker.value = $event)\n }, {\n default: withCtx(() => [\n createVNode(unref(NcButton), {\n \"data-test\": \"emoji-picker\",\n variant: \"tertiary\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(moreLabel)), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]);\n };\n }\n});\nconst StickerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$m, [[\"__scopeId\", \"data-v-6307599b\"]]);\nconst _sfc_main$l = /* @__PURE__ */ defineComponent({\n __name: \"EditorPanel\",\n props: {\n loaded: { type: Boolean },\n oriented: {}\n },\n setup(__props) {\n const context = useEditorContext();\n return (_ctx, _cache) => {\n return unref(context).activeMode.value === \"filter\" ? (openBlock(), createBlock(FilterStrip, {\n key: 0,\n loaded: __props.loaded,\n oriented: __props.oriented\n }, null, 8, [\"loaded\", \"oriented\"])) : (openBlock(), createBlock(GlassSurface, {\n key: 1,\n variant: \"card\",\n class: \"editor-card\"\n }, {\n default: withCtx(() => [\n unref(context).activeMode.value === \"crop\" ? (openBlock(), createBlock(CropPanel, {\n key: 0,\n loaded: __props.loaded\n }, null, 8, [\"loaded\"])) : unref(context).activeMode.value === \"finetune\" ? (openBlock(), createBlock(AdjustPanel, {\n key: 1,\n loaded: __props.loaded\n }, null, 8, [\"loaded\"])) : unref(context).activeMode.value === \"annotate\" ? (openBlock(), createBlock(AnnotatePanel, {\n key: 2,\n loaded: __props.loaded\n }, null, 8, [\"loaded\"])) : unref(context).activeMode.value === \"select\" ? (openBlock(), createBlock(SelectPanel, {\n key: 3,\n loaded: __props.loaded\n }, null, 8, [\"loaded\"])) : unref(context).activeMode.value === \"sticker\" ? (openBlock(), createBlock(StickerPanel, {\n key: 4,\n loaded: __props.loaded\n }, null, 8, [\"loaded\"])) : unref(context).activeMode.value === \"redact\" ? (openBlock(), createBlock(RedactPanel, {\n key: 5,\n loaded: __props.loaded\n }, null, 8, [\"loaded\"])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }));\n };\n }\n});\nconst EditorPanel = /* @__PURE__ */ _export_sfc(_sfc_main$l, [[\"__scopeId\", \"data-v-3fb85d8f\"]]);\nconst _sfc_main$k = {\n name: \"BlurIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$j = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$h = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$h = { d: \"M14,8.5A1.5,1.5 0 0,0 12.5,10A1.5,1.5 0 0,0 14,11.5A1.5,1.5 0 0,0 15.5,10A1.5,1.5 0 0,0 14,8.5M14,12.5A1.5,1.5 0 0,0 12.5,14A1.5,1.5 0 0,0 14,15.5A1.5,1.5 0 0,0 15.5,14A1.5,1.5 0 0,0 14,12.5M10,17A1,1 0 0,0 9,18A1,1 0 0,0 10,19A1,1 0 0,0 11,18A1,1 0 0,0 10,17M10,8.5A1.5,1.5 0 0,0 8.5,10A1.5,1.5 0 0,0 10,11.5A1.5,1.5 0 0,0 11.5,10A1.5,1.5 0 0,0 10,8.5M14,20.5A0.5,0.5 0 0,0 13.5,21A0.5,0.5 0 0,0 14,21.5A0.5,0.5 0 0,0 14.5,21A0.5,0.5 0 0,0 14,20.5M14,17A1,1 0 0,0 13,18A1,1 0 0,0 14,19A1,1 0 0,0 15,18A1,1 0 0,0 14,17M21,13.5A0.5,0.5 0 0,0 20.5,14A0.5,0.5 0 0,0 21,14.5A0.5,0.5 0 0,0 21.5,14A0.5,0.5 0 0,0 21,13.5M18,5A1,1 0 0,0 17,6A1,1 0 0,0 18,7A1,1 0 0,0 19,6A1,1 0 0,0 18,5M18,9A1,1 0 0,0 17,10A1,1 0 0,0 18,11A1,1 0 0,0 19,10A1,1 0 0,0 18,9M18,17A1,1 0 0,0 17,18A1,1 0 0,0 18,19A1,1 0 0,0 19,18A1,1 0 0,0 18,17M18,13A1,1 0 0,0 17,14A1,1 0 0,0 18,15A1,1 0 0,0 19,14A1,1 0 0,0 18,13M10,12.5A1.5,1.5 0 0,0 8.5,14A1.5,1.5 0 0,0 10,15.5A1.5,1.5 0 0,0 11.5,14A1.5,1.5 0 0,0 10,12.5M10,7A1,1 0 0,0 11,6A1,1 0 0,0 10,5A1,1 0 0,0 9,6A1,1 0 0,0 10,7M10,3.5A0.5,0.5 0 0,0 10.5,3A0.5,0.5 0 0,0 10,2.5A0.5,0.5 0 0,0 9.5,3A0.5,0.5 0 0,0 10,3.5M10,20.5A0.5,0.5 0 0,0 9.5,21A0.5,0.5 0 0,0 10,21.5A0.5,0.5 0 0,0 10.5,21A0.5,0.5 0 0,0 10,20.5M3,13.5A0.5,0.5 0 0,0 2.5,14A0.5,0.5 0 0,0 3,14.5A0.5,0.5 0 0,0 3.5,14A0.5,0.5 0 0,0 3,13.5M14,3.5A0.5,0.5 0 0,0 14.5,3A0.5,0.5 0 0,0 14,2.5A0.5,0.5 0 0,0 13.5,3A0.5,0.5 0 0,0 14,3.5M14,7A1,1 0 0,0 15,6A1,1 0 0,0 14,5A1,1 0 0,0 13,6A1,1 0 0,0 14,7M21,10.5A0.5,0.5 0 0,0 21.5,10A0.5,0.5 0 0,0 21,9.5A0.5,0.5 0 0,0 20.5,10A0.5,0.5 0 0,0 21,10.5M6,5A1,1 0 0,0 5,6A1,1 0 0,0 6,7A1,1 0 0,0 7,6A1,1 0 0,0 6,5M3,9.5A0.5,0.5 0 0,0 2.5,10A0.5,0.5 0 0,0 3,10.5A0.5,0.5 0 0,0 3.5,10A0.5,0.5 0 0,0 3,9.5M6,9A1,1 0 0,0 5,10A1,1 0 0,0 6,11A1,1 0 0,0 7,10A1,1 0 0,0 6,9M6,17A1,1 0 0,0 5,18A1,1 0 0,0 6,19A1,1 0 0,0 7,18A1,1 0 0,0 6,17M6,13A1,1 0 0,0 5,14A1,1 0 0,0 6,15A1,1 0 0,0 7,14A1,1 0 0,0 6,13Z\" };\nconst _hoisted_4$h = { key: 0 };\nfunction _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon blur-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$h, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$h, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$h))\n ], 16, _hoisted_1$j);\n}\nconst Blur = /* @__PURE__ */ _export_sfc(_sfc_main$k, [[\"render\", _sfc_render$f]]);\nconst _sfc_main$j = {\n name: \"CropIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$i = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$g = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$g = { d: \"M7,17V1H5V5H1V7H5V17A2,2 0 0,0 7,19H17V23H19V19H23V17M17,15H19V7C19,5.89 18.1,5 17,5H9V7H17V15Z\" };\nconst _hoisted_4$g = { key: 0 };\nfunction _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon crop-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$g, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$g, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$g))\n ], 16, _hoisted_1$i);\n}\nconst Crop = /* @__PURE__ */ _export_sfc(_sfc_main$j, [[\"render\", _sfc_render$e]]);\nconst _sfc_main$i = {\n name: \"CursorDefaultOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$h = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$f = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$f = { d: \"M10.07,14.27C10.57,14.03 11.16,14.25 11.4,14.75L13.7,19.74L15.5,18.89L13.19,13.91C12.95,13.41 13.17,12.81 13.67,12.58L13.95,12.5L16.25,12.05L8,5.12V15.9L9.82,14.43L10.07,14.27M13.64,21.97C13.14,22.21 12.54,22 12.31,21.5L10.13,16.76L7.62,18.78C7.45,18.92 7.24,19 7,19A1,1 0 0,1 6,18V3A1,1 0 0,1 7,2C7.24,2 7.47,2.09 7.64,2.23L7.65,2.22L19.14,11.86C19.57,12.22 19.62,12.85 19.27,13.27C19.12,13.45 18.91,13.57 18.7,13.61L15.54,14.23L17.74,18.96C18,19.46 17.76,20.05 17.26,20.28L13.64,21.97Z\" };\nconst _hoisted_4$f = { key: 0 };\nfunction _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon cursor-default-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$f, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$f, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$f))\n ], 16, _hoisted_1$h);\n}\nconst CursorDefaultOutline = /* @__PURE__ */ _export_sfc(_sfc_main$i, [[\"render\", _sfc_render$d]]);\nconst _sfc_main$h = {\n name: \"PaletteOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$g = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$e = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$e = { d: \"M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2C17.5,2 22,6 22,11A6,6 0 0,1 16,17H14.2C13.9,17 13.7,17.2 13.7,17.5C13.7,17.6 13.8,17.7 13.8,17.8C14.2,18.3 14.4,18.9 14.4,19.5C14.5,20.9 13.4,22 12,22M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C12.3,20 12.5,19.8 12.5,19.5C12.5,19.3 12.4,19.2 12.4,19.1C12,18.6 11.8,18.1 11.8,17.5C11.8,16.1 12.9,15 14.3,15H16A4,4 0 0,0 20,11C20,7.1 16.4,4 12,4M6.5,10C7.3,10 8,10.7 8,11.5C8,12.3 7.3,13 6.5,13C5.7,13 5,12.3 5,11.5C5,10.7 5.7,10 6.5,10M9.5,6C10.3,6 11,6.7 11,7.5C11,8.3 10.3,9 9.5,9C8.7,9 8,8.3 8,7.5C8,6.7 8.7,6 9.5,6M14.5,6C15.3,6 16,6.7 16,7.5C16,8.3 15.3,9 14.5,9C13.7,9 13,8.3 13,7.5C13,6.7 13.7,6 14.5,6M17.5,10C18.3,10 19,10.7 19,11.5C19,12.3 18.3,13 17.5,13C16.7,13 16,12.3 16,11.5C16,10.7 16.7,10 17.5,10Z\" };\nconst _hoisted_4$e = { key: 0 };\nfunction _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon palette-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$e, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$e, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$e))\n ], 16, _hoisted_1$g);\n}\nconst PaletteOutline = /* @__PURE__ */ _export_sfc(_sfc_main$h, [[\"render\", _sfc_render$c]]);\nconst _sfc_main$g = {\n name: \"StickerEmojiIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$f = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$d = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$d = { d: \"M5.5,2C3.56,2 2,3.56 2,5.5V18.5C2,20.44 3.56,22 5.5,22H16L22,16V5.5C22,3.56 20.44,2 18.5,2H5.5M5.75,4H18.25A1.75,1.75 0 0,1 20,5.75V15H18.5C16.56,15 15,16.56 15,18.5V20H5.75A1.75,1.75 0 0,1 4,18.25V5.75A1.75,1.75 0 0,1 5.75,4M14.44,6.77C14.28,6.77 14.12,6.79 13.97,6.83C13.03,7.09 12.5,8.05 12.74,9C12.79,9.15 12.86,9.3 12.95,9.44L16.18,8.56C16.18,8.39 16.16,8.22 16.12,8.05C15.91,7.3 15.22,6.77 14.44,6.77M8.17,8.5C8,8.5 7.85,8.5 7.7,8.55C6.77,8.81 6.22,9.77 6.47,10.7C6.5,10.86 6.59,11 6.68,11.16L9.91,10.28C9.91,10.11 9.89,9.94 9.85,9.78C9.64,9 8.95,8.5 8.17,8.5M16.72,11.26L7.59,13.77C8.91,15.3 11,15.94 12.95,15.41C14.9,14.87 16.36,13.25 16.72,11.26Z\" };\nconst _hoisted_4$d = { key: 0 };\nfunction _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon sticker-emoji-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$d, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$d, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$d))\n ], 16, _hoisted_1$f);\n}\nconst StickerEmoji = /* @__PURE__ */ _export_sfc(_sfc_main$g, [[\"render\", _sfc_render$b]]);\nconst _sfc_main$f = {\n name: \"TuneIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$e = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$c = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$c = { d: \"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\" };\nconst _hoisted_4$c = { key: 0 };\nfunction _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon tune-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$c, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$c, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$c))\n ], 16, _hoisted_1$e);\n}\nconst Tune = /* @__PURE__ */ _export_sfc(_sfc_main$f, [[\"render\", _sfc_render$a]]);\nconst _hoisted_1$d = { class: \"editor-sidebar\" };\nconst _sfc_main$e = /* @__PURE__ */ defineComponent({\n __name: \"EditorSidebar\",\n props: {\n loaded: { type: Boolean }\n },\n setup(__props) {\n const context = useEditorContext();\n const modes = [\n { id: \"select\", label: t(\"Select\"), icon: CursorDefaultOutline },\n { id: \"crop\", label: t(\"Crop\"), icon: Crop },\n { id: \"finetune\", label: t(\"Adjust\"), icon: Tune },\n { id: \"filter\", label: t(\"Filter\"), icon: PaletteOutline },\n { id: \"annotate\", label: t(\"Annotate\"), icon: Pencil },\n { id: \"sticker\", label: t(\"Sticker\"), icon: StickerEmoji },\n { id: \"redact\", label: t(\"Redact\"), icon: Blur }\n ];\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"nav\", _hoisted_1$d, [\n (openBlock(), createElementBlock(Fragment, null, renderList(modes, (mode) => {\n return createVNode(IconTab, {\n key: mode.id,\n label: mode.label,\n active: unref(context).activeMode.value === mode.id,\n disabled: !__props.loaded,\n onClick: ($event) => unref(context).setMode(mode.id)\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent(mode.icon), { size: 20 }))\n ]),\n _: 2\n }, 1032, [\"label\", \"active\", \"disabled\", \"onClick\"]);\n }), 64))\n ]);\n };\n }\n});\nconst EditorSidebar = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"__scopeId\", \"data-v-a4223674\"]]);\nconst _sfc_main$d = {\n name: \"CheckIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$c = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$b = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$b = { d: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" };\nconst _hoisted_4$b = { key: 0 };\nfunction _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon check-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$b, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$b, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$b))\n ], 16, _hoisted_1$c);\n}\nconst Check = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$9]]);\nconst _sfc_main$c = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$b = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$a = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$a = { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" };\nconst _hoisted_4$a = { key: 0 };\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon close-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$a, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$a, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$a))\n ], 16, _hoisted_1$b);\n}\nconst Close = /* @__PURE__ */ _export_sfc(_sfc_main$c, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$b = {\n name: \"HistoryIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$a = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$9 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$9 = { d: \"M13.5,8H12V13L16.28,15.54L17,14.33L13.5,12.25V8M13,3A9,9 0 0,0 4,12H1L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3\" };\nconst _hoisted_4$9 = { key: 0 };\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon history-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$9, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$9, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$9))\n ], 16, _hoisted_1$a);\n}\nconst HistoryIcon = /* @__PURE__ */ _export_sfc(_sfc_main$b, [[\"render\", _sfc_render$7]]);\nconst _sfc_main$a = {\n name: \"MagnifyMinusOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$9 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$8 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$8 = { d: \"M15.5,14H14.71L14.43,13.73C15.41,12.59 16,11.11 16,9.5A6.5,6.5 0 0,0 9.5,3A6.5,6.5 0 0,0 3,9.5A6.5,6.5 0 0,0 9.5,16C11.11,16 12.59,15.41 13.73,14.43L14,14.71V15.5L19,20.5L20.5,19L15.5,14M9.5,14C7,14 5,12 5,9.5C5,7 7,5 9.5,5C12,5 14,7 14,9.5C14,12 12,14 9.5,14M7,9H12V10H7V9Z\" };\nconst _hoisted_4$8 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon magnify-minus-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$8, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$8, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$8))\n ], 16, _hoisted_1$9);\n}\nconst MagnifyMinusOutline = /* @__PURE__ */ _export_sfc(_sfc_main$a, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$9 = {\n name: \"MagnifyPlusOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$8 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$7 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$7 = { d: \"M15.5,14L20.5,19L19,20.5L14,15.5V14.71L13.73,14.43C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.43,13.73L14.71,14H15.5M9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14M12,10H10V12H9V10H7V9H9V7H10V9H12V10Z\" };\nconst _hoisted_4$7 = { key: 0 };\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon magnify-plus-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$7, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$7, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$7))\n ], 16, _hoisted_1$8);\n}\nconst MagnifyPlusOutline = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$8 = {\n name: \"RedoIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$7 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$6 = { d: \"M18.4,10.6C16.55,9 14.15,8 11.5,8C6.85,8 2.92,11.03 1.54,15.22L3.9,16C4.95,12.81 7.95,10.5 11.5,10.5C13.45,10.5 15.23,11.22 16.62,12.38L13,16H22V7L18.4,10.6Z\" };\nconst _hoisted_4$6 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon redo-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$6, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$6, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$7);\n}\nconst Redo = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$7 = {\n name: \"RestoreIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$6 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$5 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M13,3A9,9 0 0,0 4,12H1L4.89,15.89L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3Z\" };\nconst _hoisted_4$5 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon restore-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$5, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$6);\n}\nconst Restore = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$6 = {\n name: \"UndoIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$4 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$4 = { d: \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon undo-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$4, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$5);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$4 = { class: \"editor-topbar\" };\nconst _hoisted_2$3 = { class: \"editor-topbar__history\" };\nconst _hoisted_3$3 = [\"aria-label\", \"title\", \"disabled\"];\nconst _hoisted_4$3 = { class: \"editor-topbar__actions\" };\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n __name: \"EditorTopBar\",\n props: {\n loaded: { type: Boolean },\n saving: { type: Boolean }\n },\n emits: [\"save\", \"cancel\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const context = useEditorContext();\n const commands = useEditorCommands();\n const labels = {\n undo: t(\"Undo\"),\n redo: t(\"Redo\"),\n revert: t(\"Revert all changes\"),\n revertText: t(\"All edits will be discarded. This cannot be undone by closing the dialog.\"),\n zoomIn: t(\"Zoom in\"),\n zoomOut: t(\"Zoom out\"),\n resetZoom: t(\"Reset zoom\"),\n save: t(\"Save\"),\n cancel: t(\"Cancel\"),\n history: t(\"Edit history\"),\n step: t(\"Edit\")\n };\n const historySteps = computed(() => context.historyEntries.value.map((entry, index) => ({\n index,\n label: entry.label ?? labels.step,\n active: index === context.historyIndex.value\n })).reverse());\n function stepZoom(direction) {\n const factor = direction === 1 ? 1.5 : 1 / 1.5;\n context.setViewZoom(context.viewZoom.value * factor);\n }\n function resetZoom() {\n context.setViewZoom(MIN_ZOOM);\n }\n async function onRevert() {\n if (await showConfirmation({\n name: labels.revert,\n text: labels.revertText,\n labelConfirm: labels.revert,\n labelReject: labels.cancel,\n severity: \"warning\"\n })) {\n commands.revert();\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n _cache[9] || (_cache[9] = createElementVNode(\"span\", { class: \"editor-topbar__spacer\" }, null, -1)),\n createElementVNode(\"div\", _hoisted_2$3, [\n createVNode(unref(NcButton), {\n \"data-test\": \"revert\",\n \"aria-label\": labels.revert,\n title: labels.revert,\n disabled: !__props.loaded || !unref(context).canUndo.value,\n variant: \"tertiary\",\n onClick: onRevert\n }, {\n icon: withCtx(() => [\n createVNode(Restore, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"]),\n _cache[7] || (_cache[7] = createElementVNode(\"span\", { class: \"editor-topbar__separator\" }, null, -1)),\n createVNode(unref(NcButton), {\n \"aria-label\": labels.undo,\n title: labels.undo,\n disabled: !__props.loaded || !unref(context).canUndo.value,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => unref(context).undo())\n }, {\n icon: withCtx(() => [\n createVNode(Undo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"]),\n createVNode(unref(NcButton), {\n \"aria-label\": labels.redo,\n title: labels.redo,\n disabled: !__props.loaded || !unref(context).canRedo.value,\n variant: \"tertiary\",\n onClick: _cache[1] || (_cache[1] = ($event) => unref(context).redo())\n }, {\n icon: withCtx(() => [\n createVNode(Redo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"]),\n createVNode(unref(NcActions), {\n \"aria-label\": labels.history,\n title: labels.history,\n disabled: !__props.loaded,\n variant: \"tertiary\",\n \"data-test\": \"history\"\n }, {\n icon: withCtx(() => [\n createVNode(HistoryIcon, { size: 20 })\n ]),\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(historySteps.value, (step) => {\n return openBlock(), createBlock(unref(NcActionButton), {\n key: step.index,\n \"data-test\": `history-step-${step.index}`,\n \"aria-current\": step.active,\n onClick: ($event) => unref(context).jumpTo(step.index)\n }, {\n icon: withCtx(() => [\n step.active ? (openBlock(), createBlock(Check, {\n key: 0,\n size: 20\n })) : createCommentVNode(\"\", true)\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(step.label), 1)\n ]),\n _: 2\n }, 1032, [\"data-test\", \"aria-current\", \"onClick\"]);\n }), 128))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"]),\n _cache[8] || (_cache[8] = createElementVNode(\"span\", { class: \"editor-topbar__separator\" }, null, -1)),\n createVNode(unref(NcButton), {\n \"data-test\": \"zoom-out\",\n \"aria-label\": labels.zoomOut,\n title: labels.zoomOut,\n disabled: !__props.loaded || unref(context).viewZoom.value <= unref(MIN_ZOOM),\n variant: \"tertiary\",\n onClick: _cache[2] || (_cache[2] = ($event) => stepZoom(-1))\n }, {\n icon: withCtx(() => [\n createVNode(MagnifyMinusOutline, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"]),\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"editor-topbar__zoom\",\n \"data-test\": \"zoom-reset\",\n \"aria-label\": labels.resetZoom,\n title: labels.resetZoom,\n disabled: !__props.loaded,\n onClick: resetZoom\n }, toDisplayString(Math.round(unref(context).viewZoom.value * 100)) + \"% \", 9, _hoisted_3$3),\n createVNode(unref(NcButton), {\n \"data-test\": \"zoom-in\",\n \"aria-label\": labels.zoomIn,\n title: labels.zoomIn,\n disabled: !__props.loaded || unref(context).viewZoom.value >= unref(MAX_ZOOM),\n variant: \"tertiary\",\n onClick: _cache[3] || (_cache[3] = ($event) => stepZoom(1))\n }, {\n icon: withCtx(() => [\n createVNode(MagnifyPlusOutline, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"disabled\"])\n ]),\n createElementVNode(\"div\", _hoisted_4$3, [\n createVNode(unref(NcButton), {\n \"data-test\": \"cancel\",\n class: \"editor-topbar__cancel-text\",\n variant: \"tertiary\",\n onClick: _cache[4] || (_cache[4] = ($event) => emit(\"cancel\"))\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(labels.cancel), 1)\n ]),\n _: 1\n }),\n createVNode(unref(NcButton), {\n \"data-test\": \"cancel-icon\",\n class: \"editor-topbar__cancel-icon\",\n \"aria-label\": labels.cancel,\n title: labels.cancel,\n variant: \"tertiary\",\n onClick: _cache[5] || (_cache[5] = ($event) => emit(\"cancel\"))\n }, {\n icon: withCtx(() => [\n createVNode(Close, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\"]),\n createVNode(unref(NcButton), {\n \"data-test\": \"save\",\n variant: \"primary\",\n disabled: !__props.loaded || __props.saving,\n onClick: _cache[6] || (_cache[6] = ($event) => emit(\"save\"))\n }, createSlots({\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(labels.save), 1)\n ]),\n _: 2\n }, [\n __props.saving ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(unref(NcLoadingIcon), {\n size: 20,\n \"data-test\": \"saving\"\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"disabled\"])\n ])\n ]);\n };\n }\n});\nconst EditorTopBar = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"__scopeId\", \"data-v-50392429\"]]);\nconst _sfc_main$4 = {\n name: \"ContentCopyIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon content-copy-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst ContentCopy = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$1]]);\nconst _sfc_main$3 = {\n name: \"DeleteIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon delete-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst Delete = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render]]);\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"SelectionToolbar\",\n props: {\n box: {}\n },\n emits: [\"duplicate\", \"delete\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const duplicateLabel = t(\"Duplicate\");\n const deleteLabel = t(\"Delete\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(GlassSurface, {\n variant: \"pill\",\n class: \"selection-toolbar\",\n \"data-test\": \"selection-toolbar\",\n style: normalizeStyle({\n insetInlineStart: `${__props.box.x + __props.box.width / 2}px`,\n // Above the selection as designed, clearing the rotate handle;\n // below only when the top edge would clip it\n insetBlockStart: __props.box.y - 76 >= 4 ? `${__props.box.y - 76}px` : `${__props.box.y + __props.box.height + 12}px`\n })\n }, {\n default: withCtx(() => [\n createVNode(unref(NcButton), {\n \"data-test\": \"duplicate\",\n \"aria-label\": unref(duplicateLabel),\n title: unref(duplicateLabel),\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"duplicate\"))\n }, {\n icon: withCtx(() => [\n createVNode(ContentCopy, { size: 18 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\"]),\n createVNode(unref(NcButton), {\n \"data-test\": \"delete\",\n \"aria-label\": unref(deleteLabel),\n title: unref(deleteLabel),\n variant: \"tertiary\",\n onClick: _cache[1] || (_cache[1] = ($event) => emit(\"delete\"))\n }, {\n icon: withCtx(() => [\n createVNode(Delete, { size: 18 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\"])\n ]),\n _: 1\n }, 8, [\"style\"]);\n };\n }\n});\nconst SelectionToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__scopeId\", \"data-v-09c1d16e\"]]);\nconst _hoisted_1$1 = [\"aria-label\"];\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"TextOverlay\",\n props: {\n x: {},\n y: {},\n fontSize: {},\n color: {},\n initial: {}\n },\n emits: [\"confirm\", \"cancel\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const inputLabel = t(\"Annotation text\");\n const value = ref(props.initial);\n const input = useTemplateRef(\"input\");\n function autosize() {\n const element = input.value;\n if (element === null) {\n return;\n }\n element.style.width = \"0\";\n element.style.height = \"0\";\n element.style.width = `${Math.max(element.scrollWidth + 4, props.fontSize * 2)}px`;\n element.style.height = `${Math.max(element.scrollHeight, props.fontSize * 1.2)}px`;\n }\n onMounted(() => {\n autosize();\n input.value.focus();\n input.value.select();\n });\n function onEnter(event) {\n if (!event.shiftKey) {\n event.preventDefault();\n emit(\"confirm\", value.value);\n }\n }\n return (_ctx, _cache) => {\n return withDirectives((openBlock(), createElementBlock(\"textarea\", {\n ref_key: \"input\",\n ref: input,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => value.value = $event),\n class: \"text-overlay\",\n \"aria-label\": unref(inputLabel),\n \"data-test\": \"text-overlay\",\n style: normalizeStyle({\n insetInlineStart: `${__props.x}px`,\n insetBlockStart: `${__props.y}px`,\n fontSize: `${__props.fontSize}px`,\n color: __props.color\n }),\n rows: \"1\",\n onInput: autosize,\n onKeydown: [\n withKeys(onEnter, [\"enter\"]),\n _cache[1] || (_cache[1] = withKeys(withModifiers(($event) => emit(\"cancel\"), [\"stop\"]), [\"esc\"]))\n ],\n onBlur: _cache[2] || (_cache[2] = ($event) => emit(\"confirm\", value.value))\n }, null, 44, _hoisted_1$1)), [\n [vModelText, value.value]\n ]);\n };\n }\n});\nconst TextOverlay = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-bbba034b\"]]);\nfunction primaryColor() {\n const value = getComputedStyle(document.body).getPropertyValue(\"--color-primary-element\").trim();\n return value !== \"\" ? value : \"#0082c9\";\n}\nfunction ambientColor(canvas) {\n const sample = document.createElement(\"canvas\");\n sample.width = 8;\n sample.height = 8;\n const context = sample.getContext(\"2d\");\n if (context === null) {\n return \"88, 86, 112\";\n }\n context.drawImage(canvas, 0, 0, 8, 8);\n let data;\n try {\n data = context.getImageData(0, 0, 8, 8).data;\n } catch {\n return \"88, 86, 112\";\n }\n let r = 0;\n let g = 0;\n let b = 0;\n let total = 0;\n for (let i = 0; i < data.length; i += 4) {\n const saturation = Math.max(data[i], data[i + 1], data[i + 2]) - Math.min(data[i], data[i + 1], data[i + 2]);\n const weight = saturation + 8;\n r += data[i] * weight;\n g += data[i + 1] * weight;\n b += data[i + 2] * weight;\n total += weight;\n }\n return `${Math.round(r / total)}, ${Math.round(g / total)}, ${Math.round(b / total)}`;\n}\nfunction ambientBackdrop(canvas) {\n const sample = document.createElement(\"canvas\");\n const width = canvas instanceof HTMLImageElement ? canvas.naturalWidth : canvas.width;\n const height = canvas instanceof HTMLImageElement ? canvas.naturalHeight : canvas.height;\n if (width === 0 || height === 0) {\n return \"\";\n }\n sample.width = 24;\n sample.height = Math.max(1, Math.round(24 * height / width));\n const context = sample.getContext(\"2d\");\n if (context === null) {\n return \"\";\n }\n context.drawImage(canvas, 0, 0, sample.width, sample.height);\n try {\n return sample.toDataURL();\n } catch {\n return \"\";\n }\n}\nfunction useAmbient(source) {\n const ambient = ref(\"88, 86, 112\");\n const backdrop = ref(\"\");\n watch(source, (image) => {\n if (image !== null) {\n ambient.value = ambientColor(image);\n backdrop.value = ambientBackdrop(image);\n }\n });\n return { ambient, backdrop };\n}\nfunction useAnnouncements(context) {\n const message = ref(\"\");\n const modeLabels = {\n select: t(\"Select\"),\n crop: t(\"Crop\"),\n finetune: t(\"Adjust\"),\n filter: t(\"Filter\"),\n annotate: t(\"Annotate\"),\n sticker: t(\"Sticker\"),\n redact: t(\"Redact\")\n };\n watch(context.activeMode, (mode) => {\n message.value = t(\"{mode} mode\", { mode: modeLabels[mode] ?? mode });\n });\n let annotationCount = 0;\n watch(context.state, (state) => {\n if (state.annotations.length > annotationCount) {\n message.value = t(\"Annotation added\");\n } else if (state.annotations.length < annotationCount) {\n message.value = t(\"Annotation removed\");\n }\n annotationCount = state.annotations.length;\n });\n watch(() => context.state.value.preset, (preset) => {\n message.value = preset === \"none\" ? t(\"Filter removed\") : t(\"Filter applied\");\n });\n return message;\n}\nconst TEXT_ENTRY = \"input, textarea, select, [contenteditable]\";\nconst ACTIVATABLE = 'button, [role=\"button\"], a[href], summary';\nfunction ownsTextEntry(target) {\n return target instanceof HTMLElement && target.closest(TEXT_ENTRY) !== null;\n}\nfunction ownsSpaceKey(target) {\n return target instanceof HTMLElement && target.closest(`${TEXT_ENTRY}, ${ACTIVATABLE}`) !== null;\n}\nconst NUDGE_KEYS = {\n ArrowLeft: [-1, 0],\n ArrowRight: [1, 0],\n ArrowUp: [0, -1],\n ArrowDown: [0, 1]\n};\nfunction useEditorShortcuts(deps) {\n const { context } = deps;\n let nudging = false;\n function nudgeSelection(event) {\n const id = context.selectedId.value;\n const direction = NUDGE_KEYS[event.key];\n if (id === null || direction === void 0) {\n return;\n }\n event.preventDefault();\n const step = event.shiftKey ? 10 : 1;\n const state = context.state.value;\n nudging = true;\n context.preview({\n ...state,\n annotations: state.annotations.map((annotation) => annotation.id === id ? translateAnnotation(annotation, direction[0] * step, direction[1] * step) : annotation)\n });\n }\n function onKeydown(event) {\n if (deps.isTextEditing() || ownsTextEntry(event.target)) {\n return;\n }\n const meta = event.ctrlKey || event.metaKey;\n if (meta && !event.shiftKey && event.key.toLowerCase() === \"z\") {\n event.preventDefault();\n context.undo();\n return;\n }\n if (meta && event.shiftKey && event.key.toLowerCase() === \"z\" || meta && event.key.toLowerCase() === \"y\") {\n event.preventDefault();\n context.redo();\n return;\n }\n if (event.key === \"+\" || event.key === \"=\") {\n context.setViewZoom(context.viewZoom.value * 1.25);\n return;\n }\n if (event.key === \"-\") {\n context.setViewZoom(context.viewZoom.value / 1.25);\n return;\n }\n if (event.key in NUDGE_KEYS && context.selectedId.value !== null) {\n nudgeSelection(event);\n return;\n }\n if ((event.key === \"Delete\" || event.key === \"Backspace\") && context.selectedId.value !== null) {\n event.preventDefault();\n deps.onDelete();\n } else if (event.key === \"Escape\") {\n deps.onEscape();\n }\n }\n function onKeyup(event) {\n if (ownsTextEntry(event.target)) {\n return;\n }\n if (nudging && event.key in NUDGE_KEYS) {\n nudging = false;\n context.commit(context.state.value, t(\"Move or resize\"));\n }\n }\n onMounted(() => {\n window.addEventListener(\"keydown\", onKeydown);\n window.addEventListener(\"keyup\", onKeyup);\n });\n onBeforeUnmount(() => {\n window.removeEventListener(\"keydown\", onKeydown);\n window.removeEventListener(\"keyup\", onKeyup);\n });\n}\nfunction needsCors(url) {\n let target;\n try {\n target = new URL(url, window.location.href);\n } catch {\n return false;\n }\n return (target.protocol === \"http:\" || target.protocol === \"https:\") && target.origin !== window.location.origin;\n}\nasync function loadImage(source) {\n const url = typeof source === \"string\" ? source : URL.createObjectURL(source);\n try {\n return await new Promise((resolve, reject) => {\n const image = new Image();\n if (needsCors(url)) {\n image.crossOrigin = \"anonymous\";\n }\n image.onload = () => resolve(image);\n image.onerror = () => reject(new Error(t(\"Image could not be decoded\")));\n image.src = url;\n });\n } finally {\n if (typeof source !== \"string\") {\n URL.revokeObjectURL(url);\n }\n }\n}\nasync function canvasToBlob(canvas, type = \"image/png\", quality) {\n return new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob === null) {\n reject(new Error(t(\"Canvas could not be encoded\")));\n return;\n }\n resolve(blob);\n }, type, quality);\n });\n}\nasync function painted() {\n await new Promise((resolve) => {\n requestAnimationFrame(() => requestAnimationFrame(() => resolve(null)));\n });\n}\nfunction useExportImage(deps) {\n const exporting = ref(false);\n async function exportImage(options = {}) {\n const oriented = deps.oriented();\n if (oriented === null) {\n throw new Error(\"No image loaded\");\n }\n const source = deps.source();\n if (source !== null && source.type !== \"\" && isPristine(deps.getState()) && options.maxSize === void 0 && (options.format === void 0 || options.format === source.type)) {\n return { blob: source, width: oriented.width, height: oriented.height, mimeType: source.type };\n }\n exporting.value = true;\n await painted();\n try {\n return await encode(oriented, options);\n } finally {\n exporting.value = false;\n }\n }\n async function encode(oriented, options) {\n const canvas = renderToCanvas(oriented, deps.getState(), options.maxSize);\n const mimeType = options.format ?? \"image/png\";\n try {\n const blob = await canvasToBlob(canvas, mimeType, options.quality);\n return { blob, width: canvas.width, height: canvas.height, mimeType };\n } catch (error) {\n if (error instanceof DOMException && error.name === \"SecurityError\") {\n throw new Error(\n t(\"The image cannot be exported because it was loaded without cross-origin access\"),\n { cause: error }\n );\n }\n throw error;\n }\n }\n async function save() {\n try {\n deps.onSaved(await exportImage(deps.saveOptions()));\n } catch (error) {\n deps.onError(error instanceof Error ? error : new Error(String(error)));\n }\n }\n return { exporting, exportImage, save };\n}\nfunction useTextEditing(deps) {\n const { context } = deps;\n const textEdit = ref(null);\n function startTextEdit(position, existing) {\n const options = deps.viewOptions();\n const oriented = deps.oriented();\n if (options === null || oriented === null) {\n return;\n }\n const origin = options.showCropped ? visibleRect(context.state.value, { width: oriented.width, height: oriented.height }) : { x: 0, y: 0 };\n textEdit.value = {\n sceneX: position.x,\n sceneY: position.y,\n screenX: options.offset.x + (position.x - origin.x) * options.scale,\n screenY: options.offset.y + (position.y - origin.y) * options.scale,\n screenFontSize: (existing?.fontSize ?? context.fontSize.value) * options.scale,\n color: existing?.color ?? context.drawColor.value,\n value: existing?.text ?? \"\",\n id: existing?.id ?? null\n };\n }\n function confirmTextEdit(text) {\n const edit = textEdit.value;\n textEdit.value = null;\n if (edit === null) {\n return;\n }\n const state = context.state.value;\n const trimmed = text.trim();\n if (edit.id !== null) {\n context.commit({\n ...state,\n annotations: trimmed === \"\" ? state.annotations.filter((annotation) => annotation.id !== edit.id) : state.annotations.map((annotation) => annotation.id === edit.id ? { ...annotation, text: trimmed } : annotation)\n }, trimmed === \"\" ? t(\"Delete\") : t(\"Text\"));\n } else if (trimmed !== \"\") {\n context.commit({\n ...state,\n annotations: [...state.annotations, {\n id: newId(),\n type: \"text\",\n x: edit.sceneX,\n y: edit.sceneY,\n text: trimmed,\n color: edit.color,\n fontSize: context.fontSize.value,\n rotation: 0\n }]\n }, t(\"Text\"));\n }\n }\n return { textEdit, startTextEdit, confirmTextEdit };\n}\nfunction useWheelControls(element, context) {\n let dragFrom = null;\n let pinch = null;\n const pointers = /* @__PURE__ */ new Map();\n const spaceHeld = shallowRef(false);\n const toolFreeDrag = () => context.activeTool.value === \"adjust\";\n const zoomed = () => context.viewZoom.value > MIN_ZOOM;\n const panArmed = computed(() => context.viewZoom.value > MIN_ZOOM && (spaceHeld.value || context.activeTool.value === \"adjust\"));\n function anchorAt(position) {\n const rect = element.value?.getBoundingClientRect();\n if (rect === void 0) {\n return void 0;\n }\n return {\n x: position.x - rect.x - rect.width / 2,\n y: position.y - rect.y - rect.height / 2\n };\n }\n function currentPinch() {\n if (pointers.size !== 2) {\n return null;\n }\n const [a, b] = [...pointers.values()];\n return {\n distance: Math.hypot(a.x - b.x, a.y - b.y),\n centroid: { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 }\n };\n }\n function onWheel(event) {\n event.preventDefault();\n if (event.deltaY === 0) {\n return;\n }\n const height = element.value?.clientHeight ?? window.innerHeight;\n const factor = wheelZoomFactor(event.deltaY, event.deltaMode, height);\n context.setViewZoom(context.viewZoom.value * factor, anchorAt({ x: event.clientX, y: event.clientY }));\n }\n function onPointerDown(event) {\n if (event.pointerType === \"touch\") {\n pointers.set(event.pointerId, { x: event.clientX, y: event.clientY });\n if (pointers.size === 2) {\n pinch = currentPinch();\n context.panning.value = true;\n event.stopPropagation();\n }\n return;\n }\n const wantsPan = event.button === 1 || event.button === 0 && (spaceHeld.value || toolFreeDrag());\n if (!wantsPan || !zoomed()) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n dragFrom = {\n pointer: { x: event.clientX, y: event.clientY },\n pan: context.viewPan.value\n };\n context.panning.value = true;\n element.value?.setPointerCapture(event.pointerId);\n }\n function onPointerMove(event) {\n if (event.pointerType === \"touch\" && pointers.has(event.pointerId)) {\n pointers.set(event.pointerId, { x: event.clientX, y: event.clientY });\n const next = currentPinch();\n if (next === null || pinch === null) {\n return;\n }\n event.stopPropagation();\n const ratio = next.distance / pinch.distance;\n if (Math.abs(ratio - 1) > PINCH_TOLERANCE) {\n context.setViewZoom(context.viewZoom.value * ratio, anchorAt(next.centroid));\n } else {\n context.setViewPan({\n x: context.viewPan.value.x + next.centroid.x - pinch.centroid.x,\n y: context.viewPan.value.y + next.centroid.y - pinch.centroid.y\n });\n }\n pinch = next;\n return;\n }\n if (dragFrom === null) {\n return;\n }\n event.stopPropagation();\n context.setViewPan({\n x: dragFrom.pan.x + (event.clientX - dragFrom.pointer.x),\n y: dragFrom.pan.y + (event.clientY - dragFrom.pointer.y)\n });\n }\n function onPointerUp(event) {\n if (event !== void 0) {\n pointers.delete(event.pointerId);\n }\n pinch = currentPinch();\n dragFrom = null;\n if (pointers.size < 2) {\n context.panning.value = false;\n }\n }\n function onKeydown(event) {\n if (event.code !== \"Space\" || ownsSpaceKey(event.target)) {\n return;\n }\n event.preventDefault();\n spaceHeld.value = true;\n }\n function onKeyup(event) {\n if (event.code === \"Space\") {\n spaceHeld.value = false;\n }\n }\n onMounted(() => {\n const target = element.value;\n target?.addEventListener(\"wheel\", onWheel, { passive: false });\n target?.addEventListener(\"pointerdown\", onPointerDown, { capture: true });\n target?.addEventListener(\"pointermove\", onPointerMove, { capture: true });\n target?.addEventListener(\"pointerup\", onPointerUp);\n target?.addEventListener(\"pointercancel\", onPointerUp);\n window.addEventListener(\"keydown\", onKeydown);\n window.addEventListener(\"keyup\", onKeyup);\n });\n onBeforeUnmount(() => {\n const target = element.value;\n target?.removeEventListener(\"wheel\", onWheel);\n target?.removeEventListener(\"pointerdown\", onPointerDown, { capture: true });\n target?.removeEventListener(\"pointermove\", onPointerMove, { capture: true });\n target?.removeEventListener(\"pointerup\", onPointerUp);\n target?.removeEventListener(\"pointercancel\", onPointerUp);\n window.removeEventListener(\"keydown\", onKeydown);\n window.removeEventListener(\"keyup\", onKeyup);\n });\n return { panArmed };\n}\nconst DURATION = 0.3;\nfunction prefersReducedMotion() {\n return typeof window.matchMedia === \"function\" && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n}\nfunction pivotOnCenter(target) {\n target.node.offset(target.pivot);\n target.node.position(target.pivot);\n}\nfunction playTransition(kind, deps, context) {\n if (prefersReducedMotion()) {\n return;\n }\n const { scale } = deps;\n const easing = Konva.Easings.EaseInOut;\n const ratio = context.previousScale / scale;\n for (const target of deps.targets) {\n const { node } = target;\n node.setAttrs({ x: 0, y: 0, offsetX: 0, offsetY: 0, rotation: 0, scaleX: 1, scaleY: 1, opacity: 1 });\n switch (kind) {\n case \"load\":\n pivotOnCenter(target);\n node.opacity(0);\n node.scale({ x: 0.96, y: 0.96 });\n node.to({ opacity: 1, scaleX: 1, scaleY: 1, duration: DURATION, easing });\n break;\n case \"rotate-cw\":\n case \"rotate-ccw\":\n pivotOnCenter(target);\n node.rotation(kind === \"rotate-cw\" ? -90 : 90);\n node.scale({ x: ratio, y: ratio });\n node.to({ rotation: 0, scaleX: 1, scaleY: 1, duration: DURATION, easing });\n break;\n case \"flip-h\":\n pivotOnCenter(target);\n node.scaleX(-1);\n node.to({ scaleX: 1, duration: DURATION, easing });\n break;\n case \"flip-v\":\n pivotOnCenter(target);\n node.scaleY(-1);\n node.to({ scaleY: 1, duration: DURATION, easing });\n break;\n case \"crop\": {\n const { previousScale, previousOffset, previousOrigin } = context;\n node.scale({ x: ratio, y: ratio });\n node.position({\n x: (previousOffset.x - previousOrigin.x * previousScale - (deps.offset.x - deps.origin.x * scale)) * target.unit,\n y: (previousOffset.y - previousOrigin.y * previousScale - (deps.offset.y - deps.origin.y * scale)) * target.unit\n });\n node.to({ x: 0, y: 0, scaleX: 1, scaleY: 1, duration: DURATION, easing });\n break;\n }\n }\n }\n}\nfunction clampCropBox(bounds, oldBox, newBox, keepRatio) {\n const right = bounds.x + bounds.width;\n const bottom = bounds.y + bounds.height;\n let { x, y, width, height } = newBox;\n if (x < bounds.x) {\n width -= bounds.x - x;\n x = bounds.x;\n }\n if (y < bounds.y) {\n height -= bounds.y - y;\n y = bounds.y;\n }\n width = Math.min(width, right - x);\n height = Math.min(height, bottom - y);\n if (keepRatio && oldBox.height > 0) {\n const ratio = oldBox.width / oldBox.height;\n if (width / height > ratio) {\n width = height * ratio;\n } else {\n height = width / ratio;\n }\n if (Math.abs(newBox.x - oldBox.x) > 0.01) {\n x = Math.min(newBox.x + newBox.width, right) - width;\n }\n if (Math.abs(newBox.y - oldBox.y) > 0.01) {\n y = Math.min(newBox.y + newBox.height, bottom) - height;\n }\n }\n return {\n ...newBox,\n x,\n y,\n width: Math.max(8, width),\n height: Math.max(8, height)\n };\n}\nfunction attachCropOverlay(deps) {\n const view = { oriented: deps.oriented, scale: deps.scale, offset: deps.offset };\n const toStage = (rect) => ({\n x: view.offset.x + rect.x * view.scale,\n y: view.offset.y + rect.y * view.scale,\n width: rect.width * view.scale,\n height: rect.height * view.scale\n });\n const toScene = (rect) => ({\n x: (rect.x - view.offset.x) / view.scale,\n y: (rect.y - view.offset.y) / view.scale,\n width: rect.width / view.scale,\n height: rect.height / view.scale\n });\n let imageBounds = toStage({ x: 0, y: 0, ...view.oriented });\n const layer = new Konva.Layer({ name: \"crop\" });\n const makeShade = () => new Konva.Rect({\n fill: \"rgba(0, 0, 0, 0.5)\",\n listening: false\n });\n const shadeTop = makeShade();\n const shadeLeft = makeShade();\n const shadeRight = makeShade();\n const shadeBottom = makeShade();\n for (const shade of [shadeTop, shadeLeft, shadeRight, shadeBottom]) {\n layer.add(shade);\n }\n const cropNode = new Konva.Rect({\n // Named so it can be told apart from the four shade rects\n name: \"crop-rect\",\n ...toStage(clampRect(deps.initial ?? { x: 0, y: 0, ...view.oriented }, view.oriented)),\n stroke: \"rgba(255, 255, 255, 0.9)\",\n strokeWidth: 1,\n draggable: true,\n strokeScaleEnabled: false\n });\n layer.add(cropNode);\n const stageRect = () => ({\n x: cropNode.x(),\n y: cropNode.y(),\n width: cropNode.width() * cropNode.scaleX(),\n height: cropNode.height() * cropNode.scaleY()\n });\n const gridLines = Array.from({ length: 4 }, () => new Konva.Line({\n stroke: \"rgba(255, 255, 255, 0.35)\",\n strokeWidth: 1,\n listening: false\n }));\n for (const line of gridLines) {\n layer.add(line);\n }\n const clampToImage = (rect) => {\n const x = Math.min(Math.max(rect.x, imageBounds.x), imageBounds.x + imageBounds.width - rect.width);\n const y = Math.min(Math.max(rect.y, imageBounds.y), imageBounds.y + imageBounds.height - rect.height);\n return { ...rect, x, y };\n };\n const updateOverlay = () => {\n const rect = stageRect();\n const { x, y, width, height } = imageBounds;\n shadeTop.setAttrs({ x, y, width, height: rect.y - y });\n shadeLeft.setAttrs({ x, y: rect.y, width: rect.x - x, height: rect.height });\n shadeRight.setAttrs({ x: rect.x + rect.width, y: rect.y, width: x + width - rect.x - rect.width, height: rect.height });\n shadeBottom.setAttrs({ x, y: rect.y + rect.height, width, height: y + height - rect.y - rect.height });\n gridLines[0].points([rect.x + rect.width / 3, rect.y, rect.x + rect.width / 3, rect.y + rect.height]);\n gridLines[1].points([rect.x + rect.width * 2 / 3, rect.y, rect.x + rect.width * 2 / 3, rect.y + rect.height]);\n gridLines[2].points([rect.x, rect.y + rect.height / 3, rect.x + rect.width, rect.y + rect.height / 3]);\n gridLines[3].points([rect.x, rect.y + rect.height * 2 / 3, rect.x + rect.width, rect.y + rect.height * 2 / 3]);\n };\n let ratioLocked = false;\n const transformer = new Konva.Transformer({\n nodes: [cropNode],\n rotateEnabled: false,\n flipEnabled: false,\n keepRatio: false,\n // Pintura-style solid round corner dots\n enabledAnchors: [\"top-left\", \"top-right\", \"bottom-left\", \"bottom-right\"],\n anchorSize: 14,\n anchorCornerRadius: 7,\n anchorFill: \"#111\",\n anchorStroke: \"#111\",\n anchorStrokeWidth: 1,\n borderStroke: \"rgba(255, 255, 255, 0.7)\",\n boundBoxFunc: (oldBox, newBox) => ({ ...newBox, ...clampCropBox(imageBounds, oldBox, newBox, ratioLocked) })\n });\n layer.add(transformer);\n cropNode.dragBoundFunc((position) => clampToImage({\n ...position,\n width: cropNode.width() * cropNode.scaleX(),\n height: cropNode.height() * cropNode.scaleY()\n }));\n cropNode.on(\"dragmove transform\", updateOverlay);\n const setAspect = (aspect) => {\n ratioLocked = aspect !== null;\n transformer.keepRatio(ratioLocked);\n if (aspect === null) {\n return;\n }\n const current = stageRect();\n const width = Math.min(\n Math.max(current.width, current.height * aspect),\n imageBounds.width,\n imageBounds.height * aspect\n );\n const height = width / aspect;\n const center = { x: current.x + current.width / 2, y: current.y + current.height / 2 };\n const position = clampToImage({\n x: center.x - width / 2,\n y: center.y - height / 2,\n width,\n height\n });\n cropNode.setAttrs({ ...position, width, height, scaleX: 1, scaleY: 1 });\n transformer.forceUpdate();\n updateOverlay();\n };\n updateOverlay();\n deps.stage.add(layer);\n return {\n layer,\n setAspect,\n update(next) {\n const scene = toScene(stageRect());\n view.oriented = next.oriented;\n view.scale = next.scale;\n view.offset = next.offset;\n imageBounds = toStage({ x: 0, y: 0, ...view.oriented });\n cropNode.setAttrs({ ...toStage(scene), scaleX: 1, scaleY: 1 });\n transformer.forceUpdate();\n updateOverlay();\n },\n getRect() {\n const scene = toScene(stageRect());\n return clampRect({\n x: Math.round(scene.x),\n y: Math.round(scene.y),\n width: Math.round(scene.width),\n height: Math.round(scene.height)\n }, view.oriented);\n },\n destroy() {\n transformer.destroy();\n layer.destroy();\n }\n };\n}\nfunction coverScale(box, degrees) {\n if (box.width <= 0 || box.height <= 0) {\n throw new RangeError(\"Dimensions must be positive\");\n }\n const radians = degrees * Math.PI / 180;\n const cos = Math.abs(Math.cos(radians));\n const sin = Math.abs(Math.sin(radians));\n return Math.max(\n (box.width * cos + box.height * sin) / box.width,\n (box.width * sin + box.height * cos) / box.height\n );\n}\nfunction fitContain(content, container) {\n if (content.width <= 0 || content.height <= 0 || container.width <= 0 || container.height <= 0) {\n throw new RangeError(\"Dimensions must be positive\");\n }\n const scale = Math.min(\n container.width / content.width,\n container.height / content.height,\n 1\n );\n const width = content.width * scale;\n const height = content.height * scale;\n return {\n scale,\n width,\n height,\n x: (container.width - width) / 2,\n y: (container.height - height) / 2\n };\n}\nfunction orientImage(image, state) {\n const natural = { width: image.naturalWidth, height: image.naturalHeight };\n const oriented = orientedSize(natural, state.rotation);\n const canvas = document.createElement(\"canvas\");\n canvas.width = oriented.width;\n canvas.height = oriented.height;\n const context = canvas.getContext(\"2d\");\n if (context === null) {\n throw new Error(\"Canvas 2D context unavailable\");\n }\n const cover = coverScale(oriented, state.fineRotation) * Math.max(1, state.zoom);\n context.translate(oriented.width / 2, oriented.height / 2);\n context.rotate(state.fineRotation * Math.PI / 180);\n context.scale(cover, cover);\n context.rotate(state.rotation * Math.PI / 180);\n context.scale(state.flipX ? -1 : 1, state.flipY ? -1 : 1);\n context.drawImage(image, -natural.width / 2, -natural.height / 2);\n return canvas;\n}\nfunction transformPoints(points, node) {\n const radians = node.rotation() * Math.PI / 180;\n const cos = Math.cos(radians);\n const sin = Math.sin(radians);\n const result = [];\n for (let i = 0; i < points.length; i += 2) {\n const x = points[i] * node.scaleX();\n const y = points[i + 1] * node.scaleY();\n result.push(node.x() + x * cos - y * sin, node.y() + x * sin + y * cos);\n }\n return result;\n}\nfunction applyNodeTransform(annotation, node) {\n switch (annotation.type) {\n case \"draw\":\n case \"arrow\":\n case \"line\": {\n const points = transformPoints(annotation.points, node);\n const scale = (Math.abs(node.scaleX()) + Math.abs(node.scaleY())) / 2;\n const strokeWidth = Math.max(1, annotation.strokeWidth * scale);\n return { ...annotation, points, strokeWidth };\n }\n case \"redact\":\n return {\n ...annotation,\n rect: {\n x: node.x(),\n y: node.y(),\n width: Math.max(1, annotation.rect.width * node.scaleX()),\n height: Math.max(1, annotation.rect.height * node.scaleY())\n }\n };\n case \"rectangle\":\n case \"ellipse\":\n return {\n ...annotation,\n rect: {\n x: node.x(),\n y: node.y(),\n width: Math.max(1, annotation.rect.width * node.scaleX()),\n height: Math.max(1, annotation.rect.height * node.scaleY())\n },\n rotation: node.rotation()\n };\n case \"text\":\n case \"sticker\":\n return {\n ...annotation,\n x: node.x(),\n y: node.y(),\n fontSize: Math.max(4, annotation.fontSize * node.scaleY()),\n rotation: node.rotation()\n };\n }\n}\nfunction attachSelection(deps) {\n const accent = primaryColor();\n const transformer = new Konva.Transformer({\n rotateEnabled: true,\n flipEnabled: false,\n ignoreStroke: true,\n // A plain square with four corner handles\n enabledAnchors: [\"top-left\", \"top-right\", \"bottom-left\", \"bottom-right\"],\n anchorSize: 12,\n anchorCornerRadius: 6,\n anchorFill: \"#fff\",\n anchorStroke: accent,\n borderStroke: accent,\n rotateAnchorOffset: 24,\n rotationSnaps: [0, 45, 90, 135, 180, 225, 270, 315],\n rotationSnapTolerance: 6\n });\n const layer = new Konva.Layer({ name: \"selection\" });\n layer.add(transformer);\n deps.stage.add(layer);\n const findAnnotation = (id) => deps.getState().annotations.find((annotation) => annotation.id === id);\n const findNode = (id) => id === null ? null : deps.stage.find(\".annotation\").find((node) => node.id() === id) ?? null;\n const reportRect = () => {\n const node = findNode(deps.getSelectedId());\n deps.onSelectionRect(node ? node.getClientRect() : null);\n };\n const syncTransformer = () => {\n const id = deps.getSelectedId();\n const node = findNode(id);\n if (node === null || node === void 0) {\n transformer.nodes([]);\n deps.onSelectionRect(null);\n return;\n }\n const annotation = findAnnotation(id);\n transformer.rotateEnabled(annotation !== void 0 && annotation.type !== \"redact\");\n transformer.nodes([node]);\n deps.onSelectionRect(node.getClientRect());\n };\n const sync = () => {\n deps.stage.find(\".annotation\").forEach((node) => node.draggable(true));\n syncTransformer();\n };\n sync();\n const onWriteBack = (event) => {\n const node = event.target;\n const annotation = findAnnotation(node.id());\n if (annotation === void 0) {\n return;\n }\n const state = deps.getState();\n deps.commit({\n ...state,\n annotations: state.annotations.map((entry) => entry.id === annotation.id ? applyNodeTransform(annotation, node) : entry)\n }, t(\"Move or resize\"));\n };\n const onClick = (event) => {\n if (event.target.hasName(\"annotation\")) {\n deps.select(event.target.id());\n } else if (event.target === deps.stage || event.target instanceof Konva.Image) {\n deps.select(null);\n }\n syncTransformer();\n };\n const onDblClick = (event) => {\n const annotation = findAnnotation(event.target.id());\n if (annotation?.type === \"text\") {\n deps.editText(annotation);\n }\n };\n deps.stage.on(\"click.selection tap.selection\", onClick);\n deps.stage.on(\"dblclick.selection dbltap.selection\", onDblClick);\n deps.stage.on(\"dragend.selection transformend.selection\", onWriteBack);\n deps.stage.on(\"dragmove.selection transform.selection\", reportRect);\n return {\n sync,\n detach() {\n deps.stage.off(\".selection\");\n deps.stage.find(\".annotation\").forEach((node) => node.draggable(false));\n deps.onSelectionRect(null);\n transformer.destroy();\n layer.destroy();\n }\n };\n}\nconst TOOL_LABELS = {\n draw: t(\"Draw\"),\n rectangle: t(\"Rectangle\"),\n ellipse: t(\"Ellipse\"),\n arrow: t(\"Arrow\"),\n line: t(\"Line\"),\n sticker: t(\"Sticker\"),\n redact: t(\"Redact\")\n};\nfunction attachPointerTools(tool, deps) {\n if (![\"draw\", \"rectangle\", \"ellipse\", \"arrow\", \"line\", \"text\", \"sticker\", \"redact\"].includes(tool)) {\n return () => {\n };\n }\n let active = null;\n let previewNode = null;\n let start = { x: 0, y: 0 };\n let pendingText = null;\n const scenePointer = () => {\n const pointer = deps.stage.getPointerPosition();\n return pointer === null ? null : deps.toScene(pointer);\n };\n const refreshPreview = () => {\n if (active === null) {\n previewNode?.destroy();\n previewNode = null;\n return;\n }\n if (previewNode !== null && (active.type === \"draw\" || active.type === \"arrow\" || active.type === \"line\")) {\n previewNode.points(active.points);\n return;\n }\n previewNode?.destroy();\n previewNode = null;\n const source = deps.oriented() ?? void 0;\n if (active.type === \"redact\" && source === void 0) {\n return;\n }\n previewNode = buildAnnotationNode(active, source);\n deps.contentGroup()?.add(previewNode);\n };\n const discard = () => {\n active = null;\n pendingText = null;\n previewNode?.destroy();\n previewNode = null;\n };\n const onPointerDown = () => {\n const point = scenePointer();\n if (point === null || deps.panning()) {\n return;\n }\n const options = deps.options();\n start = point;\n switch (tool) {\n case \"draw\":\n active = { id: newId(), type: \"draw\", points: [point.x, point.y], color: options.color, strokeWidth: options.strokeWidth };\n break;\n case \"arrow\":\n case \"line\":\n active = { id: newId(), type: tool, points: [point.x, point.y, point.x, point.y], color: options.color, strokeWidth: options.strokeWidth };\n break;\n case \"rectangle\":\n case \"ellipse\":\n active = { id: newId(), type: tool, rect: { x: point.x, y: point.y, width: 1, height: 1 }, rotation: 0, color: options.color, strokeWidth: options.strokeWidth };\n break;\n case \"redact\":\n active = { id: newId(), type: \"redact\", rect: { x: point.x, y: point.y, width: 1, height: 1 }, style: options.redactStyle };\n break;\n case \"text\":\n pendingText = point;\n return;\n case \"sticker\": {\n const state = deps.getState();\n const sticker = {\n id: newId(),\n type: \"sticker\",\n x: point.x,\n y: point.y,\n text: options.sticker,\n color: options.color,\n fontSize: options.fontSize * 2,\n rotation: 0\n };\n deps.commit({ ...state, annotations: [...state.annotations, sticker] }, TOOL_LABELS.sticker);\n return;\n }\n }\n refreshPreview();\n };\n const onPointerMove = () => {\n if (active === null) {\n return;\n }\n if (deps.panning()) {\n discard();\n return;\n }\n const point = scenePointer();\n if (point === null) {\n return;\n }\n switch (active.type) {\n case \"draw\":\n active.points.push(point.x, point.y);\n break;\n case \"arrow\":\n case \"line\":\n active.points = [start.x, start.y, point.x, point.y];\n break;\n case \"rectangle\":\n case \"ellipse\":\n case \"redact\":\n active = {\n ...active,\n rect: {\n x: Math.min(start.x, point.x),\n y: Math.min(start.y, point.y),\n width: Math.abs(point.x - start.x) || 1,\n height: Math.abs(point.y - start.y) || 1\n }\n };\n break;\n }\n refreshPreview();\n };\n const onPointerUp = () => {\n if (pendingText !== null) {\n deps.startTextEdit(pendingText);\n pendingText = null;\n return;\n }\n if (active === null) {\n return;\n }\n const state = deps.getState();\n deps.commit({ ...state, annotations: [...state.annotations, active] }, TOOL_LABELS[tool]);\n discard();\n };\n deps.stage.on(\"pointerdown.tool\", onPointerDown);\n deps.stage.on(\"pointermove.tool\", onPointerMove);\n deps.stage.on(\"pointerup.tool\", onPointerUp);\n window.addEventListener(\"pointerup\", onPointerUp);\n window.addEventListener(\"pointercancel\", discard);\n return () => {\n deps.stage.off(\".tool\");\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", discard);\n previewNode?.destroy();\n };\n}\nconst _hoisted_1 = { class: \"image-editor__shell\" };\nconst _hoisted_2 = { class: \"image-editor__frame\" };\nconst _hoisted_3 = { class: \"image-editor__viewport\" };\nconst _hoisted_4 = [\"aria-label\"];\nconst _hoisted_5 = {\n key: 1,\n class: \"image-editor__error\",\n \"data-test\": \"load-error\"\n};\nconst _hoisted_6 = {\n class: \"hidden-visually\",\n role: \"status\",\n \"aria-live\": \"polite\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ImageEditor\",\n props: {\n src: {},\n label: {},\n exportOptions: {},\n initialState: {},\n saving: { type: Boolean }\n },\n emits: [\"save\", \"cancel\", \"error\", \"change\"],\n setup(__props, { expose: __expose, emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const labels = {\n canvas: t(\"Image editor\"),\n failed: t(\"The image could not be loaded\"),\n retry: t(\"Try again\")\n };\n let loadAttempt = 0;\n const context = createEditorContext();\n const container = useTemplateRef(\"container\");\n const loaded = ref(false);\n const errored = ref(false);\n const containerSize = shallowRef({ width: 0, height: 0 });\n const orientedCanvas = shallowRef(null);\n const sourceImage = shallowRef(null);\n const { ambient, backdrop } = useAmbient(sourceImage);\n const { panArmed } = useWheelControls(container, context);\n const announcement = useAnnouncements(context);\n const selectionBox = shallowRef(null);\n let stage = null;\n let scene = null;\n let cropOverlay = null;\n let selection = null;\n let detachTool = null;\n let attached = null;\n let resizeObserver = null;\n let pendingTransition = null;\n let lastView = null;\n const canvasCursor = computed(() => {\n if (context.panning.value) {\n return \"grabbing\";\n }\n if (panArmed.value) {\n return \"grab\";\n }\n const tool = context.activeTool.value;\n if ([\"draw\", \"rectangle\", \"ellipse\", \"arrow\", \"line\", \"text\", \"sticker\", \"redact\"].includes(tool)) {\n return \"crosshair\";\n }\n return \"default\";\n });\n const viewFit = computed(() => {\n const oriented = orientedCanvas.value;\n if (oriented === null || containerSize.value.width === 0 || containerSize.value.height === 0) {\n return null;\n }\n const showCropped = context.activeTool.value !== \"crop\";\n const visible = showCropped ? visibleRect(context.state.value, { width: oriented.width, height: oriented.height }) : { x: 0, y: 0, width: oriented.width, height: oriented.height };\n const container2 = containerSize.value;\n const fit = fitContain(\n { width: visible.width, height: visible.height },\n {\n width: Math.max(1, container2.width - VIEW_MARGIN * 2),\n height: Math.max(1, container2.height - VIEW_MARGIN * 2)\n }\n );\n return { scale: fit.scale, visible, container: container2, showCropped };\n });\n const viewOptions = computed(() => {\n const fit = viewFit.value;\n if (fit === null) {\n return null;\n }\n const scale = fit.scale * context.viewZoom.value;\n const pan = clampPan(context.viewPan.value, panBounds(fit.visible, scale, fit.container));\n return {\n scale,\n offset: {\n x: (fit.container.width - fit.visible.width * scale) / 2 + pan.x,\n y: (fit.container.height - fit.visible.height * scale) / 2 + pan.y\n },\n showCropped: fit.showCropped,\n fastFilters: context.interacting.value\n };\n });\n const { textEdit, startTextEdit, confirmTextEdit } = useTextEditing({\n context,\n viewOptions: () => viewOptions.value,\n oriented: () => orientedCanvas.value\n });\n const { exporting, exportImage, save: onSave } = useExportImage({\n oriented: () => orientedCanvas.value,\n getState: () => context.state.value,\n source: () => props.src instanceof Blob ? props.src : null,\n saveOptions: () => props.exportOptions ?? {},\n onSaved: (result) => emit(\"save\", result),\n onError: (error) => emit(\"error\", error)\n });\n function captureView() {\n return lastView ?? { previousScale: 1, previousOffset: { x: 0, y: 0 }, previousOrigin: { x: 0, y: 0 } };\n }\n function commitWithTransition(kind, next, label) {\n pendingTransition = { kind, context: captureView() };\n context.commit(next, label);\n }\n function renderView() {\n const oriented = orientedCanvas.value;\n const options = viewOptions.value;\n if (stage === null || oriented === null || options === null) {\n return;\n }\n stage.size(containerSize.value);\n scene ??= createScene(stage);\n scene.update(oriented, context.state.value, options);\n const renderedOrigin = options.showCropped ? visibleRect(context.state.value, { width: oriented.width, height: oriented.height }) : { x: 0, y: 0 };\n syncTools(oriented, options);\n if (pendingTransition !== null) {\n const visible = options.showCropped ? visibleRect(context.state.value, { width: oriented.width, height: oriented.height }) : { x: 0, y: 0, width: oriented.width, height: oriented.height };\n const center = {\n x: visible.x + visible.width / 2,\n y: visible.y + visible.height / 2\n };\n const targets = [{\n node: scene.contentGroup,\n pivot: center,\n unit: 1 / options.scale\n }];\n if (cropOverlay !== null) {\n targets.push({\n node: cropOverlay.layer,\n pivot: {\n x: options.offset.x + (center.x - renderedOrigin.x) * options.scale,\n y: options.offset.y + (center.y - renderedOrigin.y) * options.scale\n },\n unit: 1\n });\n }\n playTransition(pendingTransition.kind, {\n targets,\n scale: options.scale,\n offset: options.offset,\n origin: renderedOrigin\n }, pendingTransition.context);\n pendingTransition = null;\n }\n lastView = {\n previousScale: options.scale,\n previousOffset: options.offset,\n previousOrigin: { x: renderedOrigin.x, y: renderedOrigin.y }\n };\n }\n function syncTools(oriented, options) {\n if (stage === null) {\n return;\n }\n const tool = context.activeTool.value;\n const crop = context.state.value.crop;\n const fresh = attached !== null && attached.tool === tool && attached.oriented === oriented && attached.crop === crop;\n if (fresh) {\n selection?.sync();\n cropOverlay?.update({\n oriented: { width: oriented.width, height: oriented.height },\n scale: options.scale,\n offset: options.offset\n });\n return;\n }\n detachTool?.();\n detachTool = null;\n selection?.detach();\n selection = null;\n cropOverlay?.destroy();\n cropOverlay = null;\n attached = { tool, oriented, crop };\n if (tool === \"select\") {\n selection = attachSelection({\n stage,\n getState: () => context.state.value,\n commit: context.commit,\n select: (id) => {\n context.selectedId.value = id;\n },\n getSelectedId: () => context.selectedId.value,\n editText: (annotation) => startTextEdit({ x: annotation.x, y: annotation.y }, annotation),\n onSelectionRect: (rect) => {\n selectionBox.value = rect;\n }\n });\n } else if (tool === \"crop\") {\n cropOverlay = attachCropOverlay({\n stage,\n oriented: { width: oriented.width, height: oriented.height },\n scale: options.scale,\n offset: options.offset,\n initial: crop\n });\n applyCropAspect();\n } else if (tool !== \"adjust\") {\n detachTool = attachPointerTools(tool, {\n stage,\n contentGroup: () => scene?.contentGroup ?? null,\n oriented: () => orientedCanvas.value,\n getState: () => context.state.value,\n commit: context.commit,\n // Read the live view: the tool outlives the transform it was\n // attached under\n toScene: (pointer) => toImageCoords(\n pointer,\n context.state.value,\n { width: oriented.width, height: oriented.height },\n viewOptions.value ?? options\n ),\n panning: () => context.panning.value,\n options: () => ({\n color: context.drawColor.value,\n strokeWidth: context.strokeWidth.value,\n fontSize: context.fontSize.value,\n sticker: context.sticker.value,\n redactStyle: context.redactStyle.value\n }),\n startTextEdit: (position) => startTextEdit(position)\n });\n }\n }\n function applyCropAspect() {\n if (cropOverlay === null) {\n return;\n }\n const aspect = context.cropAspect.value;\n const oriented = orientedCanvas.value;\n if (aspect === \"original\" && oriented !== null) {\n cropOverlay.setAspect(oriented.width / oriented.height);\n } else {\n cropOverlay.setAspect(typeof aspect === \"number\" ? aspect : null);\n }\n }\n function refreshOrientedCanvas() {\n if (sourceImage.value === null) {\n return;\n }\n orientedCanvas.value = orientImage(sourceImage.value, context.state.value);\n }\n function seedState(seed, image) {\n if (seed.crop === null) {\n return seed;\n }\n const oriented = orientedSize({ width: image.naturalWidth, height: image.naturalHeight }, seed.rotation);\n return { ...seed, crop: clampRect(seed.crop, oriented) };\n }\n async function load() {\n const attempt = ++loadAttempt;\n loaded.value = false;\n errored.value = false;\n try {\n const image = await loadImage(props.src);\n if (attempt !== loadAttempt) {\n return;\n }\n sourceImage.value = image;\n context.reset(props.initialState === void 0 ? void 0 : seedState(props.initialState, image));\n const minDimension = Math.min(image.naturalWidth, image.naturalHeight);\n context.fontSize.value = Math.min(128, Math.max(12, Math.round(minDimension / 15)));\n pendingTransition = { kind: \"load\", context: captureView() };\n refreshOrientedCanvas();\n loaded.value = true;\n } catch (error) {\n if (attempt !== loadAttempt) {\n return;\n }\n errored.value = true;\n emit(\"error\", error instanceof Error ? error : new Error(String(error)));\n }\n }\n function currentOriented() {\n const oriented = orientedCanvas.value;\n return { width: oriented.width, height: oriented.height };\n }\n function onRotateCW() {\n commitWithTransition(\"rotate-cw\", rotateCW(context.state.value, currentOriented()), t(\"Rotate right\"));\n }\n function onRotateCCW() {\n let state = context.state.value;\n let oriented = currentOriented();\n for (let i = 0; i < 3; i++) {\n state = rotateCW(state, oriented);\n oriented = { width: oriented.height, height: oriented.width };\n }\n commitWithTransition(\"rotate-ccw\", state, t(\"Rotate left\"));\n }\n function onFlipHorizontal() {\n commitWithTransition(\"flip-h\", flipHorizontal(context.state.value, currentOriented()), t(\"Flip horizontal\"));\n }\n function onFlipVertical() {\n commitWithTransition(\"flip-v\", flipVertical(context.state.value, currentOriented()), t(\"Flip vertical\"));\n }\n function onApplyCrop() {\n if (cropOverlay !== null) {\n const crop = cropOverlay.getRect();\n pendingTransition = { kind: \"crop\", context: captureView() };\n context.commit({ ...context.state.value, crop }, t(\"Crop\"));\n context.setMode(\"annotate\");\n }\n }\n function onDuplicateSelection() {\n const id = context.selectedId.value;\n const state = context.state.value;\n const annotation = state.annotations.find((entry) => entry.id === id);\n if (annotation === void 0) {\n return;\n }\n const copy = duplicateAnnotation(annotation);\n context.commit({ ...state, annotations: [...state.annotations, copy] }, t(\"Duplicate\"));\n context.selectedId.value = copy.id;\n renderView();\n }\n function onRevert() {\n context.commit(createInitialState(), t(\"Revert all changes\"));\n }\n function onResetCrop() {\n context.commit({ ...context.state.value, crop: null }, t(\"Reset crop\"));\n }\n function onDeleteSelection() {\n const id = context.selectedId.value;\n if (id === null) {\n return;\n }\n const state = context.state.value;\n context.selectedId.value = null;\n context.commit({\n ...state,\n annotations: state.annotations.filter((annotation) => annotation.id !== id)\n }, t(\"Delete\"));\n }\n useEditorShortcuts({\n context,\n isTextEditing: () => textEdit.value !== null,\n onDelete: onDeleteSelection,\n onEscape: () => {\n if (context.selectedId.value !== null) {\n context.selectedId.value = null;\n renderView();\n } else if (context.activeMode.value === \"crop\") {\n context.setMode(\"select\");\n } else if (context.activeMode.value === \"annotate\" && context.activeTool.value !== \"select\") {\n context.activeTool.value = \"select\";\n }\n }\n });\n watch(viewFit, (fit) => {\n context.viewFit.value = fit;\n }, { immediate: true });\n provideEditorCommands({\n rotateCW: onRotateCW,\n rotateCCW: onRotateCCW,\n flipHorizontal: onFlipHorizontal,\n flipVertical: onFlipVertical,\n applyCrop: onApplyCrop,\n resetCrop: onResetCrop,\n revert: onRevert\n });\n watch(() => props.src, load);\n watch(\n [\n () => context.state.value.rotation,\n () => context.state.value.flipX,\n () => context.state.value.flipY,\n () => context.state.value.fineRotation,\n () => context.state.value.zoom\n ],\n refreshOrientedCanvas\n );\n watch(\n [context.state, context.activeTool, context.activeMode, context.viewZoom, context.viewPan, context.interacting, orientedCanvas, containerSize],\n renderView\n );\n watch(context.cropAspect, applyCropAspect);\n watch(context.selectedId, (id) => {\n const annotation = context.state.value.annotations.find((entry) => entry.id === id);\n if (annotation !== void 0 && \"color\" in annotation && annotation.type !== \"sticker\") {\n context.drawColor.value = annotation.color;\n }\n });\n watch([context.state, context.interacting], () => {\n if (!context.interacting.value) {\n emit(\"change\", structuredClone(context.state.value));\n }\n });\n onMounted(() => {\n stage = new Konva.Stage({ container: container.value, width: 1, height: 1 });\n resizeObserver = new ResizeObserver(() => {\n const { clientWidth, clientHeight } = container.value;\n containerSize.value = { width: clientWidth, height: clientHeight };\n });\n resizeObserver.observe(container.value);\n load();\n });\n onBeforeUnmount(() => {\n resizeObserver?.disconnect();\n detachTool?.();\n selection?.detach();\n cropOverlay?.destroy();\n scene?.destroy();\n scene = null;\n stage?.destroy();\n stage = null;\n });\n __expose({\n exportImage,\n /**\n * Start over, optionally from a given state.\n *\n * @param state state to reset to, defaulting to a pristine one\n */\n reset: (state) => context.reset(state)\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"image-editor\",\n style: normalizeStyle({\n \"--editor-ambient\": unref(ambient),\n \"--editor-backdrop\": unref(backdrop) ? `url(${unref(backdrop)})` : \"none\"\n })\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", {\n ref_key: \"container\",\n ref: container,\n class: \"image-editor__canvas\",\n style: normalizeStyle({ cursor: canvasCursor.value }),\n role: \"img\",\n \"aria-label\": __props.label ?? labels.canvas\n }, null, 12, _hoisted_4),\n !loaded.value && !errored.value ? (openBlock(), createBlock(unref(NcLoadingIcon), {\n key: 0,\n class: \"image-editor__loading\",\n size: 44\n })) : createCommentVNode(\"\", true),\n errored.value ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n createElementVNode(\"p\", null, toDisplayString(labels.failed), 1),\n createVNode(unref(NcButton), {\n variant: \"secondary\",\n \"data-test\": \"retry\",\n onClick: _cache[0] || (_cache[0] = ($event) => load())\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(labels.retry), 1)\n ]),\n _: 1\n })\n ])) : createCommentVNode(\"\", true),\n unref(textEdit) !== null ? (openBlock(), createBlock(TextOverlay, {\n key: 2,\n x: unref(textEdit).screenX,\n y: unref(textEdit).screenY,\n \"font-size\": unref(textEdit).screenFontSize,\n color: unref(textEdit).color,\n initial: unref(textEdit).value,\n onConfirm: unref(confirmTextEdit),\n onCancel: _cache[1] || (_cache[1] = ($event) => textEdit.value = null)\n }, null, 8, [\"x\", \"y\", \"font-size\", \"color\", \"initial\", \"onConfirm\"])) : createCommentVNode(\"\", true),\n selectionBox.value !== null ? (openBlock(), createBlock(SelectionToolbar, {\n key: 3,\n box: selectionBox.value,\n onDuplicate: onDuplicateSelection,\n onDelete: onDeleteSelection\n }, null, 8, [\"box\"])) : createCommentVNode(\"\", true)\n ]),\n createVNode(EditorTopBar, {\n class: \"image-editor__topbar\",\n loaded: loaded.value,\n saving: unref(exporting) || __props.saving === true,\n onSave: unref(onSave),\n onCancel: _cache[2] || (_cache[2] = ($event) => emit(\"cancel\"))\n }, null, 8, [\"loaded\", \"saving\", \"onSave\"]),\n createVNode(EditorPanel, {\n class: normalizeClass(unref(context).activeMode.value === \"filter\" ? \"image-editor__strip\" : \"image-editor__controls\"),\n loaded: loaded.value,\n oriented: orientedCanvas.value\n }, null, 8, [\"class\", \"loaded\", \"oriented\"]),\n createVNode(EditorSidebar, {\n class: \"image-editor__rail\",\n loaded: loaded.value\n }, null, 8, [\"loaded\"]),\n createElementVNode(\"span\", _hoisted_6, toDisplayString(unref(announcement)), 1)\n ])\n ])\n ], 4);\n };\n }\n});\nconst ImageEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-5225c517\"]]);\nexport {\n ImageEditor,\n createInitialState,\n isPristine,\n useHistory\n};\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n\n"],"names":["PI_OVER_180","detectBrowser","glob","global","Konva","param","angle","_a","_b","_registerNode","NodeClass","NODE_ERROR","ensureBrowser","Transform","m","tr","point","x","y","sx","sy","rad","c","s","m11","m12","m21","m22","matrix","dx","dy","d","m0","m1","m2","m3","m4","m5","a","b","e","f","delta","result","r","Util","OBJECT_ARRAY","OBJECT_NUMBER","OBJECT_STRING","OBJECT_BOOLEAN","PI_OVER_DEG180","DEG180_OVER_PI","HASH","EMPTY_STRING","ZERO","KONVA_WARNING","KONVA_ERROR","COLORS","_isCanvasFarblingActive","defaultWindow","animQueues","requestFrame","win","capitalizeCache","splitColorComponents","str","components","NUMBER_SOURCE","COLOR_COMPONENT_REGEX","parseColorComponent","value","max","match","HEX_COLOR_REGEX","clamp01","HUE_REGEX","HUE_UNITS","obj","val","selector","firstChar","number","callback","target","queue","cb","canvas","el","url","imageObj","g","hex","bigint","randColor","ctx","isFarbling","i","color","rgb","parts","hue","unit","degrees","h","t2","t1","t3","r1","r2","retObj","key","arr","deg","radians","cached","out","func","left","right","x1","y1","x2","y2","x3","y3","dist","pd2","u","pt","line","isClosed","pc","p1","p2","proj","px","py","pdist","startArray","endArray","start","end","temp","n","newStart","pr","desc","source","evt","canvases","context","width","height","cornerRadius","xOrigin","yOrigin","topLeft","topRight","bottomLeft","bottomRight","points","sides","radius","prev","curr","next","vec1","vec2","len1","len2","currCornerRadius","normalVec1","normalVec2","simplifyArray","retArr","len","util","COMMA","OPEN_PAREN","CLOSE_PAREN","OPEN_PAREN_BRACKET","CLOSE_BRACKET_PAREN","SEMICOLON","DOUBLE_PAREN","EQUALS","CONTEXT_METHODS","CONTEXT_PROPERTIES","traceArrMax","_cssFiltersSupported","isCSSFiltersSupported","Context","shape","relaxed","rounded","traceArr","trace","method","args","pixelRatio","bounds","lineCap","absOpacity","lineJoin","miterLimit","attr","startAngle","endAngle","counterClockwise","cp1x","cp1y","cp2x","cp2y","x0","y0","image","repetition","r0","sWidth","sHeight","dWidth","dHeight","_context","radiusX","radiusY","rotation","counterclockwise","path","fillRule","text","maxWidth","sw","sh","radii","imageData","cpx","cpy","segments","path2d","that","origSetter","methodName","origMethod","ret","prop","node","op","SceneContext","willReadFrequently","fill","grd","hasColor","fillPriority","hasPattern","hasLinearGradient","hasRadialGradient","colorStops","dash","strokeScaleEnabled","_c","blur","offset","scale","ratio","scaleX","scaleY","HitContext","hitStrokeWidth","strokeWidth","_pixelRatio","getDevicePixelRatio","devicePixelRatio","backingStoreRatio","Canvas","config","previousRatio","mimeType","quality","err","SceneCanvas","HitCanvas","DD","flag","elem","endDragBefore","drag","nodesToFireEvents","stage","pos","dragDistance","drawNodes","drawNode","_formatValue","RGBComponent","getNumberValidator","getNumberOrArrayOfNumbersValidator","noOfElements","isNumber","isValidArray","getNumberOrAutoValidator","getStringValidator","getStringOrGradientValidator","isString","isGradient","getNumberArrayValidator","TypedArray","item","getBooleanValidator","getComponentValidator","GET","SET","Factory","constructor","def","validator","after","capitalize","getter","setter","component","basicValidator","oldVal","capitalizedAttr","message","methods","oldMethodName","newMethodName","oldGetter","oldSetter","deprecated","parseCSSFilters","cssFilter","filterRegex","filterName","filterValue","blurRadius","KonvaFilters","brightness","contrast","konvaContrast","ABSOLUTE_OPACITY","ALL_LISTENERS","ABSOLUTE_TRANSFORM","ABSOLUTE_SCALE","CANVAS","CHANGE","CHILDREN","KONVA","LISTENING","MOUSEENTER","MOUSELEAVE","POINTERENTER","POINTERLEAVE","TOUCHENTER","TOUCHLEAVE","SHAPE","SPACE","STAGE","TRANSFORM","UPPER_STAGE","VISIBLE","TRANSFORM_CHANGE_STR","idCounter","Node","privateGetter","cache","name","deps","depsString","dep","scene","filter","hit","conf","rect","drawBorder","hitCanvasPixelRatio","extraPaddingX","extraPaddingY","cachedSceneCanvas","cachedFilterCanvas","sceneContext","bufferCanvas","bufferContext","top","hitCanvas","hitContext","minX","minY","maxX","maxY","trans","transformed","canvasCache","cacheCanvas","filters","cachedCanvas","sceneCanvas","filterCanvas","filterContext","useNativeOnly","finalFilter","evtStr","selectorOrHandler","events","baseEvent","t","event","type","handler","stopNode","targets","parent","ancestors","relativeTo","skipDragCheck","layer","layerUnderDrag","dragSkip","depth","index","nodes","child","addChildren","children","transform","haveCachedParent","absoluteMatrix","absoluteTransform","origTrans","it","change","changeX","changeY","family","theta","zIndex","newContainer","attrs","defaultValue","nonPlainObject","includeSelf","res","ancestor","selectorArr","sel","eventType","bubble","at","transformsEnabled","offsetX","offsetY","skewX","skewY","allListeners","listener","box","resolve","reject","img","blob","size","evtListeners","evtName","newVal","oldName","newName","fullName","names","compareShape","nonBubbling","stopBubble","nodeType","seen","hierarchyEvents","entry","topListeners","selfListeners","list","origLen","liveListeners","pointerId","ap","bubbleEvent","newNodePos","dbf","bounded","draggable","hasDraggingChild","dragElement","isDragging","isReady","margin","screenRect","data","container","className","no","Class","addGetterSetter","Container","filterFunc","findOne","valid","fn","shouldStop","isAbsTransform","callbacks","can","caching","cachedHitCanvas","drawMethod","clipWidth","clipHeight","clipFunc","hasClip","selfCache","clipArgs","clipX","clipY","hasComposition","skipTransform","selfRect","shapes","hasVisible","Captures","SUPPORT_POINTER_EVENTS","getCapturedShape","createEvent","hasPointerCapture","setPointerCapture","releaseCapture","STRING","PX","MOUSEOUT","MOUSEOVER","MOUSEMOVE","MOUSEDOWN","MOUSEUP","POINTERMOVE","POINTERDOWN","POINTERUP","POINTERCANCEL","LOSTPOINTERCAPTURE","POINTEROUT","POINTEROVER","CONTEXTMENU","TOUCHSTART","TOUCHEND","TOUCHMOVE","TOUCHCANCEL","WHEEL","MAX_LAYERS_NUMBER","EVENTS","EVENTS_MAP","getEventType","getEventsMap","checkNoClip","NO_POINTERS_MESSAGE","stages","listeningWindows","listenToWindow","Stage","isLayer","isFastLayer","style","id","layers","content","p","layerCanvas","rest","length","PointerEvents.hasPointerCapture","PointerEvents.setPointerCapture","PointerEvents.releaseCapture","evenType","targetShape","eventsEnabled","triggeredOnShape","isTouch","isTouchPointer","processedShapesIds","PointerEvents.getCapturedShape","differentTarget","wasDragged","listenClick","clickStartShape","clickEndShape","skipPointerUpTrigger","fireDblClick","PointerEvents.createEvent","contentPosition","touch","HAS_SHADOW","SHADOW_RGBA","patternImage","linearGradient","radialGradient","dummyContext","getDummyContext","_fillFunc","_strokeFunc","_fillFuncHit","_strokeFuncHit","_clearHasShadowCache","_clearGetShadowRGBACache","_clearFillPatternCache","_clearLinearGradientCache","_clearRadialGradientCache","Shape","attempts","pattern","rgba","bufferHitCanvas","forceFill","hasFill","hasStroke","isTransparent","hasShadow","strokeForShadow","hasCachedParent","fillRect","fillAndStrokeWidth","fillAndStrokeHeight","applyShadow","shadowOffsetX","shadowOffsetY","preWidth","preHeight","drawFunc","cachingSelf","bc","o","alphaThreshold","hitWidth","hitHeight","hitImageData","hitData","rgbColorKey","BEFORE_DRAW","DRAW","INTERSECTION_OFFSETS","INTERSECTION_OFFSETS_LEN","Layer","_canvas","listening","spiralSearchDistance","continueSearch","intersectionOffset","p3","colorKey","FastLayer","Group","now","Animation","lays","animations","time","anim","layerHash","layersLen","needRedraw","Anim","blacklist","PAUSED","PLAYING","REVERSING","colorAttrs","colorToRGBA","TweenEngine","propFunc","begin","finish","duration","yoyo","Tween","nodeId","easing","Easings","diff","trueEnd","trueStart","endRGBA","tweenId","startRGBA","thisId","params","onFinish","Global","Arc","clockwise","innerRadius","outerRadius","rawAngle","boundLeftRatio","boundRightRatio","boundTopRatio","boundBottomRatio","boundLeft","boundRight","boundTop","boundBottom","tValues","cValues","binomialCoefficients","getCubicArcLength","xs","ys","sum","correctedT","z","BFunc","getQuadraticArcLength","ax","ay","bx","by","A","B","C","k","uuk","bbk","term","xbase","getDerivative","ybase","combined","derivative","vs","_vs","t2length","totalLength","error","step","numIterations","increasedTLength","increasedTError","decreasedTLength","decreasedTError","quadraticAt","p0","mt","getQuadraticExtremaPoints","extrema","axis","cubicAt","getCubicExtremaPoints","discriminant","q","getControlPoints","d01","d12","dSum","fa","fb","p1x","p1y","p2x","p2y","expandPoints","tension","allPoints","cp","getBezierExtremaPoints","Line","onQuadratic","onCubic","closed","tp","bezier","_x0","_y0","firstControlPoints","lastControlPoints","middle","Path","ca","cx","cy","rx","ry","dTheta","psi","fs","inc","dataArray","pathLength","ii","j","P1x","P1y","P2x","P2y","fromX","fromY","run","rise","ix","iy","pRise","pRun","adjustedRun","adjustedRise","pct","P3x","P3y","P4x","P4y","CB1","CB2","CB3","CB4","v","QB1","QB2","QB3","cosPsi","sinPsi","cs","cc","coords","re","arcParamIndex","jlen","token","parsedArc","parsed","cmd","startX","startY","prevCmd","ctlPtx","ctlPty","idx","psiDeg","xp","yp","lambda","cxp","cyp","vMag","vRatio","vAngle","Arrow","PI2","fromTension","lp","lastLength","previous","isDashEnabled","lineRect","Circle","Ellipse","Image","props","hasCornerRadius","cropWidth","cropHeight","onError","ATTR_CHANGE_LIST","CHANGE_KONVA","NONE","UP","RIGHT","DOWN","LEFT","attrChangeListLen","Label","tag","pointerDirection","pointerWidth","pointerHeight","Tag","direction","Rect","RegularPolygon","PIx2","Ring","Sprite","updated","ix4","set","offsets","ix2","animation","Star","numPoints","stringToArray","string","acc","char","array","nextChar","AUTO","CENTER","INHERIT","JUSTIFY","CONTEXT_2D","DASH","TEXT","TEXT_UPPER","TOP","BOTTOM","MIDDLE","NORMAL","PX_SPACE","RTL","WORD","CHAR","ELLIPSIS","_shadowOpacityBuggy","hasShadowOpacityBug","normalizeFontFamily","fontFamily","hasSpace","hasQuotes","checkDefaultFill","Text","textArr","textArrLen","padding","fontSize","lineHeightPx","verticalAlign","alignY","align","totalWidth","letterSpacing","charRenderFunc","textDecoration","underlineOffset","shouldUnderline","shouldLineThrough","translateY","baseline","metrics","ascent","descent","fillStyleBefore","strokeStyleBefore","lineTranslateX","lineTranslateY","lastLine","yOffset","lineWidth","gradient","lineThroughStartX","spacesNumber","li","letter","previousGraphemes","charIndex","fillStyleAfter","strokeStyleAfter","_d","_e","_f","_g","_h","_j","_k","_l","scaleFactor","lines","textWidth","fixedWidth","fixedHeight","maxHeightPx","currentHeightPx","wrap","shouldWrap","wrapAtWord","shouldAddEllipsis","additionalWidth","lineArray","low","high","matchWidth","mid","substr","substrWidth","matchArray","nextIsSpaceOrDash","wrapIndex","lastSpaceIndex","lastDashIndex","hasLine","TextPath","glyphInfo","hasUnderline","hasLineThrough","charArr","chars","fullTextWidth","kerningFunc","kerningAdjustment","offsetToGlyph","charStartPoint","glyphWidth","numberOfSpaces","charEndLength","charEndPoint","kern","midpoint","info","EVENTS_NAME","NODES_RECT","ANGLES","TOUCH_DEVICE","getCursor","anchorName","rotateCursor","ANCHORS_NAMES","getCenter","rotateAroundPoint","angleRad","rotateAroundCenter","deltaRad","center","getSnap","snaps","newRotationRad","tol","snapped","absDiff","activeTransformersCount","Transformer","filteredNodes","onChange","additionalEvents","lastPos","abs","otherNode","otherAbs","rot","relative","absScale","absPos","totalPoints","anchor","self","cursor","back","rotateAnchorAngle","rotateAnchorOffset","dirX","dirY","edgeX","edgeY","sign","endX","endY","hypotenuse","newHypotenuse","anchorNode","pp","oldAbs","newAbs","rotateAnchorAngleRad","newRotation","shiftBehavior","keepProportion","centeredScaling","anchorProjected","comparePoint","reverseX","reverseY","topOffsetX","topOffsetY","bottomOffsetX","bottomOffsetY","newAttrs","prevAutoDraw","oldAttrs","minSize","flipPadding","widthFlip","heightFlip","flip","baseSize","oldTr","newTr","newScaleX","newScaleY","layersToDraw","parentTransform","localTransform","newLocalTransform","enabledAnchors","resizeEnabled","anchorSize","anchors","styleFunc","validateAnchors","Wedge","BlurStack","mul_table","shg_table","filterGaussBlurRGBA","pixels","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pg","pb","pa","rbs","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","mul_sum","shg_sum","stackEnd","stack","stackIn","stackOut","Blur","Brighten","Brightness","Contrast","adjust","nPixels","red","green","blue","Emboss","w","strength01","whiteLevel01","directionDeg","blend","strength","bias","dirRad","SCALE","src","lum","Gx","Gy","OFF","clamp8","outGray","oTop","oBot","oL","oR","remap","fromValue","fromMin","fromMax","toMin","toMax","fromRange","toRange","toValue","Enhance","nSubPixels","rMin","rMax","gMin","gMax","bMin","bMax","enhanceAmount","rGoalMax","rGoalMin","gGoalMax","gGoalMin","bGoalMax","bGoalMin","rMid","gMid","bMid","Grayscale","HSL","l","vsu","vsw","rr","rg","rb","gr","gg","gb","br","bg","bb","HSV","Invert","ToPolar","dst","opt","srcPixels","dstPixels","xSize","ySize","xMid","yMid","rSize","tSize","conversion","sin","cos","FromPolar","phaseShift","Kaleidoscope","xoff","srcPos","dstPos","power","tempCanvas","scratchData","minSectionSize","sectionSize","xStart","xEnd","xDelta","pixelAt","idata","rgbDistance","rgbMean","pTab","backgroundMask","threshold","rgbv_no","rgbv_ne","rgbv_so","rgbv_se","thres","mean","mask","applyMask","erodeMask","weights","side","halfSide","maskResult","so","scy","scx","srcOff","wt","dilateMask","smoothEdgeMask","Mask","Noise","amount","half","Pixelate","pixelSize","nBinsX","nBinsY","xBin","yBin","alpha","xBinStart","xBinEnd","yBinStart","yBinEnd","pixelsInBin","Posterize","levels","RGB","RGBA","ia","Sepia","Solarize","Threshold","level","Core","useHistory","capacity","entries","shallowRef","canUndo","computed","canRedo","current","push","snapshot","label","kept","jumpTo","undo","redo","clear","newId","byte","createInitialState","isPristine","state","orientedSize","natural","clampRect","mapPointsCW","mapped","mapRectCW","mapAnnotationCW","annotation","rotateCW","oriented","mapAnnotationFlipX","flipHorizontal","sideways","mapAnnotationFlipY","flipVertical","translateAnnotation","duplicateAnnotation","_sfc_main$N","defineComponent","__props","_ctx","_cache","openBlock","createElementBlock","normalizeClass","renderSlot","_export_sfc","sfc","GlassSurface","_sfc_main$M","_hoisted_1$J","_hoisted_2$E","_hoisted_3$B","_hoisted_4$A","_sfc_render$w","$props","$setup","$data","$options","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","CameraIris","_sfc_main$L","_hoisted_1$I","_hoisted_2$D","_hoisted_3$A","_hoisted_4$z","_sfc_render$v","ContrastCircle","_sfc_main$K","_hoisted_1$H","_hoisted_2$C","_hoisted_3$z","_hoisted_4$y","_sfc_render$u","ImageFilterCenterFocus","_sfc_main$J","_hoisted_1$G","_hoisted_2$B","_hoisted_3$y","_hoisted_4$x","_sfc_render$t","InvertColors","_sfc_main$I","_hoisted_1$F","_hoisted_2$A","_hoisted_3$x","_hoisted_4$w","_sfc_render$s","Thermometer","_sfc_main$H","_hoisted_1$E","_hoisted_2$z","_hoisted_3$w","_hoisted_4$v","_sfc_render$r","WhiteBalanceIridescent","_sfc_main$G","_hoisted_1$D","_hoisted_2$y","_hoisted_3$v","_hoisted_4$u","_sfc_render$q","WhiteBalanceSunny","_hoisted_1$C","_hoisted_2$x","_sfc_main$F","__emit","emit","onInput","createTextVNode","EditorSlider","_hoisted_1$B","_sfc_main$E","IconTab","gtBuilder","getGettextBuilder","gt","VIEW_MARGIN","MIN_ZOOM","MAX_ZOOM","ZOOM_SNAP","PINCH_TOLERANCE","WHEEL_LINE","WHEEL_CLAMP","WHEEL_SENSITIVITY","panBounds","visible","clampPan","pan","clampZoom","zoom","anchoredPan","factor","wheelZoomFactor","deltaY","deltaMode","pageHeight","scaled","MODE_DEFAULT_TOOL","EDITOR_CONTEXT","createEditorContext","history","viewZoom","viewPan","viewFit","boundsAt","fit","activeMode","activeTool","mode","panned","watch","tool","provide","useEditorContext","inject","_hoisted_1$A","_hoisted_2$w","_sfc_main$D","adjustments","activeAdjustment","display","onAdjustInput","onSliderCommit","Fragment","renderList","adjustment","createVNode","withCtx","createBlock","resolveDynamicComponent","unref","AdjustPanel","_sfc_main$C","_hoisted_1$z","_hoisted_2$v","_hoisted_3$u","_hoisted_4$t","_sfc_render$p","ArrowTopRight","_sfc_main$B","_hoisted_1$y","_hoisted_2$u","_hoisted_3$t","_hoisted_4$s","_sfc_render$o","EllipseOutline","_sfc_main$A","_hoisted_1$x","_hoisted_2$t","_hoisted_3$s","_hoisted_4$r","_sfc_render$n","FormatText","_sfc_main$z","_hoisted_1$w","_hoisted_2$s","_hoisted_3$r","_hoisted_4$q","_sfc_render$m","Pencil","_sfc_main$y","_hoisted_1$v","_hoisted_2$r","_hoisted_3$q","_hoisted_4$p","_sfc_render$l","RectangleOutline","_sfc_main$x","_hoisted_1$u","_hoisted_2$q","_hoisted_3$p","_hoisted_4$o","_sfc_render$k","VectorLine","useAnnotationColor","recolorable","apply","_hoisted_1$t","_hoisted_2$p","_hoisted_3$o","_hoisted_4$n","FONT_SAMPLE","PREVIEW_CAP","_sfc_main$w","labels","subTools","showStrokeOptions","viewScale","strokePreview","fontPreview","NcButton","normalizeStyle","AnnotatePanel","_sfc_main$v","_hoisted_1$s","_hoisted_2$o","_hoisted_3$n","_hoisted_4$m","_sfc_render$j","FlipHorizontal","_sfc_main$u","_hoisted_1$r","_hoisted_2$n","_hoisted_3$m","_hoisted_4$l","_sfc_render$i","FlipVertical","_sfc_main$t","_hoisted_1$q","_hoisted_2$m","_hoisted_3$l","_hoisted_4$k","_sfc_render$h","RotateLeft","_sfc_main$s","_hoisted_1$p","_hoisted_2$l","_hoisted_3$k","_hoisted_4$j","_sfc_render$g","RotateRight","EDITOR_COMMANDS","provideEditorCommands","commands","useEditorCommands","_hoisted_1$o","_hoisted_2$k","_hoisted_3$j","_sfc_main$r","aspectPresets","cropControls","activeCropControl","onTransformInput","preset","control","CropPanel","_hoisted_1$n","_hoisted_2$j","_sfc_main$q","PresetChip","luma","EXPOSURE_RANGE","TEMPERATURE_RANGE","TINT_RANGE","tone","exposure","temperature","tint","SHARPEN_RANGE","sharpen","stride","centre","channel","neighbours","saturate","gray","warm","cool","fade","luma2","noir","golden","coast","shadow","mist","berry","cinema","balance","luna","visibleRect","context2d","supportsContextFilter","contextFilterSupport","contextFilterAvailable","obfuscate","pad","small","buildAnnotationNode","base","applyFilters","saturation","presetFilters","thumbnailKey","crop","presetThumbnail","thumb","createScene","viewGroup","contentGroup","imageNode","built","filterKey","options","orientedChanged","origin","nextFilterKey","renderScene","renderToCanvas","maxSize","toImageCoords","pointer","_sfc_main$p","presets","presetPreviews","setPreset","FilterStrip","_hoisted_1$m","_sfc_main$o","RedactPanel","_hoisted_1$l","_hoisted_2$i","_hoisted_3$i","_hoisted_4$i","_hoisted_5$1","_sfc_main$n","colorLabel","hint","transformHint","selectedAnnotation","SelectPanel","_hoisted_1$k","_sfc_main$m","moreLabel","FALLBACK_STICKERS","frequentStickers","frequent","emojiSearch","emoji","native","DEFAULT_STICKERS","stickers","sticker","NcEmojiPicker","StickerPanel","_sfc_main$l","EditorPanel","_sfc_main$k","_hoisted_1$j","_hoisted_2$h","_hoisted_3$h","_hoisted_4$h","_sfc_render$f","_sfc_main$j","_hoisted_1$i","_hoisted_2$g","_hoisted_3$g","_hoisted_4$g","_sfc_render$e","Crop","_sfc_main$i","_hoisted_1$h","_hoisted_2$f","_hoisted_3$f","_hoisted_4$f","_sfc_render$d","CursorDefaultOutline","_sfc_main$h","_hoisted_1$g","_hoisted_2$e","_hoisted_3$e","_hoisted_4$e","_sfc_render$c","PaletteOutline","_sfc_main$g","_hoisted_1$f","_hoisted_2$d","_hoisted_3$d","_hoisted_4$d","_sfc_render$b","StickerEmoji","_sfc_main$f","_hoisted_1$e","_hoisted_2$c","_hoisted_3$c","_hoisted_4$c","_sfc_render$a","Tune","_hoisted_1$d","_sfc_main$e","modes","EditorSidebar","_sfc_main$d","_hoisted_1$c","_hoisted_2$b","_hoisted_3$b","_hoisted_4$b","_sfc_render$9","Check","_sfc_main$c","_hoisted_1$b","_hoisted_2$a","_hoisted_3$a","_hoisted_4$a","_sfc_render$8","Close","_sfc_main$b","_hoisted_1$a","_hoisted_2$9","_hoisted_3$9","_hoisted_4$9","_sfc_render$7","HistoryIcon","_sfc_main$a","_hoisted_1$9","_hoisted_2$8","_hoisted_3$8","_hoisted_4$8","_sfc_render$6","MagnifyMinusOutline","_sfc_main$9","_hoisted_1$8","_hoisted_2$7","_hoisted_3$7","_hoisted_4$7","_sfc_render$5","MagnifyPlusOutline","_sfc_main$8","_hoisted_1$7","_hoisted_2$6","_hoisted_3$6","_hoisted_4$6","_sfc_render$4","Redo","_sfc_main$7","_hoisted_1$6","_hoisted_2$5","_hoisted_3$5","_hoisted_4$5","_sfc_render$3","Restore","_sfc_main$6","_hoisted_1$5","_hoisted_2$4","_hoisted_3$4","_hoisted_4$4","_sfc_render$2","Undo","_hoisted_1$4","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_main$5","historySteps","stepZoom","resetZoom","onRevert","showConfirmation","NcActions","NcActionButton","createSlots","NcLoadingIcon","EditorTopBar","_sfc_main$4","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_sfc_render$1","ContentCopy","_sfc_main$3","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render","Delete","_sfc_main$2","duplicateLabel","deleteLabel","SelectionToolbar","_hoisted_1$1","_sfc_main$1","inputLabel","ref","input","useTemplateRef","autosize","element","onMounted","onEnter","withDirectives","withKeys","withModifiers","vModelText","TextOverlay","primaryColor","ambientColor","sample","total","weight","ambientBackdrop","useAmbient","ambient","backdrop","useAnnouncements","modeLabels","annotationCount","TEXT_ENTRY","ACTIVATABLE","ownsTextEntry","ownsSpaceKey","NUDGE_KEYS","useEditorShortcuts","nudging","nudgeSelection","onKeydown","meta","onKeyup","onBeforeUnmount","needsCors","loadImage","canvasToBlob","painted","useExportImage","exporting","exportImage","encode","save","useTextEditing","textEdit","startTextEdit","position","existing","confirmTextEdit","edit","trimmed","useWheelControls","dragFrom","pinch","pointers","spaceHeld","toolFreeDrag","zoomed","panArmed","anchorAt","currentPinch","onWheel","onPointerDown","onPointerMove","onPointerUp","DURATION","prefersReducedMotion","pivotOnCenter","playTransition","kind","previousScale","previousOffset","previousOrigin","clampCropBox","oldBox","newBox","keepRatio","bottom","attachCropOverlay","view","toStage","toScene","imageBounds","makeShade","shadeTop","shadeLeft","shadeRight","shadeBottom","shade","cropNode","stageRect","gridLines","clampToImage","updateOverlay","ratioLocked","transformer","setAspect","aspect","coverScale","fitContain","orientImage","cover","transformPoints","applyNodeTransform","attachSelection","accent","findAnnotation","findNode","reportRect","syncTransformer","sync","onWriteBack","onClick","onDblClick","TOOL_LABELS","attachPointerTools","active","previewNode","pendingText","scenePointer","refreshPreview","discard","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_main","__expose","loadAttempt","loaded","errored","containerSize","orientedCanvas","sourceImage","announcement","selectionBox","cropOverlay","selection","detachTool","attached","resizeObserver","pendingTransition","lastView","canvasCursor","showCropped","container2","viewOptions","onSave","captureView","commitWithTransition","renderView","renderedOrigin","syncTools","applyCropAspect","refreshOrientedCanvas","seedState","seed","load","attempt","minDimension","currentOriented","onRotateCW","onRotateCCW","onFlipHorizontal","onFlipVertical","onApplyCrop","onDuplicateSelection","copy","onResetCrop","onDeleteSelection","clientWidth","clientHeight","ImageEditor","saving","exportOptions","response","axios","etag","emitBus","showSuccess","logger","showError","onCancel","_createBlock","_unref"],"mappings":"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J,EACAxqB,GAAcwqB,EAAG,EACjB3X,EAAQ,gBAAgB2X,GAAK,cAAe,EAAG5Y,EAAkB,CAAE,EACnEiB,EAAQ,gBAAgB2X,GAAK,cAAe,EAAG5Y,EAAkB,CAAE,EACnEiB,EAAQ,gBAAgB2X,GAAK,QAAS,EAAG5Y,EAAkB,CAAE,EAC7DiB,EAAQ,gBAAgB2X,GAAK,YAAa,GAAO/X,GAAmB,CAAE,ECtE/D,MAAM4Y,GAAU,CACnB,CAAA,EACA,CAAA,EACA,CACI,mBACA,iBACR,EACI,CACI,EAAG,mBACH,iBACR,EACI,CACI,oBACA,mBACA,mBACA,iBACR,EACI,CACI,EAAG,mBACH,kBACA,kBACA,gBACR,EACI,CACI,kBACA,mBACA,mBACA,kBACA,kBACA,gBACR,EACI,CACI,EAAG,kBACH,mBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,EAAG,mBACH,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,EAAG,oBACH,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,kBACA,gBACR,EACI,CACI,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,EAAG,mBACH,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,oBACA,mBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,EAAG,oBACH,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,iBACR,EACI,CACI,oBACA,mBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,EAAG,oBACH,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,mBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,EAAG,oBACH,mBACA,oBACA,mBACA,oBACA,mBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,iBACA,gBACA,mBACA,iBACR,EACI,CACI,oBACA,mBACA,oBACA,mBACA,oBACA,mBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,EAAG,mBACH,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,oBACA,mBACA,oBACA,mBACA,oBACA,mBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,EAAG,mBACH,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,EACI,CACI,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,kBACA,mBACA,kBACA,mBACA,kBACA,mBACA,iBACR,CACA,EACaC,GAAU,CACnB,CAAA,EACA,CAAA,EACA,CAAC,EAAK,CAAG,EACT,CACI,kBACA,kBACA,iBACR,EACI,CACI,kBACA,kBACA,mBACA,kBACR,EACI,CACI,kBACA,mBACA,mBACA,mBACA,kBACR,EACI,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,kBACR,EACI,CACI,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,iBACR,EACI,CACI,iBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACR,EACI,CACI,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACR,EACI,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACR,EACI,CACI,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACR,EACI,CACI,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACR,EACI,CACI,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACR,EACI,CACI,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACR,EACI,CACI,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACR,EACI,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,mBACR,EACI,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACR,EACI,CACI,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACR,EACI,CACI,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,gBACA,gBACA,mBACA,mBACA,kBACA,kBACA,oBACA,mBACR,EACI,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACR,EACI,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACR,EACI,CACI,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,iBACR,EACI,CACI,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,mBACR,EACI,CACI,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,kBACA,iBACR,CACA,EACaC,GAAuB,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC5DC,GAAoB,CAACC,EAAIC,EAAI9S,IAAM,CAC5C,IAAI+S,EACAC,EAEJ,MAAMC,EAAIjT,EAAI,EACd+S,EAAM,EACN,QAASpmB,EAAI,EAAGA,EAAI,GAAGA,IACnBqmB,EAAaC,EAAIR,GAAQ,EAAC,EAAE9lB,CAAC,EAAIsmB,EACjCF,GAAOL,GAAQ,EAAC,EAAE/lB,CAAC,EAAIumB,GAAML,EAAIC,EAAIE,CAAU,EAEnD,OAAOC,EAAIF,CACf,EACaI,GAAwB,CAACN,EAAIC,EAAI9S,IAAM,CAC5CA,IAAM,SACNA,EAAI,GAER,MAAMoT,EAAKP,EAAG,CAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57]} \ No newline at end of file diff --git a/js/ImageEditor-DIhUEMQt.chunk.mjs.map.license b/js/ImageEditor-DIhUEMQt.chunk.mjs.map.license new file mode 100644 index 000000000..c4380c764 --- /dev/null +++ b/js/ImageEditor-DIhUEMQt.chunk.mjs.map.license @@ -0,0 +1,16 @@ +SPDX-License-Identifier: AGPL-3.0-or-later +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: Anton Lavrenov +SPDX-FileCopyrightText: John Molakvoæ +SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors + +This file is generated from multiple sources. Included packages: +- @nextcloud/image-editor + - version: 1.0.0-beta.2 + - license: AGPL-3.0-or-later +- konva + - version: 10.3.2 + - license: MIT +- viewer + - version: 6.0.0-dev.0 + - license: AGPL-3.0-or-later diff --git a/js/NcActionButton-B73-WtOY.chunk.mjs b/js/NcActionButton-B73-WtOY.chunk.mjs deleted file mode 100644 index 757d5bfda..000000000 --- a/js/NcActionButton-B73-WtOY.chunk.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{N as i,m as s,b as a}from"./NcIconSvgWrapper-Bui9PhAS-DxNXUZ0w.chunk.mjs";import{A as n}from"./actionText-BMig9Egt-DrBqWVOB.chunk.mjs";import{n as o}from"./_plugin-vue2_normalizer-DU4iP6Vu-CHYf0Z4t.chunk.mjs";import"./previewUtils-DOqZ_eeK.chunk.mjs";const l={name:"NcActionButton",components:{NcIconSvgWrapper:i},mixins:[n],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}},props:{ariaHidden:{type:Boolean,default:null},disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:t=>["button","checkbox","radio","reset","submit"].includes(t)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null},description:{type:String,default:""}},setup(){return{mdiCheck:a,mdiChevronRight:s}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const t={};return this.isInSemanticMenu?(t.role="menuitem",this.type==="radio"?(t.role="menuitemradio",t["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(t.role="menuitemcheckbox",t["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(t["aria-pressed"]=this.modelValue?"true":"false"),t}},methods:{handleClick(t){this.onClick(t),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}};var c=function(){var t=this,e=t._self._c;return e("li",{staticClass:"action",class:{"action--disabled":t.disabled},attrs:{role:t.isInSemanticMenu&&"presentation"}},[e("button",t._b({staticClass:"action-button button-vue",class:{"action-button--active":t.isChecked,focusable:t.isFocusable},attrs:{"aria-label":t.ariaLabel,disabled:t.disabled,title:t.title,type:t.nativeType},on:{click:t.handleClick}},"button",t.buttonAttributes,!1),[t._t("icon",function(){return[e("span",{staticClass:"action-button__icon",class:[t.isIconUrl?"action-button__icon--url":t.icon],style:{backgroundImage:t.isIconUrl?`url(${t.icon})`:null},attrs:{"aria-hidden":"true"}})]}),e("span",{staticClass:"action-button__longtext-wrapper"},[t.name?e("strong",{staticClass:"action-button__name"},[t._v(" "+t._s(t.name)+" ")]):t._e(),t.isLongText?e("span",{staticClass:"action-button__longtext",domProps:{textContent:t._s(t.text)}}):e("span",{staticClass:"action-button__text"},[t._v(" "+t._s(t.text)+" ")]),t.description?e("span",{staticClass:"action-button__description",domProps:{textContent:t._s(t.description)}}):t._e()]),t.isMenu?e("NcIconSvgWrapper",{staticClass:"action-button__menu-icon",attrs:{directional:"",path:t.mdiChevronRight}}):t.isChecked?e("NcIconSvgWrapper",{staticClass:"action-button__pressed-icon",attrs:{path:t.mdiCheck}}):t.isChecked===!1?e("span",{staticClass:"action-button__pressed-icon material-design-icon"}):t._e(),t._e()],2)])},u=[],r=o(l,c,u,!1,null,"ab2ff78b");const b=r.exports;export{b as default}; -//# sourceMappingURL=NcActionButton-B73-WtOY.chunk.mjs.map diff --git a/js/NcActionButton-B73-WtOY.chunk.mjs.license b/js/NcActionButton-B73-WtOY.chunk.mjs.license deleted file mode 100644 index 20404c03f..000000000 --- a/js/NcActionButton-B73-WtOY.chunk.mjs.license +++ /dev/null @@ -1,7 +0,0 @@ -SPDX-License-Identifier: AGPL-3.0-or-later -SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors - -This file is generated from multiple sources. Included packages: -- @nextcloud/vue - - version: 8.40.0 - - license: AGPL-3.0-or-later diff --git a/js/NcActionButton-B73-WtOY.chunk.mjs.map b/js/NcActionButton-B73-WtOY.chunk.mjs.map deleted file mode 100644 index 9962e1364..000000000 --- a/js/NcActionButton-B73-WtOY.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NcActionButton-B73-WtOY.chunk.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-D7uypboC.mjs"],"sourcesContent":["import '../assets/NcActionButton-CwGeOQFe.css';\nimport { m as mdiChevronRight, a as mdiCheck } from \"./mdi-DkJglNiS.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-BMig9Egt.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: \"NcActions:isSemanticMenu\",\n default: false\n }\n },\n props: {\n /**\n * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n * otherwise root element will inherit incorrect aria-hidden.\n */\n ariaHidden: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: null\n },\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of ``\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the