diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..484cbf2 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,42 @@ +# SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: CC0-1.0 +version: 2 +updates: +- package-ecosystem: composer + directories: + - "/" + - "/vendor-bin/csfixer" + - "/vendor-bin/openapi-extractor" + - "/vendor-bin/phpunit" + - "/vendor-bin/psalm" + schedule: + interval: weekly + day: saturday + time: "03:00" + timezone: Europe/Paris + cooldown: + default-days: 10 + commit-message: + prefix: "build" + include: "scope" + versioning-strategy: "increase" + labels: + - 3. to review + - dependencies +- package-ecosystem: npm + directory: "/" + schedule: + interval: weekly + day: saturday + time: "03:00" + timezone: Europe/Paris + cooldown: + default-days: 10 + commit-message: + prefix: "build" + include: "scope" + versioning-strategy: "increase" + open-pull-requests-limit: 10 + labels: + - 3. to review + - dependencies diff --git a/.github/workflows/ai-policy.yml b/.github/workflows/ai-policy.yml new file mode 100644 index 0000000..4b4653e --- /dev/null +++ b/.github/workflows/ai-policy.yml @@ -0,0 +1,178 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: AI Policy + +on: + pull_request: + types: [opened, synchronize, reopened] + branches: [master, main] + +permissions: + contents: read + # Required to add the "AI assisted" label via `gh pr edit --add-label` + pull-requests: write + # Required to create the "AI assisted" label via the REST labels endpoint + # (labels are an issues-scoped resource in the GitHub API) + issues: write + +concurrency: + group: ai-policy-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + check-ai-trailers: + runs-on: ubuntu-latest-low + steps: + - name: Collect PR commit messages + id: collect + env: + # Fall back to the default token when the PAT is unavailable + # (e.g. Dependabot- or fork-triggered runs don't receive Actions secrets) + GH_TOKEN: ${{ secrets.COMMAND_BOT_PAT || github.token }} + COMMITS_URL: ${{ github.event.pull_request.commits_url }} + run: | + set -euo pipefail + gh api ${COMMITS_URL} | jq -r '.[] | .commit.message' > /tmp/pr_commits.txt + echo "--- PR commit messages ---" + cat /tmp/pr_commits.txt + echo "--------------------------" + + - name: Define shared agent detection patterns + run: | + set -euo pipefail + + # Email addresses known to be used by coding agents. + # These should never appear in Signed-off-by because the DCO can only be attested by a human. + EMAIL_PATTERN="copilot@github\.com\ + |noreply@anthropic\.com\ + |devin@cognition\.ai\ + |devin@cognition-labs\.com\ + |aider@aider\.chat\ + |noreply@aider\.chat\ + |codex@openai\.com\ + |cursor@anysphere\.com\ + |windsurf@codeium\.com\ + |codeium@codeium\.com\ + |amazon-q@amazon\.com\ + |codewhisperer@amazon\.com\ + |gemini-code-assist@google\.com\ + |openhands@all-hands\.dev\ + |swe-agent@princeton\.edu" + + # Strip embedded whitespace (used above only for readability) + EMAIL_PATTERN=$(echo "$EMAIL_PATTERN" | tr -d ' \n') + echo "AGENT_EMAIL_PATTERN=${EMAIL_PATTERN}" >> "$GITHUB_ENV" + + # Display-name prefixes used by known coding agents (shared by Signed-off-by and Co-Authored-By checks) + # shellcheck disable=SC2016 + echo 'AGENT_NAMES=GitHub Copilot|Claude( [A-Za-z0-9. -]+)?|Devin( AI)?|aider( \(.*\))?|OpenAI Codex|Cursor( AI)?|Windsurf|Amazon Q|CodeWhisperer|Gemini Code Assist|OpenHands|SWE-agent|AutoCodeRover|Tabnine' >> "$GITHUB_ENV" + + - name: Check for AI-assistant / Assisted-by trailers + id: ai_trailers + run: | + set -euo pipefail + AI_ASSISTED=false + if grep -qiE '^(AI-assistant|Assisted-by|AI-Assisted-By):' /tmp/pr_commits.txt; then + AI_ASSISTED=true + echo "Found AI-assistant/Assisted-by/AI-Assisted-By trailer(s):" + grep -iE '^(AI-assistant|Assisted-by|AI-Assisted-By):' /tmp/pr_commits.txt + fi + echo "ai_assisted=${AI_ASSISTED}" >> "$GITHUB_OUTPUT" + + - name: Check for coding-agent Signed-off-by trailers + id: agent_signoff + run: | + set -euo pipefail + + EMAIL_HITS=$(grep -iE "^Signed-off-by:.*<(${AGENT_EMAIL_PATTERN})>" /tmp/pr_commits.txt 2>/dev/null || true) + NAME_HITS=$(grep -iE "^Signed-off-by: *(${AGENT_NAMES}) *[<(]" /tmp/pr_commits.txt 2>/dev/null || true) + + AGENT_LINES=$(printf '%s\n%s' "$EMAIL_HITS" "$NAME_HITS" | sort -u | sed '/^[[:space:]]*$/d') + + AGENT_SIGNOFF=false + if [ -n "$AGENT_LINES" ]; then + AGENT_SIGNOFF=true + fi + + echo "agent_signoff=${AGENT_SIGNOFF}" >> "$GITHUB_OUTPUT" + { + echo "agent_lines<> "$GITHUB_OUTPUT" + + - name: Check for coding-agent Co-Authored-By trailers + id: co_authored + run: | + set -euo pipefail + + EMAIL_HITS=$(grep -iE "^Co-Authored-By:.*<(${AGENT_EMAIL_PATTERN})>" /tmp/pr_commits.txt 2>/dev/null || true) + NAME_HITS=$(grep -iE "^Co-Authored-By: *(${AGENT_NAMES}) *[<(]" /tmp/pr_commits.txt 2>/dev/null || true) + + CO_AUTHORED=false + if [ -n "$EMAIL_HITS" ] || [ -n "$NAME_HITS" ]; then + CO_AUTHORED=true + echo "Found coding-agent Co-Authored-By trailer(s):" + printf '%s\n%s' "$EMAIL_HITS" "$NAME_HITS" | sort -u | sed '/^[[:space:]]*$/d' + fi + + echo "co_authored=${CO_AUTHORED}" >> "$GITHUB_OUTPUT" + + - name: Create 'AI assisted' label if absent + if: steps.ai_trailers.outputs.ai_assisted == 'true' || steps.agent_signoff.outputs.agent_signoff == 'true' || steps.co_authored.outputs.co_authored == 'true' + env: + # Fall back to the default token when the PAT is unavailable + # (e.g. Dependabot- or fork-triggered runs don't receive Actions secrets) + GH_TOKEN: ${{ secrets.COMMAND_BOT_PAT || github.token }} + run: | + gh api "repos/${{ github.repository }}/labels" \ + --method POST \ + -f name="AI assisted" \ + -f color="d93f0b" \ + -f description="This PR contains AI-assisted commits" \ + 2>/dev/null || true + + - name: Label PR as AI assisted + if: steps.ai_trailers.outputs.ai_assisted == 'true' || steps.agent_signoff.outputs.agent_signoff == 'true' || steps.co_authored.outputs.co_authored == 'true' + env: + # Fall back to the default token when the PAT is unavailable + # (e.g. Dependabot- or fork-triggered runs don't receive Actions secrets) + GH_TOKEN: ${{ secrets.COMMAND_BOT_PAT || github.token }} + run: | + gh api "repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/labels" \ + --method POST \ + -f "labels[]=AI assisted" + echo "Added 'AI assisted' label to PR #${{ github.event.pull_request.number }}" + + - name: Fail on coding-agent Signed-off-by + if: steps.agent_signoff.outputs.agent_signoff == 'true' + env: + AGENT_LINES: ${{ steps.agent_signoff.outputs.agent_lines }} + AGENTS_MD_URL: https://github.com/${{ github.repository }}/blob/${{ github.base_ref }}/AGENTS.md + run: | + echo "::error title=Coding-agent sign-off detected::A Signed-off-by trailer from a known coding agent was found in one or more commits." + echo "" + echo "Offending trailer(s):" + echo "${AGENT_LINES}" + echo "" + echo "The 'Signed-off-by' trailer represents the Developer Certificate of Origin (DCO)" + echo "and must only be attested by a human contributor." + echo "Please amend the affected commit(s) to remove the coding-agent sign-off" + echo "and replace it with an 'Assisted-by' trailer, for example:" + echo "" + echo " Assisted-by: Claude Code:claude-sonnet-4-6" + echo "" + echo "References:" + echo " • AGENTS.md (this repository)" + echo " ${AGENTS_MD_URL}" + echo " • AI Contribution Policy" + echo " https://github.com/nextcloud/.github/blob/master/AI_POLICY.md" + echo " • Contribution Guidelines" + echo " https://github.com/nextcloud/.github/blob/master/CONTRIBUTING.md" + exit 1 diff --git a/.github/workflows/appstore-build-publish.yml b/.github/workflows/appstore-build-publish.yml new file mode 100644 index 0000000..c0b6cde --- /dev/null +++ b/.github/workflows/appstore-build-publish.yml @@ -0,0 +1,202 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Build and publish app release + +on: + release: + types: [published] + +permissions: + contents: write + +jobs: + build_and_publish: + runs-on: ubuntu-latest + + # Only allowed to be run on nextcloud-releases repositories + if: ${{ github.repository_owner == 'nextcloud-releases' }} + + steps: + - name: Check actor permission + uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0 + with: + require: write + + - name: Set app env + run: | + # Split and keep last + echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV + echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV + + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + path: ${{ env.APP_NAME }} + + - name: Get app version number + id: app-version + uses: skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # v1.0.0 + with: + filename: ${{ env.APP_NAME }}/appinfo/info.xml + expression: "//info//version/text()" + + - name: Validate app version against tag + run: | + [ "${{ env.APP_VERSION }}" = "v${{ fromJSON(steps.app-version.outputs.result).version }}" ] + + - name: Get appinfo data + id: appinfo + uses: skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # v1.0.0 + with: + filename: ${{ env.APP_NAME }}/appinfo/info.xml + expression: "//info//dependencies//nextcloud/@min-version" + + - name: Read package.json node and npm engines version + uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 + id: versions + # Continue if no package.json + continue-on-error: true + with: + path: ${{ env.APP_NAME }} + fallbackNode: '^24' + fallbackNpm: '^11.3' + + - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + # Skip if no package.json + if: ${{ steps.versions.outputs.nodeVersion }} + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: ${{ steps.versions.outputs.nodeVersion }} + package-manager-cache: false + + - name: Set up npm ${{ steps.versions.outputs.npmVersion }} + # Skip if no package.json + if: ${{ steps.versions.outputs.npmVersion }} + run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + + - name: Get php version + id: php-versions + uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2 + with: + filename: ${{ env.APP_NAME }}/appinfo/info.xml + + - name: Set up php ${{ steps.php-versions.outputs.php-min }} + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 + with: + php-version: ${{ steps.php-versions.outputs.php-min }} + coverage: none + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Check composer.json + id: check_composer + uses: andstor/file-existence-action@558493d6c74bf472d87c84eab196434afc2fa029 # v3.1.0 + with: + files: "${{ env.APP_NAME }}/composer.json" + + - name: Install composer dependencies + if: steps.check_composer.outputs.files_exists == 'true' + uses: ramsey/composer-install@65e4f84970763564f46a70b8a54b90d033b3bdda # 4.0.0 + with: + composer-options: '--no-dev' + working-directory: ${{ env.APP_NAME }} + ignore-cache: 'yes' + + - name: Build ${{ env.APP_NAME }} + # Skip if no package.json + if: ${{ steps.versions.outputs.nodeVersion }} + env: + CYPRESS_INSTALL_BINARY: 0 + run: | + cd ${{ env.APP_NAME }} + npm ci + npm run build --if-present + + - name: Check Krankerl config + id: krankerl + uses: andstor/file-existence-action@558493d6c74bf472d87c84eab196434afc2fa029 # v3.1.0 + with: + files: ${{ env.APP_NAME }}/krankerl.toml + + - name: Install Krankerl + if: steps.krankerl.outputs.files_exists == 'true' + run: | + wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb + sudo dpkg -i krankerl_0.14.0_amd64.deb + + - name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl + if: steps.krankerl.outputs.files_exists == 'true' + run: | + cd ${{ env.APP_NAME }} + krankerl package + + - name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile + if: steps.krankerl.outputs.files_exists != 'true' + run: | + cd ${{ env.APP_NAME }} + make appstore + + - name: Check server download link for ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }} + run: | + NCVERSION='${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}' + DOWNLOAD_URL=$(curl -s "https://updates.nextcloud.com/updater_server/latest?channel=beta&version=$NCVERSION" | jq -r '.downloads.zip[0]') + echo "DOWNLOAD_URL=$DOWNLOAD_URL" >> $GITHUB_ENV + + - name: Download server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }} + continue-on-error: true + id: server-download + if: ${{ env.DOWNLOAD_URL != 'null' }} + run: | + echo "Downloading release tarball from $DOWNLOAD_URL" + wget $DOWNLOAD_URL -O nextcloud.zip + unzip nextcloud.zip + + - name: Checkout server master fallback + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + if: ${{ steps.server-download.outcome != 'success' }} + with: + persist-credentials: false + submodules: true + repository: nextcloud/server + path: nextcloud + + + - name: Sign app + run: | + # Extracting release + cd ${{ env.APP_NAME }}/build/artifacts + tar -xvf ${{ env.APP_NAME }}.tar.gz + cd ../../../ + # Setting up keys + echo '${{ secrets.APP_PRIVATE_KEY }}' > ${{ env.APP_NAME }}.key + wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt" + # Signing + php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }} + # Rebuilding archive + cd ${{ env.APP_NAME }}/build/artifacts + tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }} + + - name: Attach tarball to github release + uses: svenstaro/upload-release-action@29e53e917877a24fad85510ded594ab3c9ca12de # 2.11.5 + id: attach_to_release + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz + asset_name: ${{ env.APP_NAME }}-${{ env.APP_VERSION }}.tar.gz + tag: ${{ github.ref }} + overwrite: true + + - name: Upload app to Nextcloud appstore + uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1.0.3 + with: + app_name: ${{ env.APP_NAME }} + appstore_token: ${{ secrets.APPSTORE_TOKEN }} + download_url: ${{ steps.attach_to_release.outputs.browser_download_url }} + app_private_key: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/command-compile.yml b/.github/workflows/command-compile.yml new file mode 100644 index 0000000..3a0da7a --- /dev/null +++ b/.github/workflows/command-compile.yml @@ -0,0 +1,235 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Compile Command +on: + issue_comment: + types: [created] + +permissions: + contents: read + +jobs: + init: + runs-on: ubuntu-latest-low + + # On pull requests and if the comment starts with `/compile` + if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/compile') + + outputs: + git_path: ${{ steps.git-path.outputs.path }} + arg1: ${{ steps.command.outputs.arg1 }} + arg2: ${{ steps.command.outputs.arg2 }} + head_ref: ${{ steps.comment-branch.outputs.head_ref }} + base_ref: ${{ steps.comment-branch.outputs.base_ref }} + + steps: + - name: Get repository from pull request comment + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + id: get-repository + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + const pull = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.issue.number + }); + + const repositoryName = pull.data.head?.repo?.full_name + console.log(repositoryName) + return repositoryName + + - name: Disabled on forks + if: ${{ fromJSON(steps.get-repository.outputs.result) != github.repository }} + run: | + echo 'Can not execute /compile on forks' + exit 1 + + - name: Check actor permission + uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0 + with: + require: write + + - name: Add reaction on start + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 + with: + token: ${{ secrets.COMMAND_BOT_PAT }} + repository: ${{ github.event.repository.full_name }} + comment-id: ${{ github.event.comment.id }} + reactions: '+1' + + - name: Parse command + uses: skjnldsv/parse-command-comment@5c955203c52424151e6d0e58fb9de8a9f6a605a1 # v3.1 + id: command + + # Init path depending on which command is run + - name: Init path + id: git-path + run: | + if ${{ startsWith(steps.command.outputs.arg1, '/') }}; then + echo "path=${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT + else + echo "path=${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT + fi + + - name: Init branch + uses: xt0rted/pull-request-comment-branch@e8b8daa837e8ea7331c0003c9c316a64c6d8b0b1 # v3.0.0 + id: comment-branch + + - name: Add reaction on failure + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 + if: failure() + with: + token: ${{ secrets.COMMAND_BOT_PAT }} + repository: ${{ github.event.repository.full_name }} + comment-id: ${{ github.event.comment.id }} + reactions: '-1' + + process: + runs-on: ubuntu-latest + needs: init + + steps: + - name: Restore cached git repository + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 + with: + path: .git + key: git-repo + + - name: Checkout ${{ needs.init.outputs.head_ref }} + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + token: ${{ secrets.COMMAND_BOT_PAT }} + fetch-depth: 0 + ref: ${{ needs.init.outputs.head_ref }} + + - name: Setup git + run: | + git config --local user.email 'nextcloud-command@users.noreply.github.com' + git config --local user.name 'nextcloud-command' + + - name: Read package.json node and npm engines version + uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 + id: package-engines-versions + with: + fallbackNode: '^24' + fallbackNpm: '^11.3' + + - name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }} + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }} + cache: npm + + - name: Set up npm ${{ steps.package-engines-versions.outputs.npmVersion }} + run: npm i -g 'npm@${{ steps.package-engines-versions.outputs.npmVersion }}' + + - name: Rebase to ${{ needs.init.outputs.base_ref }} + if: ${{ contains(needs.init.outputs.arg1, 'rebase') }} + env: + BASE_REF: ${{ needs.init.outputs.base_ref }} + run: | + git fetch origin "${BASE_REF}:${BASE_REF}" + + # Start the rebase + git rebase "origin/${BASE_REF}" || { + # Handle rebase conflicts in a loop + while [ -d .git/rebase-merge ] || [ -d .git/rebase-apply ]; do + echo "Handling rebase conflict..." + + # Remove and checkout /dist and /js folders from the base branch + if [ -d "dist" ]; then + rm -rf dist + git checkout "origin/${BASE_REF}" -- dist/ 2>/dev/null || echo "No dist folder in base branch" + fi + if [ -d "js" ]; then + rm -rf js + git checkout "origin/${BASE_REF}" -- js/ 2>/dev/null || echo "No js folder in base branch" + fi + + # Stage all changes + git add . + + # Check if there are any changes after resolving conflicts + if git diff --cached --quiet; then + echo "No changes after conflict resolution, skipping commit" + git rebase --skip + else + echo "Changes found, continuing rebase without editing commit message" + git -c core.editor=true rebase --continue + fi + + # Break if rebase is complete + if [ ! -d .git/rebase-merge ] && [ ! -d .git/rebase-apply ]; then + break + fi + done + } + + - name: Install dependencies & build + env: + CYPRESS_INSTALL_BINARY: 0 + PUPPETEER_SKIP_DOWNLOAD: true + run: | + npm ci + npm run build --if-present + + - name: Commit default + if: ${{ !contains(needs.init.outputs.arg1, 'fixup') && !contains(needs.init.outputs.arg1, 'amend') }} + env: + GIT_PATH: ${{ needs.init.outputs.git_path }} + run: | + git add "${GITHUB_WORKSPACE}${GIT_PATH}" + git commit --signoff -m 'chore(assets): Recompile assets' + + - name: Commit fixup + if: ${{ contains(needs.init.outputs.arg1, 'fixup') }} + env: + GIT_PATH: ${{ needs.init.outputs.git_path }} + run: | + git add "${GITHUB_WORKSPACE}${GIT_PATH}" + git commit --fixup=HEAD --signoff + + - name: Commit amend + if: ${{ contains(needs.init.outputs.arg1, 'amend') }} + env: + GIT_PATH: ${{ needs.init.outputs.git_path }} + run: | + git add "${GITHUB_WORKSPACE}${GIT_PATH}" + git commit --amend --no-edit --signoff + # Remove any [skip ci] from the amended commit + git commit --amend -m "$(git log -1 --format='%B' | sed '/\[skip ci\]/d')" + + - name: Push normally + if: ${{ !contains(needs.init.outputs.arg1, 'rebase') && !contains(needs.init.outputs.arg1, 'amend') }} + env: + HEAD_REF: ${{ needs.init.outputs.head_ref }} + BOT_TOKEN: ${{ secrets.COMMAND_BOT_PAT }} # zizmor: ignore[secrets-outside-env] + run: | + git remote set-url origin "https://x-access-token:${BOT_TOKEN}@github.com/${{ github.repository }}.git" + git push origin "$HEAD_REF" + + - name: Force push + if: ${{ contains(needs.init.outputs.arg1, 'rebase') || contains(needs.init.outputs.arg1, 'amend') }} + env: + HEAD_REF: ${{ needs.init.outputs.head_ref }} + BOT_TOKEN: ${{ secrets.COMMAND_BOT_PAT }} # zizmor: ignore[secrets-outside-env] + run: | + git remote set-url origin "https://x-access-token:${BOT_TOKEN}@github.com/${{ github.repository }}.git" + git push --force-with-lease origin "$HEAD_REF" + + - name: Add reaction on failure + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 + if: failure() + with: + token: ${{ secrets.COMMAND_BOT_PAT }} + repository: ${{ github.event.repository.full_name }} + comment-id: ${{ github.event.comment.id }} + reactions: '-1' diff --git a/.github/workflows/dependabot-approve-merge.yml b/.github/workflows/dependabot-approve-merge.yml new file mode 100644 index 0000000..76340ac --- /dev/null +++ b/.github/workflows/dependabot-approve-merge.yml @@ -0,0 +1,101 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Auto approve Dependabot PRs + +on: + pull_request_target: # zizmor: ignore[dangerous-triggers] + branches: + - main + - master + - stable* + +permissions: + contents: read + +concurrency: + group: dependabot-approve-merge-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + auto-approve-merge: + if: github.event.pull_request.user.login == 'dependabot[bot]' + runs-on: ubuntu-latest-low + env: + # env variable for maintainers: 'true' allows to auto-merge 1.0.2 -> 2.0.0 + ALLOW_MAJOR: false + # env variable for maintainers: 'true' allows to auto-merge 1.0.2 -> 1.1.0 + ALLOW_MINOR: true + # env variable for maintainers: RegExp string to ignore some dependencies from auto-approve and auto-merge + IGNORE_PATTERN: '' + permissions: + # for auto-approve step to work + pull-requests: write + # for alexwilson/enable-github-automerge-action to approve PRs + contents: write + + steps: + - name: Disabled on forks + if: ${{ github.event.pull_request.head.repo.full_name != github.repository }} + run: | + echo 'Can not approve PRs from forks' + exit 1 + + - uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0 + id: branchname + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Dependabot metadata + id: metadata + if: startsWith(steps.branchname.outputs.branch, 'dependabot/') + uses: dependabot/fetch-metadata@25dd0e34f4fe68f24cc83900b1fe3fe149efef98 # v3.1.0 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Check for ignored dependencies in the PR + id: validate + if: startsWith(steps.branchname.outputs.branch, 'dependabot/') + env: + IGNORE_PATTERN: ${{ env.IGNORE_PATTERN }} + DEPENDENCY_NAMES: ${{ steps.metadata.outputs.dependency-names }} + run: | + if [[ -z ${IGNORE_PATTERN} ]]; then + echo "ignore=false" >> "$GITHUB_OUTPUT" + elif [[ -z ${DEPENDENCY_NAMES} ]]; then + echo "ignore=false" >> "$GITHUB_OUTPUT" + elif [[ ${DEPENDENCY_NAMES} =~ ${IGNORE_PATTERN} ]]; then + echo "ignore=true" >> "$GITHUB_OUTPUT" + fi + + - name: GitHub actions bot approve + id: auto_approve + if: ${{ + startsWith(steps.branchname.outputs.branch, 'dependabot/') + && steps.validate.outputs.ignore != 'true' + }} + run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Enable GitHub auto merge + - name: Auto merge + uses: alexwilson/enable-github-automerge-action@2c32e18a76e0726ffe7a573bfff2d42a20885126 # 3.0.0 + if: ${{ + startsWith(steps.branchname.outputs.branch, 'dependabot/') + && steps.auto_approve.conclusion == 'success' + && (github.event.action == 'opened' || github.event.action == 'reopened') + && ( + steps.metadata.outputs.update-type == 'version-update:semver-patch' + || (fromJSON(env.ALLOW_MINOR) && steps.metadata.outputs.update-type == 'version-update:semver-minor') + || (fromJSON(env.ALLOW_MAJOR) && steps.metadata.outputs.update-type == 'version-update:semver-major') + ) + }} + with: + github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/fixup.yml b/.github/workflows/fixup.yml new file mode 100644 index 0000000..69da2bb --- /dev/null +++ b/.github/workflows/fixup.yml @@ -0,0 +1,36 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Block fixup and squash commits + +on: + pull_request: + types: [opened, ready_for_review, reopened, synchronize] + +permissions: + contents: read + +concurrency: + group: fixup-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + commit-message-check: + if: github.event.pull_request.draft == false + + permissions: + pull-requests: write + name: Block fixup and squash commits + + runs-on: ubuntu-latest-low + + steps: + - name: Run check + uses: skjnldsv/block-fixup-merge-action@c138ea99e45e186567b64cf065ce90f7158c236a # v2 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lint-eslint.yml b/.github/workflows/lint-eslint.yml new file mode 100644 index 0000000..3e34f7e --- /dev/null +++ b/.github/workflows/lint-eslint.yml @@ -0,0 +1,100 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Lint eslint + +on: pull_request + +permissions: + contents: read + +concurrency: + group: lint-eslint-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + changes: + runs-on: ubuntu-latest-low + permissions: + contents: read + pull-requests: read + + outputs: + src: ${{ steps.changes.outputs.src}} + + steps: + - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + id: changes + continue-on-error: true + with: + filters: | + src: + - '.github/workflows/**' + - 'src/**' + - 'appinfo/info.xml' + - 'package.json' + - 'package-lock.json' + - 'tsconfig.json' + - '.eslintrc.*' + - '.eslintignore' + - '**.js' + - '**.ts' + - '**.vue' + + lint: + runs-on: ubuntu-latest + + needs: changes + if: needs.changes.outputs.src != 'false' + + name: NPM lint + + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Read package.json node and npm engines version + uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 + id: versions + with: + fallbackNode: '^24' + fallbackNpm: '^11.3' + + - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: ${{ steps.versions.outputs.nodeVersion }} + + - name: Set up npm ${{ steps.versions.outputs.npmVersion }} + run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + + - name: Install dependencies + env: + CYPRESS_INSTALL_BINARY: 0 + PUPPETEER_SKIP_DOWNLOAD: true + run: npm ci + + - name: Lint + run: npm run lint + + summary: + permissions: + contents: none + runs-on: ubuntu-latest-low + needs: [changes, lint] + + if: always() + + # This is the summary, we just avoid to rename it so that branch protection rules still match + name: eslint + + steps: + - name: Summary status + run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi diff --git a/.github/workflows/lint-info-xml.yml b/.github/workflows/lint-info-xml.yml new file mode 100644 index 0000000..8e6968c --- /dev/null +++ b/.github/workflows/lint-info-xml.yml @@ -0,0 +1,40 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Lint info.xml + +on: pull_request + +permissions: + contents: read + +concurrency: + group: lint-info-xml-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + xml-linters: + runs-on: ubuntu-latest-low + + name: info.xml lint + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + sparse-checkout: | + appinfo/ + + - name: Download schema + run: wget https://raw.githubusercontent.com/nextcloud/appstore/master/nextcloudappstore/api/v1/release/info.xsd + + - name: Lint info.xml + uses: ChristophWurst/xmllint-action@36f2a302f84f8c83fceea0b9c59e1eb4a616d3c1 # v1.2 + with: + xml-file: ./appinfo/info.xml + xml-schema-file: ./info.xsd diff --git a/.github/workflows/lint-php-cs.yml b/.github/workflows/lint-php-cs.yml new file mode 100644 index 0000000..dba0956 --- /dev/null +++ b/.github/workflows/lint-php-cs.yml @@ -0,0 +1,54 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Lint php-cs + +on: pull_request + +permissions: + contents: read + +concurrency: + group: lint-php-cs-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + lint: + runs-on: ubuntu-latest + + name: php-cs + + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Get php version + id: versions + uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2 + + - name: Set up php${{ steps.versions.outputs.php-min }} + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 + with: + php-version: ${{ steps.versions.outputs.php-min }} + extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite + coverage: none + ini-file: development + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Remove nextcloud/ocp + run: | + composer remove nextcloud/ocp --dev --no-scripts + + - name: Install composer dependencies + uses: ramsey/composer-install@65e4f84970763564f46a70b8a54b90d033b3bdda # 4.0.0 + + - name: Lint + run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 ) diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml new file mode 100644 index 0000000..e73949e --- /dev/null +++ b/.github/workflows/lint-php.yml @@ -0,0 +1,76 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Lint php + +on: pull_request + +permissions: + contents: read + +concurrency: + group: lint-php-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + matrix: + runs-on: ubuntu-latest-low + outputs: + php-min: ${{ steps.versions.outputs.php-min }} + php-max: ${{ steps.versions.outputs.php-max }} + steps: + - name: Checkout app + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Get version matrix + id: versions + uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2 + + php-lint: + runs-on: ubuntu-latest-low + needs: matrix + strategy: + matrix: + php-versions: ['${{ needs.matrix.outputs.php-min }}', '${{ needs.matrix.outputs.php-max }}'] + + name: php-lint + + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Set up php ${{ matrix.php-versions }} + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 + with: + php-version: ${{ matrix.php-versions }} + extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite + coverage: none + ini-file: development + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Lint + run: composer run lint + + summary: + permissions: + contents: none + runs-on: ubuntu-latest-low + needs: php-lint + + if: always() + + name: php-lint-summary + + steps: + - name: Summary status + run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi diff --git a/.github/workflows/lint-stylelint.yml b/.github/workflows/lint-stylelint.yml new file mode 100644 index 0000000..7a1457c --- /dev/null +++ b/.github/workflows/lint-stylelint.yml @@ -0,0 +1,53 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Lint stylelint + +on: pull_request + +permissions: + contents: read + +concurrency: + group: lint-stylelint-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + lint: + runs-on: ubuntu-latest + + name: stylelint + + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Read package.json node and npm engines version + uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 + id: versions + with: + fallbackNode: '^24' + fallbackNpm: '^11.3' + + - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: ${{ steps.versions.outputs.nodeVersion }} + + - name: Set up npm ${{ steps.versions.outputs.npmVersion }} + run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + + - name: Install dependencies + env: + CYPRESS_INSTALL_BINARY: 0 + run: npm ci + + - name: Lint + run: npm run stylelint diff --git a/.github/workflows/npm-audit-fix.yml b/.github/workflows/npm-audit-fix.yml new file mode 100644 index 0000000..928fc93 --- /dev/null +++ b/.github/workflows/npm-audit-fix.yml @@ -0,0 +1,85 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Npm audit fix and compile + +on: + workflow_dispatch: + schedule: + # At 2:30 on Sundays + - cron: '30 2 * * 0' + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + branches: + - ${{ github.event.repository.default_branch }} + - 'stable34' + - 'stable33' + - 'stable32' + + name: npm-audit-fix-${{ matrix.branches }} + + steps: + - name: Checkout + id: checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + ref: ${{ matrix.branches }} + continue-on-error: true + + - name: Read package.json node and npm engines version + uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 + id: versions + with: + fallbackNode: '^24' + fallbackNpm: '^11.3' + + - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: ${{ steps.versions.outputs.nodeVersion }} + + - name: Set up npm ${{ steps.versions.outputs.npmVersion }} + run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + + - name: Fix npm audit + id: npm-audit + uses: nextcloud-libraries/npm-audit-action@1b1728b2b4a7a78d69de65608efcf4db0e3e42d0 # v0.2.0 + + - name: Run npm ci and npm run build + if: steps.checkout.outcome == 'success' + env: + CYPRESS_INSTALL_BINARY: 0 + run: | + npm ci + npm run build --if-present + + - name: Create Pull Request + if: steps.checkout.outcome == 'success' + uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1 + with: + token: ${{ secrets.COMMAND_BOT_PAT }} + commit-message: 'fix(deps): Fix npm audit' + committer: GitHub + author: nextcloud-command + signoff: true + branch: automated/noid/${{ matrix.branches }}-fix-npm-audit + title: '[${{ matrix.branches }}] Fix npm audit' + body: ${{ steps.npm-audit.outputs.markdown }} + labels: | + dependencies + 3. to review diff --git a/.github/workflows/npm-build.yml b/.github/workflows/npm-build.yml new file mode 100644 index 0000000..1b9e372 --- /dev/null +++ b/.github/workflows/npm-build.yml @@ -0,0 +1,113 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Build Javascript + +on: pull_request + +permissions: + contents: read + +concurrency: + group: node-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + changes: + runs-on: ubuntu-latest-low + permissions: + contents: read + pull-requests: read + + outputs: + src: ${{ steps.changes.outputs.src}} + + steps: + - uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2 + id: changes + continue-on-error: true + with: + filters: | + src: + - '.github/workflows/**' + - 'src/**' + - 'appinfo/info.xml' + - 'package.json' + - 'package-lock.json' + - 'tsconfig.json' + - '**.js' + - '**.ts' + - '**.vue' + + build: + runs-on: ubuntu-latest + + needs: changes + if: needs.changes.outputs.src != 'false' + + name: NPM build + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Read package.json node and npm engines version + uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 + id: versions + with: + fallbackNode: '^24' + fallbackNpm: '^11.3' + + - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: ${{ steps.versions.outputs.nodeVersion }} + + - name: Set up npm ${{ steps.versions.outputs.npmVersion }} + run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + + - name: Validate package-lock.json # See https://github.com/npm/cli/issues/4460 + run: | + npm i -g npm-package-lock-add-resolved@1.1.4 + npm-package-lock-add-resolved + git --no-pager diff --exit-code + + - name: Install dependencies & build + env: + CYPRESS_INSTALL_BINARY: 0 + PUPPETEER_SKIP_DOWNLOAD: true + run: | + npm ci + npm run build --if-present + + - name: Check build changes + run: | + bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)" + + - name: Show changes on failure + if: failure() + run: | + git status + git --no-pager diff + exit 1 # make it red to grab attention + + summary: + permissions: + contents: none + runs-on: ubuntu-latest-low + needs: [changes, build] + + if: always() + + # This is the summary, we just avoid to rename it so that branch protection rules still match + name: node + + steps: + - name: Summary status + run: if ${{ needs.changes.outputs.src != 'false' && needs.build.result != 'success' }}; then exit 1; fi diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml new file mode 100644 index 0000000..40f41ae --- /dev/null +++ b/.github/workflows/phpunit-mysql.yml @@ -0,0 +1,205 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: PHPUnit MySQL + +on: pull_request + +permissions: + contents: read + +concurrency: + group: phpunit-mysql-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + matrix: + runs-on: ubuntu-latest-low + outputs: + matrix: ${{ steps.versions.outputs.sparse-matrix }} + steps: + - name: Checkout app + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Get version matrix + id: versions + uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2 + with: + matrix: '{"mysql-versions": ["8.4"]}' + + changes: + runs-on: ubuntu-latest-low + permissions: + contents: read + pull-requests: read + + outputs: + src: ${{ steps.changes.outputs.src}} + + steps: + - uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2 + id: changes + continue-on-error: true + with: + filters: | + src: + - '.github/workflows/**' + - 'appinfo/**' + - 'lib/**' + - 'templates/**' + - 'tests/**' + - 'vendor/**' + - 'vendor-bin/**' + - '.php-cs-fixer.dist.php' + - 'composer.json' + - 'composer.lock' + + phpunit-mysql: + runs-on: ubuntu-latest + + needs: [changes, matrix] + if: needs.changes.outputs.src != 'false' + + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.matrix.outputs.matrix) }} + + name: MySQL ${{ matrix.mysql-versions }} PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }} + + services: + mysql: + image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest # zizmor: ignore[unpinned-images] + ports: + - 4444:3306/tcp + env: + MYSQL_ROOT_PASSWORD: rootpassword + options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10 + + steps: + - name: Set app env + if: ${{ env.APP_NAME == '' }} + run: | + # Split and keep last + echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV + + - name: Checkout server + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + submodules: true + repository: nextcloud/server + ref: ${{ matrix.server-versions }} + + - name: Checkout app + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + path: apps/${{ env.APP_NAME }} + + - name: Set up php ${{ matrix.php-versions }} + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 + with: + php-version: ${{ matrix.php-versions }} + # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation + extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql + coverage: none + ini-file: development + # Temporary workaround for missing pcntl_* in PHP 8.3 + ini-values: disable_functions= + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Enable ONLY_FULL_GROUP_BY MySQL option + run: | + echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword + echo 'SELECT @@sql_mode;' | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword + + - name: Check composer file existence + id: check_composer + uses: andstor/file-existence-action@558493d6c74bf472d87c84eab196434afc2fa029 # v3.1.0 + with: + files: apps/${{ env.APP_NAME }}/composer.json + + - name: Remove nextcloud/ocp + # Only run if phpunit config file exists + if: steps.check_composer.outputs.files_exists == 'true' + working-directory: apps/${{ env.APP_NAME }} + run: | + composer remove nextcloud/ocp --dev --no-scripts + + - name: Install composer dependencies + uses: ramsey/composer-install@65e4f84970763564f46a70b8a54b90d033b3bdda # 4.0.0 + with: + working-directory: apps/${{ env.APP_NAME }} + + - name: Set up Nextcloud + env: + DB_PORT: 4444 + run: | + mkdir data + ./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin + ./occ app:enable --force ${{ env.APP_NAME }} + + - name: Check PHPUnit script is defined + id: check_phpunit + continue-on-error: true + working-directory: apps/${{ env.APP_NAME }} + run: | + composer run --list | grep '^ test:unit ' | wc -l | grep 1 + + - name: PHPUnit + # Only run if phpunit config file exists + if: steps.check_phpunit.outcome == 'success' + working-directory: apps/${{ env.APP_NAME }} + run: composer run test:unit + + - name: Check PHPUnit integration script is defined + id: check_integration + continue-on-error: true + working-directory: apps/${{ env.APP_NAME }} + run: | + composer run --list | grep '^ test:integration ' | wc -l | grep 1 + + - name: Run Nextcloud + # Only run if phpunit integration config file exists + if: steps.check_integration.outcome == 'success' + run: php -S localhost:8080 & + + - name: PHPUnit integration + # Only run if phpunit integration config file exists + if: steps.check_integration.outcome == 'success' + working-directory: apps/${{ env.APP_NAME }} + run: composer run test:integration + + - name: Print logs + if: always() + run: | + cat data/nextcloud.log + + - name: Skipped + # Fail the action when neither unit nor integration tests ran + if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure' + run: | + echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts' + exit 1 + + summary: + permissions: + contents: none + runs-on: ubuntu-latest-low + needs: [changes, phpunit-mysql] + + if: always() + + name: phpunit-mysql-summary + + steps: + - name: Summary status + run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi diff --git a/.github/workflows/psalm-matrix.yml b/.github/workflows/psalm-matrix.yml new file mode 100644 index 0000000..a2e09e8 --- /dev/null +++ b/.github/workflows/psalm-matrix.yml @@ -0,0 +1,91 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Static analysis + +on: pull_request + +concurrency: + group: psalm-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + matrix: + runs-on: ubuntu-latest-low + outputs: + ocp-matrix: ${{ steps.versions.outputs.ocp-matrix }} + php-min: ${{ steps.versions.outputs.php-min }} + steps: + - name: Checkout app + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Get version matrix + id: versions + uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2 + + - name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml + run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml + + static-analysis: + runs-on: ubuntu-latest + needs: matrix + strategy: + # do not stop on another job's failure + fail-fast: false + matrix: ${{ fromJson(needs.matrix.outputs.ocp-matrix) }} + + name: static-psalm-analysis ${{ matrix.ocp-version }} + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Set up php${{ needs.matrix.outputs.php-min }} + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 + with: + php-version: ${{ needs.matrix.outputs.php-min }} + extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite + coverage: none + ini-file: development + # Temporary workaround for missing pcntl_* in PHP 8.3 + ini-values: disable_functions= + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Remove nextcloud/ocp + run: | + composer remove nextcloud/ocp --dev --no-scripts + + - name: Install composer dependencies + uses: ramsey/composer-install@65e4f84970763564f46a70b8a54b90d033b3bdda # 4.0.0 + + - name: Install nextcloud/ocp:${{ matrix.ocp-version }} + env: + OCP_VERSION: ${{ matrix.ocp-version }} + run: composer require --dev "nextcloud/ocp:$OCP_VERSION" --ignore-platform-reqs --with-dependencies + + - name: Run coding standards check + run: composer run psalm -- --threads=1 --monochrome --no-progress --output-format=github + + summary: + runs-on: ubuntu-latest-low + needs: static-analysis + + if: always() + + name: static-psalm-analysis-summary + + steps: + - name: Summary status + run: if ${{ needs.static-analysis.result != 'success' }}; then exit 1; fi diff --git a/.github/workflows/reuse.yml b/.github/workflows/reuse.yml new file mode 100644 index 0000000..67fdafc --- /dev/null +++ b/.github/workflows/reuse.yml @@ -0,0 +1,27 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization + +# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. +# +# SPDX-License-Identifier: CC0-1.0 + +name: REUSE Compliance Check + +on: [pull_request] + +permissions: + contents: read + +jobs: + reuse-compliance-check: + runs-on: ubuntu-latest-low + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: REUSE Compliance Check + uses: fsfe/reuse-action@676e2d560c9a403aa252096d99fcab3e1132b0f5 # v6.0.0 diff --git a/.github/workflows/sync-workflow-templates.yml b/.github/workflows/sync-workflow-templates.yml new file mode 100644 index 0000000..0e925bb --- /dev/null +++ b/.github/workflows/sync-workflow-templates.yml @@ -0,0 +1,141 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +# This workflow will update all workflow templates +# Additionally it will reapply `workflow.yml.patch` files after syncing and only then commit the result +name: Update workflows +on: + workflow_dispatch: + schedule: + - cron: "5 2 * * 0" + +permissions: + contents: read + +jobs: + dispatch: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + branches: + - ${{ github.event.repository.default_branch }} + - 'stable34' + - 'stable33' + - 'stable32' + + name: Update workflows in ${{ matrix.branches }} + + permissions: + contents: write + pull-requests: write + + steps: + - name: Check actor permission + uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0 + with: + require: admin + + - name: Checkout workflow repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + path: source + repository: nextcloud/.github + + - name: Checkout app + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + path: target + ref: ${{ matrix.branches }} + + - name: Copy all workflow templates + run: | + echo 'SUMMARY<> $GITHUB_ENV + draft_only=0 + for workflow in ./source/workflow-templates/*.yml; do + echo "❓ Looking for $workflow" + if [ -f "$workflow" ]; then + filename=$(basename "$workflow") + target_file="./target/.github/workflows/$filename" + + # Only copy if the file exists in the target repository + if [ -f "$target_file" ]; then + if [ -f "./target/.github/actions-lock.txt" ]; then + locked_version=$(grep " $filename" ./target/.github/actions-lock.txt | cat) + else + echo "# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors" >> ./target/.github/actions-lock.txt + echo "# SPDX-License""-Identifier: MIT" >> ./target/.github/actions-lock.txt + locked_version="" + fi + locked_version=$(echo $locked_version | cut -f 1 -d " ") + new_version=$(md5sum $workflow | cut -f 1 -d " ") + + # Only update if the action changes + if [[ "$locked_version" != "$new_version" ]]; then + echo "ℹ️ Locked version: $locked_version" + echo "ℹ️ Current version: $new_version" + echo "🆙 Updating existing workflow: $filename" + echo "- 🆙 Updated [$filename](https://github.com/nextcloud/.github/commits/master/workflow-templates/$filename)" >> $GITHUB_ENV + + cp "$workflow" "$target_file" + + # Apply patch if one exists + if [ -f "$target_file.patch" ]; then + echo "🩹 Applying patch" + cd ./target + set +e + patch -p1 < ".github/workflows/$filename.patch" + patch_worked=$? + set -e + cd - + if [[ "$patch_worked" == "0" ]]; then + echo " - Patch applied" >> $GITHUB_ENV + else + echo " - [ ] ❌ Patch failed" >> $GITHUB_ENV + draft_only=1 + fi + fi + + if [[ "$locked_version" != "" ]]; then + sed -i "s/$locked_version $filename/$new_version $filename/" ./target/.github/actions-lock.txt + else + echo "$new_version $filename" >> ./target/.github/actions-lock.txt + fi + else + echo "✅ Skipping $filename: already up to date" + fi + else + echo "⏭️ Skipping $filename: does not exist in target repository" + fi + fi + done + echo 'EOF' >> $GITHUB_ENV + echo "DRAFT_ONLY=${draft_only}" >> $GITHUB_ENV + + - name: Create Pull Request + uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1 + with: + token: ${{ secrets.COMMAND_BOT_WORKFLOWS }} + commit-message: 'ci(actions): Update workflow templates from organization template repository' + committer: GitHub + author: nextcloud-command + path: target + signoff: true + branch: 'automated/noid/${{ matrix.branches }}-update-workflows' + title: '[${{ matrix.branches }}] ci(actions): Update workflow templates from organization template repository' + draft: ${{ env.DRAFT_ONLY == 1 }} + add-paths: .github/workflows/*.yml,.github/actions-lock.txt + body: | + Automated update of all workflow templates from [nextcloud/.github](https://github.com/nextcloud/.github) + ${{ env.SUMMARY }} + labels: | + dependencies + 3. to review diff --git a/.github/workflows/update-nextcloud-ocp-approve-merge.yml b/.github/workflows/update-nextcloud-ocp-approve-merge.yml new file mode 100644 index 0000000..88c54da --- /dev/null +++ b/.github/workflows/update-nextcloud-ocp-approve-merge.yml @@ -0,0 +1,59 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Auto approve nextcloud/ocp + +on: + pull_request_target: # zizmor: ignore[dangerous-triggers] + branches: + - main + - master + - stable* + +permissions: + contents: read + +concurrency: + group: update-nextcloud-ocp-approve-merge-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + auto-approve-merge: + if: github.actor == 'nextcloud-command' + runs-on: ubuntu-latest-low + permissions: + # for auto-approve-action to approve PRs + pull-requests: write + # for alexwilson/enable-github-automerge-action to approve PRs + contents: write + + steps: + - name: Disabled on forks + if: ${{ github.event.pull_request.head.repo.full_name != github.repository }} + run: | + echo 'Can not approve PRs from forks' + exit 1 + + - uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0 + id: branchname + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + + - name: GitHub actions bot approve + if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp') + run: gh pr review --approve "$PR_URL" + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Enable GitHub auto merge + - name: Auto merge + uses: alexwilson/enable-github-automerge-action@2c32e18a76e0726ffe7a573bfff2d42a20885126 # 3.0.0 + if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp') + with: + github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/update-nextcloud-ocp-matrix.yml b/.github/workflows/update-nextcloud-ocp-matrix.yml new file mode 100644 index 0000000..4972327 --- /dev/null +++ b/.github/workflows/update-nextcloud-ocp-matrix.yml @@ -0,0 +1,112 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization +# +# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: MIT + +name: Update nextcloud/ocp + +on: + workflow_dispatch: + schedule: + - cron: '5 2 * * 0' + +permissions: + contents: read + issues: write + +jobs: + update-nextcloud-ocp: + runs-on: ubuntu-latest + + # Only allowed to be run on nextcloud repositories + if: ${{ github.repository_owner == 'nextcloud' }} + + strategy: + fail-fast: false + matrix: + branches: + - ${{ github.event.repository.default_branch }} + + name: update-nextcloud-ocp-${{ matrix.branches }} + + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + ref: ${{ matrix.branches }} + submodules: true + + - name: Get version matrix + id: versions + uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2 + + - name: Set up php8.3 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 + with: + php-version: 8.3 + # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation + extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite + coverage: none + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Read codeowners + id: codeowners + run: | + grep '/appinfo/info.xml' .github/CODEOWNERS | cut -f 2- -d ' ' | xargs | awk '{ print "codeowners="$0 }' >> $GITHUB_OUTPUT + continue-on-error: true + + - name: Install composer dependencies + uses: ramsey/composer-install@65e4f84970763564f46a70b8a54b90d033b3bdda # 4.0.0 + + - name: Check composer bin for nextcloud/ocp exists + id: check_composer_bin + uses: andstor/file-existence-action@558493d6c74bf472d87c84eab196434afc2fa029 # v3.1.0 + with: + files: vendor-bin/nextcloud-ocp/composer.json + + - name: Composer update nextcloud/ocp + id: update_branch + env: + USE_COMPOSER_BIN: ${{ steps.check_composer_bin.outputs.files_exists }} + BRANCH_NAME: ${{ steps.versions.outputs.branches-min }} + run: | + COMPOSER_CMD='composer' + if [[ "$USE_COMPOSER_BIN" == 'true' ]]; then + COMPOSER_CMD='composer bin nextcloud-ocp' + fi + + echo $COMPOSER_CMD require --dev nextcloud/ocp:dev-$BRANCH_NAME + $COMPOSER_CMD require --dev nextcloud/ocp:dev-$BRANCH_NAME + + - name: Raise on issue on failure + uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0 + if: ${{ failure() && steps.update_branch.conclusion == 'failure' }} + with: + token: ${{ secrets.GITHUB_TOKEN }} + title: 'Failed to update nextcloud/ocp package' + body: 'Please check the output of the GitHub action and manually resolve the issues
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
${{ steps.codeowners.outputs.codeowners }}' + + - name: Create Pull Request + uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1 + with: + token: ${{ secrets.COMMAND_BOT_PAT }} + commit-message: 'chore(dev-deps): Bump nextcloud/ocp package' + committer: GitHub + author: nextcloud-command + signoff: true + branch: 'automated/noid/${{ matrix.branches }}-update-nextcloud-ocp' + title: '[${{ matrix.branches }}] Update nextcloud/ocp dependency' + add-path: | + composer.json + composer.lock + vendor-bin/nextcloud-ocp/composer.json + vendor-bin/nextcloud-ocp/composer.lock + body: | + Auto-generated update of [nextcloud/ocp](https://github.com/nextcloud-deps/ocp/) dependency + labels: | + dependencies + 3. to review diff --git a/.gitignore b/.gitignore index ec3df89..3bdcefc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,8 @@ # SPDX-License-Identifier: AGPL-3.0-or-later /node_modules/ /vendor/ +/vendor-bin/*/vendor +.php-cs-fixer.cache +tests/.phpunit.cache npm-debug.log* /build/ diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php new file mode 100644 index 0000000..f51434d --- /dev/null +++ b/.php-cs-fixer.dist.php @@ -0,0 +1,22 @@ +getFinder() + ->notPath('build') + ->notPath('l10n') + ->notPath('node_modules') + ->notPath('src') + ->notPath('vendor') + ->in(__DIR__); +return $config; diff --git a/CHANGELOG.md b/CHANGELOG.md index e9059c1..0a69cf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ + # Changelog All notable changes to this project are documented in this file. diff --git a/LICENSES/AGPL-3.0-or-later.txt b/LICENSES/AGPL-3.0-or-later.txt new file mode 100644 index 0000000..0c97efd --- /dev/null +++ b/LICENSES/AGPL-3.0-or-later.txt @@ -0,0 +1,235 @@ +GNU AFFERO GENERAL PUBLIC LICENSE +Version 3, 19 November 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + + Preamble + +The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. + +A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. + +The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. + +An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. + +The precise terms and conditions for copying, distribution and modification follow. + + TERMS AND CONDITIONS + +0. Definitions. + +"This License" refers to version 3 of the GNU Affero General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based on the Program. + +To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code. +The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. + +A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". + + c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms. +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + + a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. + + d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +7. Additional Terms. +"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or authors of the material; or + + e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. + +8. Termination. + +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents. + +A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Remote Network Interaction; Use with the GNU General Public License. + +Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. + +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. + +You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt new file mode 100644 index 0000000..137069b --- /dev/null +++ b/LICENSES/Apache-2.0.txt @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/LICENSES/CC-BY-3.0.txt b/LICENSES/CC-BY-3.0.txt new file mode 100644 index 0000000..1a16e05 --- /dev/null +++ b/LICENSES/CC-BY-3.0.txt @@ -0,0 +1,319 @@ +Creative Commons Legal Code + +Attribution 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined above) for the purposes of this + License. + c. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + d. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + e. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + f. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. + g. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + h. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. + i. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(b), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(b), as requested. + b. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Section 3(b), in the case of an Adaptation, + a credit identifying the use of the Work in the Adaptation (e.g., + "French translation of the Work by Original Author," or "Screenplay + based on original Work by Original Author"). The credit required by + this Section 4 (b) may be implemented in any reasonable manner; + provided, however, that in the case of a Adaptation or Collection, at + a minimum such credit will appear, if a credit for all contributing + authors of the Adaptation or Collection appears, then as part of these + credits and in a manner at least as prominent as the credits for the + other contributing authors. For the avoidance of doubt, You may only + use the credit required by this Section for the purpose of attribution + in the manner set out above and, by exercising Your rights under this + License, You may not implicitly or explicitly assert or imply any + connection with, sponsorship or endorsement by the Original Author, + Licensor and/or Attribution Parties, as appropriate, of You or Your + use of the Work, without the separate, express prior written + permission of the Original Author, Licensor and/or Attribution + Parties. + c. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of this License. + + Creative Commons may be contacted at https://creativecommons.org/. diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/LICENSES/CC0-1.0.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/LICENSES/GPL-3.0-or-later.txt b/LICENSES/GPL-3.0-or-later.txt new file mode 100644 index 0000000..f6cdd22 --- /dev/null +++ b/LICENSES/GPL-3.0-or-later.txt @@ -0,0 +1,232 @@ +GNU GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The GNU General Public License is a free, copyleft license for software and other kinds of works. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS + +0. Definitions. + +“This License” refers to version 3 of the GNU General Public License. + +“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. + +To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. + +A “covered work” means either the unmodified Program or a work based on the Program. + +To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code. +The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. + +A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. + + c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms. +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + + a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. + + d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +7. Additional Terms. +“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or authors of the material; or + + e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. + +8. Termination. +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents. +A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. + +A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. + +14. Revised Versions of this License. +The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. + +You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . + +The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . diff --git a/LICENSES/ISC.txt b/LICENSES/ISC.txt new file mode 100644 index 0000000..b9c199c --- /dev/null +++ b/LICENSES/ISC.txt @@ -0,0 +1,8 @@ +ISC License: + +Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC") +Copyright (c) 1995-2003 by Internet Software Consortium + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 0000000..d817195 --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,18 @@ +MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/LICENSES/MPL-2.0.txt b/LICENSES/MPL-2.0.txt new file mode 100644 index 0000000..ee6256c --- /dev/null +++ b/LICENSES/MPL-2.0.txt @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at https://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/Makefile b/Makefile index cdea91a..cead9dc 100644 --- a/Makefile +++ b/Makefile @@ -25,20 +25,27 @@ appstore: clean mkdir -p $(staging_dir)/$(app_name) rsync -a \ --exclude=/.git \ + --exclude=/.github \ --exclude=/.gitignore \ --exclude=/build \ --exclude=/node_modules \ --exclude=/src \ --exclude=/tests \ --exclude=/vendor \ + --exclude=/vendor-bin \ --exclude=/screenshots \ --exclude=/composer.json \ --exclude=/composer.lock \ + --exclude=/eslint.config.mjs \ --exclude=/package.json \ --exclude=/package-lock.json \ + --exclude=/.php-cs-fixer.cache \ + --exclude=/.php-cs-fixer.dist.php \ --exclude=/vite.config.js \ + --exclude=/stylelint.config.cjs \ --exclude=/psalm.xml \ --exclude=/Makefile \ + --exclude=/README.md \ --exclude=/SPECIFICATION.md \ ./ $(staging_dir)/$(app_name)/ @if [ -f $(cert_dir)/$(app_name).crt ] && [ -f $(occ) ]; then \ diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 0000000..3378b85 --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,54 @@ +# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: AGPL-3.0-or-later +version = 1 +SPDX-PackageName = "absence" +SPDX-PackageSupplier = "Nextcloud " +SPDX-PackageDownloadLocation = "https://github.com/nextcloud/absence/" + +[[annotations]] +path = ["l10n/**.js", "l10n/**.json"] +precedence = "aggregate" +SPDX-FileCopyrightText = "2016 Nextcloud GmbH and Nextcloud and ownCloud contributors" +SPDX-License-Identifier = "AGPL-3.0-or-later" + +[[annotations]] +path = ["css/**.css", "css/**.css.map"] +precedence = "aggregate" +SPDX-FileCopyrightText = "2016 Nextcloud GmbH and Nextcloud contributors" +SPDX-License-Identifier = "AGPL-3.0-or-later" + +[[annotations]] +path = ["js/**.mjs", "js/**.mjs.map"] +precedence = "aggregate" +SPDX-FileCopyrightText = "2016 Nextcloud GmbH and Nextcloud contributors" +SPDX-License-Identifier = "AGPL-3.0-or-later" + +[[annotations]] +path = [".github/CODEOWNERS", ".github/dependabot.yml", "tests/Integration/base-query-count.txt", "tests/Integration/base-query-list.txt", ".github/workflows/*.patch"] +precedence = "aggregate" +SPDX-FileCopyrightText = "none" +SPDX-License-Identifier = "CC0-1.0" + +[[annotations]] +path = [".github/issue_template.md", ".github/contributing.md"] +precedence = "aggregate" +SPDX-FileCopyrightText = "2026 Nextcloud GmbH and Nextcloud contributors" +SPDX-License-Identifier = "CC0-1.0" + +[[annotations]] +path = ["package.json", "package-lock.json", "**/package.json", "**/package-lock.json", "composer.json", "composer.lock", "**/composer.json", "**/composer.lock", "psalm.xml", "tests/psalm-baseline.xml", ".tx/config", "**/phpunit.xml", "js/vendor.LICENSE.txt"] +precedence = "aggregate" +SPDX-FileCopyrightText = "none" +SPDX-License-Identifier = "CC0-1.0" + +[[annotations]] +path = ["img/app-dark.svg", "img/app.svg"] +precedence = "aggregate" +SPDX-FileCopyrightText = "2018-2024 Google LLC" +SPDX-License-Identifier = "Apache-2.0" + +[[annotations]] +path = ["screenshots/*.png"] +precedence = "aggregate" +SPDX-FileCopyrightText = "2026 Nextcloud GmbH and Nextcloud contributors" +SPDX-License-Identifier = "CC0-1.0" diff --git a/SPECIFICATION.md b/SPECIFICATION.md index 2d4dc9a..a597874 100644 --- a/SPECIFICATION.md +++ b/SPECIFICATION.md @@ -1,3 +1,7 @@ + # Absence — Vacation Approval Workflow for Nextcloud **App ID:** `absence` diff --git a/appinfo/info.xml b/appinfo/info.xml index 7a99351..efec2cd 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -42,14 +42,14 @@ exports. OCA\Absence\BackgroundJob\YearRolloverJob - - OCA\Absence\Migration\SeedLeaveTypes - OCA\Absence\Migration\EnableAuditLogging - OCA\Absence\Migration\EnableAuditLogging OCA\Absence\Migration\ConvertConfigTypes + + OCA\Absence\Migration\SeedLeaveTypes + OCA\Absence\Migration\EnableAuditLogging + OCA\Absence\Migration\DisableAuditLogging diff --git a/composer.json b/composer.json index 8d641e5..68f5254 100644 --- a/composer.json +++ b/composer.json @@ -9,15 +9,6 @@ "email": "frank@nextcloud.com" } ], - "require": { - "php": ">=8.1" - }, - "require-dev": { - "nextcloud/coding-standard": "^1.3", - "nextcloud/ocp": "dev-master", - "phpunit/phpunit": "^9.6", - "vimeo/psalm": "^5.26" - }, "autoload": { "psr-4": { "OCA\\Absence\\": "lib/" @@ -29,15 +20,32 @@ } }, "scripts": { + "post-install-cmd": [ + "@composer bin all install --ansi", + "composer dump-autoload" + ], + "post-update-cmd": [ + "@composer bin all install --ansi", + "composer dump-autoload" + ], + "lint": "find . -name \\*.php -not -path './vendor/*' -not -path './vendor-bin/*' -not -path './tests/Integration/vendor/*' -not -path './build/*' -print0 | xargs -0 -n200 php -l", "cs:check": "php-cs-fixer fix --dry-run --diff", "cs:fix": "php-cs-fixer fix", - "psalm": "psalm --no-cache", - "test:unit": "phpunit --config tests/phpunit.xml" + "psalm": "psalm --no-cache --threads=$(nproc)", + "psalm:update-baseline": "psalm --threads=1 --update-baseline", + "test:unit": "phpunit -c tests/phpunit.xml --colors=always --fail-on-warning --fail-on-risky --display-deprecations --display-phpunit-deprecations" }, "config": { "allow-plugins": { + "bamarni/composer-bin-plugin": true, "php-http/discovery": true }, + "platform": { + "php": "8.2" + }, "sort-packages": true + }, + "require": { + "bamarni/composer-bin-plugin": "^1.9.1" } } diff --git a/composer.lock b/composer.lock index 9a7e9f9..b9b01cf 100644 --- a/composer.lock +++ b/composer.lock @@ -4,4187 +4,76 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9c67dda6b0b246ba998448cd21e18060", - "packages": [], - "packages-dev": [ + "content-hash": "6a10d1d1e488321a40a1ed864238ba76", + "packages": [ { - "name": "amphp/amp", - "version": "v2.6.5", + "name": "bamarni/composer-bin-plugin", + "version": "1.9.1", "source": { "type": "git", - "url": "https://github.com/amphp/amp.git", - "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207" + "url": "https://github.com/bamarni/composer-bin-plugin.git", + "reference": "641d0663f5ac270b1aeec4337b7856f76204df47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", - "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", + "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/641d0663f5ac270b1aeec4337b7856f76204df47", + "reference": "641d0663f5ac270b1aeec4337b7856f76204df47", "shasum": "" }, "require": { - "php": ">=7.1" + "composer-plugin-api": "^2.0", + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", + "composer/composer": "^2.2.26", "ext-json": "*", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^7 | ^8 | ^9", - "react/promise": "^2", - "vimeo/psalm": "^3.12" - }, - "type": "library", - "autoload": { - "files": [ - "lib/functions.php", - "lib/Internal/functions.php" - ], - "psr-4": { - "Amp\\": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "https://amphp.org/amp", - "keywords": [ - "async", - "asynchronous", - "awaitable", - "concurrency", - "event", - "event-loop", - "future", - "non-blocking", - "promise" - ], - "support": { - "irc": "irc://irc.freenode.org/amphp", - "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.5" - }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2025-09-03T19:41:28+00:00" - }, - { - "name": "amphp/byte-stream", - "version": "v1.8.2", - "source": { - "type": "git", - "url": "https://github.com/amphp/byte-stream.git", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", - "shasum": "" - }, - "require": { - "amphp/amp": "^2", - "php": ">=7.1" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1.4", - "friendsofphp/php-cs-fixer": "^2.3", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6 || ^7 || ^8", - "psalm/phar": "^3.11.4" - }, - "type": "library", - "autoload": { - "files": [ - "lib/functions.php" - ], - "psr-4": { - "Amp\\ByteStream\\": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "https://amphp.org/byte-stream", - "keywords": [ - "amp", - "amphp", - "async", - "io", - "non-blocking", - "stream" - ], - "support": { - "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" - }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2024-04-13T18:00:56+00:00" - }, - { - "name": "composer/pcre", - "version": "3.4.0", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", - "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<2.2.2" - }, - "require-dev": { - "phpstan/phpstan": "^2", - "phpstan/phpstan-deprecation-rules": "^2", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^9" - }, - "type": "library", - "extra": { - "phpstan": { - "includes": [ - "extension.neon" - ] - }, - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.4.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - } - ], - "time": "2026-06-07T11:47:49+00:00" - }, - { - "name": "composer/semver", - "version": "3.4.4", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", - "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.11", - "symfony/phpunit-bridge": "^3 || ^7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.4" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - } - ], - "time": "2025-08-20T19:15:30+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.5", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2024-05-06T16:37:16+00:00" - }, - { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", - "source": { - "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" - }, - "type": "library", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "implementation of xdg base directory specification for php", - "support": { - "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", - "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" - }, - "time": "2019-12-04T15:06:13+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.6", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", - "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<=7.5 || >=14" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^14", - "phpstan/phpstan": "1.4.10 || 2.1.30", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", - "psr/log": "^1 || ^2 || ^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.6" - }, - "time": "2026-02-07T07:09:04+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/23da848e1a2308728fe5fdddabf4be17ff9720c7", - "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7", - "shasum": "" - }, - "require": { - "php": "^8.4" - }, - "require-dev": { - "doctrine/coding-standard": "^14", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^2.1", - "phpstan/phpstan-phpunit": "^2.0", - "phpunit/phpunit": "^10.5.58" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.1.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2026-01-05T06:47:08+00:00" - }, - { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.2.1", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "shasum": "" - }, - "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "php": "^7.1 || ^8.0", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "AdvancedJsonRpc\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "A more advanced JSONRPC implementation", - "support": { - "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", - "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" - }, - "time": "2021-06-11T22:34:44+00:00" - }, - { - "name": "felixfbecker/language-server-protocol", - "version": "v1.5.3", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpstan/phpstan": "*", - "squizlabs/php_codesniffer": "^3.1", - "vimeo/psalm": "^4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "LanguageServerProtocol\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "PHP classes for the Language Server Protocol", - "keywords": [ - "language", - "microsoft", - "php", - "server" - ], - "support": { - "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" - }, - "time": "2024-04-30T00:40:11+00:00" - }, - { - "name": "fidry/cpu-core-counter", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "db9508f7b1474469d9d3c53b86f817e344732678" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", - "reference": "db9508f7b1474469d9d3c53b86f817e344732678", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "fidry/makefile": "^0.2.0", - "fidry/php-cs-fixer-config": "^1.1.2", - "phpstan/extension-installer": "^1.2.0", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-deprecation-rules": "^2.0.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^8.5.31 || ^9.5.26", - "webmozarts/strict-phpunit": "^7.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Fidry\\CpuCoreCounter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com" - } - ], - "description": "Tiny utility to get the number of CPU cores.", - "keywords": [ - "CPU", - "core" - ], - "support": { - "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" - }, - "funding": [ - { - "url": "https://github.com/theofidry", - "type": "github" - } - ], - "time": "2025-08-14T07:29:31+00:00" - }, - { - "name": "kubawerlos/php-cs-fixer-custom-fixers", - "version": "v3.37.2", - "source": { - "type": "git", - "url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git", - "reference": "678df979ce743466b42ddb6eea46b3f4c9a7bade" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/678df979ce743466b42ddb6eea46b3f4c9a7bade", - "reference": "678df979ce743466b42ddb6eea46b3f4c9a7bade", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "ext-tokenizer": "*", - "friendsofphp/php-cs-fixer": "^3.87", - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.6.34 || ^10.5.63 || ^11.5.55" - }, - "type": "library", - "autoload": { - "psr-4": { - "PhpCsFixerCustomFixers\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kuba Werłos", - "email": "werlos@gmail.com" - } - ], - "description": "A set of custom fixers for PHP CS Fixer", - "support": { - "issues": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/issues", - "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.37.2" - }, - "funding": [ - { - "url": "https://github.com/kubawerlos", - "type": "github" - } - ], - "time": "2026-05-12T16:22:19+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.13.4", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2025-08-01T08:46:24+00:00" - }, - { - "name": "netresearch/jsonmapper", - "version": "v4.5.0", - "source": { - "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", - "squizlabs/php_codesniffer": "~3.5" - }, - "type": "library", - "autoload": { - "psr-0": { - "JsonMapper": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "OSL-3.0" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" - } - ], - "description": "Map nested JSON structures onto PHP classes", - "support": { - "email": "cweiske@cweiske.de", - "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" - }, - "time": "2024-09-08T10:13:13+00:00" - }, - { - "name": "nextcloud/coding-standard", - "version": "v1.5.0", - "source": { - "type": "git", - "url": "https://github.com/nextcloud/coding-standard.git", - "reference": "80547a93236fbb9c783e05f0f0899043851b0dba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/80547a93236fbb9c783e05f0f0899043851b0dba", - "reference": "80547a93236fbb9c783e05f0f0899043851b0dba", - "shasum": "" - }, - "require": { - "kubawerlos/php-cs-fixer-custom-fixers": "^3.22", - "php": "^8.0", - "php-cs-fixer/shim": "^3.17" - }, - "type": "library", - "autoload": { - "psr-4": { - "Nextcloud\\CodingStandard\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christoph Wurst", - "email": "christoph@winzerhof-wurst.at" - } - ], - "description": "Nextcloud coding standards for the php cs fixer", - "keywords": [ - "dev" - ], - "support": { - "issues": "https://github.com/nextcloud/coding-standard/issues", - "source": "https://github.com/nextcloud/coding-standard/tree/v1.5.0" - }, - "time": "2026-05-19T18:30:09+00:00" - }, - { - "name": "nextcloud/ocp", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/nextcloud-deps/ocp.git", - "reference": "ace0c099d516b8f24b32ef085f3d310dfd59fe45" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/ace0c099d516b8f24b32ef085f3d310dfd59fe45", - "reference": "ace0c099d516b8f24b32ef085f3d310dfd59fe45", - "shasum": "" - }, - "require": { - "php": "~8.3 || ~8.4 || ~8.5", - "psr/clock": "^1.0", - "psr/container": "^2.0.2", - "psr/event-dispatcher": "^1.0", - "psr/http-client": "^1.0.3", - "psr/log": "^3.0.2" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "35.0.0-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "AGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Christoph Wurst", - "email": "christoph@winzerhof-wurst.at" - }, - { - "name": "Joas Schilling", - "email": "coding@schilljs.com" - } - ], - "description": "Composer package containing Nextcloud's public OCP API and the unstable NCU API", - "support": { - "issues": "https://github.com/nextcloud-deps/ocp/issues", - "source": "https://github.com/nextcloud-deps/ocp/tree/master" - }, - "time": "2026-07-10T01:50:45+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.19.5", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", - "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.1" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.5" - }, - "time": "2025-12-06T11:45:25+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "54750ef60c58e43759730615a392c31c80e23176" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", - "reference": "54750ef60c58e43759730615a392c31c80e23176", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:33:53+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "php-cs-fixer/shim", - "version": "v3.95.13", - "source": { - "type": "git", - "url": "https://github.com/PHP-CS-Fixer/shim.git", - "reference": "5041a7367194b6d67a1664d60b42af52dcc537ff" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/5041a7367194b6d67a1664d60b42af52dcc537ff", - "reference": "5041a7367194b6d67a1664d60b42af52dcc537ff", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^7.4 || ^8.0" - }, - "replace": { - "friendsofphp/php-cs-fixer": "self.version" - }, - "suggest": { - "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters." - }, - "bin": [ - "php-cs-fixer", - "php-cs-fixer.phar" - ], - "type": "application", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Dariusz Rumiński", - "email": "dariusz.ruminski@gmail.com" - } - ], - "description": "A tool to automatically fix PHP code style", - "support": { - "issues": "https://github.com/PHP-CS-Fixer/shim/issues", - "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.95.13" - }, - "time": "2026-07-10T09:23:51+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.6.7", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "31a105931bc8ffa3a123383829772e832fd8d903" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/31a105931bc8ffa3a123383829772e832fd8d903", - "reference": "31a105931bc8ffa3a123383829772e832fd8d903", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.1", - "ext-filter": "*", - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7|^2.0", - "webmozart/assert": "^1.9.1 || ^2" - }, - "require-dev": { - "mockery/mockery": "~1.3.5 || ~1.6.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-webmozart-assert": "^1.2", - "phpunit/phpunit": "^9.5", - "psalm/phar": "^5.26" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.7" - }, - "time": "2026-03-18T20:47:46+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.12.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.3 || ^8.0", - "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.18|^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" - }, - "time": "2025-11-21T15:09:14+00:00" - }, - { - "name": "phpstan/phpdoc-parser", - "version": "2.3.3", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", - "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^5.3.0", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^9.6", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.3" - }, - "time": "2026-07-08T07:01:06+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.32", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-text-template": "^2.0.4", - "sebastian/code-unit-reverse-lookup": "^2.0.3", - "sebastian/complexity": "^2.0.3", - "sebastian/environment": "^5.1.5", - "sebastian/lines-of-code": "^1.0.4", - "sebastian/version": "^3.0.2", - "theseer/tokenizer": "^1.2.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.6" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "9.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-08-22T04:23:01+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-12-02T12:48:52+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "5.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "9.6.35", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "0edba2f3a0c48df3553cb9b640810b30df60302b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0edba2f3a0c48df3553cb9b640810b30df60302b", - "reference": "0edba2f3a0c48df3553cb9b640810b30df60302b", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.5.0 || ^2", - "ext-dom": "*", - "ext-filter": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.4", - "phar-io/manifest": "^2.0.4", - "phar-io/version": "^3.2.1", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.32", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.4", - "phpunit/php-timer": "^5.0.3", - "sebastian/cli-parser": "^1.0.2", - "sebastian/code-unit": "^1.0.8", - "sebastian/comparator": "^4.0.10", - "sebastian/diff": "^4.0.6", - "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.8", - "sebastian/global-state": "^5.0.8", - "sebastian/object-enumerator": "^4.0.4", - "sebastian/resource-operations": "^3.0.4", - "sebastian/type": "^3.2.1", - "sebastian/version": "^3.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.6-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.35" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsoring.html", - "type": "other" - } - ], - "time": "2026-07-06T14:48:07+00:00" - }, - { - "name": "psr/clock", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/clock.git", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Clock\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for reading the clock.", - "homepage": "https://github.com/php-fig/clock", - "keywords": [ - "clock", - "now", - "psr", - "psr-20", - "time" - ], - "support": { - "issues": "https://github.com/php-fig/clock/issues", - "source": "https://github.com/php-fig/clock/tree/1.0.0" - }, - "time": "2022-11-25T14:36:26+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/http-client", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", - "keywords": [ - "http", - "http-client", - "psr", - "psr-18" - ], - "support": { - "source": "https://github.com/php-fig/http-client" - }, - "time": "2023-09-23T14:17:50+00:00" - }, - { - "name": "psr/http-message", - "version": "2.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/2.0" - }, - "time": "2023-04-04T09:54:51+00:00" - }, - { - "name": "psr/log", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.2" - }, - "time": "2024-09-11T13:17:53+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T06:27:43+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:30:19+00:00" - }, - { - "name": "sebastian/comparator", - "version": "4.0.10", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e4df00b9b3571187db2831ae9aada2c6efbd715d", - "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.10" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", - "type": "tidelift" - } - ], - "time": "2026-01-24T09:22:56+00:00" - }, - { - "name": "sebastian/complexity", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:19:30+00:00" - }, - { - "name": "sebastian/diff", - "version": "4.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T06:30:58+00:00" - }, - { - "name": "sebastian/environment", - "version": "5.1.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:03:51+00:00" - }, - { - "name": "sebastian/exporter", - "version": "4.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", - "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", - "type": "tidelift" - } - ], - "time": "2025-09-24T06:03:27+00:00" - }, - { - "name": "sebastian/global-state", - "version": "5.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", - "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", - "type": "tidelift" - } - ], - "time": "2025-08-10T07:10:35+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "1.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:20:34+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:14:26+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "4.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "539c6691e0623af6dc6f9c20384c120f963465a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0", - "reference": "539c6691e0623af6dc6f9c20384c120f963465a0", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", - "type": "tidelift" - } - ], - "time": "2025-08-10T06:57:39+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-14T16:00:52+00:00" - }, - { - "name": "sebastian/type", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:13:03+00:00" - }, - { - "name": "sebastian/version", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:39:44+00:00" - }, - { - "name": "spatie/array-to-xml", - "version": "3.4.4", - "source": { - "type": "git", - "url": "https://github.com/spatie/array-to-xml.git", - "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/88b2f3852a922dd73177a68938f8eb2ec70c7224", - "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "php": "^8.0" - }, - "require-dev": { - "mockery/mockery": "^1.2", - "pestphp/pest": "^1.21", - "spatie/pest-plugin-snapshots": "^1.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Spatie\\ArrayToXml\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://freek.dev", - "role": "Developer" - } - ], - "description": "Convert an array to xml", - "homepage": "https://github.com/spatie/array-to-xml", - "keywords": [ - "array", - "convert", - "xml" - ], - "support": { - "source": "https://github.com/spatie/array-to-xml/tree/3.4.4" - }, - "funding": [ - { - "url": "https://spatie.be/open-source/support-us", - "type": "custom" - }, - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2025-12-15T09:00:41+00:00" - }, - { - "name": "symfony/console", - "version": "v7.4.14", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", - "reference": "92f58bc4bf97a92ed1b9f367f0cd44f20bde0e87", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2|^8.0" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/lock": "^6.4|^7.0|^8.0", - "symfony/messenger": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/stopwatch": "^6.4|^7.0|^8.0", - "symfony/var-dumper": "^6.4|^7.0|^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v7.4.14" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-06-16T11:50:14+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.7.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.7-dev" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-06-05T06:23:12+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v7.4.11", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/d721ea61b4a5fba8c5b6e7c1feda19efea144b50", - "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" - }, - "require-dev": { - "symfony/process": "^6.4|^7.0|^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.11" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-11T16:38:44+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.37.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-04-10T16:19:22+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.38.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "e9247d281d694a5120554d9afaf54e070e88a603" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/e9247d281d694a5120554d9afaf54e070e88a603", - "reference": "e9247d281d694a5120554d9afaf54e070e88a603", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.38.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-26T05:58:03+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.38.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-25T13:48:31+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.38.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": ">=7.2" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-27T06:59:30+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.7.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.7-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-06-16T09:55:08+00:00" - }, - { - "name": "symfony/string", - "version": "v8.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "afd5944f4005862d961efb85c8bbd5c523c4e3c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/afd5944f4005862d961efb85c8bbd5c523c4e3c9", - "reference": "afd5944f4005862d961efb85c8bbd5c523c4e3c9", - "shasum": "" - }, - "require": { - "php": ">=8.4.1", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-intl-grapheme": "^1.33", - "symfony/polyfill-intl-normalizer": "^1.0", - "symfony/polyfill-mbstring": "^1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/emoji": "^7.4|^8.0", - "symfony/http-client": "^7.4|^8.0", - "symfony/intl": "^7.4|^8.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^7.4|^8.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v8.1.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-29T05:06:50+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.3.1", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.3.1" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2025-11-17T20:03:58+00:00" - }, - { - "name": "vimeo/psalm", - "version": "5.26.1", - "source": { - "type": "git", - "url": "https://github.com/vimeo/psalm.git", - "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", - "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", - "shasum": "" - }, - "require": { - "amphp/amp": "^2.4.2", - "amphp/byte-stream": "^1.5", - "composer-runtime-api": "^2", - "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^2.0 || ^3.0", - "dnoegel/php-xdg-base-dir": "^0.1.1", - "ext-ctype": "*", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-simplexml": "*", - "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.1", - "felixfbecker/language-server-protocol": "^1.5.2", - "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.17", - "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", - "sebastian/diff": "^4.0 || ^5.0 || ^6.0", - "spatie/array-to-xml": "^2.17.0 || ^3.0", - "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0", - "symfony/filesystem": "^5.4 || ^6.0 || ^7.0" - }, - "conflict": { - "nikic/php-parser": "4.17.0" - }, - "provide": { - "psalm/psalm": "self.version" - }, - "require-dev": { - "amphp/phpunit-util": "^2.0", - "bamarni/composer-bin-plugin": "^1.4", - "brianium/paratest": "^6.9", - "ext-curl": "*", - "mockery/mockery": "^1.5", - "nunomaduro/mock-final-classes": "^1.1", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/phpdoc-parser": "^1.6", - "phpunit/phpunit": "^9.6", - "psalm/plugin-mockery": "^1.1", - "psalm/plugin-phpunit": "^0.18", - "slevomat/coding-standard": "^8.4", - "squizlabs/php_codesniffer": "^3.6", - "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0" - }, - "suggest": { - "ext-curl": "In order to send data to shepherd", - "ext-igbinary": "^2.0.5 is required, used to serialize caching data" - }, - "bin": [ - "psalm", - "psalm-language-server", - "psalm-plugin", - "psalm-refactor", - "psalter" - ], - "type": "project", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev", - "dev-2.x": "2.x-dev", - "dev-3.x": "3.x-dev", - "dev-4.x": "4.x-dev", - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psalm\\": "src/Psalm/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matthew Brown" - } - ], - "description": "A static analysis tool for finding errors in PHP applications", - "keywords": [ - "code", - "inspection", - "php", - "static analysis" - ], - "support": { - "docs": "https://psalm.dev/docs", - "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm" - }, - "time": "2024-09-08T18:53:08+00:00" - }, - { - "name": "webmozart/assert", - "version": "2.4.1", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/2ccb7c2e821038c03a3e6e1700c570c158c55f70", - "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-date": "*", - "ext-filter": "*", - "php": "^8.2" - }, - "suggest": { - "ext-intl": "", - "ext-simplexml": "", - "ext-spl": "" + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8 || ^2.0", + "phpstan/phpstan-phpunit": "^1.1 || ^2.0", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.0", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" }, - "type": "library", + "type": "composer-plugin", "extra": { - "psalm": { - "pluginClass": "Webmozart\\Assert\\PsalmPlugin" - }, - "branch-alias": { - "dev-master": "2.0-dev", - "dev-feature/2-0": "2.0-dev" - } + "class": "Bamarni\\Composer\\Bin\\BamarniBinPlugin" }, "autoload": { "psr-4": { - "Webmozart\\Assert\\": "src/" + "Bamarni\\Composer\\Bin\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - }, - { - "name": "Woody Gilk", - "email": "woody.gilk@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", + "description": "No conflicts for your bin dependencies", "keywords": [ - "assert", - "check", - "validate" + "composer", + "conflict", + "dependency", + "executable", + "isolation", + "tool" ], "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/2.4.1" + "issues": "https://github.com/bamarni/composer-bin-plugin/issues", + "source": "https://github.com/bamarni/composer-bin-plugin/tree/1.9.1" }, - "time": "2026-06-15T15:31:57+00:00" + "time": "2026-02-04T10:18:12+00:00" } ], + "packages-dev": [], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "nextcloud/ocp": 20 - }, + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, - "platform": { - "php": ">=8.1" - }, + "platform": {}, "platform-dev": {}, + "platform-overrides": { + "php": "8.2" + }, "plugin-api-version": "2.9.0" } diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..bf9a707 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,20 @@ +/** + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { recommendedJavascript } from '@nextcloud/eslint-config' + +export default [ + ...recommendedJavascript, + + { + name: 'absence/disabled', + rules: { + // TODO: rename components to multi-word + 'vue/multi-word-component-names': 'off', + // TODO: migrate to @nextcloud/logger + 'no-console': 'off', + }, + }, +] diff --git a/js/absence-main.mjs b/js/absence-main.mjs index 4a1999f..0fbf3a5 100644 --- a/js/absence-main.mjs +++ b/js/absence-main.mjs @@ -1,56 +1,8 @@ -(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(`@charset "UTF-8";.material-design-icon[data-v-8609a4c1]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.empty-content[data-v-8609a4c1]{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-8609a4c1]{margin-top:5vh;margin-bottom:5vh}.empty-content__icon[data-v-8609a4c1]{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-8609a4c1] svg{width:64px!important;height:64px!important;max-width:64px!important;max-height:64px!important}.empty-content__name[data-v-8609a4c1]{margin-bottom:10px;text-align:center;font-weight:var(--font-weight-heading, bold);font-size:20px;line-height:30px}.empty-content__description[data-v-8609a4c1]{color:var(--color-text-maxcontrast);text-align:center;text-wrap-style:balance}.empty-content__action[data-v-8609a4c1]{margin-top:8px}.modal-wrapper .empty-content__action[data-v-8609a4c1]{margin-top:20px;display:flex}.ring[data-v-4e48fe9d]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:calc(var(--default-grid-baseline, 4px) * 3)}.ring__svg[data-v-4e48fe9d]{width:120px;height:120px}.ring__track[data-v-4e48fe9d]{fill:none;stroke:var(--color-background-darker, var(--color-border));stroke-width:10}.ring__used[data-v-4e48fe9d]{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.4,0,.2,1)}.ring__value[data-v-4e48fe9d]{font-size:26px;font-weight:700;text-anchor:middle;fill:var(--color-main-text)}.ring__unit[data-v-4e48fe9d]{font-size:11px;text-anchor:middle;fill:var(--color-text-maxcontrast);text-transform:uppercase;letter-spacing:.06em}.ring__label[data-v-4e48fe9d]{display:flex;align-items:center;gap:6px;font-weight:600}.ring__meta[data-v-4e48fe9d]{font-size:.82rem;color:var(--color-text-maxcontrast)}.ring__pending[data-v-4e48fe9d]{color:var(--color-warning-text, var(--color-warning))}.card[data-v-616d428c]{display:flex;align-items:center;gap:calc(var(--default-grid-baseline, 4px) * 4);flex-wrap:wrap;background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 2) calc(var(--default-grid-baseline, 4px) * 3)}.card[data-v-616d428c] .ring{padding:calc(var(--default-grid-baseline, 4px));gap:2px}.card[data-v-616d428c] .ring__svg{width:92px;height:92px}.card[data-v-616d428c] .ring__value{font-size:30px}.card[data-v-616d428c] .ring__unit{font-size:12px}.ledger[data-v-616d428c]{flex:1;min-width:220px;max-width:340px;margin:0;margin-inline-start:auto;padding:0;font-size:.85rem}.ledger__row[data-v-616d428c]{display:flex;justify-content:space-between;gap:12px;padding:1px 0;color:var(--color-text-maxcontrast)}.ledger__row dt[data-v-616d428c],.ledger__row dd[data-v-616d428c]{padding:0;margin:0;width:auto}.ledger__row dt[data-v-616d428c]{font-weight:400;text-align:start}.ledger__row dd[data-v-616d428c]{font-variant-numeric:tabular-nums}.ledger__row--total[data-v-616d428c]{border-top:1px solid var(--color-border);color:var(--color-main-text);font-weight:600}.ledger__row--pending[data-v-616d428c]{color:var(--color-warning-text, var(--color-warning))}.ledger__row--available[data-v-616d428c]{border-top:1px solid var(--color-border);color:var(--color-main-text);font-weight:700}.ledger__row--available dd[data-v-616d428c]{color:var(--type-color, var(--color-main-text))}.chart[data-v-eee192cb]{margin:0}.chart__title[data-v-eee192cb]{font-weight:600;margin-bottom:8px}.chart__svg[data-v-eee192cb]{width:100%;height:auto}.chart__bar[data-v-eee192cb]{transition:height .8s cubic-bezier(.4,0,.2,1),y .8s cubic-bezier(.4,0,.2,1)}.chart__label[data-v-eee192cb]{font-size:11px;fill:var(--color-text-maxcontrast)}.chart__value[data-v-eee192cb]{font-size:11px;font-weight:600;fill:var(--color-main-text)}.material-design-icon[data-v-7e90555e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.list-item__wrapper[data-v-7e90555e]{display:flex;position:relative;width:100%;padding:2px 4px}.list-item__wrapper[data-v-7e90555e]:first-of-type{padding-block-start:4px}.list-item__wrapper[data-v-7e90555e]:last-of-type{padding-block-end:4px}.list-item__wrapper:not(.list-item__wrapper--legacy):not(.list-item__wrapper--active):not(.active) .list-item[data-v-7e90555e]:hover,.list-item__wrapper:not(.list-item__wrapper--legacy):not(.list-item__wrapper--active):not(.active) .list-item[data-v-7e90555e]:focus-within,.list-item__wrapper:not(.list-item__wrapper--legacy):not(.list-item__wrapper--active):not(.active) .list-item[data-v-7e90555e]:has(:active),.list-item__wrapper:not(.list-item__wrapper--legacy):not(.list-item__wrapper--active):not(.active) .list-item[data-v-7e90555e]:has(:focus-visible){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]{background-color:var(--color-primary-element-light);color:var(--color-main-text)!important}.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]:hover,.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]:focus-within,.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]:has(:focus-visible),.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]:has(:active),.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]:hover,.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]:focus-within,.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]:has(:focus-visible),.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]:has(:active){background-color:var(--color-primary-element-light-hover)}.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]:before,.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item[data-v-7e90555e]: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-7e90555e var(--animation-quick, .2s) ease-out}.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item-content__name[data-v-7e90555e],.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item-content__subname[data-v-7e90555e],.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item-content__details[data-v-7e90555e],.list-item__wrapper--active:not(.list-item__wrapper--legacy) .list-item-details__details[data-v-7e90555e],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item-content__name[data-v-7e90555e],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item-content__subname[data-v-7e90555e],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item-content__details[data-v-7e90555e],.list-item__wrapper.active:not(.list-item__wrapper--legacy) .list-item-details__details[data-v-7e90555e]{color:var(--color-main-text)!important}.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-7e90555e],.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-7e90555e]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)!important}.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-7e90555e]:hover,.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-7e90555e]:focus-within,.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-7e90555e]:has(:focus-visible),.list-item__wrapper--active.list-item__wrapper--legacy .list-item[data-v-7e90555e]:has(:active),.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-7e90555e]:hover,.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-7e90555e]:focus-within,.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-7e90555e]:has(:focus-visible),.list-item__wrapper.active.list-item__wrapper--legacy .list-item[data-v-7e90555e]:has(:active){background-color:var(--color-primary-element-hover)}.list-item__wrapper--active.list-item__wrapper--legacy .list-item-content__name[data-v-7e90555e],.list-item__wrapper--active.list-item__wrapper--legacy .list-item-content__subname[data-v-7e90555e],.list-item__wrapper--active.list-item__wrapper--legacy .list-item-content__details[data-v-7e90555e],.list-item__wrapper--active.list-item__wrapper--legacy .list-item-details__details[data-v-7e90555e],.list-item__wrapper.active.list-item__wrapper--legacy .list-item-content__name[data-v-7e90555e],.list-item__wrapper.active.list-item__wrapper--legacy .list-item-content__subname[data-v-7e90555e],.list-item__wrapper.active.list-item__wrapper--legacy .list-item-content__details[data-v-7e90555e],.list-item__wrapper.active.list-item__wrapper--legacy .list-item-details__details[data-v-7e90555e]{color:var(--color-primary-element-text)!important}@keyframes nc-nav-stripe-in-7e90555e{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.list-item__wrapper .list-item-content__name[data-v-7e90555e],.list-item__wrapper .list-item-content__subname[data-v-7e90555e],.list-item__wrapper .list-item-content__details[data-v-7e90555e],.list-item__wrapper .list-item-details__details[data-v-7e90555e]{white-space:nowrap;margin-block:0;margin-inline:0 auto;overflow:hidden;text-overflow:ellipsis}.list-item-content__name[data-v-7e90555e]{min-width:100px;flex:1 1 10%;font-weight:var(--font-weight-element, 500)}.list-item-content__subname[data-v-7e90555e]{flex:1 0;min-width:0;color:var(--color-text-maxcontrast)}.list-item-content__subname--bold[data-v-7e90555e]{font-weight:var(--font-weight-element, 500)}.list-item[data-v-7e90555e]{--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-7e90555e]:hover,.list-item[data-v-7e90555e]:focus-within,.list-item[data-v-7e90555e]:has(:active),.list-item[data-v-7e90555e]:has(:focus-visible){background-color:var(--color-background-hover)}.list-item[data-v-7e90555e]: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-7e90555e]{--list-item-padding: calc(.5 * var(--default-grid-baseline)) var(--default-grid-baseline)}.list-item--compact[data-v-7e90555e]:not(:has(.list-item-content__subname)){--list-item-height: var(--default-clickable-area)}.list-item--one-line[data-v-7e90555e]{--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-7e90555e]{display:flex;justify-content:start;gap:12px;min-width:0}.list-item--one-line .list-item-content__details[data-v-7e90555e]{flex-direction:row;align-items:center;justify-content:end}.list-item--one-line .list-item-content__name[data-v-7e90555e]{align-self:center;max-width:300px}.list-item__anchor[data-v-7e90555e]{color:inherit;display:flex;flex:1 0 auto;align-items:center;height:var(--list-item-height);min-width:0}.list-item__anchor[data-v-7e90555e]:focus-visible{outline:none}.list-item-content[data-v-7e90555e]{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-7e90555e]{flex:1 0;width:0;margin:auto 0}.list-item-content__main--oneline[data-v-7e90555e]{display:flex}.list-item-content__details[data-v-7e90555e]{display:flex;flex-direction:column;justify-content:end;align-items:end}.list-item-content__actions[data-v-7e90555e],.list-item-content__extra-actions[data-v-7e90555e]{flex:0 0 auto;align-self:center;justify-content:center;margin-inline-start:var(--default-grid-baseline)}.list-item-content__extra-actions[data-v-7e90555e]{display:flex;align-items:center;gap:var(--default-grid-baseline)}.list-item-details__details[data-v-7e90555e]{color:var(--color-text-maxcontrast);margin:0 9px!important;font-weight:var(--font-weight-default, normal)}.list-item-details__extra[data-v-7e90555e]{margin:2px 4px 0;display:flex;align-items:center}.list-item-details__indicator[data-v-7e90555e]{margin:0 5px}.list-item__extra[data-v-7e90555e]{margin-top:var(--default-grid-baseline)}.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}.status-chip[data-v-ad89be20]{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--border-radius-pill, 16px);font-size:.8rem;font-weight:600;color:var(--chip-text);background:color-mix(in srgb,var(--chip-tint) 18%,var(--color-main-background));border:1px solid color-mix(in srgb,var(--chip-tint) 35%,transparent);white-space:nowrap}.status-chip__dot[data-v-ad89be20]{font-size:.85em;line-height:1}.type-chip[data-v-9c1034d0]{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--border-radius-pill, 16px);font-size:.8rem;font-weight:600;color:color-mix(in srgb,var(--type-color) 50%,var(--color-main-text));background:color-mix(in srgb,var(--type-color) 16%,var(--color-main-background));border:1px solid color-mix(in srgb,var(--type-color) 35%,transparent);white-space:nowrap}.type-chip__icon[data-v-9c1034d0]{font-size:.95em;line-height:1}.rli[data-v-168b1264]{position:relative;border-radius:var(--border-radius-large, 12px);transition:transform .15s ease,background-color .15s ease}.rli[data-v-168b1264]:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--type-color);z-index:1}.rli[data-v-168b1264]:hover{background:var(--color-background-hover);transform:translateY(-1px)}.rli--active[data-v-168b1264]{background:var(--color-background-hover)}.rli[data-v-168b1264] .list-item,.rli[data-v-168b1264] .list-item__wrapper{border-radius:var(--border-radius-large, 12px)}.rli__icon[data-v-168b1264]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;font-size:1.2rem}@media(prefers-reduced-motion:reduce){.rli[data-v-168b1264]{transition:none}.rli[data-v-168b1264]:hover{transform:none}}.skeleton[data-v-0f888222]{display:flex;flex-direction:column;gap:6px}.skeleton__row[data-v-0f888222]{display:flex;align-items:center;gap:12px;padding:10px 8px}.skeleton__avatar[data-v-0f888222]{width:40px;height:40px;border-radius:50%;flex:0 0 auto}.skeleton__lines[data-v-0f888222]{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton__line[data-v-0f888222]{height:12px;border-radius:6px}.skeleton__line--title[data-v-0f888222]{width:45%}.skeleton__line--sub[data-v-0f888222]{width:65%;height:10px}.skeleton__pill[data-v-0f888222]{width:72px;height:22px;border-radius:var(--border-radius-pill, 16px);flex:0 0 auto}.skeleton__avatar[data-v-0f888222],.skeleton__line[data-v-0f888222],.skeleton__pill[data-v-0f888222]{background:linear-gradient(90deg,var(--color-background-hover) 25%,var(--color-background-dark) 37%,var(--color-background-hover) 63%);background-size:400% 100%;animation:skeleton-shimmer-0f888222 1.4s ease infinite}@keyframes skeleton-shimmer-0f888222{0%{background-position:100% 50%}to{background-position:0 50%}}@media(prefers-reduced-motion:reduce){.skeleton__avatar[data-v-0f888222],.skeleton__line[data-v-0f888222],.skeleton__pill[data-v-0f888222]{animation:none}}.palm[data-v-c74c7f38]{max-width:160px;height:auto}.palm__sun[data-v-c74c7f38]{fill:var(--color-warning);opacity:.85;animation:palm-bob-c74c7f38 4s ease-in-out infinite;transform-origin:center}.palm__sea[data-v-c74c7f38]{fill:color-mix(in srgb,var(--color-primary-element) 30%,transparent)}.palm__island[data-v-c74c7f38]{fill:color-mix(in srgb,var(--color-success) 35%,var(--color-main-background))}.palm__trunk[data-v-c74c7f38]{fill:color-mix(in srgb,#8a5a2b 70%,var(--color-main-text))}.palm__coco[data-v-c74c7f38]{fill:#6b3f1d}.palm__frond[data-v-c74c7f38]{fill:var(--color-success)}.palm__fronds[data-v-c74c7f38]{transform-origin:75px 70px;animation:palm-sway-c74c7f38 5s ease-in-out infinite}@keyframes palm-sway-c74c7f38{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes palm-bob-c74c7f38{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.palm__fronds[data-v-c74c7f38],.palm__sun[data-v-c74c7f38]{animation:none}}.page[data-v-a07ef7d1]{max-width:900px;margin:0 auto;padding:calc(var(--default-grid-baseline, 4px) * 5);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 6)}.page__header[data-v-a07ef7d1]{display:flex;align-items:center;justify-content:space-between;gap:12px}.page__title[data-v-a07ef7d1]{margin:0;font-size:1.6rem}.hero[data-v-a07ef7d1]{display:flex;align-items:center;gap:16px;padding:calc(var(--default-grid-baseline, 4px) * 4);border-radius:var(--border-radius-large, 12px);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 22%,var(--color-main-background)),color-mix(in srgb,var(--accent) 8%,var(--color-main-background)));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.hero__emoji[data-v-a07ef7d1]{font-size:2.4rem;line-height:1}.hero__text[data-v-a07ef7d1]{display:flex;flex-direction:column;gap:2px}.hero__eyebrow[data-v-a07ef7d1]{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-maxcontrast)}.hero__headline[data-v-a07ef7d1]{font-size:1.25rem}.hero__sub[data-v-a07ef7d1]{font-size:.9rem;color:var(--color-text-maxcontrast)}.overview[data-v-a07ef7d1]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3)}.charts[data-v-a07ef7d1]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:calc(var(--default-grid-baseline, 4px) * 3)}.charts__card[data-v-a07ef7d1]{background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 3)}.requests__title[data-v-a07ef7d1]{margin:0 0 12px;font-size:1.1rem}.requests__list[data-v-a07ef7d1]{display:flex;flex-direction:column;gap:2px;padding:0;margin:0;list-style:none}.rli-enter-active[data-v-a07ef7d1],.rli-leave-active[data-v-a07ef7d1]{transition:opacity .25s ease,transform .25s ease}.rli-enter-from[data-v-a07ef7d1]{opacity:0;transform:translateY(8px)}.rli-leave-to[data-v-a07ef7d1]{opacity:0;transform:translate(-12px)}.rli-move[data-v-a07ef7d1]{transition:transform .25s ease}@media(prefers-reduced-motion:reduce){.rli-enter-active[data-v-a07ef7d1],.rli-leave-active[data-v-a07ef7d1],.rli-move[data-v-a07ef7d1]{transition:none}}.page[data-v-1a17b6e5]{max-width:900px;margin:0 auto;padding:calc(var(--default-grid-baseline, 4px) * 5);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 6)}.page__title[data-v-1a17b6e5]{margin:0;font-size:1.6rem}.group__title[data-v-1a17b6e5]{margin:0 0 12px;font-size:1.1rem}.list[data-v-1a17b6e5]{display:flex;flex-direction:column;gap:2px;padding:0;margin:0;list-style:none}.rli-enter-active[data-v-1a17b6e5],.rli-leave-active[data-v-1a17b6e5]{transition:opacity .25s ease,transform .25s ease}.rli-enter-from[data-v-1a17b6e5]{opacity:0;transform:translateY(8px)}.rli-leave-to[data-v-1a17b6e5]{opacity:0;transform:translate(-12px)}.rli-move[data-v-1a17b6e5]{transition:transform .25s ease}@media(prefers-reduced-motion:reduce){.rli-enter-active[data-v-1a17b6e5],.rli-leave-active[data-v-1a17b6e5],.rli-move[data-v-1a17b6e5]{transition:none}}.material-design-icon[data-v-e0ae1174]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.avatardiv[data-v-e0ae1174]{position:relative;display:inline-block;width:var(--avatar-size);height:var(--avatar-size)}.avatardiv--unknown[data-v-e0ae1174]{position:relative;background-color:var(--color-main-background);white-space:normal}.avatardiv[data-v-e0ae1174]:not(.avatardiv--unknown){background-color:var(--color-main-background)!important;box-shadow:0 0 5px #0000000d inset}.avatardiv--with-menu[data-v-e0ae1174]{cursor:pointer}.avatardiv--with-menu .action-item[data-v-e0ae1174]{position:absolute;top:0;inset-inline-start:0}.avatardiv--with-menu[data-v-e0ae1174] .action-item__menutoggle{cursor:pointer;opacity:0}.avatardiv--with-menu[data-v-e0ae1174]:focus-within .action-item__menutoggle,.avatardiv--with-menu[data-v-e0ae1174]:hover .action-item__menutoggle,.avatardiv--with-menu.avatardiv--with-menu-loading[data-v-e0ae1174] .action-item__menutoggle{opacity:1}.avatardiv--with-menu:focus-within img[data-v-e0ae1174],.avatardiv--with-menu:hover img[data-v-e0ae1174],.avatardiv--with-menu.avatardiv--with-menu-loading img[data-v-e0ae1174]{opacity:.3}.avatardiv--with-menu[data-v-e0ae1174] .action-item__menutoggle,.avatardiv--with-menu img[data-v-e0ae1174]{transition:opacity var(--animation-quick)}.avatardiv--with-menu[data-v-e0ae1174] .button-vue,.avatardiv--with-menu[data-v-e0ae1174] .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-e0ae1174]>.button-vue,.avatardiv--with-menu[data-v-e0ae1174]>.action-item .button-vue{--button-radius: calc(var(--avatar-size) / 2)}.avatardiv .avatardiv__initials-wrapper[data-v-e0ae1174]{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-e0ae1174]{position:absolute;top:0;inset-inline-start:0;display:block;width:100%;text-align:center;font-weight:var(--font-weight-default, normal)}.avatardiv img[data-v-e0ae1174]{width:100%;height:100%;object-fit:cover}.avatardiv .material-design-icon[data-v-e0ae1174]{width:var(--avatar-size);height:var(--avatar-size)}.avatardiv .avatardiv__user-status[data-v-e0ae1174]{--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-e0ae1174]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-e0ae1174]{border-color:var(--color-primary-element-light);background-color:var(--color-primary-element-light)}.avatardiv .avatardiv__user-status--icon[data-v-e0ae1174]{border:none;background-color:transparent}.avatardiv .popovermenu-wrapper[data-v-e0ae1174]{position:relative;display:inline-block}.avatar-class-icon[data-v-e0ae1174]{display:block;border-radius:calc(var(--avatar-size) / 2);background-color:var(--color-background-darker);height:100%}._material-design-icon_MpHB-{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._externalLink_SRhry{text-decoration:underline}._externalLink_decorated_wKyfn:after{content:" ↗"}.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%}.material-design-icon[data-v-6c2daf4e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-6c2daf4e]:hover,li.action.active[data-v-6c2daf4e]{border-radius:6px;padding:0}li.action[data-v-6c2daf4e]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-6c2daf4e]{pointer-events:none;opacity:.5}.action--disabled[data-v-6c2daf4e]:hover,.action--disabled[data-v-6c2daf4e]:focus{cursor:default;opacity:.5}.action--disabled[data-v-6c2daf4e] *{opacity:1!important}.action-button[data-v-6c2daf4e]{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-6c2daf4e]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-6c2daf4e]{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-6c2daf4e] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-button[data-v-6c2daf4e] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button__longtext-wrapper[data-v-6c2daf4e],.action-button__longtext[data-v-6c2daf4e]{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-6c2daf4e]{cursor:pointer;white-space:pre-wrap!important}.action-button__name[data-v-6c2daf4e]{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-6c2daf4e]{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-6c2daf4e],.action-button__pressed-icon[data-v-6c2daf4e]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action-button[data-v-6c2daf4e] *{cursor:pointer}.material-design-icon[data-v-32f01b7a]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-32f01b7a]:hover,li.action.active[data-v-32f01b7a]{border-radius:6px;padding:0}li.action[data-v-32f01b7a]:hover{background-color:var(--color-background-hover)}.action-link[data-v-32f01b7a]{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-32f01b7a]{cursor:pointer;white-space:nowrap}.action-link__icon[data-v-32f01b7a]{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-32f01b7a] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-link[data-v-32f01b7a] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-link__longtext-wrapper[data-v-32f01b7a],.action-link__longtext[data-v-32f01b7a]{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-32f01b7a]{cursor:pointer;white-space:pre-wrap!important}.action-link__name[data-v-32f01b7a]{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-32f01b7a]{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-32f01b7a]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.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:var(--font-weight-element, normal);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:var(--font-weight-heading, bold);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);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-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-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:var(--font-weight-element, normal);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:var(--font-weight-heading, bold);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);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-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}.gantt[data-v-d1d21a0a]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3)}.gantt__toolbar[data-v-d1d21a0a]{display:flex;align-items:center;gap:8px}.gantt__month[data-v-d1d21a0a]{font-size:1.1rem;min-width:150px;text-align:center}.gantt__scroll[data-v-d1d21a0a]{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--border-radius-large, 12px)}.gantt__grid[data-v-d1d21a0a]{min-width:max-content}.gantt__row[data-v-d1d21a0a]{display:flex;align-items:stretch;border-bottom:1px solid var(--color-border-dark, var(--color-border))}.gantt__row[data-v-d1d21a0a]:last-child{border-bottom:none}.gantt__row--head[data-v-d1d21a0a]{position:sticky;top:0;z-index:3;background:var(--color-main-background)}.gantt__name[data-v-d1d21a0a]{position:sticky;left:0;z-index:2;flex:0 0 180px;width:180px;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-main-background);border-right:1px solid var(--color-border)}.gantt__name--head[data-v-d1d21a0a]{font-size:.8rem;color:var(--color-text-maxcontrast);text-transform:uppercase;letter-spacing:.04em}.gantt__name-text[data-v-d1d21a0a]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__track[data-v-d1d21a0a]{position:relative;height:42px;width:calc(var(--days) * var(--day-w));flex:0 0 auto}.gantt__daynum[data-v-d1d21a0a]{position:absolute;top:50%;transform:translateY(-50%);width:var(--day-w);text-align:center;font-size:.72rem;color:var(--color-text-maxcontrast)}.gantt__daynum--weekend[data-v-d1d21a0a]{color:var(--color-primary-element)}.gantt__daynum--today[data-v-d1d21a0a]{color:var(--color-primary-element-text, #fff);background:var(--color-primary-element);border-radius:8px;padding:1px 0}.gantt__col[data-v-d1d21a0a]{position:absolute;top:0;bottom:0;width:var(--day-w)}.gantt__col--weekend[data-v-d1d21a0a]{background:var(--color-background-dark)}.gantt__today[data-v-d1d21a0a]{position:absolute;top:0;bottom:0;width:2px;background:var(--color-primary-element);opacity:.7;z-index:1}.gantt__pill[data-v-d1d21a0a]{position:absolute;top:8px;height:26px;display:flex;align-items:center;padding:0 8px;border-radius:var(--border-radius-pill, 14px);background:var(--pill);color:#fff;font-size:.85rem;box-shadow:0 1px 3px #0000002e;overflow:hidden;z-index:1;animation:pill-in-d1d21a0a .3s ease both}.gantt__pill--pending[data-v-d1d21a0a]{background:repeating-linear-gradient(45deg,var(--pill),var(--pill) 6px,color-mix(in srgb,var(--pill) 55%,transparent) 6px,color-mix(in srgb,var(--pill) 55%,transparent) 12px);opacity:.9}@keyframes pill-in-d1d21a0a{0%{opacity:0;transform:scaleX(.9);transform-origin:left}to{opacity:1;transform:scaleX(1)}}.legend[data-v-d1d21a0a]{display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:var(--color-text-maxcontrast)}.legend__item[data-v-d1d21a0a]{display:inline-flex;align-items:center;gap:6px}.legend__swatch[data-v-d1d21a0a]{width:14px;height:14px;border-radius:4px}.legend__swatch--pending[data-v-d1d21a0a]{background:repeating-linear-gradient(45deg,var(--color-text-maxcontrast),var(--color-text-maxcontrast) 3px,transparent 3px,transparent 6px)}@media(prefers-reduced-motion:reduce){.gantt__pill[data-v-d1d21a0a]{animation:none}}.page[data-v-5780a75a]{max-width:1100px;margin:0 auto;padding:calc(var(--default-grid-baseline, 4px) * 5);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 5)}.page__title[data-v-5780a75a]{margin:0;font-size:1.6rem}.material-design-icon[data-v-8e16cbb5]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.input-field[data-v-8e16cbb5]{--input-border-color: var(--color-border-maxcontrast);--input-border-radius: var(--border-radius-element);--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-8e16cbb5]{opacity:.4;filter:saturate(.4)}.input-field--label-outside[data-v-8e16cbb5]{margin-block-start:0}.input-field--leading-icon[data-v-8e16cbb5]{--input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--trailing-icon[data-v-8e16cbb5]{--input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline))}.input-field--pill[data-v-8e16cbb5]{--input-border-radius: var(--border-radius-pill)}.input-field__main-wrapper[data-v-8e16cbb5]{height:var(--default-clickable-area);padding:var(--border-width-input-focused, 2px);position:relative}.input-field__input[data-v-8e16cbb5]{--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-8e16cbb5]: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-8e16cbb5]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .input-field__input[data-v-8e16cbb5]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .input-field__input[data-v-8e16cbb5]{--input-border-box-shadow: var(--input-border-box-shadow-light)}.input-field--legacy .input-field__input[data-v-8e16cbb5]{box-shadow:0 0 0 1px var(--input-border-color)}.input-field--legacy .input-field__input[data-v-8e16cbb5]:hover:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color)}.input-field__input[data-v-8e16cbb5]:focus-within:not([disabled]),.input-field__input[data-v-8e16cbb5]: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-8e16cbb5]{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-8e16cbb5]::placeholder{color:var(--color-text-maxcontrast)}.input-field__input[data-v-8e16cbb5]::-webkit-search-cancel-button{display:none}.input-field__input[data-v-8e16cbb5]::-webkit-search-decoration,.input-field__input[data-v-8e16cbb5]::-webkit-search-results-button,.input-field__input[data-v-8e16cbb5]::-webkit-search-results-decoration,.input-field__input[data-v-8e16cbb5]::-ms-clear{display:none}.input-field__input[data-v-8e16cbb5]:active:not([disabled]),.input-field__input[data-v-8e16cbb5]:focus:not([disabled]){--input-border-color: var(--color-main-text)}.input-field__input:focus+.input-field__label[data-v-8e16cbb5],.input-field__input:hover:not(:placeholder-shown)+.input-field__label[data-v-8e16cbb5]{color:var(--color-main-text)}.input-field__input[data-v-8e16cbb5]:focus{cursor:text}.input-field__input[data-v-8e16cbb5]:disabled{cursor:default}.input-field__input[data-v-8e16cbb5]:focus-visible{box-shadow:unset!important}.input-field:not(.input-field--label-outside) .input-field__input[data-v-8e16cbb5]:not(:focus)::placeholder{opacity:0}.input-field__label[data-v-8e16cbb5]{--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-8e16cbb5],.input-field__input:not(:placeholder-shown)+.input-field__label[data-v-8e16cbb5]{--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-8e16cbb5]{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-8e16cbb5]{inset-inline-start:0px}.input-field__icon--trailing[data-v-8e16cbb5]{inset-inline-end:0px}.input-field__trailing-button[data-v-8e16cbb5]{--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-8e16cbb5]{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-8e16cbb5]:focus-visible{box-shadow:none!important}.input-field__helper-text-message[data-v-8e16cbb5]{padding-block:4px;padding-inline:var(--border-radius-element);display:flex;align-items:center;color:var(--color-text-maxcontrast);overflow-wrap:anywhere}.input-field__helper-text-message__icon[data-v-8e16cbb5]{margin-inline-end:8px}.input-field--error .input-field__helper-text-message[data-v-8e16cbb5],.input-field--error .input-field__icon--trailing[data-v-8e16cbb5]{color:var(--color-text-error, var(--color-error))}.input-field--error .input-field__input[data-v-8e16cbb5],.input-field__input[data-v-8e16cbb5]:user-invalid{--input-border-color: var(--color-border-error, var(--color-error)) !important}.input-field--error .input-field__input[data-v-8e16cbb5]:focus-visible,.input-field__input[data-v-8e16cbb5]: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-8e16cbb5]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.input-field--success .input-field__input[data-v-8e16cbb5]: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-8e16cbb5]{color:var(--color-border-success, var(--color-success))}.page[data-v-3ada74dc]{max-width:1100px;margin:0 auto;padding:calc(var(--default-grid-baseline, 4px) * 5);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 4)}.page__header[data-v-3ada74dc]{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page__title[data-v-3ada74dc]{margin:0;font-size:1.6rem}.page__tools[data-v-3ada74dc]{display:flex;gap:12px;align-items:center}.page__search[data-v-3ada74dc]{width:240px}.table-wrap[data-v-3ada74dc]{overflow-x:auto}.tbl[data-v-3ada74dc]{width:100%;border-collapse:collapse}.tbl th[data-v-3ada74dc],.tbl td[data-v-3ada74dc]{padding:10px 12px;text-align:left;border-bottom:1px solid var(--color-border)}.tbl th[data-v-3ada74dc]{font-size:.8rem;color:var(--color-text-maxcontrast);text-transform:uppercase;letter-spacing:.04em}.tbl .num[data-v-3ada74dc]{text-align:right;font-variant-numeric:tabular-nums}.tbl .neg[data-v-3ada74dc]{color:var(--color-error);font-weight:600}.emp[data-v-3ada74dc],.type[data-v-3ada74dc]{display:inline-flex;align-items:center;gap:8px}.edit[data-v-3ada74dc]{display:flex;flex-direction:column;gap:10px;padding:calc(var(--default-grid-baseline, 4px) * 5)}.edit label[data-v-3ada74dc]{font-weight:600;font-size:.85rem}.edit__actions[data-v-3ada74dc]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.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}}.line[data-v-dba42db4]{margin:0}.line__title[data-v-dba42db4]{font-weight:600;margin-bottom:8px}.line__svg[data-v-dba42db4]{width:100%;height:auto}.line__grid[data-v-dba42db4]{stroke:var(--color-border);stroke-width:1}.line__area[data-v-dba42db4]{fill:color-mix(in srgb,var(--color-primary-element) 18%,transparent)}.line__stroke[data-v-dba42db4]{fill:none;stroke:var(--color-primary-element);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.line__dot[data-v-dba42db4]{fill:var(--color-main-background);stroke:var(--color-primary-element);stroke-width:2}.line__xlabel[data-v-dba42db4]{font-size:10px;fill:var(--color-text-maxcontrast)}.donut[data-v-aa608480]{margin:0}.donut__title[data-v-aa608480]{font-weight:600;margin-bottom:8px}.donut__body[data-v-aa608480]{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.donut__svg[data-v-aa608480]{width:160px;height:160px;flex:0 0 auto}.donut__track[data-v-aa608480]{fill:none;stroke:var(--color-background-dark);stroke-width:18}.donut__seg[data-v-aa608480]{fill:none;stroke-width:18;stroke-linecap:butt;transition:stroke-dasharray .8s cubic-bezier(.4,0,.2,1)}.donut__total[data-v-aa608480]{font-size:26px;font-weight:700;text-anchor:middle;fill:var(--color-main-text)}.donut__unit[data-v-aa608480]{font-size:11px;text-anchor:middle;fill:var(--color-text-maxcontrast);text-transform:uppercase;letter-spacing:.06em}.donut__legend[data-v-aa608480]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;min-width:160px}.donut__legend li[data-v-aa608480]{display:flex;align-items:center;gap:8px;font-size:.88rem}.donut__swatch[data-v-aa608480]{width:12px;height:12px;border-radius:3px;flex:0 0 auto}.donut__label[data-v-aa608480]{flex:1}.donut__value[data-v-aa608480]{color:var(--color-text-maxcontrast)}@media(prefers-reduced-motion:reduce){.donut__seg[data-v-aa608480]{transition:none}}.page[data-v-03e8faec]{max-width:900px;margin:0 auto;padding:calc(var(--default-grid-baseline, 4px) * 5);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 5)}.page__header[data-v-03e8faec]{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page__title[data-v-03e8faec]{margin:0;font-size:1.6rem}.range[data-v-03e8faec]{display:flex;gap:12px}.cards[data-v-03e8faec]{display:flex;gap:16px;flex-wrap:wrap}.card[data-v-03e8faec]{flex:1 1 160px;display:flex;flex-direction:column;background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 4)}.card__icon[data-v-03e8faec]{font-size:1.4rem;margin-bottom:4px}.card__value[data-v-03e8faec]{font-size:2rem;font-weight:700;color:var(--color-primary-element)}.card__label[data-v-03e8faec]{color:var(--color-text-maxcontrast);font-size:.85rem}.panel[data-v-03e8faec]{background:var(--color-main-background);border:1px solid var(--color-border);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 4)}.page[data-v-a95b495e]{max-width:1100px;margin:0 auto;padding:calc(var(--default-grid-baseline, 4px) * 5);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 5)}.page__title[data-v-a95b495e]{margin:0;font-size:1.6rem}.page[data-v-d327057b]{max-width:900px;margin:0 auto;padding:calc(var(--default-grid-baseline, 4px) * 5)}.page__title[data-v-d327057b]{margin:0 0 24px;font-size:1.6rem}.cards[data-v-d327057b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.card[data-v-d327057b]{background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:calc(var(--default-grid-baseline, 4px) * 4);display:flex;flex-direction:column;gap:12px}.card h3[data-v-d327057b]{margin:0}.card p[data-v-d327057b]{margin:0;color:var(--color-text-maxcontrast)}.card__row[data-v-d327057b]{display:flex;gap:12px;flex-wrap:wrap}.dl[data-v-d327057b]{text-decoration:none}.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-ea1e6879]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-ea1e6879]{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-ea1e6879]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-ea1e6879]{position:relative;width:100%;height:100%}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-ea1e6879] .app-content-list{display:flex}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-ea1e6879] .app-content-details,.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-ea1e6879] .app-content-list{display:none}.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-ea1e6879] .app-content-details{display:block}[data-v-ea1e6879] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane{background-color:transparent;transition:none}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky}@media only screen and (width<1024px){[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width<1024px){[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--color-main-background)}[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-ea1e6879] .splitpanes.default-theme .splitpanes__splitter:after{background-color:var(--color-border)}[data-v-ea1e6879] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter{border-inline-start:1px solid var(--color-border)}[data-v-ea1e6879] .splitpanes.default-theme.splitpanes--horizontal .splitpanes__splitter{border-top:1px solid var(--color-border)}.app-content-wrapper--show-list[data-v-ea1e6879] .app-content-list{max-width:none}.app-content-wrapper__list[data-v-ea1e6879]{height:100%}.splitpanes{width:100%;height:100%;display:flex}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging .splitpanes__pane{-webkit-user-select:none;user-select:none;pointer-events:none}:has(.splitpanes--dragging){-webkit-user-select:none;user-select:none;pointer-events:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--ready .splitpanes__pane{will-change:width,height;transition:width .2s ease-out,height .2s ease-out}.splitpanes--ready.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes__splitter:focus{outline:none}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.default-theme.splitpanes .splitpanes__pane{background-color:#f2f2f2}.default-theme.splitpanes .splitpanes__splitter{box-sizing:border-box;background-color:#fff;flex-shrink:0;position:relative}.default-theme.splitpanes .splitpanes__splitter:focus-visible{outline-offset:-2px;outline:2px solid #3b82f6}.default-theme.splitpanes .splitpanes__splitter:before,.default-theme.splitpanes .splitpanes__splitter:after{content:"";background-color:#00000026;transition:background-color .3s;position:absolute;top:50%;left:50%}.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{border-left:1px solid #eee;width:7px;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{width:1px;height:30px;transform:translateY(-50%)}.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{border-top:1px solid #eee;height:7px;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{width:30px;height:1px;transform:translate(-50%)}.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-104ef656]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-104ef656]{--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:transparent}.app-navigation--legacy[data-v-104ef656]{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-104ef656]{margin-inline-start:calc(-1*min(300px,var(--app-navigation-max-width)))}.app-navigation__search[data-v-104ef656]{width:100%}.app-navigation__body[data-v-104ef656]{overflow-y:scroll}.app-navigation__content>ul[data-v-104ef656]{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-104ef656]{height:100%}.app-navigation__body--no-list[data-v-104ef656]{flex:1 1 auto;overflow:auto;height:100%}.app-navigation__content[data-v-104ef656]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-104ef656]{border-inline-end:1px solid var(--color-border)}@media only screen and (width<1024px){.app-navigation[data-v-104ef656]{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-104ef656]{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-f0e411c2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-f0e411c2]{display:flex;justify-content:space-between}.app-navigation-caption--heading[data-v-f0e411c2]{padding:var(--app-navigation-padding)}.app-navigation-caption--heading[data-v-f0e411c2]:not(:first-child):not(:last-child){padding:0 var(--app-navigation-padding)}.app-navigation-caption__name[data-v-f0e411c2]{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: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-f0e411c2]{flex:0 0 var(--default-clickable-area)}.app-navigation-caption[data-v-f0e411c2]:not(:first-child){margin-top:calc(var(--default-clickable-area) / 2)}.material-design-icon[data-v-acf5ed2f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-acf5ed2f]{position:relative;inset-inline-end:0}.icon-collapse[data-v-acf5ed2f]:hover{background-color:var(--color-background-dark)!important}.icon-collapse--active[data-v-acf5ed2f]:hover{background-color:var(--color-primary-element)!important}.material-design-icon[data-v-e4d562ae]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-e4d562ae]{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-e4d562ae]{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-e4d562ae]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]{background-color:color-mix(in srgb,var(--color-primary-element) 16%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]: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-e4d562ae],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-e4d562ae]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-e4d562ae]: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-e4d562ae var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-e4d562ae]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-e4d562ae]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-e4d562ae]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-e4d562ae]:focus-within,.app-navigation-entry[data-v-e4d562ae]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-e4d562ae]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-e4d562ae]: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-e4d562ae],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-e4d562ae],.app-navigation-entry:hover .app-navigation-entry__children[data-v-e4d562ae]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-e4d562ae]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-e4d562ae]: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-e4d562ae]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-e4d562ae]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-e4d562ae]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-e4d562ae]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-e4d562ae],.app-navigation-entry .app-navigation-entry-button[data-v-e4d562ae]{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);font-weight: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-e4d562ae],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-e4d562ae]{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-e4d562ae],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-e4d562ae]{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-e4d562ae],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-e4d562ae]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-e4d562ae]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-e4d562ae]: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-e4d562ae]{--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-e4d562ae]{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-e4d562ae]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-e4d562ae]{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-e4d562ae]{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-e4d562ae]{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-e4d562ae]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-e4d562ae]{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-e4d562ae]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-e4d562ae]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-e4d562ae]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-e4d562ae]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-e4d562ae]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-e4d562ae]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-e4d562ae{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.material-design-icon[data-v-a8724c7f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm[data-v-a8724c7f]{flex:1 0 100%;width:100%}.app-navigation-input-confirm form[data-v-a8724c7f]{display:flex}.app-navigation-input-confirm__input[data-v-a8724c7f]{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-a8724c7f]:active,.app-navigation-input-confirm__input[data-v-a8724c7f]:focus,.app-navigation-input-confirm__input[data-v-a8724c7f]: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-a8724c7f]{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-a8724c7f]{margin-inline-end:0!important}.app-navigation-input-confirm[data-v-a8724c7f]: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-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%}#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%)}@media only screen and (min-width:1024px){.content:not(.content--legacy) .app-navigation:not(.app-navigation--closed):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-d13dcb98]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-skip-actions__container[data-v-d13dcb98]{background-color:var(--color-main-background);border-radius:var(--border-radius-element);padding:22px}.vue-skip-actions__headline[data-v-d13dcb98]{font-weight:var(--font-weight-heading, bold);font-size:20px;line-height:30px;margin-bottom:12px}.vue-skip-actions__buttons[data-v-d13dcb98]{display:flex;flex-wrap:wrap;gap:12px}.vue-skip-actions__buttons[data-v-d13dcb98]>*{flex:1 0 fit-content}.vue-skip-actions__image[data-v-d13dcb98]{margin-top:12px}.vue-skip-actions__image[data-v-d13dcb98]:dir(rtl){transform:rotateY(180deg)}.content[data-v-d13dcb98]{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-d13dcb98]: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-d13dcb98]:not(.with-sidebar--full){position:fixed}.content[data-v-d13dcb98],.content[data-v-d13dcb98] *{box-sizing:border-box}.material-design-icon[data-v-d327fb49]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}/*! +(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(`@charset "UTF-8";.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-51427d61]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-content[data-v-51427d61]{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-51427d61]:not(.app-content--has-list){overflow:auto}.app-content-wrapper[data-v-51427d61]{position:relative;width:100%;height:100%}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-51427d61] .app-content-list{display:flex}.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-51427d61] .app-content-details,.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-51427d61] .app-content-list{display:none}.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-51427d61] .app-content-details{display:block}[data-v-51427d61] .splitpanes.default-theme .app-content-list{max-width:none;scrollbar-width:auto}[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane{background-color:transparent;transition:none}[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane-list{min-width:300px;position:sticky}@media only screen and (width<1024px){[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane-list{display:none}}[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane-details{overflow-y:auto}@media only screen and (width<1024px){[data-v-51427d61] .splitpanes.default-theme .splitpanes__pane-details{min-width:100%}}[data-v-51427d61] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--color-main-background)}[data-v-51427d61] .splitpanes.default-theme .splitpanes__splitter:before,[data-v-51427d61] .splitpanes.default-theme .splitpanes__splitter:after{background-color:var(--color-border)}[data-v-51427d61] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter{border-inline-start:1px solid var(--color-border)}[data-v-51427d61] .splitpanes.default-theme.splitpanes--horizontal .splitpanes__splitter{border-top:1px solid var(--color-border)}.app-content-wrapper--show-list[data-v-51427d61] .app-content-list{max-width:none}.app-content-wrapper__list[data-v-51427d61]{height:100%}.splitpanes{width:100%;height:100%;display:flex}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging .splitpanes__pane{-webkit-user-select:none;user-select:none;pointer-events:none}:has(.splitpanes--dragging){-webkit-user-select:none;user-select:none;pointer-events:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--ready .splitpanes__pane{will-change:width,height;transition:width .2s ease-out,height .2s ease-out}.splitpanes--ready.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes__splitter:focus{outline:none}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.default-theme.splitpanes .splitpanes__pane{background-color:#f2f2f2}.default-theme.splitpanes .splitpanes__splitter{box-sizing:border-box;background-color:#fff;flex-shrink:0;position:relative}.default-theme.splitpanes .splitpanes__splitter:focus-visible{outline-offset:-2px;outline:2px solid #3b82f6}.default-theme.splitpanes .splitpanes__splitter:before,.default-theme.splitpanes .splitpanes__splitter:after{content:"";background-color:#00000026;transition:background-color .3s;position:absolute;top:50%;left:50%}.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{border-left:1px solid #eee;width:7px;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{width:1px;height:30px;transform:translateY(-50%)}.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{border-top:1px solid #eee;height:7px;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{width:30px;height:1px;transform:translate(-50%)}.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-1344f70d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation[data-v-1344f70d]{--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:transparent}.app-navigation--legacy[data-v-1344f70d]{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-1344f70d]{margin-inline-start:calc(-1*min(300px,var(--app-navigation-max-width)))}.app-navigation__search[data-v-1344f70d]{width:100%}.app-navigation__body[data-v-1344f70d]{overflow-y:scroll}.app-navigation__content>ul[data-v-1344f70d]{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-1344f70d]{height:100%}.app-navigation__body--no-list[data-v-1344f70d]{flex:1 1 auto;overflow:auto;height:100%}.app-navigation__content[data-v-1344f70d]{height:100%;display:flex;flex-direction:column}[data-themes*=highcontrast] .app-navigation[data-v-1344f70d]{border-inline-end:1px solid var(--color-border)}@media only screen and (width<1024px){.app-navigation[data-v-1344f70d]{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-1344f70d]{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-f0e411c2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-caption[data-v-f0e411c2]{display:flex;justify-content:space-between}.app-navigation-caption--heading[data-v-f0e411c2]{padding:var(--app-navigation-padding)}.app-navigation-caption--heading[data-v-f0e411c2]:not(:first-child):not(:last-child){padding:0 var(--app-navigation-padding)}.app-navigation-caption__name[data-v-f0e411c2]{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: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-f0e411c2]{flex:0 0 var(--default-clickable-area)}.app-navigation-caption[data-v-f0e411c2]:not(:first-child){margin-top:calc(var(--default-clickable-area) / 2)}.material-design-icon[data-v-cfbd3794]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-collapse[data-v-cfbd3794]{position:relative;inset-inline-end:0}.icon-collapse[data-v-cfbd3794]:hover{background-color:var(--color-background-dark)!important}.icon-collapse--active[data-v-cfbd3794]:hover{background-color:var(--color-primary-element)!important}.material-design-icon[data-v-fcab058b]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-entry[data-v-fcab058b]{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-fcab058b]{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-fcab058b]{display:none}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-fcab058b]{background-color:color-mix(in srgb,var(--color-primary-element) 16%,transparent)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-fcab058b]: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-fcab058b],.app-navigation-entry:not(.app-navigation-entry--legacy).active:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-fcab058b]{color:var(--color-main-text)!important}.app-navigation-entry:not(.app-navigation-entry--legacy).active[data-v-fcab058b]: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-fcab058b var(--animation-quick, .2s) ease-out}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-fcab058b]{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--legacy.active[data-v-fcab058b]:hover{background-color:var(--color-primary-element-hover)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-link[data-v-fcab058b],.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry-button[data-v-fcab058b]{color:var(--color-primary-element-text)!important}.app-navigation-entry[data-v-fcab058b]:focus-within,.app-navigation-entry[data-v-fcab058b]:hover{background-color:var(--color-background-hover)}.app-navigation-entry[data-v-fcab058b]:not(.app-navigation-entry--legacy):focus-within,.app-navigation-entry[data-v-fcab058b]: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-fcab058b],.app-navigation-entry:focus-within .app-navigation-entry__children[data-v-fcab058b],.app-navigation-entry:hover .app-navigation-entry__children[data-v-fcab058b]{background-color:var(--color-main-background)}.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b],.app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b],.app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b],.app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b],.app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fcab058b]{display:inline-block}.app-navigation-entry .app-navigation-entry__actions[data-v-fcab058b]: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-fcab058b]:hover .button-vue{background-color:var(--color-background-dark)!important}.app-navigation-entry.app-navigation-entry--legacy.active .app-navigation-entry__actions[data-v-fcab058b]:hover .button-vue{background-color:var(--color-primary-element)!important}.app-navigation-entry.app-navigation-entry--deleted>ul[data-v-fcab058b]{display:none}.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-fcab058b],.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-fcab058b]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.app-navigation-entry .app-navigation-entry-link[data-v-fcab058b],.app-navigation-entry .app-navigation-entry-button[data-v-fcab058b]{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);font-weight: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-fcab058b],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-fcab058b]{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-fcab058b],.app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-fcab058b]{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-fcab058b],.app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-fcab058b]{width:calc(100% - var(--default-clickable-area));margin:auto}.app-navigation-entry .app-navigation-entry-link[data-v-fcab058b]:focus-visible,.app-navigation-entry .app-navigation-entry-button[data-v-fcab058b]: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-fcab058b]{--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-fcab058b]{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-fcab058b]{--app-navigation-item-child-offset: 0}.app-navigation-entry__deleted[data-v-fcab058b]{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-fcab058b]{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-fcab058b]{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-fcab058b]{display:inline-block}.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-fcab058b]{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-fcab058b]{display:none}.app-navigation-entry--editing .app-navigation-entry-edit[data-v-fcab058b]{z-index:250;opacity:1}.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-fcab058b]{z-index:250;transform:translate(0)}.app-navigation-entry--pinned[data-v-fcab058b]{order:2;margin-top:auto}.app-navigation-entry--pinned~.app-navigation-entry--pinned[data-v-fcab058b]{margin-top:0}[data-themes*=highcontrast] .app-navigation-entry[data-v-fcab058b]:active{background-color:var(--color-primary-element-light-hover)!important}@keyframes nc-nav-stripe-in-fcab058b{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.material-design-icon[data-v-6926a0b8]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-navigation-input-confirm[data-v-6926a0b8]{flex:1 0 100%;width:100%}.app-navigation-input-confirm form[data-v-6926a0b8]{display:flex}.app-navigation-input-confirm__input[data-v-6926a0b8]{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-6926a0b8]:active,.app-navigation-input-confirm__input[data-v-6926a0b8]:focus,.app-navigation-input-confirm__input[data-v-6926a0b8]: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-6926a0b8]{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-6926a0b8]{margin-inline-end:0!important}.app-navigation-input-confirm[data-v-6926a0b8]: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-6c2daf4e]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.action[data-v-6c2daf4e]:hover,li.action.active[data-v-6c2daf4e]{border-radius:6px;padding:0}li.action[data-v-6c2daf4e]:hover{background-color:var(--color-background-hover)}.action--disabled[data-v-6c2daf4e]{pointer-events:none;opacity:.5}.action--disabled[data-v-6c2daf4e]:hover,.action--disabled[data-v-6c2daf4e]:focus{cursor:default;opacity:.5}.action--disabled[data-v-6c2daf4e] *{opacity:1!important}.action-button[data-v-6c2daf4e]{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-6c2daf4e]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-6c2daf4e]{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-6c2daf4e] .material-design-icon{width:var(--default-clickable-area);height:var(--default-clickable-area);opacity:1}.action-button[data-v-6c2daf4e] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button__longtext-wrapper[data-v-6c2daf4e],.action-button__longtext[data-v-6c2daf4e]{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-6c2daf4e]{cursor:pointer;white-space:pre-wrap!important}.action-button__name[data-v-6c2daf4e]{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-6c2daf4e]{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-6c2daf4e],.action-button__pressed-icon[data-v-6c2daf4e]{margin-inline:auto calc((var(--default-clickable-area) - 16px) / 2 * -1)}.action-button[data-v-6c2daf4e] *{cursor:pointer}.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%}#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%)}@media only screen and (min-width:1024px){.content:not(.content--legacy) .app-navigation:not(.app-navigation--closed):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-d13dcb98]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-skip-actions__container[data-v-d13dcb98]{background-color:var(--color-main-background);border-radius:var(--border-radius-element);padding:22px}.vue-skip-actions__headline[data-v-d13dcb98]{font-weight:var(--font-weight-heading, bold);font-size:20px;line-height:30px;margin-bottom:12px}.vue-skip-actions__buttons[data-v-d13dcb98]{display:flex;flex-wrap:wrap;gap:12px}.vue-skip-actions__buttons[data-v-d13dcb98]>*{flex:1 0 fit-content}.vue-skip-actions__image[data-v-d13dcb98]{margin-top:12px}.vue-skip-actions__image[data-v-d13dcb98]:dir(rtl){transform:rotateY(180deg)}.content[data-v-d13dcb98]{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-d13dcb98]: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-d13dcb98]:not(.with-sidebar--full){position:fixed}.content[data-v-d13dcb98],.content[data-v-d13dcb98] *{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-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-d327fb49]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.textarea[data-v-d327fb49]{--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-d327fb49]{opacity:.7;filter:saturate(.7)}.textarea__main-wrapper[data-v-d327fb49]{padding:var(--border-width-input-focused, 2px);position:relative}.textarea__input[data-v-d327fb49]{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-d327fb49]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}@media(prefers-color-scheme:dark){.textarea__input .textarea__input[data-v-d327fb49]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .textarea__input[data-v-d327fb49]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .textarea__input[data-v-d327fb49]{--input-border-box-shadow: var(--input-border-box-shadow-light)}.textarea--legacy .textarea__input[data-v-d327fb49]{box-shadow:0 0 0 1px var(--input-border-color)}.textarea--legacy .textarea__input[data-v-d327fb49]:hover:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color)}.textarea__input[data-v-d327fb49]:focus-within:not([disabled]),.textarea__input[data-v-d327fb49]: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-d327fb49]:active:not([disabled]),.textarea__input[data-v-d327fb49]:focus:not([disabled]){--input-border-width-offset: 0px;--input-border-color: var(--color-main-text)}.textarea__input[data-v-d327fb49]:not(:focus,.textarea__input--label-outside)::placeholder{opacity:0}.textarea__input[data-v-d327fb49]:focus{cursor:text}.textarea__input[data-v-d327fb49]:disabled{cursor:default}.textarea__input[data-v-d327fb49]:focus-visible{box-shadow:unset!important}.textarea__input--success[data-v-d327fb49]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.textarea__input--success[data-v-d327fb49]: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-d327fb49]{--input-border-color: var(--color-border-error, var(--color-error)) !important}.textarea__input--error[data-v-d327fb49]: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-d327fb49]{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-d327fb49],.textarea__input:not(:placeholder-shown)+.textarea__label[data-v-d327fb49]{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-d327fb49]{padding-block:4px;display:flex;align-items:center}.textarea__helper-text-message__icon[data-v-d327fb49]{margin-inline-end:8px}.textarea__helper-text-message--error[data-v-d327fb49]{color:var(--color-error-text)}.textarea__helper-text-message--success[data-v-d327fb49]{color:var(--color-success-text)}.material-design-icon[data-v-8e16cbb5]{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-d327fb49]{--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-d327fb49]{opacity:.7;filter:saturate(.7)}.textarea__main-wrapper[data-v-d327fb49]{padding:var(--border-width-input-focused, 2px);position:relative}.textarea__input[data-v-d327fb49]{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-d327fb49]:hover:not([disabled]){box-shadow:0 0 0 1px var(--input-border-color)}@media(prefers-color-scheme:dark){.textarea__input .textarea__input[data-v-d327fb49]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}}[data-theme-dark] .textarea__input[data-v-d327fb49]{--input-border-box-shadow: var(--input-border-box-shadow-dark)}[data-theme-light] .textarea__input[data-v-d327fb49]{--input-border-box-shadow: var(--input-border-box-shadow-light)}.textarea--legacy .textarea__input[data-v-d327fb49]{box-shadow:0 0 0 1px var(--input-border-color)}.textarea--legacy .textarea__input[data-v-d327fb49]:hover:not([disabled]){box-shadow:0 0 0 2px var(--input-border-color)}.textarea__input[data-v-d327fb49]:focus-within:not([disabled]),.textarea__input[data-v-d327fb49]: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-d327fb49]:active:not([disabled]),.textarea__input[data-v-d327fb49]:focus:not([disabled]){--input-border-width-offset: 0px;--input-border-color: var(--color-main-text)}.textarea__input[data-v-d327fb49]:not(:focus,.textarea__input--label-outside)::placeholder{opacity:0}.textarea__input[data-v-d327fb49]:focus{cursor:text}.textarea__input[data-v-d327fb49]:disabled{cursor:default}.textarea__input[data-v-d327fb49]:focus-visible{box-shadow:unset!important}.textarea__input--success[data-v-d327fb49]{--input-border-color: var(--color-border-success, var(--color-success)) !important}.textarea__input--success[data-v-d327fb49]: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-d327fb49]{--input-border-color: var(--color-border-error, var(--color-error)) !important}.textarea__input--error[data-v-d327fb49]: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-d327fb49]{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-d327fb49],.textarea__input:not(:placeholder-shown)+.textarea__label[data-v-d327fb49]{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-d327fb49]{padding-block:4px;display:flex;align-items:center}.textarea__helper-text-message__icon[data-v-d327fb49]{margin-inline-end:8px}.textarea__helper-text-message--error[data-v-d327fb49]{color:var(--color-error-text)}.textarea__helper-text-message--success[data-v-d327fb49]{color:var(--color-success-text)}.dialog[data-v-c593e3d6]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3);padding:calc(var(--default-grid-baseline, 4px) * 5)}.dialog__title[data-v-c593e3d6]{margin:0 0 4px;font-size:1.3rem}.dialog__row[data-v-c593e3d6]{display:flex;gap:calc(var(--default-grid-baseline, 4px) * 3);flex-wrap:wrap}.dialog__row .dialog__field[data-v-c593e3d6]{flex:1 1 140px}.dialog__field[data-v-c593e3d6]{display:flex;flex-direction:column;gap:4px}.dialog__label[data-v-c593e3d6]{font-weight:600;font-size:.9rem}.dialog__req[data-v-c593e3d6]{color:var(--color-error)}.dialog__optional[data-v-c593e3d6]{font-weight:400;font-size:.8rem;color:var(--color-text-maxcontrast)}.dialog__hint[data-v-c593e3d6]{margin:4px 0 0;font-size:.8rem;color:var(--color-text-maxcontrast)}.dialog__link[data-v-c593e3d6]{text-decoration:underline}.dialog__actions[data-v-c593e3d6]{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.preview[data-v-c593e3d6]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(var(--default-grid-baseline, 4px) * 3);border-radius:var(--border-radius-large, 12px);background:color-mix(in srgb,var(--type-color) 12%,var(--color-main-background));border:2px solid color-mix(in srgb,var(--type-color) 40%,transparent)}.preview__days[data-v-c593e3d6]{display:flex;flex-direction:column;line-height:1.1}.preview__count[data-v-c593e3d6]{font-size:1.8rem;font-weight:700;color:var(--type-color)}.preview__caption[data-v-c593e3d6]{font-size:.8rem;color:var(--color-text-maxcontrast)}.preview__balance[data-v-c593e3d6]{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.85rem;color:var(--color-text-maxcontrast)}.preview__bar[data-v-c593e3d6]{display:block;width:120px;height:6px;border-radius:3px;background:var(--color-background-dark);overflow:hidden}.preview__bar-fill[data-v-c593e3d6]{display:block;height:100%;border-radius:3px;background:var(--type-color);transition:width .3s ease}.opt[data-v-c593e3d6]{display:inline-flex;align-items:center;gap:8px}.opt__icon[data-v-c593e3d6]{font-size:1.1em}._material-design-icon_fPSY2{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._sidebarTabsButton_Uw0-N{border:none;color:var(--color-main-text);font-size:var(--default-font-size);cursor:pointer;display:flex;flex-direction:column;gap:var(--default-grid-baseline);min-width:var(--default-clickable-area)}._sidebarTabsButton_Uw0-N *{cursor:pointer}._sidebarTabsButton_Uw0-N:not(._sidebarTabsButton_legacy_FsjhV){position:relative;border-radius:var(--border-radius-element);background-color:var(--color-main-background);padding:var(--default-grid-baseline);padding-block-end:calc(var(--default-grid-baseline) * 2);transition:background-color var(--animation-quick)}._sidebarTabsButton_Uw0-N:not(._sidebarTabsButton_legacy_FsjhV):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)}._sidebarTabsButton_Uw0-N:not(._sidebarTabsButton_legacy_FsjhV):hover{background-color:var(--color-background-hover)}._sidebarTabsButton_Uw0-N:not(._sidebarTabsButton_legacy_FsjhV):focus-visible{outline:2px solid var(--color-main-text);outline-offset:2px}._sidebarTabsButton_legacy_FsjhV{border-bottom:var(--default-grid-baseline) solid transparent!important;border-radius:var(--border-radius-small);background-color:var(--color-main-background);padding:var(--border-radius-small);transition:background-color var(--animation-quick),border-bottom-color var(--animation-quick)}._sidebarTabsButton_legacy_FsjhV:hover{background-color:var(--color-background-hover)!important}._sidebarTabsButton_legacy_FsjhV:active,._sidebarTabsButton_legacy_FsjhV:focus{background-color:var(--color-main-background)!important}._sidebarTabsButton_selected_MiFwn,._sidebarTabsButton_selected_MiFwn *{cursor:default}._sidebarTabsButton_Uw0-N:not(._sidebarTabsButton_legacy_FsjhV)._sidebarTabsButton_selected_MiFwn{background-color:var(--color-background-hover)}._sidebarTabsButton_Uw0-N:not(._sidebarTabsButton_legacy_FsjhV)._sidebarTabsButton_selected_MiFwn:after{width:80%;opacity:1}._sidebarTabsButton_Uw0-N:not(._sidebarTabsButton_legacy_FsjhV)._sidebarTabsButton_selected_MiFwn:hover{background-color:var(--color-background-dark)}._sidebarTabsButton_legacy_FsjhV._sidebarTabsButton_selected_MiFwn{border-bottom-color:var(--color-primary-element)!important;border-bottom-left-radius:0;border-bottom-right-radius:0}._sidebarTabsButton_legacy_FsjhV._sidebarTabsButton_selected_MiFwn:hover{background-color:var(--color-primary-element-light-hover)!important;color:var(--color-primary-element-light-text)!important}._sidebarTabsButton__name_Uzc5r{font-weight:var(--font-weight-element, normal);overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}._sidebarTabsButton_legacy_FsjhV._sidebarTabsButton_selected_MiFwn ._sidebarTabsButton__name_Uzc5r{font-weight:var(--font-weight-element, bold)}._sidebarTabsButton__icon_-Zy-g{display:inline-flex;align-items:center;justify-content:center}._sidebarTabsButton__legacyIcon_svLe8{background-size:20px;display:flex;align-items:center;justify-content:center}.material-design-icon[data-v-e74d1502]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar-tabs[data-v-e74d1502]{display:flex;flex-direction:column;min-height:0;flex:1 1 100%}.app-sidebar-tabs__nav[data-v-e74d1502]{display:flex;justify-content:stretch;margin:10px 8px 0;border-bottom:1px solid var(--color-border)}.app-sidebar-tabs__nav[data-v-e74d1502]:not(.app-sidebar-tabs__nav--legacy){gap:var(--default-grid-baseline);padding-block-end:var(--default-grid-baseline)}.app-sidebar-tabs__tab[data-v-e74d1502]{flex:1 1 1px}.app-sidebar-tabs__content[data-v-e74d1502]{position:relative;min-height:256px;height:100%}.app-sidebar-tabs__content--multiple[data-v-e74d1502]>:not(section){display:none}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}@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-e8979b7f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.app-sidebar[data-v-e8979b7f]{--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-e8979b7f]{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-e8979b7f]{--app-sidebar-close-button-offset: calc(var(--default-clickable-area) + var(--app-sidebar-padding))}.app-sidebar .app-sidebar-header>.app-sidebar__close[data-v-e8979b7f]{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-e8979b7f]{flex-direction:row}.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-e8979b7f]{--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-e8979b7f]{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-e8979b7f]{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-e8979b7f]{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-e8979b7f]{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-e8979b7f]{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-e8979b7f]{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-e8979b7f]{padding-inline-end:var(--app-sidebar-close-button-offset)}.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-e8979b7f]{display:flex;flex-direction:column}.app-sidebar .app-sidebar-header__figure[data-v-e8979b7f]{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-e8979b7f]{cursor:pointer}.app-sidebar .app-sidebar-header__desc[data-v-e8979b7f]{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-e8979b7f]{padding-inline-start:6px}.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__mainname-form[data-v-e8979b7f],.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__mainname-form[data-v-e8979b7f]{margin-top:-2px;margin-bottom:-2px}.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__subname[data-v-e8979b7f]{margin-top:-2px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-e8979b7f]{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-e8979b7f]{box-shadow:none}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-e8979b7f]: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-e8979b7f]{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-e8979b7f]{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-e8979b7f]{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-e8979b7f] .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-e8979b7f]{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-e8979b7f]{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-e8979b7f]{margin-inline-start:5px}.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname[data-v-e8979b7f],.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-e8979b7f]{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-e8979b7f]{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-e8979b7f] *{vertical-align:text-bottom}.app-sidebar .app-sidebar-header .app-sidebar-header__mainname--hidden[data-v-e8979b7f]{position:absolute;top:0;inset-inline-start:0;margin:0;width:1px;height:1px;overflow:hidden}.app-sidebar .app-sidebar-header__description[data-v-e8979b7f]{display:flex;align-items:center;margin:0 10px}@media only screen and (max-width:512px){.app-sidebar[data-v-e8979b7f]{position:absolute;--app-sidebar-width: 100vw}}.slide-right-leave-active[data-v-e8979b7f],.slide-right-enter-active[data-v-e8979b7f]{transition-duration:var(--animation-quick);transition-property:margin-inline-end}.slide-right-enter-to[data-v-e8979b7f],.slide-right-leave[data-v-e8979b7f]{margin-inline-end:0}.slide-right-enter-from[data-v-e8979b7f],.slide-right-leave-to[data-v-e8979b7f]{margin-inline-end:calc(-1 * var(--app-sidebar-width))}.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}.section[data-v-3b478eea]{padding:calc(var(--default-grid-baseline, 4px) * 3);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3)}.section__title[data-v-3b478eea]{margin:0;font-size:.95rem}.overlap[data-v-3b478eea]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.overlap__item[data-v-3b478eea]{display:flex;align-items:center;gap:10px}.overlap__name[data-v-3b478eea]{flex:1}.stepper[data-v-84405009]{display:flex;list-style:none;margin:0;padding:0}.stepper__step[data-v-84405009]{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;--tone: var(--color-primary-element)}.stepper__step--success[data-v-84405009]{--tone: var(--color-success)}.stepper__step--error[data-v-84405009]{--tone: var(--color-error)}.stepper__step--muted[data-v-84405009]{--tone: var(--color-text-maxcontrast)}.stepper__dot[data-v-84405009]{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;background:var(--color-background-dark);border:2px solid var(--color-border);z-index:1;transition:transform .2s ease}.stepper__label[data-v-84405009]{font-size:.75rem;text-align:center;color:var(--color-text-maxcontrast)}.stepper__bar[data-v-84405009]{position:absolute;top:15px;left:50%;width:100%;height:2px;background:var(--color-border);z-index:0}.stepper__step--done .stepper__dot[data-v-84405009],.stepper__step--current .stepper__dot[data-v-84405009]{background:color-mix(in srgb,var(--tone) 18%,var(--color-main-background));border-color:var(--tone)}.stepper__step--done .stepper__label[data-v-84405009],.stepper__step--current .stepper__label[data-v-84405009]{color:var(--color-main-text);font-weight:600}.stepper__step--current .stepper__dot[data-v-84405009]{transform:scale(1.08);box-shadow:0 0 0 4px color-mix(in srgb,var(--tone) 20%,transparent)}.stepper__step--done .stepper__bar[data-v-84405009]{background:var(--tone)}@media(prefers-reduced-motion:reduce){.stepper__dot[data-v-84405009]{transition:none}}.section[data-v-64204637]{padding:calc(var(--default-grid-baseline, 4px) * 3);display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 3)}.facts[data-v-64204637]{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}.facts dt[data-v-64204637]{color:var(--color-text-maxcontrast);font-size:.85rem}.facts dd[data-v-64204637]{margin:0;font-weight:500}.facts__decided[data-v-64204637]{display:flex;align-items:center;gap:6px}.facts__muted[data-v-64204637]{color:var(--color-text-maxcontrast);font-weight:400}.actions[data-v-64204637]{display:flex;flex-wrap:wrap;gap:8px}.reject[data-v-64204637]{display:flex;flex-direction:column;gap:8px}.reject__actions[data-v-64204637]{display:flex;justify-content:flex-end;gap:8px}.comments[data-v-64204637]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.comments__item[data-v-64204637]{background:var(--color-background-hover);border-radius:var(--border-radius-large, 12px);padding:10px 12px}.comments__item p[data-v-64204637]{margin:6px 0 0}.comments__head[data-v-64204637]{display:flex;align-items:center;gap:8px;font-size:.85rem}.comment-add[data-v-64204637]{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.timeline[data-v-64204637]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.timeline__item[data-v-64204637]{display:flex;gap:12px;padding-bottom:16px;position:relative}.timeline__item[data-v-64204637]:not(:last-child):before{content:"";position:absolute;left:13px;top:26px;bottom:0;width:2px;background:var(--color-border)}.timeline__marker[data-v-64204637]{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;background:var(--color-background-hover);z-index:1}.timeline__body[data-v-64204637]{flex:1;min-width:0}.timeline__head[data-v-64204637]{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.timeline__time[data-v-64204637]{font-size:.78rem;color:var(--color-text-maxcontrast);white-space:nowrap}.timeline__who[data-v-64204637]{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--color-text-maxcontrast);margin-top:2px}.timeline__detail[data-v-64204637]{margin:6px 0 0;padding:6px 10px;background:var(--color-background-hover);border-radius:var(--border-radius, 8px);font-size:.88rem;white-space:pre-wrap;overflow-wrap:anywhere}.app-absence .page__header{padding-inline-start:calc(var(--default-clickable-area, 44px) + var(--app-navigation-padding, 4px) * 2)}`)),document.head.appendChild(a)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); -import{u as K,s as Es,a as Ns,d as ve,i as Ae,h as bi,r as Cn,c as Y,w as Te,b as Me,n as Bt,p as ye,_ as ee,e as kt,f as c,g as q,j as C,o,k as V,t as p,l as U,m as r,q as J,F as Q,v as R,x as w,y as oe,z as k,A as he,B as F,C as kn,N as pt,D as M,E as x,G as xe,H as Ee,I as at,J as nt,K as vi,L as _i,M as _t,O as st,P as Ts,Q as ei,R as Ds,S as Ls,T as it,U as Is,V as ce,W as Dt,X as We,Y as An,Z as aa,$ as La,a0 as xn,a1 as be,a2 as ti,a3 as Bs,a4 as $e,a5 as Zt,a6 as Ms,a7 as Rs,a8 as $s,a9 as Va,aa as qi,ab as zs,ac as De,ad as Ps,ae as j,af as wi,ag as Os,ah as Vs,ai as ft,aj as mt,ak as Ci,al as Sn,am as ze,an as qs,ao as Ia,ap as Ne,aq as Hs,ar as ia,as as Fs,at as En,au as Ba,av as Us,aw as ai,ax as Jt,ay as ea,az as ii,aA as ki,aB as Ma,aC as ni,aD as Mt,aE as Nn,aF as js,aG as Tn,aH as Ws,aI as Gs,aJ as Ai,aK as Dn,aL as Zs,aM as Ks,aN as Ra,aO as xi,aP as Ys,aQ as Xs,aR as me,aS as ht,aT as Qs,aU as Js,aV as jt,aW as el,aX as tl,aY as Ln,aZ as In,a_ as al,a$ as il,b0 as nl,b1 as sl,b2 as ll,b3 as Bn,b4 as ol,b5 as rl,b6 as cl,b7 as ul,b8 as dl,b9 as pl,ba as Mn,bb as Rn,bc as hl,bd as ml,be as fl,bf as $n,bg as gl,bh as yl,bi as bl,bj as vl,bk as _l}from"./holidays-CFk3bEGH.chunk.mjs";const xs="absence",Ss="1.0.5",bt=typeof document<"u";function zn(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function wl(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&zn(e.default)}const ae=Object.assign;function qa(e,a){const t={};for(const s in a){const n=a[s];t[s]=Pe(n)?n.map(e):e(n)}return t}const Rt=()=>{},Pe=Array.isArray;function Hi(e,a){const t={};for(const s in e)t[s]=s in a?a[s]:e[s];return t}const Pn=/#/g,Cl=/&/g,kl=/\//g,Al=/=/g,xl=/\?/g,On=/\+/g,Sl=/%5B/g,El=/%5D/g,Vn=/%5E/g,Nl=/%60/g,qn=/%7B/g,Tl=/%7C/g,Hn=/%7D/g,Dl=/%20/g;function Si(e){return e==null?"":encodeURI(""+e).replace(Tl,"|").replace(Sl,"[").replace(El,"]")}function Ll(e){return Si(e).replace(qn,"{").replace(Hn,"}").replace(Vn,"^")}function si(e){return Si(e).replace(On,"%2B").replace(Dl,"+").replace(Pn,"%23").replace(Cl,"%26").replace(Nl,"`").replace(qn,"{").replace(Hn,"}").replace(Vn,"^")}function Il(e){return si(e).replace(Al,"%3D")}function Bl(e){return Si(e).replace(Pn,"%23").replace(xl,"%3F")}function Ml(e){return Bl(e).replace(kl,"%2F")}function Ht(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Rl=/\/$/,$l=e=>e.replace(Rl,"");function Ha(e,a,t="/"){let s,n={},i="",l="";const d=a.indexOf("#");let h=a.indexOf("?");return h=d>=0&&h>d?-1:h,h>=0&&(s=a.slice(0,h),i=a.slice(h,d>0?d:a.length),n=e(i.slice(1))),d>=0&&(s=s||a.slice(0,d),l=a.slice(d,a.length)),s=Vl(s??a,t),{fullPath:s+i+l,path:s,query:n,hash:Ht(l)}}function zl(e,a){const t=a.query?e(a.query):"";return a.path+(t&&"?")+t+(a.hash||"")}function Fi(e,a){return!a||!e.toLowerCase().startsWith(a.toLowerCase())?e:e.slice(a.length)||"/"}function Pl(e,a,t){const s=a.matched.length-1,n=t.matched.length-1;return s>-1&&s===n&&wt(a.matched[s],t.matched[n])&&Fn(a.params,t.params)&&e(a.query)===e(t.query)&&a.hash===t.hash}function wt(e,a){return(e.aliasOf||e)===(a.aliasOf||a)}function Fn(e,a){if(Object.keys(e).length!==Object.keys(a).length)return!1;for(var t in e)if(!Ol(e[t],a[t]))return!1;return!0}function Ol(e,a){return Pe(e)?Ui(e,a):Pe(a)?Ui(a,e):e?.valueOf()===a?.valueOf()}function Ui(e,a){return Pe(a)?e.length===a.length&&e.every((t,s)=>t===a[s]):e.length===1&&e[0]===a}function Vl(e,a){if(e.startsWith("/"))return e;if(!e)return a;const t=a.split("/"),s=e.split("/"),n=s[s.length-1];(n===".."||n===".")&&s.push("");let i=t.length-1,l,d;for(l=0;l1&&i--;else break;return t.slice(0,i).join("/")+"/"+s.slice(l).join("/")}const Qe={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let li=(function(e){return e.pop="pop",e.push="push",e})({}),Fa=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function ql(e){if(!e)if(bt){const a=document.querySelector("base");e=a&&a.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),$l(e)}const Hl=/^[^#]+#/;function Fl(e,a){return e.replace(Hl,"#")+a}function Ul(e,a){const t=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:a.behavior,left:s.left-t.left-(a.left||0),top:s.top-t.top-(a.top||0)}}const $a=()=>({left:window.scrollX,top:window.scrollY});function jl(e){let a;if("el"in e){const t=e.el,s=typeof t=="string"&&t.startsWith("#"),n=typeof t=="string"?s?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!n)return;a=Ul(n,e)}else a=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(a):window.scrollTo(a.left!=null?a.left:window.scrollX,a.top!=null?a.top:window.scrollY)}function ji(e,a){return(history.state?history.state.position-a:-1)+e}const oi=new Map;function Wl(e,a){oi.set(e,a)}function Gl(e){const a=oi.get(e);return oi.delete(e),a}function Zl(e){return typeof e=="string"||e&&typeof e=="object"}function Un(e){return typeof e=="string"||typeof e=="symbol"}let pe=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const jn=Symbol("");pe.MATCHER_NOT_FOUND+"",pe.NAVIGATION_GUARD_REDIRECT+"",pe.NAVIGATION_ABORTED+"",pe.NAVIGATION_CANCELLED+"",pe.NAVIGATION_DUPLICATED+"";function Ct(e,a){return ae(new Error,{type:e,[jn]:!0},a)}function He(e,a){return e instanceof Error&&jn in e&&(a==null||!!(e.type&a))}function Kl(e){const a={};if(e===""||e==="?")return a;const t=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sn&&si(n)):[s&&si(s)]).forEach(n=>{n!==void 0&&(a+=(a.length?"&":"")+t,n!=null&&(a+="="+n))})}return a}function Yl(e){const a={};for(const t in e){const s=e[t];s!==void 0&&(a[t]=Pe(s)?s.map(n=>n==null?null:""+n):s==null?s:""+s)}return a}const Xl=Symbol(""),Gi=Symbol(""),Ei=Symbol(""),Wn=Symbol(""),ri=Symbol("");function Nt(){let e=[];function a(s){return e.push(s),()=>{const n=e.indexOf(s);n>-1&&e.splice(n,1)}}function t(){e=[]}return{add:a,list:()=>e.slice(),reset:t}}function et(e,a,t,s,n,i=l=>l()){const l=s&&(s.enterCallbacks[n]=s.enterCallbacks[n]||[]);return()=>new Promise((d,h)=>{const f=g=>{g===!1?h(Ct(pe.NAVIGATION_ABORTED,{from:t,to:a})):g instanceof Error?h(g):Zl(g)?h(Ct(pe.NAVIGATION_GUARD_REDIRECT,{from:a,to:g})):(l&&s.enterCallbacks[n]===l&&typeof g=="function"&&l.push(g),d())},m=i(()=>e.call(s&&s.instances[n],a,t,f));let u=Promise.resolve(m);e.length<3&&(u=u.then(f)),u.catch(g=>h(g))})}function Ua(e,a,t,s,n=i=>i()){const i=[];for(const l of e)for(const d in l.components){let h=l.components[d];if(!(a!=="beforeRouteEnter"&&!l.instances[d]))if(zn(h)){const f=(h.__vccOpts||h)[a];f&&i.push(et(f,t,s,l,d,n))}else{let f=h();i.push(()=>f.then(m=>{if(!m)throw new Error(`Couldn't resolve component "${d}" at "${l.path}"`);const u=wl(m)?m.default:m;l.mods[d]=m,l.components[d]=u;const g=(u.__vccOpts||u)[a];return g&&et(g,t,s,l,d,n)()}))}}return i}function Ql(e,a){const t=[],s=[],n=[],i=Math.max(a.matched.length,e.matched.length);for(let l=0;lwt(f,d))?s.push(d):t.push(d));const h=e.matched[l];h&&(a.matched.find(f=>wt(f,h))||n.push(h))}return[t,s,n]}let Jl=()=>location.protocol+"//"+location.host;function Gn(e,a){const{pathname:t,search:s,hash:n}=a,i=e.indexOf("#");if(i>-1){let l=n.includes(e.slice(i))?e.slice(i).length:1,d=n.slice(l);return d[0]!=="/"&&(d="/"+d),Fi(d,"")}return Fi(t,e)+s+n}function eo(e,a,t,s){let n=[],i=[],l=null;const d=({state:g})=>{const y=Gn(e,location),S=t.value,b=a.value;let _=0;if(g){if(t.value=y,a.value=g,l&&l===S){l=null;return}_=b?g.position-b.position:0}else s(y);n.forEach(I=>{I(t.value,S,{delta:_,type:li.pop,direction:_?_>0?Fa.forward:Fa.back:Fa.unknown})})};function h(){l=t.value}function f(g){n.push(g);const y=()=>{const S=n.indexOf(g);S>-1&&n.splice(S,1)};return i.push(y),y}function m(){if(document.visibilityState==="hidden"){const{history:g}=window;if(!g.state)return;g.replaceState(ae({},g.state,{scroll:$a()}),"")}}function u(){for(const g of i)g();i=[],window.removeEventListener("popstate",d),window.removeEventListener("pagehide",m),document.removeEventListener("visibilitychange",m)}return window.addEventListener("popstate",d),window.addEventListener("pagehide",m),document.addEventListener("visibilitychange",m),{pauseListeners:h,listen:f,destroy:u}}function Zi(e,a,t,s=!1,n=!1){return{back:e,current:a,forward:t,replaced:s,position:window.history.length,scroll:n?$a():null}}function to(e){const{history:a,location:t}=window,s={value:Gn(e,t)},n={value:a.state};n.value||i(s.value,{back:null,current:s.value,forward:null,position:a.length-1,replaced:!0,scroll:null},!0);function i(h,f,m){const u=e.indexOf("#"),g=u>-1?(t.host&&document.querySelector("base")?e:e.slice(u))+h:Jl()+e+h;try{a[m?"replaceState":"pushState"](f,"",g),n.value=f}catch(y){console.error(y),t[m?"replace":"assign"](g)}}function l(h,f){i(h,ae({},a.state,Zi(n.value.back,h,n.value.forward,!0),f,{position:n.value.position}),!0),s.value=h}function d(h,f){const m=ae({},n.value,a.state,{forward:h,scroll:$a()});i(m.current,m,!0),i(h,ae({},Zi(s.value,h,null),{position:m.position+1},f),!1),s.value=h}return{location:s,state:n,push:d,replace:l}}function ao(e){e=ql(e);const a=to(e),t=eo(e,a.state,a.location,a.replace);function s(i,l=!0){l||t.pauseListeners(),history.go(i)}const n=ae({location:"",base:e,go:s,createHref:Fl.bind(null,e)},a,t);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>a.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>a.state.value}),n}function io(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),ao(e)}let ct=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var fe=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(fe||{});const no={type:ct.Static,value:""},so=/[a-zA-Z0-9_]/;function lo(e){if(!e)return[[]];if(e==="/")return[[no]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function a(y){throw new Error(`ERR (${t})/"${f}": ${y}`)}let t=fe.Static,s=t;const n=[];let i;function l(){i&&n.push(i),i=[]}let d=0,h,f="",m="";function u(){f&&(t===fe.Static?i.push({type:ct.Static,value:f}):t===fe.Param||t===fe.ParamRegExp||t===fe.ParamRegExpEnd?(i.length>1&&(h==="*"||h==="+")&&a(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),i.push({type:ct.Param,value:f,regexp:m,repeatable:h==="*"||h==="+",optional:h==="*"||h==="?"})):a("Invalid state to consume buffer"),f="")}function g(){f+=h}for(;da.length?a.length===1&&a[0]===ke.Static+ke.Segment?1:-1:0}function Zn(e,a){let t=0;const s=e.score,n=a.score;for(;t0&&a[a.length-1]<0}const po={strict:!1,end:!0,sensitive:!1};function ho(e,a,t){const s=co(lo(e.path),t),n=ae(s,{record:e,parent:a,children:[],alias:[]});return a&&!n.record.aliasOf==!a.record.aliasOf&&a.children.push(n),n}function mo(e,a){const t=[],s=new Map;a=Hi(po,a);function n(u){return s.get(u)}function i(u,g,y){const S=!y,b=Qi(u);b.aliasOf=y&&y.record;const _=Hi(a,u),I=[b];if("alias"in u){const W=typeof u.alias=="string"?[u.alias]:u.alias;for(const ie of W)I.push(Qi(ae({},b,{components:y?y.record.components:b.components,path:ie,aliasOf:y?y.record:b})))}let $,z;for(const W of I){const{path:ie}=W;if(g&&ie[0]!=="/"){const se=g.record.path,le=se[se.length-1]==="/"?"":"/";W.path=g.record.path+(ie&&le+ie)}if($=ho(W,g,_),y?y.alias.push($):(z=z||$,z!==$&&z.alias.push($),S&&u.name&&!Ji($)&&l(u.name)),Kn($)&&h($),b.children){const se=b.children;for(let le=0;le{l(z)}:Rt}function l(u){if(Un(u)){const g=s.get(u);g&&(s.delete(u),t.splice(t.indexOf(g),1),g.children.forEach(l),g.alias.forEach(l))}else{const g=t.indexOf(u);g>-1&&(t.splice(g,1),u.record.name&&s.delete(u.record.name),u.children.forEach(l),u.alias.forEach(l))}}function d(){return t}function h(u){const g=yo(u,t);t.splice(g,0,u),u.record.name&&!Ji(u)&&s.set(u.record.name,u)}function f(u,g){let y,S={},b,_;if("name"in u&&u.name){if(y=s.get(u.name),!y)throw Ct(pe.MATCHER_NOT_FOUND,{location:u});_=y.record.name,S=ae(Xi(g.params,y.keys.filter(z=>!z.optional).concat(y.parent?y.parent.keys.filter(z=>z.optional):[]).map(z=>z.name)),u.params&&Xi(u.params,y.keys.map(z=>z.name))),b=y.stringify(S)}else if(u.path!=null)b=u.path,y=t.find(z=>z.re.test(b)),y&&(S=y.parse(b),_=y.record.name);else{if(y=g.name?s.get(g.name):t.find(z=>z.re.test(g.path)),!y)throw Ct(pe.MATCHER_NOT_FOUND,{location:u,currentLocation:g});_=y.record.name,S=ae({},g.params,u.params),b=y.stringify(S)}const I=[];let $=y;for(;$;)I.unshift($.record),$=$.parent;return{name:_,path:b,params:S,matched:I,meta:go(I)}}e.forEach(u=>i(u));function m(){t.length=0,s.clear()}return{addRoute:i,resolve:f,removeRoute:l,clearRoutes:m,getRoutes:d,getRecordMatcher:n}}function Xi(e,a){const t={};for(const s of a)s in e&&(t[s]=e[s]);return t}function Qi(e){const a={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:fo(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(a,"mods",{value:{}}),a}function fo(e){const a={},t=e.props||!1;if("component"in e)a.default=t;else for(const s in e.components)a[s]=typeof t=="object"?t[s]:t;return a}function Ji(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function go(e){return e.reduce((a,t)=>ae(a,t.meta),{})}function yo(e,a){let t=0,s=a.length;for(;t!==s;){const i=t+s>>1;Zn(e,a[i])<0?s=i:t=i+1}const n=bo(e);return n&&(s=a.lastIndexOf(n,s-1)),s}function bo(e){let a=e;for(;a=a.parent;)if(Kn(a)&&Zn(e,a)===0)return a}function Kn({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function en(e){const a=Ae(Ei),t=Ae(Wn),s=Y(()=>{const h=K(e.to);return a.resolve(h)}),n=Y(()=>{const{matched:h}=s.value,{length:f}=h,m=h[f-1],u=t.matched;if(!m||!u.length)return-1;const g=u.findIndex(wt.bind(null,m));if(g>-1)return g;const y=tn(h[f-2]);return f>1&&tn(m)===y&&u[u.length-1].path!==y?u.findIndex(wt.bind(null,h[f-2])):g}),i=Y(()=>n.value>-1&&ko(t.params,s.value.params)),l=Y(()=>n.value>-1&&n.value===t.matched.length-1&&Fn(t.params,s.value.params));function d(h={}){if(Co(h)){const f=a[K(e.replace)?"replace":"push"](K(e.to)).catch(Rt);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:s,href:Y(()=>s.value.href),isActive:i,isExactActive:l,navigate:d}}function vo(e){return e.length===1?e[0]:e}const _o=ve({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:en,setup(e,{slots:a}){const t=Cn(en(e)),{options:s}=Ae(Ei),n=Y(()=>({[an(e.activeClass,s.linkActiveClass,"router-link-active")]:t.isActive,[an(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:t.isExactActive}));return()=>{const i=a.default&&vo(a.default(t));return e.custom?i:bi("a",{"aria-current":t.isExactActive?e.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:n.value},i)}}}),wo=_o;function Co(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const a=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(a))return}return e.preventDefault&&e.preventDefault(),!0}}function ko(e,a){for(const t in a){const s=a[t],n=e[t];if(typeof s=="string"){if(s!==n)return!1}else if(!Pe(n)||n.length!==s.length||s.some((i,l)=>i.valueOf()!==n[l].valueOf()))return!1}return!0}function tn(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const an=(e,a,t)=>e??a??t,Ao=ve({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:a,slots:t}){const s=Ae(ri),n=Y(()=>e.route||s.value),i=Ae(Gi,0),l=Y(()=>{let f=K(i);const{matched:m}=n.value;let u;for(;(u=m[f])&&!u.components;)f++;return f}),d=Y(()=>n.value.matched[l.value]);ye(Gi,Y(()=>l.value+1)),ye(Xl,d),ye(ri,n);const h=Me();return Te(()=>[h.value,d.value,e.name],([f,m,u],[g,y,S])=>{m&&(m.instances[u]=f,y&&y!==m&&f&&f===g&&(m.leaveGuards.size||(m.leaveGuards=y.leaveGuards),m.updateGuards.size||(m.updateGuards=y.updateGuards))),f&&m&&(!y||!wt(m,y)||!g)&&(m.enterCallbacks[u]||[]).forEach(b=>b(f))},{flush:"post"}),()=>{const f=n.value,m=e.name,u=d.value,g=u&&u.components[m];if(!g)return nn(t.default,{Component:g,route:f});const y=u.props[m],S=y?y===!0?f.params:typeof y=="function"?y(f):y:null,b=bi(g,ae({},S,a,{onVnodeUnmounted:_=>{_.component.isUnmounted&&(u.instances[m]=null)},ref:h}));return nn(t.default,{Component:b,route:f})||b}}});function nn(e,a){if(!e)return null;const t=e(a);return t.length===1?t[0]:t}const xo=Ao;function So(e){const a=mo(e.routes,e),t=e.parseQuery||Kl,s=e.stringifyQuery||Wi,n=e.history,i=Nt(),l=Nt(),d=Nt(),h=Ns(Qe);let f=Qe;bt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const m=qa.bind(null,T=>""+T),u=qa.bind(null,Ml),g=qa.bind(null,Ht);function y(T,P){let B,H;return Un(T)?(B=a.getRecordMatcher(T),H=P):H=T,a.addRoute(H,B)}function S(T){const P=a.getRecordMatcher(T);P&&a.removeRoute(P)}function b(){return a.getRoutes().map(T=>T.record)}function _(T){return!!a.getRecordMatcher(T)}function I(T,P){if(P=ae({},P||h.value),typeof T=="string"){const N=Ha(t,T,P.path),D=a.resolve({path:N.path},P),O=n.createHref(N.fullPath);return ae(N,D,{params:g(D.params),hash:Ht(N.hash),redirectedFrom:void 0,href:O})}let B;if(T.path!=null)B=ae({},T,{path:Ha(t,T.path,P.path).path});else{const N=ae({},T.params);for(const D in N)N[D]==null&&delete N[D];B=ae({},T,{params:u(N)}),P.params=u(P.params)}const H=a.resolve(B,P),v=T.hash||"";H.params=m(g(H.params));const A=zl(s,ae({},T,{hash:Ll(v),path:H.path})),E=n.createHref(A);return ae({fullPath:A,hash:v,query:s===Wi?Yl(T.query):T.query||{}},H,{redirectedFrom:void 0,href:E})}function $(T){return typeof T=="string"?Ha(t,T,h.value.path):ae({},T)}function z(T,P){if(f!==T)return Ct(pe.NAVIGATION_CANCELLED,{from:P,to:T})}function W(T){return le(T)}function ie(T){return W(ae($(T),{replace:!0}))}function se(T,P){const B=T.matched[T.matched.length-1];if(B&&B.redirect){const{redirect:H}=B;let v=typeof H=="function"?H(T,P):H;return typeof v=="string"&&(v=v.includes("?")||v.includes("#")?v=$(v):{path:v},v.params={}),ae({query:T.query,hash:T.hash,params:v.path!=null?{}:T.params},v)}}function le(T,P){const B=f=I(T),H=h.value,v=T.state,A=T.force,E=T.replace===!0,N=se(B,H);if(N)return le(ae($(N),{state:typeof N=="object"?ae({},v,N.state):v,force:A,replace:E}),P||B);const D=B;D.redirectedFrom=P;let O;return!A&&Pl(s,H,B)&&(O=Ct(pe.NAVIGATION_DUPLICATED,{to:D,from:H}),yt(H,H,!0,!1)),(O?Promise.resolve(O):Ge(D,H)).catch(Z=>He(Z)?He(Z,pe.NAVIGATION_GUARD_REDIRECT)?Z:xt(Z):At(Z,D,H)).then(Z=>{if(Z){if(He(Z,pe.NAVIGATION_GUARD_REDIRECT))return le(ae({replace:E},$(Z.to),{state:typeof Z.to=="object"?ae({},v,Z.to.state):v,force:A}),P||D)}else Z=qe(D,H,!0,E,v);return Ze(D,H,Z),Z})}function te(T,P){const B=z(T,P);return B?Promise.reject(B):Promise.resolve()}function re(T){const P=Ye.values().next().value;return P&&typeof P.runWithContext=="function"?P.runWithContext(T):T()}function Ge(T,P){let B;const[H,v,A]=Ql(T,P);B=Ua(H.reverse(),"beforeRouteLeave",T,P);for(const N of H)N.leaveGuards.forEach(D=>{B.push(et(D,T,P))});const E=te.bind(null,T,P);return B.push(E),Xe(B).then(()=>{B=[];for(const N of i.list())B.push(et(N,T,P));return B.push(E),Xe(B)}).then(()=>{B=Ua(v,"beforeRouteUpdate",T,P);for(const N of v)N.updateGuards.forEach(D=>{B.push(et(D,T,P))});return B.push(E),Xe(B)}).then(()=>{B=[];for(const N of A)if(N.beforeEnter)if(Pe(N.beforeEnter))for(const D of N.beforeEnter)B.push(et(D,T,P));else B.push(et(N.beforeEnter,T,P));return B.push(E),Xe(B)}).then(()=>(T.matched.forEach(N=>N.enterCallbacks={}),B=Ua(A,"beforeRouteEnter",T,P,re),B.push(E),Xe(B))).then(()=>{B=[];for(const N of l.list())B.push(et(N,T,P));return B.push(E),Xe(B)}).catch(N=>He(N,pe.NAVIGATION_CANCELLED)?N:Promise.reject(N))}function Ze(T,P,B){d.list().forEach(H=>re(()=>H(T,P,B)))}function qe(T,P,B,H,v){const A=z(T,P);if(A)return A;const E=P===Qe,N=bt?history.state:{};B&&(H||E?n.replace(T.fullPath,ae({scroll:E&&N&&N.scroll},v)):n.push(T.fullPath,v)),h.value=T,yt(T,P,B,E),xt()}let _e;function Ke(){_e||(_e=n.listen((T,P,B)=>{if(!rt.listening)return;const H=I(T),v=se(H,rt.currentRoute.value);if(v){le(ae(v,{replace:!0,force:!0}),H).catch(Rt);return}f=H;const A=h.value;bt&&Wl(ji(A.fullPath,B.delta),$a()),Ge(H,A).catch(E=>He(E,pe.NAVIGATION_ABORTED|pe.NAVIGATION_CANCELLED)?E:He(E,pe.NAVIGATION_GUARD_REDIRECT)?(le(ae($(E.to),{force:!0}),H).then(N=>{He(N,pe.NAVIGATION_ABORTED|pe.NAVIGATION_DUPLICATED)&&!B.delta&&B.type===li.pop&&n.go(-1,!1)}).catch(Rt),Promise.reject()):(B.delta&&n.go(-B.delta,!1),At(E,H,A))).then(E=>{E=E||qe(H,A,!1),E&&(B.delta&&!He(E,pe.NAVIGATION_CANCELLED)?n.go(-B.delta,!1):B.type===li.pop&&He(E,pe.NAVIGATION_ABORTED|pe.NAVIGATION_DUPLICATED)&&n.go(-1,!1)),Ze(H,A,E)}).catch(Rt)}))}let Le=Nt(),Re=Nt(),ot;function At(T,P,B){xt(T);const H=Re.list();return H.length?H.forEach(v=>v(T,P,B)):console.error(T),Promise.reject(T)}function gt(){return ot&&h.value!==Qe?Promise.resolve():new Promise((T,P)=>{Le.add([T,P])})}function xt(T){return ot||(ot=!T,Ke(),Le.list().forEach(([P,B])=>T?B(T):P()),Le.reset()),T}function yt(T,P,B,H){const{scrollBehavior:v}=e;if(!bt||!v)return Promise.resolve();const A=!B&&Gl(ji(T.fullPath,0))||(H||!B)&&history.state&&history.state.scroll||null;return Bt().then(()=>v(T,P,A)).then(E=>E&&jl(E)).catch(E=>At(E,T,P))}const St=T=>n.go(T);let Et;const Ye=new Set,rt={currentRoute:h,listening:!0,addRoute:y,removeRoute:S,clearRoutes:a.clearRoutes,hasRoute:_,getRoutes:b,resolve:I,options:e,push:W,replace:ie,go:St,back:()=>St(-1),forward:()=>St(1),beforeEach:i.add,beforeResolve:l.add,afterEach:d.add,onError:Re.add,isReady:gt,install(T){T.component("RouterLink",wo),T.component("RouterView",xo),T.config.globalProperties.$router=rt,Object.defineProperty(T.config.globalProperties,"$route",{enumerable:!0,get:()=>K(h)}),bt&&!Et&&h.value===Qe&&(Et=!0,W(n.location).catch(H=>{}));const P={};for(const H in Qe)Object.defineProperty(P,H,{get:()=>h.value[H],enumerable:!0});T.provide(Ei,rt),T.provide(Wn,Es(P)),T.provide(ri,h);const B=T.unmount;Ye.add(T),T.unmount=function(){Ye.delete(T),Ye.size<1&&(f=Qe,_e&&_e(),_e=null,h.value=Qe,Et=!1,ot=!1),B()}}};function Xe(T){return T.reduce((P,B)=>P.then(()=>re(B)),Promise.resolve())}return rt}const Eo=["aria-labelledby"],No={key:0,class:"empty-content__icon","aria-hidden":"true"},To=["id"],Do={key:2,class:"empty-content__description"},Lo={key:3,class:"empty-content__action"},Io=ve({__name:"NcEmptyContent",props:{description:{default:""},name:{default:""}},setup(e){const a=kt();return(t,s)=>(o(),c("div",{"aria-labelledby":K(a),class:"empty-content",role:"note"},[t.$slots.icon?(o(),c("div",No,[q(t.$slots,"icon",{},void 0,!0)])):C("",!0),e.name!==""||t.$slots.name?(o(),c("div",{key:1,id:K(a),class:"empty-content__name"},[q(t.$slots,"name",{},()=>[V(p(e.name),1)],!0)],8,To)):C("",!0),e.description!==""||t.$slots.description?(o(),c("p",Do,[q(t.$slots,"description",{},()=>[V(p(e.description),1)],!0)])):C("",!0),t.$slots.action?(o(),c("div",Lo,[q(t.$slots,"action",{},void 0,!0)])):C("",!0)],8,Eo))}}),lt=ee(Io,[["__scopeId","data-v-8609a4c1"]]),Bo={name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mo=["aria-hidden","aria-label"],Ro=["fill","width","height"],$o={d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"},zo={key:0};function Po(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon plus-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",$o,[t.title?(o(),c("title",zo,p(t.title),1)):C("",!0)])],8,Ro))],16,Mo)}const Yn=U(Bo,[["render",Po]]),Oo={name:"BalanceRing",props:{row:{type:Object,required:!0}},data(){return{radius:50,animated:!1,tween:0}},computed:{circumference(){return 2*Math.PI*this.radius},fraction(){return!this.row.entitlement||this.row.entitlement<=0?this.row.used>0?1:0:Math.min(1,Math.max(0,this.row.used/this.row.entitlement))},usedOffset(){return this.animated?this.circumference*(1-this.fraction):this.circumference},targetValue(){return this.row.remaining!==null&&this.row.remaining!==void 0?Number(this.row.remaining):Number(this.row.used)},remainingLabel(){return this.format(this.tween)},ariaLabel(){return`${this.row.typeLabel}: ${this.remainingLabel} ${this.t("absence","days left")}`}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0,this.tween=this.targetValue;return}requestAnimationFrame(()=>{this.animated=!0}),this.countUp()},methods:{countUp(){const e=this.targetValue,a=900,t=performance.now(),s=n=>{const i=Math.min(1,(n-t)/a),l=1-Math.pow(1-i,3);this.tween=Math.round(e*l*10)/10,i<1?requestAnimationFrame(s):this.tween=e};requestAnimationFrame(s)},format(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},Vo=["aria-label"],qo={viewBox:"0 0 120 120",class:"ring__svg"},Ho=["r"],Fo=["r","stroke","stroke-dasharray","stroke-dashoffset"],Uo={x:"60",y:"54",class:"ring__value"},jo={x:"60",y:"74",class:"ring__unit"},Wo={class:"ring__label"},Go={class:"ring__icon","aria-hidden":"true"},Zo={class:"ring__name"},Ko={class:"ring__meta"},Yo={key:2,class:"ring__pending"};function Xo(e,a,t,s,n,i){return o(),c("div",{class:"ring",role:"group","aria-label":i.ariaLabel},[(o(),c("svg",qo,[r("circle",{class:"ring__track",cx:"60",cy:"60",r:n.radius},null,8,Ho),r("circle",{class:"ring__used",cx:"60",cy:"60",r:n.radius,stroke:t.row.typeColor,"stroke-dasharray":i.circumference,"stroke-dashoffset":i.usedOffset,transform:"rotate(-90 60 60)"},null,8,Fo),r("text",Uo,p(i.remainingLabel),1),r("text",jo,p(e.t("absence","left")),1)])),r("div",Wo,[r("span",Go,p(t.row.typeIcon),1),r("span",Zo,p(t.row.typeLabel),1)]),r("div",Ko,[t.row.entitlement!==null?(o(),c(Q,{key:0},[V(p(e.t("absence","{used} of {total} used",{used:i.format(t.row.used),total:i.format(t.row.entitlement)})),1)],64)):(o(),c(Q,{key:1},[V(p(e.t("absence","{used} taken",{used:i.format(t.row.used)})),1)],64)),t.row.pending>0?(o(),c("span",Yo,"· "+p(e.t("absence","{n} pending",{n:i.format(t.row.pending)})),1)):C("",!0)])],8,Vo)}const Qo=U(Oo,[["render",Xo],["__scopeId","data-v-4e48fe9d"]]),Jo={name:"BalanceCard",components:{BalanceRing:Qo},props:{row:{type:Object,required:!0}},methods:{t:R,format(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},signed(e){const a=Number(e);return(a>=0?"+":"−")+this.format(Math.abs(a))}}},er={class:"card"},tr={key:0,class:"ledger"},ar={class:"ledger__row"},ir={key:0,class:"ledger__row"},nr={key:1,class:"ledger__row"},sr={class:"ledger__row ledger__row--total"},lr={class:"ledger__row"},or={key:2,class:"ledger__row ledger__row--pending"};function rr(e,a,t,s,n,i){const l=k("BalanceRing");return o(),c("div",er,[w(l,{row:t.row},null,8,["row"]),t.row.entitlement!==null?(o(),c("dl",tr,[r("div",ar,[r("dt",null,p(i.t("absence","Base allowance")),1),r("dd",null,p(i.format(t.row.baseDays)),1)]),t.row.carryOverDays?(o(),c("div",ir,[r("dt",null,p(i.t("absence","Carried over")),1),r("dd",null,p(i.signed(t.row.carryOverDays)),1)])):C("",!0),t.row.manualAdjustment?(o(),c("div",nr,[r("dt",null,p(i.t("absence","Adjustment")),1),r("dd",null,p(i.signed(t.row.manualAdjustment)),1)])):C("",!0),r("div",sr,[r("dt",null,p(i.t("absence","Entitlement")),1),r("dd",null,p(i.format(t.row.entitlement)),1)]),r("div",lr,[r("dt",null,p(i.t("absence","Used")),1),r("dd",null,p(t.row.used?"−"+i.format(t.row.used):i.format(0)),1)]),t.row.pending?(o(),c("div",or,[r("dt",null,p(i.t("absence","Pending approval")),1),r("dd",null,p("−"+i.format(t.row.pending)),1)])):C("",!0),r("div",{class:"ledger__row ledger__row--available",style:oe({"--type-color":t.row.typeColor})},[r("dt",null,p(i.t("absence","Available")),1),r("dd",null,p(i.format(t.row.available)),1)],4)])):C("",!0)])}const cr=U(Jo,[["render",rr],["__scopeId","data-v-616d428c"]]),ur={name:"BarChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{width:640,height:220,animated:!1}},computed:{padTop(){return 24},baseline(){return this.height-22},max(){return Math.max(1,...this.data.map(e=>e.value))},slot(){return this.data.length?this.width/this.data.length:this.width},barWidth(){return Math.min(48,this.slot*.6)},bars(){return this.data.map((e,a)=>{const t=e.value/this.max*(this.baseline-this.padTop),s=a*this.slot+(this.slot-this.barWidth)/2;return{x:s,cx:s+this.barWidth/2,y:this.baseline-t,h:t,value:e.value,label:e.label,color:e.color||"var(--color-primary-element)"}})}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0;return}requestAnimationFrame(()=>{this.animated=!0})},methods:{fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},dr={class:"chart"},pr={key:0,class:"chart__title"},hr=["viewBox","aria-label"],mr=["x","y","width","height","fill"],fr=["x","y"],gr=["x","y"];function yr(e,a,t,s,n,i){return o(),c("figure",dr,[t.title?(o(),c("figcaption",pr,p(t.title),1)):C("",!0),(o(),c("svg",{viewBox:`0 0 ${n.width} ${n.height}`,class:"chart__svg",role:"img","aria-label":t.title},[(o(!0),c(Q,null,he(i.bars,(l,d)=>(o(),c("g",{key:d},[r("rect",{x:l.x,y:n.animated?l.y:i.baseline,width:i.barWidth,height:n.animated?l.h:0,fill:l.color,rx:"4",class:"chart__bar"},null,8,mr),r("text",{x:l.cx,y:n.height-4,"text-anchor":"middle",class:"chart__label"},p(l.label),9,fr),l.value>0?(o(),c("text",{key:0,x:l.cx,y:l.y-4,"text-anchor":"middle",class:"chart__value"},p(i.fmt(l.value)),9,gr)):C("",!0)]))),128))],8,hr))])}const br=U(ur,[["render",yr],["__scopeId","data-v-eee192cb"]]),vr=["title"],_r=ve({__name:"NcCounterBubble",props:{count:{},active:{type:Boolean},type:{default:""},raw:{type:Boolean}},setup(e){const a=e,t=Y(()=>a.raw?a.count.toString():new Intl.NumberFormat(kn(),{notation:"compact",compactDisplay:"short"}).format(a.count)),s=Y(()=>{if(a.raw)return;const n=a.count.toString();if(n!==t.value)return n});return(n,i)=>(o(),c("div",{class:F(["counter-bubble__counter",{active:e.active,"counter-bubble__counter--highlighted":e.type==="highlighted","counter-bubble__counter--outlined":e.type==="outlined"}]),title:s.value},p(t.value),11,vr))}}),Xn=ee(_r,[["__scopeId","data-v-36ffc13f"]]),Ni=ve({name:"NcVNodes",props:{vnodes:{type:[Array,Object],default:null}},render(){return this.vnodes||this.$slots?.default?.({})}}),wr={name:"NcListItem",components:{NcActions:pt,NcCounterBubble:Xn,NcVNodes:Ni},inheritAttrs:!1,setup(){return{isLegacy34:st}},props:{details:{type:String,default:""},name:{type:String,default:void 0},to:{type:[String,Object],default:null},href:{type:String,default:"#"},target:{type:String,default:""},anchorId:{type:String,default:""},bold:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},active:{type:Boolean,default:void 0},linkAriaLabel:{type:String,default:""},actionsAriaLabel:{type:String,default:void 0},counterNumber:{type:[Number,String],default:0},counterType:{type:String,default:"",validator(e){return["highlighted","outlined",""].indexOf(e)!==-1}},forceDisplayActions:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},oneLine:{type:Boolean,default:!1}},emits:["click","dragstart","update:menuOpen"],data(){return{hovered:!1,hasActions:!1,hasSubname:!1,displayActionsOnHoverFocus:!1,menuOpen:!1,hasIndicator:!1,hasDetails:!1}},computed:{showAdditionalElements(){return!this.displayActionsOnHoverFocus||this.forceDisplayActions},showDetails(){return(this.details!==""||this.hasDetails)&&(!this.displayActionsOnHoverFocus||this.forceDisplayActions)}},watch:{menuOpen(e){!e&&!this.hovered&&(this.displayActionsOnHoverFocus=!1)}},mounted(){this.checkSlots()},updated(){this.checkSlots()},methods:{onClick(e,a,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(a?.(e),e.preventDefault())},showActions(){this.hasActions&&(this.displayActionsOnHoverFocus=!0),this.hovered=!1},hideActions(){this.displayActionsOnHoverFocus=!1},handleBlur(e){this.menuOpen||this.$refs["list-item"]?.contains(e.relatedTarget)||this.hideActions()},handleMouseleave(){this.menuOpen||(this.displayActionsOnHoverFocus=!1),this.hovered=!1},handleMouseover(){this.showActions(),this.hovered=!0},handleActionsUpdateOpen(e){this.menuOpen=e,this.$emit("update:menuOpen",e)},checkSlots(){this.hasActions!==!!this.$slots.actions&&(this.hasActions=!!this.$slots.actions),this.hasSubname!==!!this.$slots.subname&&(this.hasSubname=!!this.$slots.subname),this.hasIndicator!==!!this.$slots.indicator&&(this.hasIndicator=!!this.$slots.indicator),this.hasDetails!==!!this.$slots.details&&(this.hasDetails=!!this.$slots.details)}}},Cr=["id","aria-label","href","target","rel","onClick"],kr={class:"list-item-content"},Ar={class:"list-item-content__main"},xr={class:"list-item-content__name"},Sr={class:"list-item-content__details"},Er={key:0,class:"list-item-details__details"},Nr={key:1,class:"list-item-details__extra"},Tr={key:1,class:"list-item-details__indicator"},Dr={key:0,class:"list-item-content__extra-actions"},Lr={key:2,class:"list-item__extra"};function Ir(e,a,t,s,n,i){const l=k("NcCounterBubble"),d=k("NcActions");return o(),M(_t(t.to?"router-link":"NcVNodes"),vi(_i({...t.to&&{custom:!0,to:t.to}})),{default:x(({href:h,navigate:f,isActive:m})=>[r("li",J({class:["list-item__wrapper",{"list-item__wrapper--active":t.active??m,"list-item__wrapper--legacy":s.isLegacy34}]},e.$attrs),[r("div",{ref:"list-item",class:F(["list-item",{"list-item--compact":t.compact,"list-item--one-line":t.oneLine}]),onMouseover:a[5]||(a[5]=(...u)=>i.handleMouseover&&i.handleMouseover(...u)),onMouseleave:a[6]||(a[6]=(...u)=>i.handleMouseleave&&i.handleMouseleave(...u))},[r("a",{id:t.anchorId||void 0,"aria-label":t.linkAriaLabel,class:"list-item__anchor",href:h||t.href,target:t.target||(t.href==="#"?void 0:"_blank"),rel:t.href==="#"?void 0:"noopener noreferrer",onFocus:a[0]||(a[0]=(...u)=>i.showActions&&i.showActions(...u)),onFocusout:a[1]||(a[1]=(...u)=>i.handleBlur&&i.handleBlur(...u)),onClick:u=>i.onClick(u,f,h),onDragstart:a[2]||(a[2]=u=>e.$emit("dragstart",u)),onKeydown:a[3]||(a[3]=xe((...u)=>i.hideActions&&i.hideActions(...u),["esc"]))},[q(e.$slots,"icon",{},void 0,!0),r("div",kr,[r("div",Ar,[r("div",xr,[q(e.$slots,"name",{},()=>[V(p(t.name),1)],!0)]),n.hasSubname?(o(),c("div",{key:0,class:F(["list-item-content__subname",{"list-item-content__subname--bold":t.bold}])},[q(e.$slots,"subname",{},void 0,!0)],2)):C("",!0)]),r("div",Sr,[i.showDetails?(o(),c("div",Er,[q(e.$slots,"details",{},()=>[V(p(t.details),1)],!0)])):C("",!0),t.counterNumber!==0||n.hasIndicator?Ee((o(),c("div",Nr,[t.counterNumber!==0?(o(),M(l,{key:0,count:t.counterNumber,active:s.isLegacy34?t.active??m:!1,class:"list-item-details__counter",type:t.counterType},null,8,["count","active","type"])):C("",!0),n.hasIndicator?(o(),c("span",Tr,[q(e.$slots,"indicator",{},void 0,!0)])):C("",!0)],512)),[[at,i.showAdditionalElements]]):C("",!0)])])],40,Cr),e.$slots["extra-actions"]?(o(),c("div",Dr,[q(e.$slots,"extra-actions",{},void 0,!0)])):C("",!0),t.forceDisplayActions||n.displayActionsOnHoverFocus?(o(),c("div",{key:1,class:"list-item-content__actions",onFocusout:a[4]||(a[4]=(...u)=>i.handleBlur&&i.handleBlur(...u))},[w(d,{ref:"actions",primary:s.isLegacy34?t.active??m:!1,forceMenu:t.forceMenu,"aria-label":t.actionsAriaLabel,"onUpdate:open":i.handleActionsUpdateOpen},nt({default:x(()=>[q(e.$slots,"actions",{},void 0,!0)]),_:2},[e.$slots["actions-icon"]?{name:"icon",fn:x(()=>[q(e.$slots,"actions-icon",{},void 0,!0)]),key:"0"}:void 0]),1032,["primary","forceMenu","aria-label","onUpdate:open"])],32)):C("",!0),e.$slots.extra?(o(),c("div",Lr,[q(e.$slots,"extra",{},void 0,!0)])):C("",!0)],34)],16)]),_:3},16)}const Br=ee(wr,[["render",Ir],["__scopeId","data-v-7e90555e"]]),Mr=Symbol.for("nc:theme:enforced");function Rr(e){const a=Y(()=>it(e)??document.body),t=Me(ei(a.value)),s=Is();function n(){t.value=ei(a.value)}return Ds(a,n,{attributes:!0}),Te(a,n),Te(s,n,{immediate:!0}),Ls(t)}const $r=Ts(()=>Rr());function zr(){const e=$r(),a=Ae(Mr,void 0);return Y(()=>a?.value?a.value==="dark":e.value)}function Pr(){try{return An("absence","session")}catch{return{uid:null}}}function Or(){try{return An("absence","leaveTypes")||[]}catch{return[]}}const G=Cn({session:Pr(),leaveTypes:Or(),requests:[],balance:{balances:[]},loading:!1,selectedId:null,leaveType(e){return e==null?{label:R("absence","Absent"),color:"#888",icon:"🌴"}:this.leaveTypes.find(a=>a.id===e)||{label:R("absence","Unknown"),color:"#888",icon:"❔"}},isHrRecorded(e){const a=this.leaveType(e.typeId);return a&&a.employeeRequestable===!1},statusVisible(e){return!(this.isHrRecorded(e)&&e.status==="APPROVED")},get enabledLeaveTypes(){return this.leaveTypes.filter(e=>e.enabled)},get requestableLeaveTypes(){return this.leaveTypes.filter(e=>e.enabled&&e.employeeRequestable)},async refreshSession(){try{this.session=await ce.getSession()}catch(e){console.error("Absence: failed to refresh session",e)}},async loadLeaveTypes(){this.leaveTypes=await ce.listLeaveTypes(!1)},async loadRequests(e){this.loading=!0;try{this.requests=await ce.listRequests(e)}catch{We(R("absence","Could not load requests"))}finally{this.loading=!1}},async loadMyBalance(e){this.balance=await ce.getMyBalance(e)},async createRequest(e){const a=await ce.createRequest(e);return Dt(R("absence","On its way ✈️")),await this.refreshSession(),a},async updateRequest(e,a){const t=await ce.updateRequest(e,a);return Dt(R("absence","Request updated")),t},async cancelRequest(e){const a=await ce.cancelRequest(e);return Dt(R("absence","Request cancelled")),await this.refreshSession(),a},async approveRequest(e,a){const t=await ce.approveRequest(e,a);return await this.refreshSession(),t},async rejectRequest(e,a){const t=await ce.rejectRequest(e,a);return Dt(R("absence","Request declined")),await this.refreshSession(),t},select(e){this.selectedId=e}});function Vr(e){switch(e){case"PENDING":return{label:R("absence","Pending"),text:"var(--color-warning-text)",tint:"var(--color-warning)",icon:"⏳"};case"ESCALATED":return{label:R("absence","With HR"),text:"var(--color-warning-text)",tint:"var(--color-warning)",icon:"⏫"};case"APPROVED":return{label:R("absence","Approved"),text:"var(--color-success-text)",tint:"var(--color-success)",icon:"✅"};case"REJECTED":return{label:R("absence","Declined"),text:"var(--color-error-text)",tint:"var(--color-error)",icon:"✋"};case"CANCELLED":return{label:R("absence","Cancelled"),text:"var(--color-text-maxcontrast)",tint:"var(--color-text-maxcontrast)",icon:"🚫"};case"WITHDRAWAL_PENDING":return{label:R("absence","Withdrawal pending"),text:"var(--color-warning-text)",tint:"var(--color-warning)",icon:"↩️"};default:return{label:e,text:"var(--color-main-text)",tint:"var(--color-text-maxcontrast)",icon:"•"}}}const qr={name:"StatusChip",props:{status:{type:String,required:!0}},computed:{meta(){return Vr(this.status)}}},Hr={class:"status-chip__dot","aria-hidden":"true"};function Fr(e,a,t,s,n,i){return o(),c("span",{class:"status-chip",style:oe({"--chip-text":i.meta.text,"--chip-tint":i.meta.tint})},[r("span",Hr,p(i.meta.icon),1),V(" "+p(i.meta.label),1)],4)}const Ti=U(qr,[["render",Fr],["__scopeId","data-v-ad89be20"]]),Ur={name:"LeaveTypeChip",props:{typeId:{type:Number,required:!0}},computed:{type(){return G.leaveType(this.typeId)}}},jr={class:"type-chip__icon","aria-hidden":"true"};function Wr(e,a,t,s,n,i){return o(),c("span",{class:"type-chip",style:oe({"--type-color":i.type.color})},[r("span",jr,p(i.type.icon),1),V(" "+p(i.type.label),1)],4)}const Qn=U(Ur,[["render",Wr],["__scopeId","data-v-9c1034d0"]]),Gr={name:"RequestListItem",components:{NcListItem:Br,StatusChip:Ti,LeaveTypeChip:Qn},props:{request:{type:Object,required:!0},active:{type:Boolean,default:!1},showEmployee:{type:Boolean,default:!1}},emits:["select"],computed:{type(){return G.leaveType(this.request.typeId)},showStatus(){return G.statusVisible(this.request)},colorSoft(){return`color-mix(in srgb, ${this.type.color} 18%, transparent)`},title(){return this.showEmployee?`${this.request.employeeUid} · ${this.type.label}`:this.type.label},subtitle(){const e=La(this.request.startDate,this.request.endDate),a=aa("absence","%n day","%n days",this.request.workingDays);return`${e} · ${a}`}},methods:{t:R,n:aa}};function Zr(e,a,t,s,n,i){const l=k("StatusChip"),d=k("NcListItem");return o(),c("div",{class:F(["rli",{"rli--active":t.active}]),style:oe({"--type-color":i.type.color})},[w(d,{name:i.title,active:t.active,"force-display-actions":!0,onClick:a[0]||(a[0]=h=>e.$emit("select",t.request.id))},nt({icon:x(()=>[r("span",{class:"rli__icon",style:oe({background:i.colorSoft}),"aria-hidden":"true"},p(i.type.icon),5)]),subname:x(()=>[V(p(i.subtitle),1)]),_:2},[i.showStatus?{name:"indicator",fn:x(()=>[w(l,{status:t.request.status},null,8,["status"])]),key:"0"}:void 0]),1032,["name","active"])],6)}const Jn=U(Gr,[["render",Zr],["__scopeId","data-v-168b1264"]]),Kr={name:"SkeletonList",props:{rows:{type:Number,default:4}},methods:{t:R}},Yr=["aria-label"];function Xr(e,a,t,s,n,i){return o(),c("div",{class:"skeleton","aria-label":i.t("absence","Loading…"),role:"status"},[(o(!0),c(Q,null,he(t.rows,l=>(o(),c("div",{key:l,class:"skeleton__row"},[...a[0]||(a[0]=[xn('',3)])]))),128))],8,Yr)}const Wt=U(Kr,[["render",Xr],["__scopeId","data-v-0f888222"]]),Qr={name:"PalmIllustration"},Jr={class:"palm",viewBox:"0 0 160 140",width:"160",height:"140",role:"img","aria-hidden":"true"};function ec(e,a,t,s,n,i){return o(),c("svg",Jr,[...a[0]||(a[0]=[xn('',7)])])}const tc=U(Qr,[["render",ec],["__scopeId","data-v-c74c7f38"]]),ac={name:"MyLeave",components:{NcButton:be,NcEmptyContent:lt,Plus:Yn,BalanceCard:cr,BarChart:br,RequestListItem:Jn,SkeletonList:Wt,PalmIllustration:tc},inject:["absence:openNew"],props:{id:{type:[String,Number],default:null}},setup(){return{store:G}},computed:{year(){return new Date().getFullYear()},rings(){return G.balance.balances.filter(e=>e.year===this.year&&e.countsAgainstBalance)},leaveByMonth(){return this.monthChart(e=>e.countsAgainstBalance!==!1&&e.key!=="sick",null)},sickByMonth(){const e=G.leaveTypes.find(a=>a.key==="sick");return e?this.monthChart(a=>a.key==="sick",e.color):null},nextBreak(){const e=$e(new Date),a=G.requests.filter(l=>l.status==="APPROVED"&&l.endDate>=e).sort((l,d)=>l.startDate.localeCompare(d.startDate));if(!a.length)return null;const t=a[0],s=G.leaveType(t.typeId),n=La(t.startDate,t.endDate);if(t.startDate<=e)return{icon:s.icon,color:s.color,eyebrow:R("absence","You are off right now"),headline:R("absence","Enjoy your {type}! 🌴",{type:s.label.toLowerCase()}),sub:n};const i=Math.max(1,Math.round((new Date(t.startDate+"T00:00:00")-new Date(e+"T00:00:00"))/864e5));return{icon:s.icon,color:s.color,eyebrow:R("absence","Your next break"),headline:aa("absence","%n day to go","%n days to go",i),sub:`${s.label} · ${n}`}}},mounted(){this.reload(),window.addEventListener("absence:refresh",this.reload),this.id&&G.select(Number(this.id))},beforeUnmount(){window.removeEventListener("absence:refresh",this.reload)},methods:{t:R,monthChart(e,a){const t=new Array(12).fill(0);for(const s of G.requests)s.status!=="APPROVED"||!e(G.leaveType(s.typeId))||Bs(t,s.startDate,s.endDate,s.workingDays,this.year);return t.map((s,n)=>({label:new Date(this.year,n,1).toLocaleDateString(void 0,{month:"short"}),value:Math.round(s*10)/10,...a?{color:a}:{}}))},openNew(){this["absence:openNew"]()},async reload(){await Promise.all([G.loadRequests({scope:"mine"}),G.loadMyBalance()])}}},ic={class:"page"},nc={class:"page__header"},sc={class:"page__title"},lc={class:"hero__emoji","aria-hidden":"true"},oc={class:"hero__text"},rc={class:"hero__eyebrow"},cc={class:"hero__headline"},uc={class:"hero__sub"},dc={key:1,class:"overview"},pc={key:2,class:"charts"},hc={key:0,class:"charts__card"},mc={key:1,class:"charts__card"},fc={class:"requests"},gc={class:"requests__title"};function yc(e,a,t,s,n,i){const l=k("Plus"),d=k("NcButton"),h=k("BalanceCard"),f=k("BarChart"),m=k("SkeletonList"),u=k("RequestListItem"),g=k("PalmIllustration"),y=k("NcEmptyContent");return o(),c("div",ic,[r("header",nc,[r("h2",sc,p(i.t("absence","My leave")),1),w(d,{type:"primary",onClick:i.openNew},{icon:x(()=>[w(l,{size:20})]),default:x(()=>[V(" "+p(i.t("absence","New request")),1)]),_:1},8,["onClick"])]),i.nextBreak?(o(),c("section",{key:0,class:"hero",style:oe({"--accent":i.nextBreak.color})},[r("span",lc,p(i.nextBreak.icon),1),r("div",oc,[r("span",rc,p(i.nextBreak.eyebrow),1),r("strong",cc,p(i.nextBreak.headline),1),r("span",uc,p(i.nextBreak.sub),1)])],4)):C("",!0),i.rings.length?(o(),c("section",dc,[(o(!0),c(Q,null,he(i.rings,S=>(o(),M(h,{key:S.typeId+"-"+S.year,row:S},null,8,["row"]))),128))])):C("",!0),i.leaveByMonth||i.sickByMonth?(o(),c("section",pc,[i.leaveByMonth?(o(),c("div",hc,[w(f,{title:i.t("absence","Leave taken by month ({year})",{year:i.year}),data:i.leaveByMonth},null,8,["title","data"])])):C("",!0),i.sickByMonth?(o(),c("div",mc,[w(f,{title:i.t("absence","Sick days by month ({year})",{year:i.year}),data:i.sickByMonth},null,8,["title","data"])])):C("",!0)])):C("",!0),r("section",fc,[r("h3",gc,p(i.t("absence","Requests")),1),s.store.loading?(o(),M(m,{key:0,rows:4})):s.store.requests.length?(o(),M(ti,{key:1,tag:"ul",name:"rli",class:"requests__list"},{default:x(()=>[(o(!0),c(Q,null,he(s.store.requests,S=>(o(),M(u,{key:S.id,request:S,active:s.store.selectedId===S.id,onSelect:a[0]||(a[0]=b=>s.store.select(b))},null,8,["request","active"]))),128))]),_:1})):(o(),M(y,{key:2,name:i.t("absence","No leave requests yet"),description:i.t("absence","Your leave requests will appear here once you submit one.")},{icon:x(()=>[w(g)]),action:x(()=>[w(d,{type:"primary",onClick:i.openNew},{default:x(()=>[V(p(i.t("absence","Request time off")),1)]),_:1},8,["onClick"])]),_:1},8,["name","description"]))])])}const sn=U(ac,[["render",yc],["__scopeId","data-v-a07ef7d1"]]),bc={name:"CheckAllIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vc=["aria-hidden","aria-label"],_c=["fill","width","height"],wc={d:"M0.41,13.41L6,19L7.41,17.58L1.83,12M22.24,5.58L11.66,16.17L7.5,12L6.07,13.41L11.66,19L23.66,7M18,7L16.59,5.58L10.24,11.93L11.66,13.34L18,7Z"},Cc={key:0};function kc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-all-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",wc,[t.title?(o(),c("title",Cc,p(t.title),1)):C("",!0)])],8,_c))],16,vc)}const Ac=U(bc,[["render",kc]]),xc=["PENDING","ESCALATED","WITHDRAWAL_PENDING"],Sc={name:"Approvals",components:{NcEmptyContent:lt,CheckAll:Ac,RequestListItem:Jn,SkeletonList:Wt},setup(){return{store:G}},data(){return{loading:!0,teamQueue:[],escalated:[]}},mounted(){this.reload(),window.addEventListener("absence:refresh",this.reload)},beforeUnmount(){window.removeEventListener("absence:refresh",this.reload)},methods:{t:R,async reload(){this.loading=!0;try{const e=await ce.listRequests({scope:"reports"});this.teamQueue=e.filter(a=>xc.includes(a.status)),G.session.isHr&&(this.escalated=await ce.listRequests({scope:"hr",status:"ESCALATED"}))}finally{this.loading=!1}}}},Ec={class:"page"},Nc={class:"page__header"},Tc={class:"page__title"},Dc={key:0,class:"group"},Lc={class:"group__title"},Ic={key:1,class:"group"},Bc={class:"group__title"};function Mc(e,a,t,s,n,i){const l=k("SkeletonList"),d=k("RequestListItem"),h=k("CheckAll"),f=k("NcEmptyContent");return o(),c("div",Ec,[r("header",Nc,[r("h2",Tc,p(i.t("absence","Approvals")),1)]),n.loading?(o(),M(l,{key:0,rows:3})):(o(),c(Q,{key:1},[n.teamQueue.length?(o(),c("section",Dc,[r("h3",Lc,p(i.t("absence","Awaiting your decision")),1),w(ti,{tag:"ul",name:"rli",class:"list"},{default:x(()=>[(o(!0),c(Q,null,he(n.teamQueue,m=>(o(),M(d,{key:m.id,request:m,"show-employee":!0,active:s.store.selectedId===m.id,onSelect:a[0]||(a[0]=u=>s.store.select(u))},null,8,["request","active"]))),128))]),_:1})])):C("",!0),n.escalated.length?(o(),c("section",Ic,[r("h3",Bc,p(i.t("absence","Escalated to HR"))+" ⏫",1),w(ti,{tag:"ul",name:"rli",class:"list"},{default:x(()=>[(o(!0),c(Q,null,he(n.escalated,m=>(o(),M(d,{key:m.id,request:m,"show-employee":!0,active:s.store.selectedId===m.id,onSelect:a[1]||(a[1]=u=>s.store.select(u))},null,8,["request","active"]))),128))]),_:1})])):C("",!0),!n.teamQueue.length&&!n.escalated.length?(o(),M(f,{key:2,name:i.t("absence","All caught up!"),description:i.t("absence","No requests waiting for a decision. ✨")},{icon:x(()=>[w(h,{size:20})]),_:1},8,["name","description"])):C("",!0)],64))])}const Rc=U(Sc,[["render",Mc],["__scopeId","data-v-1a17b6e5"]]),es=Ms?window:void 0;function Lt(e){var a;const t=it(e);return(a=t?.$el)!==null&&a!==void 0?a:t}function ja(...e){const a=(s,n,i,l)=>(s.addEventListener(n,i,l),()=>s.removeEventListener(n,i,l)),t=Y(()=>{const s=Va(it(e[0])).filter(n=>n!=null);return s.every(n=>typeof n!="string")?s:void 0});return Rs(()=>{var s,n;return[(s=(n=t.value)===null||n===void 0?void 0:n.map(i=>Lt(i)))!==null&&s!==void 0?s:[es].filter(i=>i!=null),Va(it(t.value?e[1]:e[0])),Va(K(t.value?e[2]:e[1])),it(t.value?e[3]:e[2])]},([s,n,i,l],d,h)=>{if(!s?.length||!n?.length||!i?.length)return;const f=$s(l)?{...l}:l,m=s.flatMap(u=>n.flatMap(g=>i.map(y=>a(u,g,y,f))));h(()=>{m.forEach(u=>u())})},{flush:"post"})}function ln(e,a,t={}){const{window:s=es,ignore:n=[],capture:i=!0,detectIframe:l=!1,controls:d=!1}=t;if(!s)return d?{stop:Zt,cancel:Zt,trigger:Zt}:Zt;let h=!0;const f=_=>it(n).some(I=>{if(typeof I=="string")return Array.from(s.document.querySelectorAll(I)).some($=>$===_.target||_.composedPath().includes($));{const $=Lt(I);return $&&(_.target===$||_.composedPath().includes($))}});function m(_){const I=it(_);return I&&I.$.subTree.shapeFlag===16}function u(_,I){const $=it(_),z=$.$.subTree&&$.$.subTree.children;return z==null||!Array.isArray(z)?!1:z.some(W=>W.el===I.target||I.composedPath().includes(W.el))}const g=_=>{const I=Lt(e);if(_.target!=null&&!(!(I instanceof Element)&&m(e)&&u(e,_))&&!(!I||I===_.target||_.composedPath().includes(I))){if("detail"in _&&_.detail===0&&(h=!f(_)),!h){h=!0;return}a(_)}};let y=!1;const S=[ja(s,"click",_=>{y||(y=!0,setTimeout(()=>{y=!1},0),g(_))},{passive:!0,capture:i}),ja(s,"pointerdown",_=>{const I=Lt(e);h=!f(_)&&!!(I&&!_.composedPath().includes(I))},{passive:!0}),l&&ja(s,"blur",_=>{setTimeout(()=>{const I=Lt(e);let $=s.document.activeElement;for(;$?.shadowRoot;)$=$.shadowRoot.activeElement;$?.tagName==="IFRAME"&&!I?.contains(s.document.activeElement)&&a(_)},0)},{passive:!0})].filter(Boolean),b=()=>S.forEach(_=>_());return d?{stop:b,cancel:()=>{h=!1},trigger:_=>{h=!0,g(_),h=!1}}:b}const Wa=new WeakMap,ts={mounted(e,a){const t=!a.modifiers.bubble;let s;if(typeof a.value=="function")s=ln(e,a.value,{capture:t});else{const[n,i]=a.value;s=ln(e,n,Object.assign({capture:t},i))}Wa.set(e,s)},unmounted(e){const a=Wa.get(e);a&&typeof a=="function"?a():a?.stop(),Wa.delete(e)}};function $c(e,a){const t=(m,u)=>m.startsWith(u)?m.slice(u.length):m,s=(m,...u)=>u.reduce((g,y)=>t(g,y),m);if(!e)return null;const n=/^https?:\/\//.test(a),i=/^[a-z][a-z0-9+.-]*:.+/.test(a);if(!n&&i||n&&!a.startsWith(qi())||!n&&!a.startsWith("/"))return null;const l=n?s(a,qi(),"/index.php"):a,d=s(e.options.history.base,zs(),"/index.php"),h=s(l,d)||"/",f=e.resolve(h);return f.matched.length?f.fullPath:null}function zc(e){return window._nc_contacts_menu_hooks?Object.values(window._nc_contacts_menu_hooks).filter(a=>a.enabled(e)):[]}const Pc=new Int32Array(4);class we{static hashStr(a,t=!1){return this.onePassHasher.start().appendStr(a).end(t)}static hashAsciiStr(a,t=!1){return this.onePassHasher.start().appendAsciiStr(a).end(t)}static stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);static buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);static hexChars="0123456789abcdef";static hexOut=[];static onePassHasher=new we;static _hex(a){const t=we.hexChars,s=we.hexOut;let n,i,l,d;for(d=0;d<4;d+=1)for(i=d*8,n=a[d],l=0;l<8;l+=2)s[i+1+l]=t.charAt(n&15),n>>>=4,s[i+0+l]=t.charAt(n&15),n>>>=4;return s.join("")}static _md5cycle(a,t){let s=a[0],n=a[1],i=a[2],l=a[3];s+=(n&i|~n&l)+t[0]-680876936|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[1]-389564586|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[2]+606105819|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[3]-1044525330|0,n=(n<<22|n>>>10)+i|0,s+=(n&i|~n&l)+t[4]-176418897|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[5]+1200080426|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[6]-1473231341|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[7]-45705983|0,n=(n<<22|n>>>10)+i|0,s+=(n&i|~n&l)+t[8]+1770035416|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[9]-1958414417|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[10]-42063|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[11]-1990404162|0,n=(n<<22|n>>>10)+i|0,s+=(n&i|~n&l)+t[12]+1804603682|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[13]-40341101|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[14]-1502002290|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[15]+1236535329|0,n=(n<<22|n>>>10)+i|0,s+=(n&l|i&~l)+t[1]-165796510|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[6]-1069501632|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[11]+643717713|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[0]-373897302|0,n=(n<<20|n>>>12)+i|0,s+=(n&l|i&~l)+t[5]-701558691|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[10]+38016083|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[15]-660478335|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[4]-405537848|0,n=(n<<20|n>>>12)+i|0,s+=(n&l|i&~l)+t[9]+568446438|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[14]-1019803690|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[3]-187363961|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[8]+1163531501|0,n=(n<<20|n>>>12)+i|0,s+=(n&l|i&~l)+t[13]-1444681467|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[2]-51403784|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[7]+1735328473|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[12]-1926607734|0,n=(n<<20|n>>>12)+i|0,s+=(n^i^l)+t[5]-378558|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[8]-2022574463|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[11]+1839030562|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[14]-35309556|0,n=(n<<23|n>>>9)+i|0,s+=(n^i^l)+t[1]-1530992060|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[4]+1272893353|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[7]-155497632|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[10]-1094730640|0,n=(n<<23|n>>>9)+i|0,s+=(n^i^l)+t[13]+681279174|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[0]-358537222|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[3]-722521979|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[6]+76029189|0,n=(n<<23|n>>>9)+i|0,s+=(n^i^l)+t[9]-640364487|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[12]-421815835|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[15]+530742520|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[2]-995338651|0,n=(n<<23|n>>>9)+i|0,s+=(i^(n|~l))+t[0]-198630844|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[7]+1126891415|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[14]-1416354905|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[5]-57434055|0,n=(n<<21|n>>>11)+i|0,s+=(i^(n|~l))+t[12]+1700485571|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[3]-1894986606|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[10]-1051523|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[1]-2054922799|0,n=(n<<21|n>>>11)+i|0,s+=(i^(n|~l))+t[8]+1873313359|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[15]-30611744|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[6]-1560198380|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[13]+1309151649|0,n=(n<<21|n>>>11)+i|0,s+=(i^(n|~l))+t[4]-145523070|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[11]-1120210379|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[2]+718787259|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[9]-343485551|0,n=(n<<21|n>>>11)+i|0,a[0]=s+a[0]|0,a[1]=n+a[1]|0,a[2]=i+a[2]|0,a[3]=l+a[3]|0}_dataLength=0;_bufferLength=0;_state=new Int32Array(4);_buffer=new ArrayBuffer(68);_buffer8;_buffer32;constructor(){this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(we.stateIdentity),this}appendStr(a){const t=this._buffer8,s=this._buffer32;let n=this._bufferLength,i,l;for(l=0;l>>6)+192,t[n++]=i&63|128;else if(i<55296||i>56319)t[n++]=(i>>>12)+224,t[n++]=i>>>6&63|128,t[n++]=i&63|128;else{if(i=(i-55296)*1024+(a.charCodeAt(++l)-56320)+65536,i>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");t[n++]=(i>>>18)+240,t[n++]=i>>>12&63|128,t[n++]=i>>>6&63|128,t[n++]=i&63|128}n>=64&&(this._dataLength+=64,we._md5cycle(this._state,s),n-=64,s[0]=s[16])}return this._bufferLength=n,this}appendAsciiStr(a){const t=this._buffer8,s=this._buffer32;let n=this._bufferLength,i,l=0;for(;;){for(i=Math.min(a.length-l,64-n);i--;)t[n++]=a.charCodeAt(l++);if(n<64)break;this._dataLength+=64,we._md5cycle(this._state,s),n=0}return this._bufferLength=n,this}appendByteArray(a){const t=this._buffer8,s=this._buffer32;let n=this._bufferLength,i,l=0;for(;;){for(i=Math.min(a.length-l,64-n);i--;)t[n++]=a[l++];if(n<64)break;this._dataLength+=64,we._md5cycle(this._state,s),n=0}return this._bufferLength=n,this}getState(){const a=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[a[0],a[1],a[2],a[3]]}}setState(a){const t=a.buffer,s=a.state,n=this._state;let i;for(this._dataLength=a.length,this._bufferLength=a.buflen,n[0]=s[0],n[1]=s[1],n[2]=s[2],n[3]=s[3],i=0;i>2)+1;this._dataLength+=t;const l=this._dataLength*8;if(s[t]=128,s[t+1]=s[t+2]=s[t+3]=0,n.set(we.buffer32Identity.subarray(i),i),t>55&&(we._md5cycle(this._state,n),n.set(we.buffer32Identity)),l<=4294967295)n[14]=l;else{const d=l.toString(16).match(/(.*?)(.{0,8})$/);if(d===null)return a?Pc:"";const h=parseInt(d[2],16),f=parseInt(d[1],16)||0;n[14]=h,n[15]=f}return we._md5cycle(this._state,n),a?this._state:we._hex(this._state)}}if(we.hashStr("hello")!=="5d41402abc4b2a76b9719d911017c592")throw new Error("Md5 self test failed.");De(Ps);class Ce{constructor(a,t,s,n){this.r=a,this.g=t,this.b=s,this.name=n,this.r=Math.min(a,255),this.g=Math.min(t,255),this.b=Math.min(s,255),this.name=n}r;g;b;name;get color(){const a=t=>`00${t.toString(16)}`.slice(-2);return`#${a(this.r)}${a(this.g)}${a(this.b)}`}}function Oc(e,a,t){return{r:(t.r-a.r)/e,g:(t.g-a.g)/e,b:(t.b-a.b)/e}}function Ga(e,a,t){const s=[];s.push(a);const n=Oc(e,a,t);for(let i=1;i/g,d=/<\/?([^\s\/>]+)/;function h(S,b,_){S=S||"",b=b||[],_=_||"";let I=m(b,_);return u(S,I)}function f(S,b){S=S||[],b=b||"";let _=m(S,b);return function(I){return u(I||"",_)}}h.init_streaming_mode=f;function m(S,b){return S=g(S),{allowable_tags:S,tag_replacement:b,state:s,tag_buffer:"",depth:0,in_quote_char:""}}function u(S,b){if(typeof S!="string")throw new TypeError("'html' parameter must be a string");let _=b.allowable_tags,I=b.tag_replacement,$=b.state,z=b.tag_buffer,W=b.depth,ie=b.in_quote_char,se="";for(let le=0,te=S.length;le":if(ie)break;if(W){W--;break}ie="",$=s,z+=">",_.has(y(z))?se+=z:se+=I,z="";break;case'"':case"'":re===ie?ie="":ie=ie||re,z+=re;break;case"-":z===""?(z.slice(-2)=="--"&&($=s),z=""):z+=re)}return b.state=$,b.tag_buffer=z,b.depth=W,b.in_quote_char=ie,se}function g(S){let b=new Set;if(typeof S=="string"){let _;for(;_=l.exec(S);)b.add(_[1])}else!t.nonNative&&typeof S[t.iterator]=="function"?b=new Set(S):typeof S.forEach=="function"&&S.forEach(b.add,b);return b}function y(S){let b=d.exec(S);return b?b[1].toLowerCase():null}e.exports?e.exports=h:a.striptags=h})(Hc)})(ci)),ci.exports}Fc();function Uc(e,a){const t=(a?.size||64)<=64?64:512,s=a?.isGuest?"/guest":"",n=a?.isDarkTheme??ei(document.body)?"/dark":"";return wi(`/avatar${s}/{user}/{size}${n}?guestFallback=true`,{user:e,size:t})}function jc(e,a,t){const s=`#initial-state-${e}-${a}`;if(window._nc_initial_state?.has(s))return window._nc_initial_state.get(s);window._nc_initial_state||(window._nc_initial_state=new Map);const n=document.querySelector(s);if(n===null)throw new Error(`Could not find initial state ${a} of ${e}`);try{const i=JSON.parse(atob(n.value));return window._nc_initial_state.set(s,i),i}catch(i){throw console.error("[@nextcloud/initial-state] Could not parse initial state",{key:a,app:e,error:i}),new Error(`Could not parse initial state ${a} of ${e}`,{cause:i})}}function Di(){try{return jc("core","capabilities")}catch{return console.debug("Could not find capabilities initial state fall back to _oc_capabilities"),"_oc_capabilities"in window?window._oc_capabilities:{}}}const Wc=` - - - -`,Gc=` - - - -`,Zc=` - - - -`,pn=` - - - -`,Kc=` - - - -`;De(Os),De(Vs);function as(e){switch(e){case"away":return j("away");case"busy":return j("busy");case"dnd":return j("do not disturb");case"online":return j("online");case"invisible":return j("invisible");case"offline":return j("offline");default:return e}}const Yc=["aria-hidden","aria-label","innerHTML"],Xc=ve({__name:"NcUserStatusIcon",props:mt({user:{default:void 0},ariaHidden:{type:[Boolean,String],default:!1}},{status:{},statusModifiers:{}}),emits:["update:status"],setup(e){const a=ft(e,"status"),t=e,s=Y(()=>a.value&&["invisible","offline"].includes(a.value)),n=Y(()=>a.value&&(!t.ariaHidden||t.ariaHidden==="false")?j("User status: {status}",{status:as(a.value)}):void 0);Te(()=>t.user,async d=>{if(!a.value&&d&&Di()?.user_status?.enabled)try{const{data:h}=await Ci.get(Sn("/apps/user_status/api/v1/statuses/{user}",{user:d}));a.value=h.ocs?.data?.status}catch(h){ze.debug("Error while fetching user status",{error:h})}},{immediate:!0});const i={online:Kc,away:Wc,busy:Gc,dnd:Zc,invisible:pn,offline:pn},l=Y(()=>a.value&&i[a.value]);return(d,h)=>a.value?(o(),c("span",{key:0,class:F(["user-status-icon",{"user-status-icon--invisible":s.value}]),"aria-hidden":!n.value||void 0,"aria-label":n.value,role:"img",innerHTML:l.value},null,10,Yc)):C("",!0)}}),Qc=ee(Xc,[["__scopeId","data-v-881a79fb"]]),Jc={beforeUpdate(){this.text=this.getText()},data(){return{text:this.getText()}},computed:{isLongText(){return this.text&&this.text.trim().length>20}},methods:{getText(){return this.$slots.default?.()[0].children?.trim?.()||""}}},za={mixins:[Jc],props:{icon:{type:String,default:""},name:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:null}},inject:{closeMenu:{from:qs}},emits:["click"],created(){"ariaHidden"in this.$attrs},computed:{isIconUrl(){try{return!!new URL(this.icon,this.icon.startsWith("/")?window.location.origin:void 0)}catch{return!1}}},methods:{onClick(e){this.$emit("click",e),this.closeAfterClick&&this.closeMenu(!1)}}},eu={name:"NcActionButton",components:{NcIconSvgWrapper:Ne},mixins:[za],inject:{isInSemanticMenu:{from:Ia,default:!1}},props:{disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:e=>["button","checkbox","radio","reset","submit"].includes(e)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null},description:{type:String,default:""}},emits:["update:modelValue"],setup(){return{mdiCheck:ia,mdiChevronRight:Hs}},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 e={};return this.isInSemanticMenu?(e.role="menuitem",this.type==="radio"?(e.role="menuitemradio",e["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(e.role="menuitemcheckbox",e["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(e["aria-pressed"]=this.modelValue?"true":"false"),e}},methods:{handleClick(e){this.onClick(e),(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))}}},tu=["role"],au=["aria-label","disabled","title","type"],iu={class:"action-button__longtext-wrapper"},nu={key:0,class:"action-button__name"},su=["textContent"],lu={key:2,class:"action-button__text"},ou=["textContent"],ru={key:2,class:"action-button__pressed-icon material-design-icon"};function cu(e,a,t,s,n,i){const l=k("NcIconSvgWrapper");return o(),c("li",{class:F(["action",{"action--disabled":t.disabled}]),role:i.isInSemanticMenu&&"presentation"},[r("button",J({"aria-label":e.ariaLabel,class:["action-button button-vue",{"action-button--active":i.isChecked,focusable:i.isFocusable}],disabled:t.disabled,title:e.title,type:i.nativeType},i.buttonAttributes,{onClick:a[0]||(a[0]=(...d)=>i.handleClick&&i.handleClick(...d))}),[q(e.$slots,"icon",{},()=>[r("span",{class:F([[e.isIconUrl?"action-button__icon--url":e.icon],"action-button__icon"]),style:oe({backgroundImage:e.isIconUrl?`url(${e.icon})`:null}),"aria-hidden":"true"},null,6)],!0),r("span",iu,[e.name?(o(),c("strong",nu,p(e.name),1)):C("",!0),e.isLongText?(o(),c("span",{key:1,class:"action-button__longtext",textContent:p(e.text)},null,8,su)):(o(),c("span",lu,p(e.text),1)),t.description?(o(),c("span",{key:3,class:"action-button__description",textContent:p(t.description)},null,8,ou)):C("",!0)]),t.isMenu?(o(),M(l,{key:0,class:"action-button__menu-icon",directional:"",path:s.mdiChevronRight},null,8,["path"])):i.isChecked?(o(),M(l,{key:1,path:s.mdiCheck,class:"action-button__pressed-icon"},null,8,["path"])):i.isChecked===!1?(o(),c("span",ru)):C("",!0),C("",!0)],16,au)],10,tu)}const is=ee(eu,[["render",cu],["__scopeId","data-v-6c2daf4e"]]),uu={name:"NcActionLink",mixins:[za],inject:{isInSemanticMenu:{from:Ia,default:!1}},props:{href:{type:String,required:!0,validator:e=>{try{return new URL(e)}catch{return e.startsWith("#")||e.startsWith("/")}}},download:{type:String,default:null},target:{type:String,default:"_self",validator:e=>e&&(!e.startsWith("_")||["_blank","_self","_parent","_top"].indexOf(e)>-1)},title:{type:String,default:null}}},du=["role"],pu=["download","href","aria-label","target","title","role"],hu={key:0,class:"action-link__longtext-wrapper"},mu={class:"action-link__name"},fu=["textContent"],gu=["textContent"],yu={key:2,class:"action-link__text"};function bu(e,a,t,s,n,i){return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[r("a",{download:t.download,href:t.href,"aria-label":e.ariaLabel,target:t.target,title:t.title,class:"action-link focusable",rel:"nofollow noreferrer noopener",role:i.isInSemanticMenu&&"menuitem",onClick:a[0]||(a[0]=(...l)=>e.onClick&&e.onClick(...l))},[q(e.$slots,"icon",{},()=>[r("span",{"aria-hidden":"true",class:F(["action-link__icon",[e.isIconUrl?"action-link__icon--url":e.icon]]),style:oe({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)],!0),e.name?(o(),c("span",hu,[r("strong",mu,p(e.name),1),a[1]||(a[1]=r("br",null,null,-1)),r("span",{class:"action-link__longtext",textContent:p(e.text)},null,8,fu)])):e.isLongText?(o(),c("span",{key:1,class:"action-link__longtext",textContent:p(e.text)},null,8,gu)):(o(),c("span",yu,p(e.text),1)),C("",!0)],8,pu)],8,du)}const vu=ee(uu,[["render",bu],["__scopeId","data-v-32f01b7a"]]),_u={name:"NcActionRouter",mixins:[za],inject:{isInSemanticMenu:{from:Ia,default:!1}},props:{to:{type:[String,Object],required:!0}}},wu=["role"],Cu={key:0,class:"action-router__longtext-wrapper"},ku={class:"action-router__name"},Au=["textContent"],xu=["textContent"],Su={key:2,class:"action-router__text"};function Eu(e,a,t,s,n,i){const l=k("RouterLink");return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[w(l,{"aria-label":e.ariaLabel,class:"action-router focusable",rel:"nofollow noreferrer noopener",role:i.isInSemanticMenu&&"menuitem",title:e.title,to:t.to,onClick:e.onClick},{default:x(()=>[q(e.$slots,"icon",{},()=>[r("span",{"aria-hidden":"true",class:F(["action-router__icon",[e.isIconUrl?"action-router__icon--url":e.icon]]),style:oe({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)],!0),e.name?(o(),c("span",Cu,[r("strong",ku,p(e.name),1),a[0]||(a[0]=r("br",null,null,-1)),r("span",{class:"action-router__longtext",textContent:p(e.text)},null,8,Au)])):e.isLongText?(o(),c("span",{key:1,class:"action-router__longtext",textContent:p(e.text)},null,8,xu)):(o(),c("span",Su,p(e.text),1)),C("",!0)]),_:3},8,["aria-label","role","title","to","onClick"])],8,wu)}const Nu=ee(_u,[["render",Eu],["__scopeId","data-v-87267750"]]),Tu={name:"NcActionText",mixins:[za],inject:{isInSemanticMenu:{from:Ia,default:!1}}},Du=["role"],Lu={key:0,class:"action-text__longtext-wrapper"},Iu={class:"action-text__name"},Bu=["textContent"],Mu=["textContent"],Ru={key:2,class:"action-text__text"};function $u(e,a,t,s,n,i){return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[r("span",{class:"action-text",onClick:a[0]||(a[0]=(...l)=>e.onClick&&e.onClick(...l))},[q(e.$slots,"icon",{},()=>[e.icon!==""?(o(),c("span",{key:0,"aria-hidden":"true",class:F(["action-text__icon",[e.isIconUrl?"action-text__icon--url":e.icon]]),style:oe({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)):C("",!0)],!0),e.name?(o(),c("span",Lu,[r("strong",Iu,p(e.name),1),r("span",{class:"action-text__longtext",textContent:p(e.text)},null,8,Bu)])):e.isLongText?(o(),c("span",{key:1,class:"action-text__longtext",textContent:p(e.text)},null,8,Mu)):(o(),c("span",Ru,p(e.text),1)),C("",!0)])],8,Du)}const zu=ee(Tu,[["render",$u],["__scopeId","data-v-fa684b48"]]);De(Fs);const Pu={data(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{async fetchUserStatus(e){if(!e)return;const a=Di();if(!(!Object.hasOwn(a,"user_status")||!a.user_status.enabled)&&ai())try{const{data:t}=await Ci.get(Sn("apps/user_status/api/v1/statuses/{userId}",{userId:e}));this.setUserStatus(t.ocs.data)}catch(t){if(t.response.status===404&&t.response.data.ocs?.data?.length===0)return;ze.error("Failed to fetch user status",{error:t})}},setUserStatus({status:e,message:a,icon:t}){this.userStatus.status=e||"",this.userStatus.message=a||"",this.userStatus.icon=t||"",this.hasStatus=!!e}}},ns=En("nextcloud").persist().build();function Ou(e){const a=ns.getItem("user-has-avatar."+e);return typeof a=="string"?!!a:null}function hn(e,a){e&&ns.setItem("user-has-avatar."+e,a)}const Vu={name:"NcAvatar",directives:{ClickOutside:ts},components:{IconDotsHorizontal:Us,NcActions:pt,NcButton:be,NcIconSvgWrapper:Ne,NcLoadingIcon:Ba,NcUserStatusIcon:Qc},mixins:[Pu],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},hideStatus:{type:Boolean,default:!1},verboseStatus:{type:Boolean,default:!1},preloadedUserStatus:{type:Object,default:void 0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},noPlaceholder:{type:Boolean,default:!1},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},menuContainer:{type:[Boolean,String,Object,Element],default:"body"}},setup(){return{isDarkTheme:zr()}},data(){return{avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuLoading:!1,contactsMenuData:{},contactsMenuActions:[],contactsMenuOpenState:!1}},computed:{avatarAriaLabel(){if(this.hasMenu)return this.canDisplayUserStatus||this.showUserStatusIconOnAvatar?j("Avatar of {displayName}, {status}",{displayName:this.displayName??this.user,status:as(this.userStatus.status)}):j("Avatar of {displayName}",{displayName:this.displayName??this.user})},canDisplayUserStatus(){return!this.hideStatus&&this.hasStatus&&["online","away","busy","dnd"].includes(this.userStatus.status)},showUserStatusIconOnAvatar(){return!this.hideStatus&&!this.verboseStatus&&this.hasStatus&&this.userStatus.status!=="dnd"&&this.userStatus.icon},userIdentifier(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:""},isUserDefined(){return typeof this.user<"u"},isDisplayNameDefined(){return typeof this.displayName<"u"},isUrlDefined(){return typeof this.url<"u"},hasMenu(){return this.disableMenu?!1:this.isMenuLoaded?this.menu.length>0:!(this.user===ai()?.uid||this.userDoesNotExist||this.url)},showInitials(){return!this.noPlaceholder&&this.userDoesNotExist&&!(this.iconClass||this.$slots.icon)},avatarStyle(){return{"--avatar-size":this.size+"px",lineHeight:this.showInitials?this.size+"px":0,fontSize:Math.round(this.size*.45)+"px"}},initialsWrapperStyle(){const{r:e,g:a,b:t}=un(this.userIdentifier);return{backgroundColor:`rgba(${e}, ${a}, ${t}, 0.1)`}},initialsStyle(){const{r:e,g:a,b:t}=un(this.userIdentifier);return{color:`rgb(${e}, ${a}, ${t})`}},tooltip(){return this.disableTooltip?null:this.tooltipMessage?this.tooltipMessage:this.displayName},initials(){let e="?";if(this.showInitials){const a=this.userIdentifier.trim();if(a==="")return e;const t=a.match(/[\p{L}\p{N}\s]/gu);if(!t)return e;const s=t.join(""),n=s.lastIndexOf(" ");e=String.fromCodePoint(s.codePointAt(0)),n!==-1&&(e=e.concat(String.fromCodePoint(s.codePointAt(n+1))))}return e.toLocaleUpperCase()},menu(){const e=this.contactsMenuActions.map(t=>{const s=$c(this.$router,t.hyperlink);return{ncActionComponent:s?Nu:vu,ncActionComponentProps:s?{to:s,icon:t.icon}:{href:t.hyperlink,icon:t.icon},text:t.title}});for(const t of zc(this.contactsMenuData))try{e.push({ncActionComponent:is,ncActionComponentProps:{onClick:()=>t.callback(this.contactsMenuData)},text:t.displayName(this.contactsMenuData),iconSvg:t.iconSvg(this.contactsMenuData)})}catch(s){ze.error(`Failed to render ContactsMenu action ${t.id}`,{error:s,action:t})}function a(t){const s=document.createTextNode(t),n=document.createElement("p");return n.appendChild(s),n.innerHTML}if(!this.hideStatus&&(this.userStatus.icon||this.userStatus.message)){const t=` - ${a(this.userStatus.icon)} - `;return[{ncActionComponent:zu,ncActionComponentProps:{},iconSvg:this.userStatus.icon?t:void 0,text:`${this.userStatus.message}`}].concat(e)}return e}},watch:{url(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()}},mounted(){this.loadAvatarUrl(),ea("settings:avatar:updated",this.loadAvatarUrl),ea("settings:display-name:updated",this.loadAvatarUrl),!this.hideStatus&&this.user&&!this.isNoUser?(this.preloadedUserStatus?this.setUserStatus(this.preloadedUserStatus):this.fetchUserStatus(this.user),ea("user_status:status.updated",this.handleUserStatusUpdated)):!this.hideStatus&&this.preloadedUserStatus&&this.setUserStatus(this.preloadedUserStatus)},beforeUnmount(){Jt("settings:avatar:updated",this.loadAvatarUrl),Jt("settings:display-name:updated",this.loadAvatarUrl),Jt("user_status:status.updated",this.handleUserStatusUpdated)},methods:{t:j,handleUserStatusUpdated(e){this.user===e.userId&&(this.userStatus={status:e.status,icon:e.icon,message:e.message},this.hasStatus=e.status!==null)},async toggleMenu(e){e.type==="keydown"&&e.key!=="Enter"||(this.contactsMenuOpenState||await this.fetchContactsMenu(),this.contactsMenuOpenState=!this.contactsMenuOpenState)},closeMenu(){this.contactsMenuOpenState=!1},async fetchContactsMenu(){this.contactsMenuLoading=!0;try{const e=encodeURIComponent(this.user),{data:a}=await Ci.post(wi("contactsmenu/findOne"),`shareType=0&shareWith=${e}`);this.contactsMenuData=a,this.contactsMenuActions=a.topAction?[a.topAction].concat(a.actions):a.actions}catch{this.contactsMenuOpenState=!1}this.contactsMenuLoading=!1,this.isMenuLoaded=!0},loadAvatarUrl(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser||this.iconClass||this.$slots.icon)){this.isAvatarLoaded=!0,this.userDoesNotExist=!0;return}if(this.isUrlDefined){this.updateImageIfValid(this.url);return}if(this.size<=64){const e=this.avatarUrlGenerator(this.user,64),a=[e+" 1x",this.avatarUrlGenerator(this.user,512)+" 8x"].join(", ");this.updateImageIfValid(e,a)}else{const e=this.avatarUrlGenerator(this.user,512);this.updateImageIfValid(e)}},avatarUrlGenerator(e,a){let t=Uc(e,{size:a,isDarkTheme:this.isDarkTheme,isGuest:this.isGuest});return e===ai()?.uid&&typeof oc_userconfig<"u"&&(t+="?v="+window.oc_userconfig.avatar.version),t},updateImageIfValid(e,a=null){const t=Ou(this.user);if(this.isUserDefined&&typeof t=="boolean"){this.isAvatarLoaded=!0,this.avatarUrlLoaded=e,a&&(this.avatarSrcSetLoaded=a),t===!1&&(this.userDoesNotExist=!0);return}const s=new Image;s.onload=()=>{this.avatarUrlLoaded=e,a&&(this.avatarSrcSetLoaded=a),this.isAvatarLoaded=!0,hn(this.user,!0)},s.onerror=n=>{ze.debug("[NcAvatar] Invalid avatar url",{error:n,url:e}),this.avatarUrlLoaded=null,this.avatarSrcSetLoaded=null,this.userDoesNotExist=!0,this.isAvatarLoaded=!1,hn(this.user,!1)},a&&(s.srcset=a),s.src=e}}},qu=["title"],Hu=["src","srcset"],Fu={key:2,class:"avatardiv__user-status avatardiv__user-status--icon"};function Uu(e,a,t,s,n,i){const l=k("NcLoadingIcon"),d=k("IconDotsHorizontal"),h=k("NcButton"),f=k("NcIconSvgWrapper"),m=k("NcActions"),u=k("NcUserStatusIcon"),g=ii("click-outside");return Ee((o(),c("span",{class:F(["avatardiv popovermenu-wrapper",{"avatardiv--unknown":n.userDoesNotExist,"avatardiv--with-menu":i.hasMenu,"avatardiv--with-menu-loading":n.contactsMenuLoading}]),style:oe(i.avatarStyle),title:i.tooltip},[q(e.$slots,"icon",{},()=>[t.iconClass?(o(),c("span",{key:0,class:F([t.iconClass,"avatar-class-icon"])},null,2)):n.isAvatarLoaded&&!n.userDoesNotExist?(o(),c("img",{key:1,src:n.avatarUrlLoaded,srcset:n.avatarSrcSetLoaded,alt:""},null,8,Hu)):C("",!0)],!0),i.hasMenu&&i.menu.length===0?(o(),M(h,{key:0,"aria-label":i.avatarAriaLabel,class:"action-item action-item__menutoggle",variant:"tertiary-no-background",onClick:i.toggleMenu},{icon:x(()=>[n.contactsMenuLoading?(o(),M(l,{key:0})):(o(),M(d,{key:1,size:20}))]),_:1},8,["aria-label","onClick"])):i.hasMenu?(o(),M(m,{key:1,open:n.contactsMenuOpenState,"onUpdate:open":a[0]||(a[0]=y=>n.contactsMenuOpenState=y),"aria-label":i.avatarAriaLabel,container:t.menuContainer,forceMenu:"",manualOpen:"",variant:"tertiary-no-background",onClick:i.toggleMenu},nt({default:x(()=>[(o(!0),c(Q,null,he(i.menu,(y,S)=>(o(),M(_t(y.ncActionComponent),J({key:S},{ref_for:!0},y.ncActionComponentProps),nt({default:x(()=>[V(" "+p(y.text),1)]),_:2},[y.iconSvg?{name:"icon",fn:x(()=>[w(f,{svg:y.iconSvg},null,8,["svg"])]),key:"0"}:void 0]),1040))),128))]),_:2},[n.contactsMenuLoading?{name:"icon",fn:x(()=>[w(l)]),key:"0"}:void 0]),1032,["open","aria-label","container","onClick"])):C("",!0),i.showUserStatusIconOnAvatar?(o(),c("span",Fu,p(e.userStatus.icon),1)):i.canDisplayUserStatus?(o(),M(u,{key:3,class:"avatardiv__user-status",status:e.userStatus.status,"aria-hidden":String(i.hasMenu)},null,8,["status","aria-hidden"])):C("",!0),i.showInitials?(o(),c("span",{key:4,style:oe(i.initialsWrapperStyle),class:"avatardiv__initials-wrapper"},[r("span",{style:oe(i.initialsStyle),class:"avatardiv__initials"},p(i.initials),5)],4)):C("",!0)],14,qu)),[[g,i.closeMenu]])}const Pa=ee(Vu,[["render",Uu],["__scopeId","data-v-e0ae1174"]]),ju={name:"ChevronLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Wu=["aria-hidden","aria-label"],Gu=["fill","width","height"],Zu={d:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"},Ku={key:0};function Yu(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-left-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Zu,[t.title?(o(),c("title",Ku,p(t.title),1)):C("",!0)])],8,Gu))],16,Wu)}const Xu=U(ju,[["render",Yu]]),Qu={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ju=["aria-hidden","aria-label"],ed=["fill","width","height"],td={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},ad={key:0};function id(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-right-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",td,[t.title?(o(),c("title",ad,p(t.title),1)):C("",!0)])],8,ed))],16,Ju)}const nd=U(Qu,[["render",id]]),sd={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ld=["aria-hidden","aria-label"],od=["fill","width","height"],rd={d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"},cd={key:0};function ud(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-blank-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",rd,[t.title?(o(),c("title",cd,p(t.title),1)):C("",!0)])],8,od))],16,ld)}const dd=U(sd,[["render",ud]]),mn=864e5,pd={name:"TeamTimeline",components:{NcAvatar:Pa,NcButton:be,NcEmptyContent:lt,ChevronLeft:Xu,ChevronRight:nd,CalendarBlank:dd,SkeletonList:Wt},props:{scope:{type:String,default:"team"}},data(){const e=new Date;return{year:e.getFullYear(),month:e.getMonth(),events:[],dayWidth:30,loading:!0}},computed:{firstDay(){return new Date(this.year,this.month,1)},lastDay(){return new Date(this.year,this.month+1,0)},monthLabel(){return this.firstDay.toLocaleDateString(void 0,{month:"long",year:"numeric"})},days(){const e=[];for(let a=1;a<=this.lastDay.getDate();a++){const t=new Date(this.year,this.month,a),s=t.getDay();e.push({day:a,index:a-1,weekend:s===0||s===6,iso:$e(t)})}return e},todayIndex(){const e=new Date;return e.getFullYear()===this.year&&e.getMonth()===this.month?e.getDate()-1:-1},rows(){const e={},a=this.firstDay,t=this.lastDay.getDate()-1;for(const s of this.events){e[s.employeeUid]||(e[s.employeeUid]={uid:s.employeeUid,name:s.displayName,segments:[]});const n=Math.max(0,Math.round((new Date(s.start+"T00:00:00")-a)/mn)),i=Math.min(t,Math.round((new Date(s.end+"T00:00:00")-a)/mn));if(i<0||n>t)continue;const l=G.leaveType(s.typeId);e[s.employeeUid].segments.push({left:n*this.dayWidth+2,width:(i-n+1)*this.dayWidth-4,color:l.color,icon:l.icon,pending:s.status!=="APPROVED",title:`${l.label} · ${La(s.start,s.end)}${s.status!=="APPROVED"?" ("+s.status+")":""}`})}return Object.values(e).sort((s,n)=>s.name.localeCompare(n.name))},legendTypes(){const e=new Set(this.events.map(a=>a.typeId));return G.leaveTypes.filter(a=>e.has(a.id))}},watch:{scope(){this.load()}},mounted(){this.load()},methods:{t:R,async load(){this.loading=!0;try{this.events=(await ce.getCalendar($e(this.firstDay),$e(this.lastDay),this.scope)).events}catch{this.events=[]}finally{this.loading=!1}},shift(e){let a=this.month+e,t=this.year;a<0&&(a=11,t--),a>11&&(a=0,t++),this.month=a,this.year=t,this.load()},goToday(){const e=new Date;this.year=e.getFullYear(),this.month=e.getMonth(),this.load()}}},hd={class:"gantt"},md={class:"gantt__toolbar"},fd={class:"gantt__month"},gd={key:1,class:"gantt__scroll"},yd={class:"gantt__row gantt__row--head"},bd={class:"gantt__name gantt__name--head"},vd={class:"gantt__track"},_d={class:"gantt__name"},wd={class:"gantt__name-text"},Cd={class:"gantt__track"},kd=["title"],Ad={class:"gantt__pill-icon","aria-hidden":"true"},xd={class:"legend"},Sd={class:"legend__item legend__item--muted"};function Ed(e,a,t,s,n,i){const l=k("ChevronLeft"),d=k("NcButton"),h=k("ChevronRight"),f=k("SkeletonList"),m=k("NcAvatar"),u=k("CalendarBlank"),g=k("NcEmptyContent");return o(),c("div",hd,[r("div",md,[w(d,{type:"tertiary","aria-label":i.t("absence","Previous month"),onClick:a[0]||(a[0]=y=>i.shift(-1))},{icon:x(()=>[w(l,{size:20})]),_:1},8,["aria-label"]),r("strong",fd,p(i.monthLabel),1),w(d,{type:"tertiary","aria-label":i.t("absence","Next month"),onClick:a[1]||(a[1]=y=>i.shift(1))},{icon:x(()=>[w(h,{size:20})]),_:1},8,["aria-label"]),w(d,{type:"tertiary",onClick:i.goToday},{default:x(()=>[V(p(i.t("absence","Today")),1)]),_:1},8,["onClick"])]),n.loading?(o(),M(f,{key:0,rows:4,class:"gantt__loading"})):(o(),c("div",gd,[r("div",{class:"gantt__grid",style:oe({"--day-w":n.dayWidth+"px","--days":i.days.length})},[r("div",yd,[r("div",bd,p(i.t("absence","Person")),1),r("div",vd,[(o(!0),c(Q,null,he(i.days,y=>(o(),c("span",{key:"h"+y.day,class:F(["gantt__daynum",{"gantt__daynum--weekend":y.weekend,"gantt__daynum--today":y.index===i.todayIndex}]),style:oe({left:y.index*n.dayWidth+"px"})},p(y.day),7))),128))])]),(o(!0),c(Q,null,he(i.rows,y=>(o(),c("div",{key:y.uid,class:"gantt__row"},[r("div",_d,[w(m,{user:y.uid,"display-name":y.name,size:26,"show-user-status":!1},null,8,["user","display-name"]),r("span",wd,p(y.name),1)]),r("div",Cd,[(o(!0),c(Q,null,he(i.days,S=>(o(),c("span",{key:"c"+y.uid+S.day,class:F(["gantt__col",{"gantt__col--weekend":S.weekend}]),style:oe({left:S.index*n.dayWidth+"px"})},null,6))),128)),i.todayIndex>=0?(o(),c("span",{key:0,class:"gantt__today",style:oe({left:i.todayIndex*n.dayWidth+"px"})},null,4)):C("",!0),(o(!0),c(Q,null,he(y.segments,(S,b)=>(o(),c("span",{key:b,class:F(["gantt__pill",{"gantt__pill--pending":S.pending}]),style:oe({left:S.left+"px",width:S.width+"px","--pill":S.color}),title:S.title},[r("span",Ad,p(S.icon),1)],14,kd))),128))])]))),128))],4),i.rows.length?C("",!0):(o(),M(g,{key:0,name:i.t("absence","No absences this month"),description:i.t("absence","A calm, well-staffed month. ☀️")},{icon:x(()=>[w(u,{size:20})]),_:1},8,["name","description"]))])),r("div",xd,[(o(!0),c(Q,null,he(i.legendTypes,y=>(o(),c("span",{key:y.id,class:"legend__item"},[r("span",{class:"legend__swatch",style:oe({background:y.color})},null,4),V(p(y.icon)+" "+p(y.label),1)]))),128)),r("span",Sd,[a[2]||(a[2]=r("span",{class:"legend__swatch legend__swatch--pending"},null,-1)),V(p(i.t("absence","Pending / not yet approved")),1)])])])}const ss=U(pd,[["render",Ed],["__scopeId","data-v-d1d21a0a"]]),Nd={name:"Team",components:{TeamTimeline:ss},methods:{t:R}},Td={class:"page"},Dd={class:"page__header"},Ld={class:"page__title"};function Id(e,a,t,s,n,i){const l=k("TeamTimeline");return o(),c("div",Td,[r("header",Dd,[r("h2",Ld,p(i.t("absence","Team")),1)]),w(l,{scope:"team"})])}const Bd=U(Nd,[["render",Id],["__scopeId","data-v-5780a75a"]]),Md={class:"input-field__main-wrapper"},Rd=["id","aria-describedby","disabled","placeholder","type","value"],$d=["for"],zd={class:"input-field__icon input-field__icon--leading"},Pd={key:2,class:"input-field__icon input-field__icon--trailing"},Od=["id"],Vd=ve({inheritAttrs:!1,__name:"NcInputField",props:mt({class:{default:""},inputClass:{default:""},id:{default:()=>kt()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:mt(["trailingButtonClick"],["update:modelValue"]),setup(e,{expose:a,emit:t}){const s=ft(e,"modelValue"),n=e,i=t;a({focus:g,select:y});const l=ki(),d=Ma("input"),h=Y(()=>n.showTrailingButton||n.success),f=Y(()=>{if(n.placeholder)return n.placeholder;if(n.label)return Mt?n.label:""}),m=Y(()=>n.label||n.labelOutside),u=Y(()=>{const b=[];return n.helperText&&b.push(`${n.id}-helper-text`),l["aria-describedby"]&&b.push(String(l["aria-describedby"])),b.join(" ")||void 0});function g(b){d.value.focus(b)}function y(){d.value.select()}function S(b){const _=b.target;s.value=n.type==="number"&&typeof s.value=="number"?parseFloat(_.value):_.value}return(b,_)=>(o(),c("div",{class:F(["input-field",[{"input-field--disabled":e.disabled,"input-field--error":e.error,"input-field--label-outside":e.labelOutside||!m.value,"input-field--leading-icon":!!b.$slots.icon,"input-field--trailing-icon":h.value,"input-field--pill":e.pill,"input-field--success":e.success,"input-field--legacy":K(Mt)},b.$props.class]])},[r("div",Md,[r("input",J(b.$attrs,{id:e.id,ref:"input","aria-describedby":u.value,"aria-live":"polite",class:["input-field__input",e.inputClass],disabled:e.disabled,placeholder:f.value,type:e.type,value:s.value.toString(),onInput:S}),null,16,Rd),!e.labelOutside&&m.value?(o(),c("label",{key:0,class:"input-field__label",for:e.id},p(e.label),9,$d)):C("",!0),Ee(r("div",zd,[q(b.$slots,"icon",{},void 0,!0)],512),[[at,!!b.$slots.icon]]),e.showTrailingButton?(o(),M(be,{key:1,class:"input-field__trailing-button","aria-label":e.trailingButtonLabel,disabled:e.disabled,variant:"tertiary-no-background",onClick:_[0]||(_[0]=I=>i("trailingButtonClick",I))},{icon:x(()=>[q(b.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):e.success||e.error?(o(),c("div",Pd,[e.success?(o(),M(Ne,{key:0,path:K(ia)},null,8,["path"])):(o(),M(Ne,{key:1,path:K(ni)},null,8,["path"]))])):C("",!0)]),e.helperText?(o(),c("p",{key:0,id:`${e.id}-helper-text`,class:"input-field__helper-text-message"},[e.success?(o(),M(Ne,{key:0,class:"input-field__helper-text-message__icon",path:K(ia),inline:""},null,8,["path"])):e.error?(o(),M(Ne,{key:1,class:"input-field__helper-text-message__icon",path:K(ni),inline:""},null,8,["path"])):C("",!0),V(" "+p(e.helperText),1)],8,Od)):C("",!0)],2))}}),fn=ee(Vd,[["__scopeId","data-v-8e16cbb5"]]);De(js,Nn);const ls=ve({__name:"NcTextField",props:mt({class:{},inputClass:{},id:{},label:{},labelOutside:{type:Boolean},type:{},placeholder:{},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},trailingButtonIcon:{default:"close"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e,{expose:a}){const t=ft(e,"modelValue"),s=e;a({focus:h,select:f});const n=Ma("inputField"),i={arrowEnd:j("Save changes"),close:j("Clear text"),undo:j("Undo changes")},l=new Set(Object.keys(fn.props)),d=Y(()=>{const m=Object.fromEntries(Object.entries(s).filter(([u])=>l.has(u)));return m.trailingButtonLabel??=i[s.trailingButtonIcon],m});function h(m){n.value.focus(m)}function f(){n.value.select()}return(m,u)=>(o(),M(K(fn),J(d.value,{ref:"inputField",modelValue:t.value,"onUpdate:modelValue":u[0]||(u[0]=g=>t.value=g)}),nt({_:2},[m.$slots.icon?{name:"icon",fn:x(()=>[q(m.$slots,"icon")]),key:"0"}:void 0,e.type!=="search"?{name:"trailing-button-icon",fn:x(()=>[e.trailingButtonIcon==="arrowEnd"?(o(),M(K(Ne),{key:0,directional:"",path:K(Tn)},null,8,["path"])):(o(),M(K(Ne),{key:1,path:e.trailingButtonIcon==="undo"?K(Ws):K(Gs)},null,8,["path"]))]),key:"1"}:void 0]),1040,["modelValue"]))}}),qd={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Hd=["aria-hidden","aria-label"],Fd=["fill","width","height"],Ud={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.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,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},jd={key:0};function Wd(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon magnify-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Ud,[t.title?(o(),c("title",jd,p(t.title),1)):C("",!0)])],8,Fd))],16,Hd)}const Gd=U(qd,[["render",Wd]]),Zd={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Kd=["aria-hidden","aria-label"],Yd=["fill","width","height"],Xd={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"},Qd={key:0};function Jd(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon pencil-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Xd,[t.title?(o(),c("title",Qd,p(t.title),1)):C("",!0)])],8,Yd))],16,Kd)}const os=U(Zd,[["render",Jd]]),ep={name:"ScaleBalanceIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},tp=["aria-hidden","aria-label"],ap=["fill","width","height"],ip={d:"M12,3C10.73,3 9.6,3.8 9.18,5H3V7H4.95L2,14C1.53,16 3,17 5.5,17C8,17 9.56,16 9,14L6.05,7H9.17C9.5,7.85 10.15,8.5 11,8.83V20H2V22H22V20H13V8.82C13.85,8.5 14.5,7.85 14.82,7H17.95L15,14C14.53,16 16,17 18.5,17C21,17 22.56,16 22,14L19.05,7H21V5H14.83C14.4,3.8 13.27,3 12,3M12,5A1,1 0 0,1 13,6A1,1 0 0,1 12,7A1,1 0 0,1 11,6A1,1 0 0,1 12,5M5.5,10.25L7,14H4L5.5,10.25M18.5,10.25L20,14H17L18.5,10.25Z"},np={key:0};function sp(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon scale-balance-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",ip,[t.title?(o(),c("title",np,p(t.title),1)):C("",!0)])],8,ap))],16,tp)}const rs=U(ep,[["render",sp]]),lp={name:"HrBalances",components:{NcAvatar:Pa,NcButton:be,NcEmptyContent:lt,NcModal:Dn,NcSelect:Ai,NcTextField:ls,Magnify:Gd,Pencil:os,ScaleBalance:rs,SkeletonList:Wt},data(){const e=new Date().getFullYear();return{loading:!0,rows:[],search:"",year:e,years:[e-1,e,e+1],editing:null,saving:!1,form:{baseDays:0,manualAdjustment:0,adjustmentNote:""}}},computed:{filtered(){const e=this.search.trim().toLowerCase();return e?this.rows.filter(a=>a.displayName.toLowerCase().includes(e)||a.employeeUid.toLowerCase().includes(e)):this.rows}},watch:{year(){this.reload()}},mounted(){this.reload()},methods:{t:R,fmt(e){return e==null?"—":Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async reload(){this.loading=!0;try{this.rows=await ce.reportBalances(this.year)}catch{We(R("absence","Could not load balances"))}finally{this.loading=!1}},async edit(e){this.editing=e;try{const a=(await ce.listEntitlements(e.employeeUid,this.year)).find(t=>t.typeId===e.typeId);this.form={baseDays:a?a.baseDays:e.baseDays,manualAdjustment:a?a.manualAdjustment:0,adjustmentNote:"",entitlementId:a?a.id:e.entitlementId}}catch{this.form={baseDays:e.baseDays,manualAdjustment:0,adjustmentNote:"",entitlementId:e.entitlementId}}},async save(){this.saving=!0;try{const e={baseDays:Number(this.form.baseDays),manualAdjustment:Number(this.form.manualAdjustment),adjustmentNote:this.form.adjustmentNote};this.form.entitlementId?await ce.updateEntitlement(this.form.entitlementId,e):await ce.createEntitlement({employeeUid:this.editing.employeeUid,year:this.year,typeId:this.editing.typeId,...e}),Dt(R("absence","Entitlement updated")),this.editing=null,await this.reload()}catch(e){We(e.response?.data?.message||R("absence","Could not update entitlement"))}finally{this.saving=!1}}}},op={class:"page"},rp={class:"page__header"},cp={class:"page__title"},up={class:"page__tools"},dp={key:1,class:"table-wrap"},pp={class:"tbl"},hp={class:"num"},mp={class:"num"},fp={class:"num"},gp={class:"num"},yp={class:"num"},bp={class:"emp"},vp={class:"type"},_p={"aria-hidden":"true"},wp={class:"num"},Cp={class:"num"},kp={class:"num"},Ap={class:"num"},xp={class:"edit"},Sp={class:"edit__actions"};function Ep(e,a,t,s,n,i){const l=k("Magnify"),d=k("NcTextField"),h=k("NcSelect"),f=k("SkeletonList"),m=k("NcAvatar"),u=k("Pencil"),g=k("NcButton"),y=k("ScaleBalance"),S=k("NcEmptyContent"),b=k("NcModal");return o(),c("div",op,[r("header",rp,[r("h2",cp,p(i.t("absence","Balances")),1),r("div",up,[w(d,{modelValue:n.search,"onUpdate:modelValue":a[0]||(a[0]=_=>n.search=_),label:i.t("absence","Search employee"),class:"page__search"},{icon:x(()=>[w(l,{size:18})]),_:1},8,["modelValue","label"]),w(h,{modelValue:n.year,"onUpdate:modelValue":a[1]||(a[1]=_=>n.year=_),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])])]),n.loading?(o(),M(f,{key:0,rows:6})):(o(),c("div",dp,[r("table",pp,[r("thead",null,[r("tr",null,[r("th",null,p(i.t("absence","Employee")),1),r("th",null,p(i.t("absence","Type")),1),r("th",hp,p(i.t("absence","Entitlement")),1),r("th",mp,p(i.t("absence","Used")),1),r("th",fp,p(i.t("absence","Pending")),1),r("th",gp,p(i.t("absence","Remaining")),1),r("th",yp,p(i.t("absence","Available")),1),a[7]||(a[7]=r("th",null,null,-1))])]),r("tbody",null,[(o(!0),c(Q,null,he(i.filtered,_=>(o(),c("tr",{key:_.employeeUid+"-"+_.typeId},[r("td",null,[r("div",bp,[w(m,{user:_.employeeUid,"display-name":_.displayName,size:24,"show-user-status":!1},null,8,["user","display-name"]),V(" "+p(_.displayName),1)])]),r("td",null,[r("span",vp,[r("span",_p,p(_.typeIcon),1),V(" "+p(_.typeLabel),1)])]),r("td",wp,p(i.fmt(_.entitlement)),1),r("td",Cp,p(i.fmt(_.used)),1),r("td",kp,p(i.fmt(_.pending)),1),r("td",Ap,p(i.fmt(_.remaining)),1),r("td",{class:F(["num",{neg:(_.available??0)<0}])},p(i.fmt(_.available)),3),r("td",null,[_.countsAgainstBalance?(o(),M(g,{key:0,type:"tertiary","aria-label":i.t("absence","Edit entitlement"),onClick:I=>i.edit(_)},{icon:x(()=>[w(u,{size:18})]),_:1},8,["aria-label","onClick"])):C("",!0)])]))),128))])]),i.filtered.length?C("",!0):(o(),M(S,{key:0,name:n.search?i.t("absence","No matches"):i.t("absence","No balances yet"),description:n.search?i.t("absence","No employee matches “{query}”.",{query:n.search}):i.t("absence","Balances appear here once employees have entitlements for {year}.",{year:n.year})},{icon:x(()=>[w(y,{size:20})]),_:1},8,["name","description"]))])),n.editing?(o(),M(b,{key:2,name:i.t("absence","Edit entitlement"),onClose:a[6]||(a[6]=_=>n.editing=null)},{default:x(()=>[r("div",xp,[r("h3",null,p(n.editing.displayName)+" · "+p(n.editing.typeLabel)+" · "+p(n.year),1),r("label",null,p(i.t("absence","Base days")),1),w(d,{modelValue:n.form.baseDays,"onUpdate:modelValue":a[2]||(a[2]=_=>n.form.baseDays=_),type:"number"},null,8,["modelValue"]),r("label",null,p(i.t("absence","Manual adjustment (+/−)")),1),w(d,{modelValue:n.form.manualAdjustment,"onUpdate:modelValue":a[3]||(a[3]=_=>n.form.manualAdjustment=_),type:"number"},null,8,["modelValue"]),r("label",null,p(i.t("absence","Adjustment note")),1),w(d,{modelValue:n.form.adjustmentNote,"onUpdate:modelValue":a[4]||(a[4]=_=>n.form.adjustmentNote=_),placeholder:i.t("absence","Why is this being adjusted?")},null,8,["modelValue","placeholder"]),r("div",Sp,[w(g,{type:"tertiary",onClick:a[5]||(a[5]=_=>n.editing=null)},{default:x(()=>[V(p(i.t("absence","Cancel")),1)]),_:1}),w(g,{type:"primary",disabled:n.saving,onClick:i.save},{default:x(()=>[V(p(i.t("absence","Save")),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"])):C("",!0)])}const Np=U(lp,[["render",Ep],["__scopeId","data-v-3ada74dc"]]);De(Zs);const Tp=["for"],Dp=["id","type","value","min","max"],Lp=ve({inheritAttrs:!1,__name:"NcDateTimePickerNative",props:mt({class:{default:void 0},id:{default:()=>kt()},inputClass:{default:""},type:{default:"date"},label:{default:()=>j("Please choose a date")},min:{default:null},max:{default:null},hideLabel:{type:Boolean}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=ft(e,"modelValue"),t=e,s=Y(()=>a.value?d(a.value):""),n=Y(()=>t.max?d(t.max):void 0),i=Y(()=>t.min?d(t.min):void 0);function l(f){const m=f.getFullYear().toString().padStart(4,"0"),u=(f.getMonth()+1).toString().padStart(2,"0"),g=f.getDate().toString().padStart(2,"0"),y=f.getHours().toString().padStart(2,"0"),S=f.getMinutes().toString().padStart(2,"0");return{yyyy:m,MM:u,dd:g,hh:y,mm:S}}function d(f){const{yyyy:m,MM:u,dd:g,hh:y,mm:S}=l(f);if(t.type==="datetime-local")return`${m}-${u}-${g}T${y}:${S}`;if(t.type==="date")return`${m}-${u}-${g}`;if(t.type==="month")return`${m}-${u}`;if(t.type==="time")return`${y}:${S}`;if(t.type==="week"){const b=new Date(Number.parseInt(m),0,1),_=Math.floor((f.getTime()-b.getTime())/(1440*60*1e3)),I=Math.ceil(_/7);return`${m}-W${I}`}return""}function h(f){const m=f.target;if(!m||isNaN(m.valueAsNumber))a.value=null;else if(t.type==="time"){const u=m.value,{yyyy:g,MM:y,dd:S}=l(a.value||new Date);a.value=new Date(`${g}-${y}-${S}T${u}`)}else if(t.type==="month"){const u=(new Date(m.value).getMonth()+1).toString().padStart(2,"0"),{yyyy:g,dd:y,hh:S,mm:b}=l(a.value||new Date);a.value=new Date(`${g}-${u}-${y}T${S}:${b}`)}else{const u=new Date(m.valueAsNumber).getTimezoneOffset()*1e3*60,g=m.valueAsNumber+u;a.value=new Date(g)}}return(f,m)=>(o(),c("div",{class:F(["native-datetime-picker",f.$props.class])},[r("label",{class:F(["native-datetime-picker__label",{"hidden-visually":e.hideLabel}]),for:e.id},p(e.label),11,Tp),r("input",J({id:e.id,class:["native-datetime-picker__input",e.inputClass],type:e.type,value:s.value,min:i.value,max:n.value},f.$attrs,{onInput:h}),null,16,Dp)],2))}}),Li=ee(Lp,[["__scopeId","data-v-b97e1f7a"]]),Ip={name:"ChartLineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Bp=["aria-hidden","aria-label"],Mp=["fill","width","height"],Rp={d:"M16,11.78L20.24,4.45L21.97,5.45L16.74,14.5L10.23,10.75L5.46,19H22V21H2V3H4V17.54L9.5,8L16,11.78Z"},$p={key:0};function zp(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chart-line-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Rp,[t.title?(o(),c("title",$p,p(t.title),1)):C("",!0)])],8,Mp))],16,Bp)}const Pp=U(Ip,[["render",zp]]),Op={name:"LineChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{width:640,height:200,padX:28,padTop:16,padBottom:22}},computed:{max(){return Math.max(1,...this.data.map(e=>e.value))},points(){const e=this.data.length,a=this.width-this.padX*2,t=this.height-this.padTop-this.padBottom;return this.data.map((s,n)=>({x:this.padX+(e<=1?a/2:a*n/(e-1)),y:this.padTop+t*(1-s.value/this.max),label:s.label,value:s.value}))},linePath(){return this.points.map((e,a)=>`${a===0?"M":"L"}${e.x.toFixed(1)} ${e.y.toFixed(1)}`).join(" ")},areaPath(){if(!this.points.length)return"";const e=this.height-this.padBottom,a=this.points[0],t=this.points[this.points.length-1];return`M${a.x} ${e} `+this.points.map(s=>`L${s.x.toFixed(1)} ${s.y.toFixed(1)}`).join(" ")+` L${t.x} ${e} Z`},gridlines(){const e=this.height-this.padTop-this.padBottom;return[0,.5,1].map(a=>this.padTop+e*a)}},methods:{showLabel(e){const a=this.data.length>8?2:1;return e%a===0}}},Vp={class:"line"},qp={key:0,class:"line__title"},Hp=["viewBox","aria-label"],Fp=["x1","x2","y1","y2"],Up=["d"],jp=["d"],Wp=["cx","cy"],Gp=["x","y"];function Zp(e,a,t,s,n,i){return o(),c("figure",Vp,[t.title?(o(),c("figcaption",qp,p(t.title),1)):C("",!0),(o(),c("svg",{viewBox:`0 0 ${n.width} ${n.height}`,class:"line__svg",role:"img","aria-label":t.title,preserveAspectRatio:"none"},[(o(!0),c(Q,null,he(i.gridlines,(l,d)=>(o(),c("line",{key:"g"+d,class:"line__grid",x1:n.padX,x2:n.width-n.padX,y1:l,y2:l},null,8,Fp))),128)),r("path",{class:"line__area",d:i.areaPath},null,8,Up),r("path",{ref:"line",class:"line__stroke",d:i.linePath},null,8,jp),(o(!0),c(Q,null,he(i.points,(l,d)=>(o(),c("g",{key:"p"+d},[r("circle",{class:"line__dot",cx:l.x,cy:l.y,r:"3"},null,8,Wp),i.showLabel(d)?(o(),c("text",{key:0,class:"line__xlabel",x:l.x,y:n.height-4,"text-anchor":"middle"},p(l.label),9,Gp)):C("",!0)]))),128))],8,Hp))])}const Kp=U(Op,[["render",Zp],["__scopeId","data-v-dba42db4"]]),Yp={name:"DonutChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{radius:64,animated:!1}},computed:{circumference(){return 2*Math.PI*this.radius},total(){return this.data.reduce((e,a)=>e+a.value,0)},segments(){const e=this.total||1;let a=0;return this.data.filter(t=>t.value>0).map(t=>{const s=t.value/e*100,n=t.value/e*this.circumference,i={...t,pct:s,len:n,offset:a};return a+=n,i})}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0;return}requestAnimationFrame(()=>{this.animated=!0})},methods:{t:R,fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},Xp={class:"donut"},Qp={key:0,class:"donut__title"},Jp={class:"donut__body"},eh=["aria-label"],th=["r"],ah=["r","stroke","stroke-dasharray","stroke-dashoffset"],ih={x:"80",y:"74",class:"donut__total"},nh={x:"80",y:"92",class:"donut__unit"},sh={class:"donut__legend"},lh={class:"donut__label"},oh={class:"donut__value"};function rh(e,a,t,s,n,i){return o(),c("figure",Xp,[t.title?(o(),c("figcaption",Qp,p(t.title),1)):C("",!0),r("div",Jp,[(o(),c("svg",{viewBox:"0 0 160 160",class:"donut__svg",role:"img","aria-label":t.title},[r("circle",{class:"donut__track",cx:"80",cy:"80",r:n.radius},null,8,th),(o(!0),c(Q,null,he(i.segments,(l,d)=>(o(),c("circle",{key:d,class:"donut__seg",cx:"80",cy:"80",r:n.radius,stroke:l.color,"stroke-dasharray":`${n.animated?l.len:0} ${i.circumference}`,"stroke-dashoffset":-l.offset,transform:"rotate(-90 80 80)"},[r("title",null,p(l.label)+": "+p(i.fmt(l.value)),1)],8,ah))),128)),r("text",ih,p(i.fmt(i.total)),1),r("text",nh,p(i.t("absence","days")),1)],8,eh)),r("ul",sh,[(o(!0),c(Q,null,he(i.segments,(l,d)=>(o(),c("li",{key:d},[r("span",{class:"donut__swatch",style:oe({background:l.color})},null,4),r("span",lh,p(l.label),1),r("span",oh,p(i.fmt(l.value))+" · "+p(Math.round(l.pct))+"%",1)]))),128))])])])}const ch=U(Yp,[["render",rh],["__scopeId","data-v-aa608480"]]),uh={name:"HrStatistics",components:{NcDateTimePickerNative:Li,NcEmptyContent:lt,ChartLine:Pp,LineChart:Kp,DonutChart:ch,SkeletonList:Wt},data(){const e=new Date;return{loading:!0,from:new Date(e.getFullYear(),0,1),to:new Date(e.getFullYear(),11,31),trends:{byMonth:{},byType:[],total:0}}},computed:{monthData(){return Object.entries(this.trends.byMonth).map(([e,a])=>({label:e.slice(5),value:a}))},typeData(){return this.trends.byType.map(e=>({label:`${e.typeIcon||""} ${e.typeLabel}`.trim(),value:e.days,color:e.typeColor}))},perMonthAvg(){const e=Object.keys(this.trends.byMonth).length;return e?this.trends.total/e:0}},watch:{from(){this.reload()},to(){this.reload()}},mounted(){this.reload()},methods:{t:R,fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async reload(){this.loading=!0;try{this.trends=await ce.reportTrends($e(this.from),$e(this.to))}finally{this.loading=!1}}}},dh={class:"page"},ph={class:"page__header"},hh={class:"page__title"},mh={class:"range"},fh={class:"cards"},gh={class:"card"},yh={class:"card__value"},bh={class:"card__label"},vh={class:"card"},_h={class:"card__value"},wh={class:"card__label"},Ch={class:"card"},kh={class:"card__value"},Ah={class:"card__label"},xh={class:"panel"},Sh={class:"panel"};function Eh(e,a,t,s,n,i){const l=k("NcDateTimePickerNative"),d=k("SkeletonList"),h=k("ChartLine"),f=k("NcEmptyContent"),m=k("LineChart"),u=k("DonutChart");return o(),c("div",dh,[r("header",ph,[r("h2",hh,p(i.t("absence","Statistics")),1),r("div",mh,[w(l,{modelValue:n.from,"onUpdate:modelValue":a[0]||(a[0]=g=>n.from=g),type:"date",label:i.t("absence","From")},null,8,["modelValue","label"]),w(l,{modelValue:n.to,"onUpdate:modelValue":a[1]||(a[1]=g=>n.to=g),type:"date",label:i.t("absence","To")},null,8,["modelValue","label"])])]),n.loading?(o(),M(d,{key:0,rows:4})):(o(),c(Q,{key:1},[r("div",fh,[r("div",gh,[a[2]||(a[2]=r("span",{class:"card__icon","aria-hidden":"true"},"🏖️",-1)),r("span",yh,p(i.fmt(n.trends.total)),1),r("span",bh,p(i.t("absence","approved leave days")),1)]),r("div",vh,[a[3]||(a[3]=r("span",{class:"card__icon","aria-hidden":"true"},"📊",-1)),r("span",_h,p(i.fmt(i.perMonthAvg)),1),r("span",wh,p(i.t("absence","avg. days per month")),1)]),r("div",Ch,[a[4]||(a[4]=r("span",{class:"card__icon","aria-hidden":"true"},"🗂️",-1)),r("span",kh,p(n.trends.byType.length),1),r("span",Ah,p(i.t("absence","leave types used")),1)])]),n.trends.total===0?(o(),M(f,{key:0,name:i.t("absence","No approved leave in this range"),description:i.t("absence","Pick a wider date range, or check back once leave has been approved.")},{icon:x(()=>[w(h,{size:20})]),_:1},8,["name","description"])):(o(),c(Q,{key:1},[r("div",xh,[w(m,{title:i.t("absence","Absence days per month"),data:i.monthData},null,8,["title","data"])]),r("div",Sh,[w(u,{title:i.t("absence","Days by leave type"),data:i.typeData},null,8,["title","data"])])],64))],64))])}const Nh=U(uh,[["render",Eh],["__scopeId","data-v-03e8faec"]]),Th={name:"HrWhosOff",components:{TeamTimeline:ss},methods:{t:R}},Dh={class:"page"},Lh={class:"page__header"},Ih={class:"page__title"};function Bh(e,a,t,s,n,i){const l=k("TeamTimeline");return o(),c("div",Dh,[r("header",Lh,[r("h2",Ih,p(i.t("absence","Who's off")),1)]),w(l,{scope:"company"})])}const Mh=U(Th,[["render",Bh],["__scopeId","data-v-a95b495e"]]),Rh={name:"DownloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$h=["aria-hidden","aria-label"],zh=["fill","width","height"],Ph={d:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"},Oh={key:0};function Vh(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon download-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Ph,[t.title?(o(),c("title",Oh,p(t.title),1)):C("",!0)])],8,zh))],16,$h)}const cs=U(Rh,[["render",Vh]]),qh={name:"HrExports",components:{NcButton:be,NcDateTimePickerNative:Li,NcSelect:Ai,Download:cs},data(){const e=new Date;return{from:new Date(e.getFullYear(),0,1),to:new Date(e.getFullYear(),11,31),year:e.getFullYear(),years:[e.getFullYear()-1,e.getFullYear(),e.getFullYear()+1]}},computed:{requestsUrl(){return ce.exportRequestsUrl($e(this.from),$e(this.to))},balancesUrl(){return ce.exportBalancesUrl(this.year)}},methods:{t:R}},Hh={class:"page"},Fh={class:"page__header"},Uh={class:"page__title"},jh={class:"cards"},Wh={class:"card"},Gh={class:"card__row"},Zh=["href"],Kh={class:"card"},Yh={class:"card__row"},Xh=["href"];function Qh(e,a,t,s,n,i){const l=k("NcDateTimePickerNative"),d=k("Download"),h=k("NcButton"),f=k("NcSelect");return o(),c("div",Hh,[r("header",Fh,[r("h2",Uh,p(i.t("absence","Exports")),1)]),r("div",jh,[r("div",Wh,[r("h3",null,p(i.t("absence","Requests")),1),r("p",null,p(i.t("absence","All leave requests overlapping the selected date range, as CSV.")),1),r("div",Gh,[w(l,{modelValue:n.from,"onUpdate:modelValue":a[0]||(a[0]=m=>n.from=m),type:"date",label:i.t("absence","From")},null,8,["modelValue","label"]),w(l,{modelValue:n.to,"onUpdate:modelValue":a[1]||(a[1]=m=>n.to=m),type:"date",label:i.t("absence","To")},null,8,["modelValue","label"])]),r("a",{href:i.requestsUrl,class:"dl"},[w(h,{type:"primary"},{icon:x(()=>[w(d,{size:20})]),default:x(()=>[V(" "+p(i.t("absence","Download requests CSV")),1)]),_:1})],8,Zh)]),r("div",Kh,[r("h3",null,p(i.t("absence","Balances")),1),r("p",null,p(i.t("absence","Per-employee entitlement, used, remaining and carry-over for a year.")),1),r("div",Yh,[w(f,{modelValue:n.year,"onUpdate:modelValue":a[2]||(a[2]=m=>n.year=m),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])]),r("a",{href:i.balancesUrl,class:"dl"},[w(h,{type:"primary"},{icon:x(()=>[w(d,{size:20})]),default:x(()=>[V(" "+p(i.t("absence","Download balances CSV")),1)]),_:1})],8,Xh)])])])}const Jh=U(qh,[["render",Qh],["__scopeId","data-v-d327057b"]]),e0=[{path:"/",redirect:"/my"},{path:"/my",name:"my",component:sn},{path:"/approvals",name:"approvals",component:Rc},{path:"/team",name:"team",component:Bd},{path:"/hr/balances",name:"hr-balances",component:Np},{path:"/hr/statistics",name:"hr-statistics",component:Nh},{path:"/hr/whos-off",name:"hr-whos-off",component:Mh},{path:"/hr/exports",name:"hr-exports",component:Jh},{path:"/requests/:id",name:"request",component:sn,props:!0}],t0=So({history:io(),routes:e0});var a0=Object.assign({inheritAttrs:!1},{__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1},keyboardStep:{type:Number,default:5}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick","direction-changed"],setup(e,{emit:a}){let t=a,s=e,n=ki(),i=Ks(),l=Me([]),d=Y(()=>l.value.reduce((v,A)=>(v[~~A.id]=A)&&v,{})),h=Y(()=>l.value.length),f=Me(null),m=Me(!1),u=Me({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),g=Me({splitter:null,timeoutId:null}),y=Y(()=>({[`splitpanes splitpanes--${s.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":u.value.dragging,"splitpanes--ready":m.value})),S=()=>{document.addEventListener("mousemove",I,{passive:!1}),document.addEventListener("mouseup",$),"ontouchstart"in window&&(document.addEventListener("touchmove",I,{passive:!1}),document.addEventListener("touchend",$))},b=()=>{document.removeEventListener("mousemove",I,{passive:!1}),document.removeEventListener("mouseup",$),"ontouchstart"in window&&(document.removeEventListener("touchmove",I,{passive:!1}),document.removeEventListener("touchend",$))},_=(v,A)=>{let E=v.target.closest(".splitpanes__splitter");if(E){let{left:N,top:D}=E.getBoundingClientRect(),{clientX:O,clientY:Z}="ontouchstart"in window&&v.touches?v.touches[0]:v;u.value.cursorOffset=s.horizontal?Z-D:O-N}S(),u.value.mouseDown=!0,u.value.activeSplitter=A,document.documentElement.style.cursor=s.horizontal?"row-resize":"col-resize"},I=v=>{u.value.mouseDown&&(v.preventDefault(),u.value.dragging||(window.getSelection()?.removeAllRanges(),u.value.dragging=!0),requestAnimationFrame(()=>{re(le(v)),B("resize",{event:v},!0)}))},$=v=>{u.value.dragging&&(window.getSelection()?.removeAllRanges(),B("resized",{event:v},!0)),u.value.mouseDown=!1,u.value.activeSplitter=null,setTimeout(()=>{u.value.dragging=!1,b(),document.documentElement.style.cursor=""},100)},z=(v,A)=>{"ontouchstart"in window&&(v.preventDefault(),g.value.splitter===A?(clearTimeout(g.value.timeoutId),g.value.timeoutId=null,W(v,A),g.value.splitter=null):(g.value.splitter=A,g.value.timeoutId=setTimeout(()=>g.value.splitter=null,500))),u.value.dragging||B("splitter-click",{event:v,index:A},!0)},W=(v,A)=>{if(B("splitter-dblclick",{event:v,index:A},!0),s.maximizePanes){let E=0;l.value=l.value.map((N,D)=>(N.size=D===A?N.max:N.min,D!==A&&(E+=N.min),N)),l.value[A].size-=E,B("pane-maximize",{event:v,index:A,pane:l.value[A]}),B("resized",{event:v,index:A},!0)}},ie=(v,A)=>{if(!s.keyboardStep)return;let E=s.horizontal?v.key==="ArrowDown":v.key==="ArrowRight",N=s.horizontal?v.key==="ArrowUp":v.key==="ArrowLeft";if(!E&&!N)return;v.preventDefault(),u.value.activeSplitter=A;let D=(E?1:-1)*(s.rtl&&!s.horizontal?-1:1),O=qe(A)+l.value[A].size;Ge(Math.min(Math.max(O+D*s.keyboardStep,0),100)),B("resize",{event:v},!0),B("resized",{event:v},!0),u.value.activeSplitter=null},se=(v,A)=>{let E=d.value[A];E&&B("pane-click",{event:v,index:E.index,pane:E})},le=v=>{let A=f.value.getBoundingClientRect(),{clientX:E,clientY:N}="ontouchstart"in window&&v.touches?v.touches[0]:v;return{x:E-(s.horizontal?0:u.value.cursorOffset)-A.left,y:N-(s.horizontal?u.value.cursorOffset:0)-A.top}},te=v=>{v=v[s.horizontal?"y":"x"];let A=f.value[s.horizontal?"clientHeight":"clientWidth"];return s.rtl&&!s.horizontal&&(v=A-v),v*100/A},re=v=>{Ge(te(v))},Ge=v=>{let A=u.value.activeSplitter;if(A===null||A>=l.value.length-1)return;let E={prevPanesSize:qe(A),nextPanesSize:_e(A),prevReachedMinPanes:0,nextReachedMinPanes:0},N=0+(s.pushOtherPanes?0:E.prevPanesSize),D=100-(s.pushOtherPanes?0:E.nextPanesSize);v=Math.max(Math.min(v,D),N);let O=[A,A+1],Z=l.value[O[0]]||null,ue=l.value[O[1]]||null,ne=Z!==null&&Z.max<100&&v>=Z.max+E.prevPanesSize,Gt=ue!==null&&ue.max<100&&v<=100-(ue.max+_e(A+1));if(ne||Gt){ne?(Z.size=Z.max,ue.size=Math.min(Math.max(100-Z.max-E.prevPanesSize-E.nextPanesSize,ue.min),ue.max)):(Z.size=Math.min(Math.max(100-ue.max-E.prevPanesSize-_e(A+1),Z.min),Z.max),ue.size=ue.max);return}if(s.pushOtherPanes){let Vi=Ze(E,v);if(!Vi)return;({sums:E,panesToResize:O}=Vi),Z=l.value[O[0]]||null,ue=l.value[O[1]]||null}Z!==null&&(Z.size=Math.min(Math.max(v-E.prevPanesSize-E.prevReachedMinPanes,Z.min),Z.max)),ue!==null&&(ue.size=Math.min(Math.max(100-v-E.nextPanesSize-E.nextReachedMinPanes,ue.min),ue.max))},Ze=(v,A)=>{let E=u.value.activeSplitter,N=[E,E+1];if(A{O>N[0]&&O<=E&&(D.size=D.min,v.prevReachedMinPanes+=D.min)}),N[0]===void 0)return v.prevReachedMinPanes=0,l.value[0].size=l.value[0].min,l.value.forEach((D,O)=>{O>0&&O<=E&&(D.size=D.min,v.prevReachedMinPanes+=D.min)}),l.value[N[1]].size=100-v.prevReachedMinPanes-l.value[0].min-v.prevPanesSize-v.nextPanesSize,null;v.prevPanesSize=qe(N[0])}return A>100-v.nextPanesSize-l.value[N[1]].min&&(N[1]=Le(E).index,v.nextReachedMinPanes=0,N[1]>E+1&&l.value.forEach((D,O)=>{O>E&&O{O>=E+1&&(D.size=D.min,v.nextReachedMinPanes+=D.min)}),N[0]!==void 0&&(l.value[N[0]].size=100-v.prevPanesSize-_e(N[0]-1)),null):{sums:v,panesToResize:N}},qe=v=>l.value.reduce((A,E,N)=>A+(Nl.value.reduce((A,E,N)=>A+(N>v+1?E.size:0),0),Ke=v=>[...l.value].reverse().find(A=>A.indexA.min)||{},Le=v=>l.value.find(A=>A.index>v+1&&A.size>A.min)||{},Re=()=>{let v=Array.from(f.value?.children||[]);for(let A of v){let E=A.classList.contains("splitpanes__pane"),N=A.classList.contains("splitpanes__splitter");!E&&!N&&(A.remove(),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))}},ot=(v,A,E=!1)=>{let N=v-1,D=document.createElement("div");D.classList.add("splitpanes__splitter"),E||(D.onmousedown=O=>_(O,N),typeof window<"u"&&"ontouchstart"in window&&(D.ontouchstart=O=>_(O,N)),D.onclick=O=>z(O,N+1),s.keyboardStep&&(D.setAttribute("tabindex","0"),D.setAttribute("role","separator"),D.setAttribute("aria-orientation",s.horizontal?"horizontal":"vertical"),D.onkeydown=O=>ie(O,N))),D.ondblclick=O=>W(O,N+1),A.parentNode.insertBefore(D,A)},At=v=>{v.onmousedown=null,v.onclick=null,v.ondblclick=null,v.onkeydown=null,v.remove()},gt=()=>{let v=Array.from(f.value?.children||[]);for(let E of v)E.className.includes("splitpanes__splitter")&&At(E);let A=0;for(let E of v)E.className.includes("splitpanes__pane")&&(!A&&s.firstSplitter?ot(A,E,!0):A&&ot(A,E),A++)},xt=({uid:v,...A})=>{let E=d.value[v];for(let[N,D]of Object.entries(A))E[N]=D},yt=!1,St=v=>{let A=-1;Array.from(f.value?.children||[]).some(E=>(E.className.includes("splitpanes__pane")&&A++,E.isSameNode(v.el))),l.value.splice(A,0,{...v,index:A}),l.value.forEach((E,N)=>E.index=N),m.value&&!yt&&(yt=!0,Bt(()=>{gt(),Ye({addedPane:l.value[A]}),B("pane-add",{pane:l.value[A]}),yt=!1}))},Et=v=>{let A=l.value.findIndex(N=>N.id===v);l.value[A].el=null;let E=l.value.splice(A,1)[0];l.value.forEach((N,D)=>N.index=D),Bt(()=>{gt(),B("pane-remove",{pane:E}),Ye({removedPane:{...E}})})},Ye=(v={})=>{!v.addedPane&&!v.removedPane?Xe():l.value.some(A=>A.givenSize!==null||A.min||A.max<100)?T(v):rt(),m.value&&B("resized")},rt=()=>{let v=100/h.value,A=100,E=[],N=[];for(let D of l.value)D.size=Math.max(Math.min(v,D.max),D.min),A-=D.size,D.size>=D.max&&E.push(D.id),D.size<=D.min&&N.push(D.id);Math.abs(A)>.1&&P(A,E,N)},Xe=()=>{let v=100,A=[],E=[],N=0;for(let O of l.value)v-=O.size,O.givenSize!==null&&N++,O.size>=O.max&&A.push(O.id),O.size<=O.min&&E.push(O.id);let D=100;if(v>.1){for(let O of l.value)O.givenSize===null&&(O.size=Math.max(Math.min(v/(h.value-N),O.max),O.min)),D-=O.size;D>.1&&P(D,A,E)}},T=({addedPane:v,removedPane:A}={})=>{let E=l.value.reduce((ne,Gt)=>ne+(Gt.givenSize===null?0:Gt.givenSize),0),N=l.value.filter(ne=>ne.givenSize===null).length,D=N>0?(100-E)/N:0,O=0,Z=[],ue=[];for(let ne of l.value)O-=ne.size,ne.size>=ne.max&&Z.push(ne.id),ne.size<=ne.min&&ue.push(ne.id);if(!(Math.abs(O)<.1)){O=100;for(let ne of l.value)ne.givenSize===null&&(ne.size=Math.max(Math.min(D,ne.max),ne.min)),O-=ne.size,ne.size>=ne.max&&Z.push(ne.id),ne.size<=ne.min&&ue.push(ne.id);Math.abs(O)>.1&&P(O,Z,ue)}},P=(v,A,E)=>{let N;N=v>0?v/(h.value-A.length):v/(h.value-E.length),l.value.forEach((D,O)=>{if(v>0&&!A.includes(D.id)){let Z=Math.max(Math.min(D.size+N,D.max),D.min),ue=Z-D.size;v-=ue,D.size=Z}else if(!E.includes(D.id)){let Z=Math.max(Math.min(D.size+N,D.max),D.min),ue=Z-D.size;v-=ue,D.size=Z}}),Math.abs(v)>.1&&m.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")},B=(v,A=void 0,E=!1)=>{let N=A?.index??u.value.activeSplitter??null;t(v,{...A,...N!==null&&{index:N},...E&&N!==null&&{prevPane:l.value[N-+!!s.firstSplitter],nextPane:l.value[N+ +!s.firstSplitter]},panes:l.value.map(D=>({min:D.min,max:D.max,size:D.size}))})};Te(()=>s.firstSplitter,()=>gt()),Te(()=>s.horizontal,v=>Bt(()=>{t("direction-changed",{horizontal:v,panes:l.value.map(A=>({min:A.min,max:A.max,size:A.size}))})})),Ra(()=>{Re(),gt(),Ye(),B("ready"),m.value=!0}),xi(()=>m.value=!1);let H=()=>{let{class:v,...A}=n;return bi("div",{ref:f,class:[y.value,v],...A},i.default?.())};return ye("panes",l),ye("indexedPanes",d),ye("horizontal",Y(()=>s.horizontal)),ye("requestUpdate",xt),ye("onPaneAdd",St),ye("onPaneRemove",Et),ye("onPaneClick",se),(v,A)=>(o(),M(_t(H)))}}),i0={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(e){let a=e,t=Ae("requestUpdate"),s=Ae("onPaneAdd"),n=Ae("horizontal"),i=Ae("onPaneRemove"),l=Ae("onPaneClick"),d=Ys()?.uid,h=Ae("indexedPanes"),f=Y(()=>h.value[d]),m=Me(null),u=Y(()=>{let b=isNaN(a.size)||a.size===void 0?0:parseFloat(a.size);return Math.max(Math.min(b,y.value),g.value)}),g=Y(()=>{let b=parseFloat(a.minSize);return isNaN(b)?0:b}),y=Y(()=>{let b=parseFloat(a.maxSize);return isNaN(b)?100:b}),S=Y(()=>{let b=f.value?.size??(a.size===void 0?void 0:u.value);return b===void 0?"":`${n.value?"height":"width"}: ${b}%`});return Te(()=>u.value,b=>t({uid:d,size:b})),Te(()=>g.value,b=>t({uid:d,min:b})),Te(()=>y.value,b=>t({uid:d,max:b})),Ra(()=>{s({id:d,el:m.value,min:g.value,max:y.value,givenSize:a.size===void 0?null:u.value,size:u.value})}),xi(()=>i(d)),(b,_)=>(o(),c("div",{ref_key:"paneEl",ref:m,class:"splitpanes__pane",onClick:_[0]||=I=>K(l)(I,b._.uid),style:oe(S.value)},[q(b.$slots,"default")],4))}};function n0(e,a,t){const s=`#initial-state-${e}-${a}`;if(window._nc_initial_state?.has(s))return window._nc_initial_state.get(s);window._nc_initial_state||(window._nc_initial_state=new Map);const n=document.querySelector(s);if(n===null){if(t!==void 0)return t;throw new Error(`Could not find initial state ${a} of ${e}`)}try{const i=JSON.parse(atob(n.value));return window._nc_initial_state.set(s,i),i}catch(i){if(console.error("[@nextcloud/initial-state] Could not parse initial state",{key:a,app:e,error:i}),t!==void 0)return t;throw new Error(`Could not parse initial state ${a} of ${e}`,{cause:i})}}function s0(e){let a=!1,t;return(...s)=>(a||(a=!0,t=e(...s)),t)}let us="missing-app-name";try{us=xs}catch{ze.error("The `@nextcloud/vue` library was used without setting / replacing the `appName`.")}const l0=us;let o0="";try{o0=Ss}catch{ze.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.")}function ds(){return Ae("appName",l0)}const r0=s0(()=>{const e=n0("core","apps",[]),a=ds();return e.find(({id:t})=>t===a)?.name??a});De(Xs);const c0=ve({__name:"NcAppContentDetailsToggle",setup(e){const a=jt();Te(a,t),Ra(()=>{t(a.value)}),xi(()=>{a.value&&t(!1)});function t(s=!0){const n=document.querySelector(".app-navigation .app-navigation-toggle");n&&(n.style.display=s?"none":"",s===!0&&ht("toggle-navigation",{open:!1}))}return(s,n)=>(o(),M(K(be),{"aria-label":K(j)("Go back to the list"),class:F(["app-details-toggle",{"app-details-toggle--mobile":K(a)}]),title:K(j)("Go back to the list"),variant:"tertiary"},{icon:x(()=>[w(K(Ne),{directional:"",path:K(Tn)},null,8,["path"])]),_:1},8,["aria-label","class","title"]))}}),u0=ee(c0,[["__scopeId","data-v-a28923a1"]]),gn=En("nextcloud").persist().build(),d0=Di().theming?.name??"Nextcloud",p0={name:"NcAppContent",components:{NcAppContentDetailsToggle:u0,Pane:i0,Splitpanes:a0},props:{disableSwipe:{type:Boolean,default:!1},listSize:{type:Number,default:20},listMinWidth:{type:Number,default:15},listMaxWidth:{type:Number,default:40},paneConfigKey:{type:String,default:""},showDetails:{type:Boolean,default:!0},layout:{type:String,default:"vertical-split",validator(e){return["no-split","vertical-split","horizontal-split"].includes(e)}},pageHeading:{type:String,default:null},pageTitle:{type:String,default:null}},emits:["update:showDetails","resizeList"],setup(){return{appName:ds(),localizedAppName:r0(),isMobile:jt(),isRtl:Js}},data(){return{contentHeight:0,swiping:{},listPaneSize:this.restorePaneConfig()}},computed:{paneConfigID(){if(this.paneConfigKey!=="")return`pane-list-size-${this.paneConfigKey}`;try{return`pane-list-size-${this.appName}`}catch{return ze.info("[NcAppContent]: falling back to global nextcloud pane config"),"pane-list-size-nextcloud"}},detailsPaneSize(){return this.listPaneSize?100-this.listPaneSize:this.paneDefaults.details.size},paneDefaults(){return{list:{size:this.listSize,min:this.listMinWidth,max:this.listMaxWidth},details:{size:100-this.listSize,min:100-this.listMaxWidth,max:100-this.listMinWidth}}},realPageTitle(){const e=new Set;if(this.pageTitle)for(const a of this.pageTitle.split(" - "))e.add(a);else if(this.pageHeading){for(const a of this.pageHeading.split(" - "))e.add(a);e.size>0&&e.add(this.localizedAppName)}else return null;return e.add(d0),[...e.values()].join(" - ")}},watch:{realPageTitle:{immediate:!0,handler(){this.realPageTitle!==null&&(document.title=this.realPageTitle)}},paneConfigKey:{immediate:!0,handler(){this.restorePaneConfig()}}},mounted(){this.disableSwipe||(this.swiping=Qs(this.$el,{onSwipeEnd:this.handleSwipe})),this.restorePaneConfig()},methods:{handleSwipe(e,a){Math.abs(this.swiping.lengthX)>70&&(this.swiping.coordsStart.x<300/2&&a==="right"?ht("toggle-navigation",{open:!0}):this.swiping.coordsStart.x<300*1.5&&a==="left"&&ht("toggle-navigation",{open:!1}))},handlePaneResize(e){const a=parseInt(e.panes[0].size,10);gn.setItem(this.paneConfigID,JSON.stringify(a)),this.listPaneSize=a,this.$emit("resizeList",{size:a}),ze.debug("[NcAppContent] pane config",{listPaneSize:a})},restorePaneConfig(){const e=parseInt(gn.getItem(this.paneConfigID),10);if(!isNaN(e)&&e!==this.listPaneSize)return ze.debug("[NcAppContent] pane config",{listPaneSize:e}),this.listPaneSize=e,e},hideDetails(){this.$emit("update:showDetails",!1)}}},h0={key:0,class:"hidden-visually"},m0={class:"app-content-wrapper__list"},f0={key:1,class:"app-content-wrapper"};function g0(e,a,t,s,n,i){const l=k("NcAppContentDetailsToggle"),d=k("Pane"),h=k("Splitpanes");return o(),c("main",{id:"app-content-vue",class:F(["app-content no-snapper",{"app-content--has-list":!!e.$slots.list}])},[t.pageHeading?(o(),c("h1",h0,p(t.pageHeading),1)):C("",!0),e.$slots.list?(o(),c(Q,{key:1},[s.isMobile||t.layout==="no-split"?(o(),c("div",{key:0,class:F(["app-content-wrapper app-content-wrapper--no-split",{"app-content-wrapper--show-details":t.showDetails,"app-content-wrapper--show-list":!t.showDetails,"app-content-wrapper--mobile":s.isMobile}])},[t.showDetails?(o(),M(l,{key:0,onClick:me(i.hideDetails,["stop","prevent"])},null,8,["onClick"])):C("",!0),Ee(r("div",m0,[q(e.$slots,"list",{},void 0,!0)],512),[[at,!t.showDetails]]),t.showDetails?q(e.$slots,"default",{key:1},void 0,!0):C("",!0)],2)):t.layout==="vertical-split"||t.layout==="horizontal-split"?(o(),c("div",f0,[w(h,{horizontal:t.layout==="horizontal-split",class:F(["default-theme",{"splitpanes--horizontal":t.layout==="horizontal-split","splitpanes--vertical":t.layout==="vertical-split"}]),rtl:s.isRtl,onResized:i.handlePaneResize},{default:x(()=>[w(d,{class:"splitpanes__pane-list",size:n.listPaneSize||i.paneDefaults.list.size,minSize:i.paneDefaults.list.min,maxSize:i.paneDefaults.list.max},{default:x(()=>[q(e.$slots,"list",{},void 0,!0)]),_:3},8,["size","minSize","maxSize"]),w(d,{class:"splitpanes__pane-details",size:i.detailsPaneSize,minSize:i.paneDefaults.details.min,maxSize:i.paneDefaults.details.max},{default:x(()=>[q(e.$slots,"default",{},void 0,!0)]),_:3},8,["size","minSize","maxSize"])]),_:3},8,["horizontal","class","rtl","onResized"])])):C("",!0)],64)):C("",!0),e.$slots.list?C("",!0):q(e.$slots,"default",{key:2},void 0,!0)],2)}const y0=ee(p0,[["render",g0],["__scopeId","data-v-ea1e6879"]]),b0={name:"NcAppNavigationList"},v0={class:"app-navigation-list"};function _0(e,a,t,s,n,i){return o(),c("ul",v0,[q(e.$slots,"default",{},void 0,!0)])}const w0=ee(b0,[["render",_0],["__scopeId","data-v-d72957ed"]]),ps=Symbol.for("NcContent:setHasAppNavigation"),hs=Symbol.for("NcContent:selector");De(el);const C0={class:"app-navigation-toggle-wrapper"},k0=ve({__name:"NcAppNavigationToggle",props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:["update:open"],setup(e){const a=ft(e,"open"),t=Y(()=>a.value?j("Close navigation"):j("Open navigation"));return(s,n)=>(o(),c("div",C0,[w(K(be),{class:"app-navigation-toggle","aria-controls":"app-navigation-vue","aria-expanded":a.value?"true":"false","aria-label":t.value,title:t.value,variant:"tertiary",onClick:n[0]||(n[0]=i=>a.value=!a.value)},{icon:x(()=>[w(Ne,{path:a.value?K(nl):K(sl)},null,8,["path"])]),_:1},8,["aria-expanded","aria-label","title"])]))}}),A0=ee(k0,[["__scopeId","data-v-5a15295d"]]),x0=["aria-hidden","aria-label","aria-labelledby","inert"],S0={class:"app-navigation__search"},E0=ve({__name:"NcAppNavigation",props:{ariaLabel:{},ariaLabelledby:{}},setup(e){const a=e;let t;const s=Ae(ps,()=>il(),!1),n=Ma("appNavigationContainer"),i=jt(),l=Me(!i.value);tl(()=>{!a.ariaLabel&&a.ariaLabelledby}),Te(i,()=>{l.value=!i.value}),Te(l,()=>{f()}),Ra(()=>{s(!0),ea("toggle-navigation",h),ht("navigation-toggled",{open:l.value}),t=Ln(n.value,{allowOutsideClick:!0,clickOutsideDeactivates:()=>(i.value&&(t.deactivate({returnFocus:!1}),d(!1)),!1),fallbackFocus:n.value,trapStack:In(),escapeDeactivates:!1}),f()}),al(()=>{s(!1),Jt("toggle-navigation",h),t.deactivate()});function d(u){if(l.value===u){ht("navigation-toggled",{open:l.value});return}l.value=u===void 0?!l.value:u;const g=getComputedStyle(document.body),y=parseInt(g.getPropertyValue("--animation-quick"))||100;setTimeout(()=>{ht("navigation-toggled",{open:l.value})},1.5*y)}function h({open:u}){return d(u)}function f(){i.value&&l.value?t.activate():t.deactivate()}function m(){i.value&&d(!1)}return(u,g)=>(o(),c("div",{ref:"appNavigationContainer",class:F(["app-navigation",{"app-navigation--closed":!l.value,"app-navigation--legacy":K(st)}])},[r("nav",{id:"app-navigation-vue","aria-hidden":l.value?"false":"true","aria-label":e.ariaLabel||void 0,"aria-labelledby":e.ariaLabelledby||void 0,class:"app-navigation__content",inert:!l.value||void 0,onKeydown:xe(m,["esc"])},[r("div",S0,[q(u.$slots,"search",{},void 0,!0)]),r("div",{class:F(["app-navigation__body",{"app-navigation__body--no-list":!u.$slots.list}])},[q(u.$slots,"default",{},void 0,!0)],2),u.$slots.list?(o(),M(w0,{key:0,class:"app-navigation__list"},{default:x(()=>[q(u.$slots,"list",{},void 0,!0)]),_:3})):C("",!0),q(u.$slots,"footer",{},void 0,!0)],40,x0),w(A0,{open:l.value,"onUpdate:open":d},null,8,["open"])],2))}}),N0=ee(E0,[["__scopeId","data-v-104ef656"]]),T0={name:"NcAppNavigationCaption",components:{NcActions:pt},props:{name:{type:String,required:!0},headingId:{type:String,default:null},isHeading:{type:Boolean,default:!1},headingLevel:{type:Number,default:2},...pt.props},computed:{actionsProps(){const e=Object.keys(pt.props),a=Object.entries(this.$props).filter(([t,s])=>e.includes(t));return Object.fromEntries(a)},wrapperTag(){return this.isHeading?"div":"li"},captionTag(){const e=Math.max(2,this.headingLevel);return this.isHeading?`h${e}`:"span"}}},D0={key:0,class:"app-navigation-caption__actions"};function L0(e,a,t,s,n,i){const l=k("NcActions");return o(),M(_t(i.wrapperTag),{class:F(["app-navigation-caption",{"app-navigation-caption--heading":t.isHeading}])},{default:x(()=>[(o(),M(_t(i.captionTag),{id:t.headingId,class:"app-navigation-caption__name"},{default:x(()=>[V(p(t.name),1)]),_:1},8,["id"])),e.$slots.actions?(o(),c("div",D0,[w(l,vi(_i(i.actionsProps)),{icon:x(()=>[q(e.$slots,"actionsTriggerIcon",{},void 0,!0)]),default:x(()=>[q(e.$slots,"actions",{},void 0,!0)]),_:3},16)])):C("",!0)]),_:3},8,["class"])}const I0=ee(T0,[["render",L0],["__scopeId","data-v-f0e411c2"]]),B0={name:"ChevronUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},M0=["aria-hidden","aria-label"],R0=["fill","width","height"],$0={d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},z0={key:0};function P0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-up-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",$0,[t.title?(o(),c("title",z0,p(t.title),1)):C("",!0)])],8,R0))],16,M0)}const O0=ee(B0,[["render",P0]]),V0={name:"ArrowRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},q0=["aria-hidden","aria-label"],H0=["fill","width","height"],F0={d:"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z"},U0={key:0};function j0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon arrow-right-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",F0,[t.title?(o(),c("title",U0,p(t.title),1)):C("",!0)])],8,H0))],16,q0)}const ms=ee(V0,[["render",j0]]);De(ll);const W0={name:"NcInputConfirmCancel",components:{IconArrowRight:ms,IconClose:Bn,NcButton:be},setup(){return{isLegacy34:st}},props:{primary:{default:!1,type:Boolean},placeholder:{default:"",type:String},modelValue:{default:"",type:String}},emits:["cancel","confirm","update:modelValue"],data(){return{labelConfirm:j("Confirm changes"),labelCancel:j("Cancel changes")}},computed:{valueModel:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{confirm(){this.$emit("confirm")},cancel(){this.$emit("cancel")},focusInput(){this.$refs.input.focus()}}},G0=["placeholder"];function Z0(e,a,t,s,n,i){const l=k("IconArrowRight"),d=k("NcButton"),h=k("IconClose");return o(),c("div",{class:F(["app-navigation-input-confirm",{"app-navigation-input-confirm--legacy":s.isLegacy34}])},[r("form",{onSubmit:a[1]||(a[1]=me((...f)=>i.confirm&&i.confirm(...f),["prevent"])),onKeydown:a[2]||(a[2]=xe(me((...f)=>i.cancel&&i.cancel(...f),["exact","stop","prevent"]),["esc"])),onClick:a[3]||(a[3]=me(()=>{},["stop","prevent"]))},[Ee(r("input",{ref:"input","onUpdate:modelValue":a[0]||(a[0]=f=>i.valueModel=f),type:"text",class:"app-navigation-input-confirm__input",placeholder:t.placeholder},null,8,G0),[[ol,i.valueModel]]),w(d,{"aria-label":n.labelConfirm,type:"submit",variant:"primary",onClick:me(i.confirm,["stop","prevent"])},{icon:x(()=>[w(l,{size:20})]),_:1},8,["aria-label","onClick"]),w(d,{"aria-label":n.labelCancel,type:"reset",variant:t.primary?"primary":"tertiary",onClick:me(i.cancel,["stop","prevent"])},{icon:x(()=>[w(h,{size:20})]),_:1},8,["aria-label","variant","onClick"])],32)],2)}const K0=ee(W0,[["render",Z0],["__scopeId","data-v-a8724c7f"]]),Y0={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},X0=["aria-hidden","aria-label"],Q0=["fill","width","height"],J0={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"},e1={key:0};function t1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon pencil-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",J0,[t.title?(o(),c("title",e1,p(t.title),1)):C("",!0)])],8,Q0))],16,X0)}const a1=ee(Y0,[["render",t1]]),i1={name:"UndoIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},n1=["aria-hidden","aria-label"],s1=["fill","width","height"],l1={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"},o1={key:0};function r1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon undo-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",l1,[t.title?(o(),c("title",o1,p(t.title),1)):C("",!0)])],8,s1))],16,n1)}const c1=ee(i1,[["render",r1]]);De(rl);const u1={name:"NcAppNavigationIconCollapsible",components:{NcButton:be,ChevronDown:ul,ChevronUp:O0},setup(){return{isLegacy34:st}},props:{open:{type:Boolean,required:!0},active:{type:Boolean,required:!0}},emits:["click"],computed:{labelButton(){return this.open?j("Collapse menu"):j("Open menu")}},methods:{onClick(e){this.$emit("click",e)}}};function d1(e,a,t,s,n,i){const l=k("ChevronUp"),d=k("ChevronDown"),h=k("NcButton");return o(),M(h,{class:F(["icon-collapse",{"icon-collapse--active":t.active,"icon-collapse--open":t.open}]),"aria-label":i.labelButton,variant:t.active&&s.isLegacy34?"tertiary-on-primary":"tertiary",onClick:i.onClick},{icon:x(()=>[t.open?(o(),M(l,{key:0,size:20})):(o(),M(d,{key:1,size:20}))]),_:1},8,["class","aria-label","variant","onClick"])}const p1=ee(u1,[["render",d1],["__scopeId","data-v-acf5ed2f"]]);De(cl,Nn);const h1={name:"NcAppNavigationItem",components:{NcActions:pt,NcActionButton:is,NcAppNavigationIconCollapsible:p1,NcInputConfirmCancel:K0,NcLoadingIcon:Ba,NcVNodes:Ni,Pencil:a1,Undo:c1},props:{active:{type:Boolean,default:!1},name:{type:String,required:!0},title:{type:String,default:null},id:{type:String,default:()=>kt(),validator:e=>e.trim()!==""},icon:{type:String,default:""},loading:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},allowCollapse:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},editLabel:{type:String,default:""},editPlaceholder:{type:String,default:""},pinned:{type:Boolean,default:!1},undo:{type:Boolean,default:!1},open:{type:Boolean,default:!1},menuOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},menuIcon:{type:String,default:void 0},menuPlacement:{type:String,default:"bottom"},ariaDescription:{type:String,default:null},forceDisplayActions:{type:Boolean,default:!1},inlineActions:{type:Number,default:0}},emits:["update:menuOpen","update:open","update:name","click","undo"],setup(){return{isMobile:jt(),isLegacy34:st}},data(){return{actionsBoundariesElement:void 0,editingValue:"",opened:this.open,editingActive:!1,menuOpenLocalValue:!1,focused:!1}},computed:{isRouterLink(){return this.to&&!this.href},canHaveChildren(){return this.$parent.$options._componentTag!=="AppNavigationItem"},editButtonAriaLabel(){return this.editLabel?this.editLabel:j("Edit item")},undoButtonAriaLabel(){return j("Undo changes")}},watch:{open(e){this.opened=e}},mounted(){this.actionsBoundariesElement=document.querySelector("#content-vue")||void 0},methods:{onMenuToggle(e){this.$emit("update:menuOpen",e),this.menuOpenLocalValue=e},toggleCollapse(){this.opened=!this.opened,this.$emit("update:open",this.opened)},onClick(e,a,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(a?.(e),e.preventDefault())},handleEdit(){this.editingValue=this.name,this.editingActive=!0,this.onMenuToggle(!1),this.$nextTick(()=>{this.$refs.editingInput.focusInput()})},cancelEditing(){this.editingActive=!1},handleEditingDone(){this.$emit("update:name",this.editingValue),this.editingValue="",this.editingActive=!1},handleUndo(){this.$emit("undo")},handleFocus(){this.focused=!0},handleBlur(){this.focused=!1},handleTab(e){this.$refs.actions&&(this.focused?(e.preventDefault(),this.$refs.actions.$refs.triggerButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.triggerButton.$el.blur())},isExternal(e){return e&&e.match(/[a-z]+:\/\//i)}}},m1=["id"],f1=["aria-current","aria-description","aria-expanded","href","target","title","onClick"],g1={key:0,class:"editingContainer"},y1={key:1,class:"app-navigation-entry__deleted"},b1={class:"app-navigation-entry__deleted-description"},v1={key:0,class:"app-navigation-entry__counter-wrapper"},_1={key:0,class:"app-navigation-entry__children"};function w1(e,a,t,s,n,i){const l=k("NcLoadingIcon"),d=k("NcInputConfirmCancel"),h=k("Pencil"),f=k("NcActionButton"),m=k("Undo"),u=k("NcActions"),g=k("NcAppNavigationIconCollapsible");return o(),c("li",{id:t.id,class:F([{"app-navigation-entry--opened":n.opened,"app-navigation-entry--pinned":t.pinned,"app-navigation-entry--collapsible":t.allowCollapse&&!!e.$slots.default},"app-navigation-entry-wrapper"])},[(o(),M(_t(i.isRouterLink?"router-link":"NcVNodes"),vi(_i({...i.isRouterLink&&{custom:!0,to:t.to}})),{default:x(({href:y,navigate:S,isActive:b})=>[r("div",{class:F(["app-navigation-entry",{"app-navigation-entry--editing":n.editingActive,"app-navigation-entry--deleted":t.undo,"app-navigation-entry--legacy":s.isLegacy34,active:t.to&&b||t.active}])},[t.undo?C("",!0):(o(),c("a",{key:0,class:"app-navigation-entry-link","aria-current":t.active||t.to&&b?"page":void 0,"aria-description":t.ariaDescription,"aria-expanded":e.$slots.default?n.opened.toString():void 0,href:t.href||y||"#",target:i.isExternal(t.href)?"_blank":void 0,title:t.title||t.name,onBlur:a[1]||(a[1]=(..._)=>i.handleBlur&&i.handleBlur(..._)),onClick:_=>i.onClick(_,S,y),onFocus:a[2]||(a[2]=(..._)=>i.handleFocus&&i.handleFocus(..._)),onKeydown:a[3]||(a[3]=xe(me((..._)=>i.handleTab&&i.handleTab(..._),["exact"]),["tab"]))},[r("div",{class:F(["app-navigation-entry-icon",{[t.icon]:t.icon}])},[t.loading?(o(),M(l,{key:0})):q(e.$slots,"icon",{key:1,active:t.active||t.to&&b},void 0,!0)],2),r("span",{class:F(["app-navigation-entry__name",{"hidden-visually":n.editingActive}])},p(t.name),3),n.editingActive?(o(),c("div",g1,[w(d,{ref:"editingInput",modelValue:n.editingValue,"onUpdate:modelValue":a[0]||(a[0]=_=>n.editingValue=_),placeholder:t.editPlaceholder!==""?t.editPlaceholder:t.name,primary:t.to&&b||t.active,onCancel:i.cancelEditing,onConfirm:i.handleEditingDone},null,8,["modelValue","placeholder","primary","onCancel","onConfirm"])])):C("",!0)],40,f1)),t.undo?(o(),c("div",y1,[r("div",b1,p(t.name),1)])):C("",!0),(e.$slots.actions||e.$slots.counter||t.editable||t.undo)&&!n.editingActive?(o(),c("div",{key:2,class:F(["app-navigation-entry__utils",{"app-navigation-entry__utils--display-actions":t.forceDisplayActions||n.menuOpenLocalValue||t.menuOpen}])},[e.$slots.counter?(o(),c("div",v1,[q(e.$slots,"counter",{},void 0,!0)])):C("",!0),e.$slots.actions||t.editable&&!n.editingActive||t.undo?(o(),M(u,{key:1,ref:"actions",class:"app-navigation-entry__actions",container:"#app-navigation-vue",boundariesElement:n.actionsBoundariesElement,inline:t.inlineActions,placement:t.menuPlacement,open:t.menuOpen,forceMenu:t.forceMenu,defaultIcon:t.menuIcon,variant:"tertiary","onUpdate:open":i.onMenuToggle},{icon:x(()=>[q(e.$slots,"menu-icon",{},void 0,!0)]),default:x(()=>[t.editable&&!n.editingActive?(o(),M(f,{key:0,"aria-label":i.editButtonAriaLabel,onClick:i.handleEdit},{icon:x(()=>[w(h,{size:20})]),default:x(()=>[V(" "+p(t.editLabel),1)]),_:1},8,["aria-label","onClick"])):C("",!0),t.undo?(o(),M(f,{key:1,"aria-label":i.undoButtonAriaLabel,onClick:i.handleUndo},{icon:x(()=>[w(m,{size:20})]),_:1},8,["aria-label","onClick"])):C("",!0),q(e.$slots,"actions",{},void 0,!0)]),_:3},8,["boundariesElement","inline","placement","open","forceMenu","defaultIcon","onUpdate:open"])):C("",!0)],2)):C("",!0),t.allowCollapse&&e.$slots.default?(o(),M(g,{key:3,active:t.to&&b||t.active,open:n.opened,onClick:me(i.toggleCollapse,["prevent","stop"])},null,8,["active","open","onClick"])):C("",!0),q(e.$slots,"extra",{},void 0,!0)],2)]),_:3},16)),i.canHaveChildren&&e.$slots.default?(o(),c("ul",_1,[q(e.$slots,"default",{},void 0,!0)])):C("",!0)],10,m1)}const C1=ee(h1,[["render",w1],["__scopeId","data-v-e4d562ae"]]),k1={components:{NcButton:be},props:{buttonId:{type:String,required:!1,default:""},disabled:{type:Boolean,required:!1,default:!1},text:{type:String,required:!0},variant:{type:String,default:"primary",validator(e){return["primary","secondary","tertiary"].indexOf(e)!==-1}}},emits:["click"]},A1={class:"app-navigation-new"};function x1(e,a,t,s,n,i){const l=k("NcButton");return o(),c("div",A1,[w(l,{id:t.buttonId,disabled:t.disabled,variant:t.variant,onClick:a[0]||(a[0]=d=>e.$emit("click"))},{icon:x(()=>[q(e.$slots,"icon",{},void 0,!0)]),default:x(()=>[V(" "+p(t.text),1)]),_:3},8,["id","disabled","variant"])])}const S1=ee(k1,[["render",x1],["__scopeId","data-v-0ba6c9df"]]);De(dl);const E1=` @@ -76,7 +28,7 @@ import{u as K,s as Es,a as Ns,d as ve,i as Ae,h as bi,r as Cn,c as Y,w as Te,b a -`,N1=` @@ -102,7 +54,55 @@ import{u as K,s as Es,a as Ns,d as ve,i as Ae,h as bi,r as Cn,c as Y,w as Te,b a -`,T1={class:"vue-skip-actions__container"},D1={class:"vue-skip-actions__headline"},L1={class:"vue-skip-actions__buttons"},I1=ve({__name:"NcContent",props:{appName:{}},setup(e){const a=e;ye(ps,d),ye(hs,"#content-vue"),ye("appName",Y(()=>a.appName));const t=jt(),s=Me(!1),n=Me(),i=Y(()=>n.value==="navigation"?N1:E1);pl(()=>{const h=document.getElementById("skip-actions");h&&(h.innerHTML="",h.classList.add("vue-skip-actions"))});function l(){ht("toggle-navigation",{open:!0}),Bt(()=>{window.location.hash="app-navigation-vue",document.getElementById("app-navigation-vue").focus()})}function d(h){s.value=h,n.value||(n.value="navigation")}return(h,f)=>(o(),c("div",{id:"content-vue",class:F(["content",[`app-${e.appName.toLowerCase()}`,{"content--legacy":K(st)}]])},[(o(),M(Mn,{to:"#skip-actions"},[r("div",T1,[r("div",D1,p(K(j)("Keyboard navigation help")),1),r("div",L1,[Ee(w(be,{href:"#app-navigation-vue",variant:"tertiary",onClick:me(l,["prevent"]),onFocusin:f[0]||(f[0]=m=>n.value="navigation"),onMouseover:f[1]||(f[1]=m=>n.value="navigation")},{default:x(()=>[V(p(K(j)("Skip to app navigation")),1)]),_:1},512),[[at,s.value]]),w(be,{href:"#app-content-vue",variant:"tertiary",onFocusin:f[2]||(f[2]=m=>n.value="content"),onMouseover:f[3]||(f[3]=m=>n.value="content")},{default:x(()=>[V(p(K(j)("Skip to main content")),1)]),_:1})]),Ee(w(Ne,{class:"vue-skip-actions__image",svg:i.value,size:"auto"},null,8,["svg"]),[[at,!K(t)]])])])),q(h.$slots,"default",{},void 0,!0)],2))}}),B1=ee(I1,[["__scopeId","data-v-d13dcb98"]]),M1={name:"CalendarAccountOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},R1=["aria-hidden","aria-label"],$1=["fill","width","height"],z1={d:"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19M12 10C14 10 15 12.42 13.59 13.84C12.17 15.26 9.75 14.25 9.75 12.25C9.75 11 10.75 10 12 10M16.5 17.88V18H7.5V17.88C7.5 16.63 9.5 15.63 12 15.63S16.5 16.63 16.5 17.88Z"},P1={key:0};function O1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-account-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",z1,[t.title?(o(),c("title",P1,p(t.title),1)):C("",!0)])],8,$1))],16,R1)}const V1=U(M1,[["render",O1]]),q1={name:"ClipboardCheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},H1=["aria-hidden","aria-label"],F1=["fill","width","height"],U1={d:"M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z"},j1={key:0};function W1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon clipboard-check-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",U1,[t.title?(o(),c("title",j1,p(t.title),1)):C("",!0)])],8,F1))],16,H1)}const G1=U(q1,[["render",W1]]),Z1={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},K1=["aria-hidden","aria-label"],Y1=["fill","width","height"],X1={d:"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z"},Q1={key:0};function J1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon account-group-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",X1,[t.title?(o(),c("title",Q1,p(t.title),1)):C("",!0)])],8,Y1))],16,K1)}const Ii=U(Z1,[["render",J1]]),em={name:"ChartBarIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},tm=["aria-hidden","aria-label"],am=["fill","width","height"],im={d:"M22,21H2V3H4V19H6V10H10V19H12V6H16V19H18V14H22V21Z"},nm={key:0};function sm(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chart-bar-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",im,[t.title?(o(),c("title",nm,p(t.title),1)):C("",!0)])],8,am))],16,tm)}const lm=U(em,[["render",sm]]),om={name:"CalendarMonthIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},rm=["aria-hidden","aria-label"],cm=["fill","width","height"],um={d:"M9,10V12H7V10H9M13,10V12H11V10H13M17,10V12H15V10H17M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5A2,2 0 0,1 5,3H6V1H8V3H16V1H18V3H19M19,19V8H5V19H19M9,14V16H7V14H9M13,14V16H11V14H13M17,14V16H15V14H17Z"},dm={key:0};function pm(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-month-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",um,[t.title?(o(),c("title",dm,p(t.title),1)):C("",!0)])],8,cm))],16,rm)}const hm=U(om,[["render",pm]]),mm={name:"ClipboardPlusOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},fm=["aria-hidden","aria-label"],gm=["fill","width","height"],ym={d:"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M7 7H17V5H19V19H5V5H7V7M13 12H16V14H13V17H11V14H8V12H11V9H13V12Z"},bm={key:0};function vm(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon clipboard-plus-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",ym,[t.title?(o(),c("title",bm,p(t.title),1)):C("",!0)])],8,gm))],16,fm)}const _m=U(mm,[["render",vm]]),wm={class:"textarea__main-wrapper"},Cm=["id","aria-describedby","disabled","placeholder","value"],km=["for"],Am=["id"],xm=ve({inheritAttrs:!1,__name:"NcTextArea",props:mt({disabled:{type:Boolean},error:{type:Boolean},helperText:{default:void 0},id:{default:()=>kt()},inputClass:{default:""},label:{default:void 0},labelOutside:{type:Boolean},placeholder:{default:void 0},resize:{default:"both"},success:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e,{expose:a}){const t=ft(e,"modelValue"),s=e;a({focus:f,select:m});const n=ki(),i=Ma("input"),l=Y(()=>s.placeholder||(Mt?s.label:void 0));Te(()=>s.labelOutside,()=>{!s.labelOutside&&!s.label&&ze.warn("[NcTextArea] You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.")});const d=Y(()=>{const u=[];return s.helperText&&u.push(`${s.id}-helper-text`),typeof n["aria-describedby"]=="string"&&u.push(n["aria-describedby"]),u.join(" ")||void 0});function h(u){const{value:g}=u.target;t.value=g}function f(u){i.value.focus(u)}function m(){i.value.select()}return(u,g)=>(o(),c("div",{class:F(["textarea",[u.$attrs.class,{"textarea--disabled":e.disabled,"textarea--legacy":K(Mt)}]])},[r("div",wm,[r("textarea",J({...u.$attrs,class:void 0},{id:e.id,ref:"input","aria-describedby":d.value,"aria-live":"polite",class:["textarea__input",[e.inputClass,{"textarea__input--label-outside":e.labelOutside,"textarea__input--legacy":K(Mt),"textarea__input--success":e.success,"textarea__input--error":e.error}]],disabled:e.disabled,placeholder:l.value,style:{resize:e.resize},value:t.value,onInput:h}),null,16,Cm),e.labelOutside?C("",!0):(o(),c("label",{key:0,class:"textarea__label",for:e.id},p(e.label),9,km))]),e.helperText?(o(),c("p",{key:0,id:`${e.id}-helper-text`,class:F(["textarea__helper-text-message",{"textarea__helper-text-message--error":e.error,"textarea__helper-text-message--success":e.success}])},[e.success?(o(),M(Ne,{key:0,class:"textarea__helper-text-message__icon",path:K(ia),inline:""},null,8,["path"])):e.error?(o(),M(Ne,{key:1,class:"textarea__helper-text-message__icon",path:K(ni),inline:""},null,8,["path"])):C("",!0),V(" "+p(e.helperText),1)],10,Am)):C("",!0)],2))}}),fs=ee(xm,[["__scopeId","data-v-d327fb49"]]),Sm={name:"SendIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Em=["aria-hidden","aria-label"],Nm=["fill","width","height"],Tm={d:"M2,21L23,12L2,3V10L17,12L2,14V21Z"},Dm={key:0};function Lm(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon send-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Tm,[t.title?(o(),c("title",Dm,p(t.title),1)):C("",!0)])],8,Nm))],16,Em)}const Im=U(Sm,[["render",Lm]]),Bm={name:"RequestDialog",components:{NcModal:Dn,NcSelect:Ai,NcDateTimePickerNative:Li,NcTextArea:fs,NcTextField:ls,NcNoteCard:Rn,NcButton:be,NcLoadingIcon:Ba,Send:Im},props:{request:{type:Object,default:null},hrMode:{type:Boolean,default:!1}},emits:["close","saved"],data(){return{selectedType:null,startIso:null,endIso:null,workingDays:"",workingDaysTouched:!1,holidayChecker:null,reason:"",submitting:!1,selectedEmployee:null,employeeOptions:[],employeeLoading:!1,selectedReplacement:null,replacementOptions:[],replacementLoading:!1}},computed:{isEdit(){return this.request!==null},dialogTitle(){return this.hrMode?R("absence","Record absence"):this.isEdit?R("absence","Edit request"):R("absence","Request time off")},submitLabel(){return this.isEdit?R("absence","Save changes"):this.hrMode?R("absence","Record"):R("absence","Submit request")},typeOptions(){return this.hrMode?G.enabledLeaveTypes:G.requestableLeaveTypes},typeColor(){return this.selectedType?this.selectedType.color:"var(--color-primary-element)"},requiresNote(){return this.selectedType?this.selectedType.requiresNote:!1},needsReplacement(){return this.selectedType?this.selectedType.requiresReplacement:!1},startDate:{get(){return this.startIso?new Date(this.startIso+"T00:00:00"):null},set(e){this.startIso=e?$e(e):null,this.startIso&&this.endIso&&this.endIsoa.typeId===this.selectedType.id&&a.year===e&&a.entitlement!==null)||null},projectedAvailable(){return this.balanceRow?Math.round((this.balanceRow.available-this.workingDaysNum)*10)/10:null},wouldGoNegative(){return this.balanceRow&&this.selectedType&&this.selectedType.countsAgainstBalance&&this.projectedAvailable<0},availablePct(){return!this.balanceRow||!this.balanceRow.entitlement?0:Math.max(0,Math.min(100,this.projectedAvailable/this.balanceRow.entitlement*100))},canSubmit(){return!(!this.selectedType||!this.startIso||!this.endIso||this.workingDaysNum<=0||this.hrMode&&!this.selectedEmployee||this.needsReplacement&&!this.selectedReplacement||this.requiresNote&&this.reason.trim()==="")}},watch:{startIso(){this.recomputePrefill()},endIso(){this.recomputePrefill()}},async mounted(){await this.initFromProps(),!this.hrMode&&!G.balance.balances.length&&await G.loadMyBalance();try{this.holidayChecker=await fl(G.session.holidayCountry,G.session.holidayRegion),this.recomputePrefill()}catch{}},methods:{t:R,onWorkingDaysInput(e){this.workingDays=e,this.workingDaysTouched=!0},recomputePrefill(){if(this.isEdit||this.workingDaysTouched||!this.startIso||!this.endIso)return;const e=hl(G.session.workWeekdays||"1,2,3,4,5");this.workingDays=String(ml(this.startIso,this.endIso,e,this.holidayChecker))},formatDays(e){return e==null?"—":Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async initFromProps(){const e=this.typeOptions;if(this.request)this.selectedType=G.enabledLeaveTypes.find(a=>a.id===this.request.typeId)||e[0],this.startIso=this.request.startDate,this.endIso=this.request.endDate,this.workingDays=String(this.request.workingDays),this.reason=this.request.reason||"",this.request.replacementUid&&(this.selectedReplacement={uid:this.request.replacementUid,displayName:this.request.replacementName||this.request.replacementUid});else{this.selectedType=e[0]||null;const a=$e(new Date);this.startIso=a,this.endIso=a,this.hrMode||(this.selectedReplacement=this.pastReplacements()[0]||null)}this.hrMode||(this.replacementOptions=this.pastReplacements(),this.selectedReplacement&&!this.replacementOptions.some(a=>a.uid===this.selectedReplacement.uid)&&(this.replacementOptions=[this.selectedReplacement,...this.replacementOptions]))},pastReplacements(){const e=new Set,a=[],t=G.requests.filter(s=>s.employeeUid===G.session.uid&&s.replacementUid).sort((s,n)=>n.id-s.id);for(const s of t)e.has(s.replacementUid)||(e.add(s.replacementUid),a.push({uid:s.replacementUid,displayName:s.replacementName||s.replacementUid}));return a},async onEmployeeSearch(e){if(!(!e||e.length<2)){this.employeeLoading=!0;try{this.employeeOptions=await ce.searchUsers(e)}catch{this.employeeOptions=[]}finally{this.employeeLoading=!1}}},async onReplacementSearch(e){if(!(!e||e.length<2)){this.replacementLoading=!0;try{const a=await ce.searchUsers(e);this.replacementOptions=a.filter(t=>t.uid!==this.subjectUid)}catch{this.replacementOptions=[]}finally{this.replacementLoading=!1}}},async submit(){if(!this.canSubmit)return;this.submitting=!0;const e={typeId:this.selectedType.id,startDate:this.startIso,endDate:this.endIso,workingDays:this.workingDaysNum,reason:this.reason};this.hrMode&&this.selectedEmployee&&(e.employeeUid=this.selectedEmployee.uid),this.needsReplacement&&this.selectedReplacement&&(e.replacementUid=this.selectedReplacement.uid);try{this.isEdit?await G.updateRequest(this.request.id,e):await G.createRequest(e),this.$emit("saved")}catch(a){We(a.response?.data?.message||R("absence","Could not save the request"))}finally{this.submitting=!1}}}},Mm={class:"dialog"},Rm={class:"dialog__title"},$m={key:1,class:"dialog__field"},zm={class:"dialog__label"},Pm={class:"dialog__field"},Om={class:"dialog__label"},Vm={class:"opt"},qm={class:"opt__icon"},Hm={class:"opt"},Fm={class:"opt__icon"},Um={key:2,class:"dialog__field"},jm={class:"dialog__label"},Wm={class:"dialog__hint"},Gm={class:"dialog__row"},Zm={class:"dialog__field"},Km={class:"dialog__label"},Ym={class:"dialog__field"},Xm={class:"dialog__label"},Qm={class:"dialog__field"},Jm={class:"dialog__label"},ef={class:"dialog__hint"},tf=["href"],af={class:"preview__balance"},nf={class:"preview__bar",role:"presentation"},sf={class:"dialog__field"},lf={class:"dialog__label"},of={key:0,class:"dialog__req"},rf={key:1,class:"dialog__optional"},cf={class:"dialog__actions"};function uf(e,a,t,s,n,i){const l=k("NcNoteCard"),d=k("NcSelect"),h=k("NcDateTimePickerNative"),f=k("NcTextField"),m=k("NcTextArea"),u=k("NcButton"),g=k("NcLoadingIcon"),y=k("Send"),S=k("NcModal");return o(),M(S,{name:i.dialogTitle,size:"normal",onClose:a[7]||(a[7]=b=>e.$emit("close"))},{default:x(()=>[r("div",Mm,[r("h2",Rm,p(i.dialogTitle),1),t.hrMode?(o(),M(l,{key:0,type:"info"},{default:x(()=>[V(p(i.t("absence","Record an absence on behalf of an employee (e.g. sick leave). It is booked directly, without an approval step.")),1)]),_:1})):C("",!0),t.hrMode?(o(),c("div",$m,[r("label",zm,p(i.t("absence","Employee")),1),w(d,{modelValue:n.selectedEmployee,"onUpdate:modelValue":a[0]||(a[0]=b=>n.selectedEmployee=b),options:n.employeeOptions,loading:n.employeeLoading,"user-select":!0,label:"displayName",filterable:!1,placeholder:i.t("absence","Search for an employee…"),"aria-label-combobox":i.t("absence","Employee"),onSearch:i.onEmployeeSearch},null,8,["modelValue","options","loading","placeholder","aria-label-combobox","onSearch"])])):C("",!0),r("div",Pm,[r("label",Om,p(i.t("absence","Leave type")),1),w(d,{modelValue:n.selectedType,"onUpdate:modelValue":a[1]||(a[1]=b=>n.selectedType=b),options:i.typeOptions,label:"label",clearable:!1,"aria-label-combobox":i.t("absence","Leave type")},{option:x(({icon:b,label:_})=>[r("span",Vm,[r("span",qm,p(b),1),V(p(_),1)])]),"selected-option":x(({icon:b,label:_})=>[r("span",Hm,[r("span",Fm,p(b),1),V(p(_),1)])]),_:1},8,["modelValue","options","aria-label-combobox"])]),i.needsReplacement?(o(),c("div",Um,[r("label",jm,[V(p(i.t("absence","Replacement")),1),a[8]||(a[8]=r("span",{class:"dialog__req"},"*",-1))]),w(d,{modelValue:n.selectedReplacement,"onUpdate:modelValue":a[2]||(a[2]=b=>n.selectedReplacement=b),options:n.replacementOptions,loading:n.replacementLoading,"user-select":!0,label:"displayName",filterable:!1,placeholder:i.t("absence","Who covers for you?"),"aria-label-combobox":i.t("absence","Replacement"),onSearch:i.onReplacementSearch},null,8,["modelValue","options","loading","placeholder","aria-label-combobox","onSearch"]),r("p",Wm,p(i.t("absence","A colleague who covers your duties while you are away. They are notified once your leave is approved.")),1)])):C("",!0),r("div",Gm,[r("div",Zm,[r("label",Km,p(i.t("absence","From")),1),w(h,{modelValue:i.startDate,"onUpdate:modelValue":a[3]||(a[3]=b=>i.startDate=b),type:"date"},null,8,["modelValue"])]),r("div",Ym,[r("label",Xm,p(i.t("absence","To")),1),w(h,{modelValue:i.endDate,"onUpdate:modelValue":a[4]||(a[4]=b=>i.endDate=b),type:"date"},null,8,["modelValue"])])]),r("div",Qm,[r("label",Jm,[V(p(i.t("absence","Working days")),1),a[9]||(a[9]=r("span",{class:"dialog__req"},"*",-1))]),w(f,{"model-value":n.workingDays,type:"number",min:"0",step:"0.5",label:i.t("absence","Working days"),"label-visible":!1,"onUpdate:modelValue":i.onWorkingDaysInput},null,8,["model-value","label","onUpdate:modelValue"]),r("p",ef,[i.prefillActive?(o(),c(Q,{key:0},[V(p(i.t("absence","Prefilled from your"))+" ",1),r("a",{href:i.settingsUrl,target:"_blank",rel:"noreferrer noopener",class:"dialog__link"},p(i.t("absence","working days and public holidays")),9,tf),V(" "+p(i.t("absence","— adjust it if needed. Your manager will verify it.")),1)],64)):(o(),c(Q,{key:1},[V(p(i.t("absence","Number of working days this absence covers (excluding weekends and public holidays). Your manager will verify it.")),1)],64))])]),i.balanceRow&&!t.hrMode&&i.workingDaysNum>0?(o(),c("div",{key:3,class:"preview",style:oe({"--type-color":i.typeColor})},[r("div",af,[r("span",null,p(i.t("absence","Available")),1),r("strong",null,p(i.formatDays(i.balanceRow.available))+" → "+p(i.formatDays(i.projectedAvailable)),1),r("span",nf,[r("span",{class:"preview__bar-fill",style:oe({width:i.availablePct+"%"})},null,4)])])],4)):C("",!0),i.wouldGoNegative?(o(),M(l,{key:4,type:"warning"},{default:x(()=>[V(p(i.t("absence","Heads up: this goes beyond your available balance. You can still submit — HR may approve it.")),1)]),_:1})):C("",!0),r("div",sf,[r("label",lf,[V(p(i.t("absence","Reason"))+" ",1),i.requiresNote?(o(),c("span",of,"*")):(o(),c("span",rf,p(i.t("absence","(optional)")),1))]),w(m,{modelValue:n.reason,"onUpdate:modelValue":a[5]||(a[5]=b=>n.reason=b),placeholder:i.t("absence","Optional note for your manager"),resize:"vertical",rows:"2"},null,8,["modelValue","placeholder"])]),r("div",cf,[w(u,{variant:"tertiary",onClick:a[6]||(a[6]=b=>e.$emit("close"))},{default:x(()=>[V(p(i.t("absence","Cancel")),1)]),_:1}),w(u,{variant:"primary",disabled:!i.canSubmit||n.submitting,onClick:i.submit},{icon:x(()=>[n.submitting?(o(),M(g,{key:0,size:20})):(o(),M(y,{key:1,size:20}))]),default:x(()=>[V(" "+p(i.submitLabel),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"])}const df=U(Bm,[["render",uf],["__scopeId","data-v-c593e3d6"]]),pf={mounted(e){e.focus()}},hf="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",mf="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",ui="numeric",di="ascii",pi="alpha",$t="asciinumeric",It="alphanumeric",hi="domain",gs="emoji",ff="scheme",gf="slashscheme",Za="whitespace";function yf(e,a){return e in a||(a[e]=[]),a[e]}function ut(e,a,t){a[ui]&&(a[$t]=!0,a[It]=!0),a[di]&&(a[$t]=!0,a[pi]=!0),a[$t]&&(a[It]=!0),a[pi]&&(a[It]=!0),a[It]&&(a[hi]=!0),a[gs]&&(a[hi]=!0);for(const s in a){const n=yf(s,t);n.indexOf(e)<0&&n.push(e)}}function bf(e,a){const t={};for(const s in a)a[s].indexOf(e)>=0&&(t[s]=!0);return t}function Se(e=null){this.j={},this.jr=[],this.jd=null,this.t=e}Se.groups={},Se.prototype={accepts(){return!!this.t},go(e){const a=this,t=a.j[e];if(t)return t;for(let s=0;se.ta(a,t,s,n),de=(e,a,t,s,n)=>e.tr(a,t,s,n),yn=(e,a,t,s,n)=>e.ts(a,t,s,n),L=(e,a,t,s,n)=>e.tt(a,t,s,n),je="WORD",mi="UWORD",ys="ASCIINUMERICAL",bs="ALPHANUMERICAL",Ft="LOCALHOST",fi="TLD",gi="UTLD",ta="SCHEME",vt="SLASH_SCHEME",Bi="NUM",yi="WS",Mi="NL",zt="OPENBRACE",Pt="CLOSEBRACE",na="OPENBRACKET",sa="CLOSEBRACKET",la="OPENPAREN",oa="CLOSEPAREN",ra="OPENANGLEBRACKET",ca="CLOSEANGLEBRACKET",ua="FULLWIDTHLEFTPAREN",da="FULLWIDTHRIGHTPAREN",pa="LEFTCORNERBRACKET",ha="RIGHTCORNERBRACKET",ma="LEFTWHITECORNERBRACKET",fa="RIGHTWHITECORNERBRACKET",ga="FULLWIDTHLESSTHAN",ya="FULLWIDTHGREATERTHAN",ba="AMPERSAND",va="APOSTROPHE",_a="ASTERISK",tt="AT",wa="BACKSLASH",Ca="BACKTICK",ka="CARET",dt="COLON",Ri="COMMA",Aa="DOLLAR",Oe="DOT",xa="EQUALS",$i="EXCLAMATION",Be="HYPHEN",Ot="PERCENT",Sa="PIPE",Ea="PLUS",Na="POUND",Vt="QUERY",zi="QUOTE",vs="FULLWIDTHMIDDLEDOT",Pi="SEMI",Ve="SLASH",qt="TILDE",Ta="UNDERSCORE",_s="EMOJI",Da="SYM";var ws=Object.freeze({__proto__:null,ALPHANUMERICAL:bs,AMPERSAND:ba,APOSTROPHE:va,ASCIINUMERICAL:ys,ASTERISK:_a,AT:tt,BACKSLASH:wa,BACKTICK:Ca,CARET:ka,CLOSEANGLEBRACKET:ca,CLOSEBRACE:Pt,CLOSEBRACKET:sa,CLOSEPAREN:oa,COLON:dt,COMMA:Ri,DOLLAR:Aa,DOT:Oe,EMOJI:_s,EQUALS:xa,EXCLAMATION:$i,FULLWIDTHGREATERTHAN:ya,FULLWIDTHLEFTPAREN:ua,FULLWIDTHLESSTHAN:ga,FULLWIDTHMIDDLEDOT:vs,FULLWIDTHRIGHTPAREN:da,HYPHEN:Be,LEFTCORNERBRACKET:pa,LEFTWHITECORNERBRACKET:ma,LOCALHOST:Ft,NL:Mi,NUM:Bi,OPENANGLEBRACKET:ra,OPENBRACE:zt,OPENBRACKET:na,OPENPAREN:la,PERCENT:Ot,PIPE:Sa,PLUS:Ea,POUND:Na,QUERY:Vt,QUOTE:zi,RIGHTCORNERBRACKET:ha,RIGHTWHITECORNERBRACKET:fa,SCHEME:ta,SEMI:Pi,SLASH:Ve,SLASH_SCHEME:vt,SYM:Da,TILDE:qt,TLD:fi,UNDERSCORE:Ta,UTLD:gi,UWORD:mi,WORD:je,WS:yi});const Fe=/[a-z]/,Tt=new RegExp("\\p{L}","u"),Ka=new RegExp("\\p{Emoji}","u"),Ue=/\d/,Ya=/\s/,bn="\r",Xa=` -`,vf="️",_f="‍",Qa="";let Kt=null,Yt=null;function wf(e=[]){const a={};Se.groups=a;const t=new Se;Kt==null&&(Kt=vn(hf)),Yt==null&&(Yt=vn(mf)),L(t,"'",va),L(t,"{",zt),L(t,"}",Pt),L(t,"[",na),L(t,"]",sa),L(t,"(",la),L(t,")",oa),L(t,"<",ra),L(t,">",ca),L(t,"(",ua),L(t,")",da),L(t,"「",pa),L(t,"」",ha),L(t,"『",ma),L(t,"』",fa),L(t,"<",ga),L(t,">",ya),L(t,"&",ba),L(t,"*",_a),L(t,"@",tt),L(t,"`",Ca),L(t,"^",ka),L(t,":",dt),L(t,",",Ri),L(t,"$",Aa),L(t,".",Oe),L(t,"=",xa),L(t,"!",$i),L(t,"-",Be),L(t,"%",Ot),L(t,"|",Sa),L(t,"+",Ea),L(t,"#",Na),L(t,"?",Vt),L(t,'"',zi),L(t,"/",Ve),L(t,";",Pi),L(t,"~",qt),L(t,"_",Ta),L(t,"\\",wa),L(t,"・",vs);const s=de(t,Ue,Bi,{[ui]:!0});de(s,Ue,s);const n=de(s,Fe,ys,{[$t]:!0}),i=de(s,Tt,bs,{[It]:!0}),l=de(t,Fe,je,{[di]:!0});de(l,Ue,n),de(l,Fe,l),de(n,Ue,n),de(n,Fe,n);const d=de(t,Tt,mi,{[pi]:!0});de(d,Fe),de(d,Ue,i),de(d,Tt,d),de(i,Ue,i),de(i,Fe),de(i,Tt,i);const h=L(t,Xa,Mi,{[Za]:!0}),f=L(t,bn,yi,{[Za]:!0}),m=de(t,Ya,yi,{[Za]:!0});L(t,Qa,m),L(f,Xa,h),L(f,Qa,m),de(f,Ya,m),L(m,bn),L(m,Xa),de(m,Ya,m),L(m,Qa,m);const u=de(t,Ka,_s,{[gs]:!0});L(u,"#"),de(u,Ka,u),L(u,vf,u);const g=L(u,_f);L(g,"#"),de(g,Ka,u);const y=[[Fe,l],[Ue,n]],S=[[Fe,null],[Tt,d],[Ue,i]];for(let b=0;bb[0]>_[0]?1:-1);for(let b=0;b=0?I[hi]=!0:Fe.test(_)?Ue.test(_)?I[$t]=!0:I[di]=!0:I[ui]=!0,yn(t,_,_,I)}return yn(t,"localhost",Ft,{ascii:!0}),t.jd=new Se(Da),{start:t,tokens:Object.assign({groups:a},ws)}}function Cs(e,a){const t=Cf(a.replace(/[A-Z]/g,d=>d.toLowerCase())),s=t.length,n=[];let i=0,l=0;for(;l=0&&(u+=t[l].length,g++),f+=t[l].length,i+=t[l].length,l++;i-=u,l-=g,f-=u,n.push({t:m.t,v:a.slice(i-f,i),s:i-f,e:i})}return n}function Cf(e){const a=[],t=e.length;let s=0;for(;s56319||s+1===t||(i=e.charCodeAt(s+1))<56320||i>57343?e[s]:e.slice(s,s+2);a.push(l),s+=l.length}return a}function Je(e,a,t,s,n){let i;const l=a.length;for(let d=0;d=0;)i++;if(i>0){a.push(t.join(""));for(let l=parseInt(e.substring(s,s+i),10);l>0;l--)t.pop();s+=i}else t.push(e[s]),s++}return a}const Ut={defaultProtocol:"http",events:null,format:_n,formatHref:_n,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Oi(e,a=null){let t=Object.assign({},Ut);e&&(t=Object.assign(t,e instanceof Oi?e.o:e));const s=t.ignoreTags,n=[];for(let i=0;it?s.substring(0,t)+"…":s},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e=Ut.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const a=this,t=this.toHref(e.get("defaultProtocol")),s=e.get("formatHref",t,this),n=e.get("tagName",t,a),i=this.toFormattedString(e),l={},d=e.get("className",t,a),h=e.get("target",t,a),f=e.get("rel",t,a),m=e.getObj("attributes",t,a),u=e.getObj("events",t,a);return l.href=s,d&&(l.class=d),h&&(l.target=h),f&&(l.rel=f),m&&Object.assign(l,m),{tagName:n,attributes:l,content:i,eventListeners:u}}};function Oa(e,a){class t extends ks{constructor(n,i){super(n,i),this.t=e}}for(const s in a)t.prototype[s]=a[s];return t.t=e,t}const kf=Oa("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),wn=Oa("text"),Af=Oa("nl"),Xt=Oa("url",{isLink:!0,toHref(e=Ut.defaultProtocol){return this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==Ft&&e[1].t===dt}}),Ie=e=>new Se(e);function xf({groups:e}){const a=e.domain.concat([ba,_a,tt,wa,Ca,ka,Aa,xa,Be,Bi,Ot,Sa,Ea,Na,Ve,Da,qt,Ta]),t=[va,dt,Ri,Oe,$i,Ot,Vt,zi,Pi,ra,ca,zt,Pt,sa,na,la,oa,ua,da,pa,ha,ma,fa,ga,ya],s=[ba,va,_a,wa,Ca,ka,Aa,xa,Be,zt,Pt,Ot,Sa,Ea,Na,Vt,Ve,Da,qt,Ta],n=Ie(),i=L(n,qt);X(i,s,i),X(i,e.domain,i);const l=Ie(),d=Ie(),h=Ie();X(n,e.domain,l),X(n,e.scheme,d),X(n,e.slashscheme,h),X(l,s,i),X(l,e.domain,l);const f=L(l,tt);L(i,tt,f),L(d,tt,f),L(h,tt,f);const m=L(i,Oe);X(m,s,i),X(m,e.domain,i);const u=Ie();X(f,e.domain,u),X(u,e.domain,u);const g=L(u,Oe);X(g,e.domain,u);const y=Ie(kf);X(g,e.tld,y),X(g,e.utld,y),L(f,Ft,y);const S=L(u,Be);L(S,Be,S),X(S,e.domain,u),X(y,e.domain,u),L(y,Oe,g),L(y,Be,S);const b=L(l,Be),_=L(l,Oe);L(b,Be,b),X(b,e.domain,l),X(_,s,i),X(_,e.domain,l);const I=Ie(Xt);X(_,e.tld,I),X(_,e.utld,I),X(I,e.domain,l),X(I,s,i),L(I,Oe,_),L(I,Be,b),L(I,tt,f);const $=L(I,dt),z=Ie(Xt);X($,e.numeric,z);const W=Ie(Xt),ie=Ie();X(W,a,W),X(W,t,ie),X(ie,a,W),X(ie,t,ie),L(I,Ve,W),L(z,Ve,W);const se=L(d,dt),le=L(h,dt),te=L(le,Ve),re=L(te,Ve);X(d,e.domain,l),L(d,Oe,_),L(d,Be,b),X(h,e.domain,l),L(h,Oe,_),L(h,Be,b),X(se,e.domain,W),L(se,Ve,W),L(se,Vt,W),X(re,e.domain,W),X(re,a,W),L(re,Ve,W);const Ge=[[zt,Pt],[na,sa],[la,oa],[ra,ca],[ua,da],[pa,ha],[ma,fa],[ga,ya]];for(let Ze=0;Ze=0&&g++,n++,m++;if(g<0)n-=m,n0&&(i.push(Ja(wn,a,l)),l=[]),n-=g,m-=g;const y=u.t,S=t.slice(n-m,n);i.push(Ja(y,a,S))}}return l.length>0&&i.push(Ja(wn,a,l)),i}function Ja(e,a,t){const s=t[0].s,n=t[t.length-1].e,i=a.slice(s,n);return new e(i,t)}const ge={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function Ef(){ge.scanner=wf(ge.customSchemes);for(let e=0;e -`):!n.isLink||!a.check(n)?s.push($n(n.toString())):s.push(a.render(n));return s.join("")}function Tf(e){return e.replace(/"/g,""")}function Df(e){const a=[];for(const t in e){const s=e[t]+"";a.push(`${t}="${Tf(s)}"`)}return a.join(" ")}function Lf({tagName:e,attributes:a,content:t}){return`<${e} ${Df(a)}>${$n(t)}`}const If=function(e,{value:a}){a?.linkify===!0&&(e.innerHTML=Nf(a.text))},Bf=["title"],Mf=ve({__name:"NcAppSidebarHeader",props:{name:{},title:{},linkify:{type:Boolean}},setup(e){const a=Ae("NcAppSidebar:header:ref");return(t,s)=>Ee((o(),c("h2",{ref_key:"headerRef",ref:a,tabindex:"-1",title:e.title},[V(p(e.name),1)],8,Bf)),[[K(If),{text:e.name,linkify:e.linkify}]])}}),Rf={name:"DockRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},$f=["aria-hidden","aria-label"],zf=["fill","width","height"],Pf={d:"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z"},Of={key:0};function Vf(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon dock-right-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Pf,[t.title?(o(),c("title",Of,p(t.title),1)):C("",!0)])],8,zf))],16,$f)}const qf=ee(Rf,[["render",Vf]]),Hf={name:"StarIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ff=["aria-hidden","aria-label"],Uf=["fill","width","height"],jf={d:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"},Wf={key:0};function Gf(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon star-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",jf,[t.title?(o(),c("title",Wf,p(t.title),1)):C("",!0)])],8,Uf))],16,Ff)}const Zf=ee(Hf,[["render",Gf]]),Kf={name:"StarOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Yf=["aria-hidden","aria-label"],Xf=["fill","width","height"],Qf={d:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z"},Jf={key:0};function eg(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon star-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Qf,[t.title?(o(),c("title",Jf,p(t.title),1)):C("",!0)])],8,Xf))],16,Yf)}const tg=ee(Kf,[["render",eg]]),ag=["aria-selected","tabindex"],ig=ve({__name:"NcAppSidebarTabsButton",props:mt({tab:{}},{selected:{type:Boolean,required:!0},selectedModifiers:{}}),emits:["update:selected"],setup(e){const a=ft(e,"selected");return(t,s)=>(o(),c("button",{class:F(["button-vue",[t.$style.sidebarTabsButton,{[t.$style.sidebarTabsButton_selected]:a.value,[t.$style.sidebarTabsButton_legacy]:K(st)}]]),role:"tab","aria-selected":a.value,tabindex:a.value?0:-1,onClick:s[0]||(s[0]=n=>a.value=!0)},[r("span",{class:F(t.$style.sidebarTabsButton__icon)},[w(Ni,{vnodes:e.tab.renderIcon()},{default:x(()=>[r("span",{class:F([t.$style.sidebarTabsButton__legacyIcon,e.tab.icon])},null,2)]),_:1},8,["vnodes"])],2),r("span",{class:F(t.$style.sidebarTabsButton__name)},p(e.tab.name),3)],10,ag))}}),ng="_sidebarTabsButton_Uw0-N",sg="_sidebarTabsButton_legacy_FsjhV",lg="_sidebarTabsButton_selected_MiFwn",og="_sidebarTabsButton__name_Uzc5r",rg="_sidebarTabsButton__icon_-Zy-g",cg="_sidebarTabsButton__legacyIcon_svLe8",ug={"material-design-icon":"_material-design-icon_fPSY2",sidebarTabsButton:ng,sidebarTabsButton_legacy:sg,sidebarTabsButton_selected:lg,sidebarTabsButton__name:og,sidebarTabsButton__icon:rg,sidebarTabsButton__legacyIcon:cg},dg={$style:ug},pg=ee(ig,[["__cssModules",dg]]),hg={name:"NcAppSidebarTabs",components:{NcAppSidebarTabsButton:pg},provide(){return{registerTab:this.registerTab,unregisterTab:this.unregisterTab,getActiveTab:()=>this.activeTab,isTablistShown:()=>this.hasMultipleTabs}},props:{active:{type:String,default:""},forceTabs:{type:Boolean,default:!1}},emits:["update:active"],data(e){return{tabs:[],activeTab:e.active,isLegacy34:st}},computed:{hasMultipleTabs(){return this.tabs.length>1},showForSingleTab(){return this.forceTabs&&this.tabs.length===1},currentTabIndex(){return this.tabs.findIndex(e=>e.id===this.activeTab)}},watch:{tabs(){this.active&&this.updateActive()},active(e){e!==this.activeTab&&this.updateActive()}},methods:{setActive(e){this.activeTab=e,this.$emit("update:active",this.activeTab)},focusPreviousTab(){this.currentTabIndex>0&&this.setActive(this.tabs[this.currentTabIndex-1].id),this.focusActiveTab()},focusNextTab(){this.currentTabIndexe===this.active)?this.active:this.tabs[0]?.id??""},registerTab(e){this.tabs.push(e),this.tabs.sort((a,t)=>a.order===t.order?a.name.localeCompare(t.name,[kn()]):a.order-t.order),this.updateActive()},unregisterTab(e){const a=this.tabs.findIndex(t=>t.id===e);a!==-1&&this.tabs.splice(a,1),this.activeTab===e&&this.updateActive()}}},mg={class:"app-sidebar-tabs"};function fg(e,a,t,s,n,i){const l=k("NcAppSidebarTabsButton");return o(),c("div",mg,[i.hasMultipleTabs||i.showForSingleTab?(o(),c("div",{key:0,role:"tablist",class:F(["app-sidebar-tabs__nav",{"app-sidebar-tabs__nav--legacy":n.isLegacy34}]),onKeydown:[a[0]||(a[0]=xe(me((...d)=>i.focusPreviousTab&&i.focusPreviousTab(...d),["exact","prevent","stop"]),["left"])),a[1]||(a[1]=xe(me((...d)=>i.focusNextTab&&i.focusNextTab(...d),["exact","prevent","stop"]),["right"])),a[2]||(a[2]=xe(me((...d)=>i.focusActiveTabContent&&i.focusActiveTabContent(...d),["exact","prevent","stop"]),["tab"])),a[3]||(a[3]=xe(me((...d)=>i.focusFirstTab&&i.focusFirstTab(...d),["exact","prevent","stop"]),["home"])),a[4]||(a[4]=xe(me((...d)=>i.focusLastTab&&i.focusLastTab(...d),["exact","prevent","stop"]),["end"])),a[5]||(a[5]=xe(me((...d)=>i.focusFirstTab&&i.focusFirstTab(...d),["exact","prevent","stop"]),["page-up"])),a[6]||(a[6]=xe(me((...d)=>i.focusLastTab&&i.focusLastTab(...d),["exact","prevent","stop"]),["page-down"]))]},[(o(!0),c(Q,null,he(n.tabs,d=>(o(),M(l,{id:`tab-button-${d.id}`,key:d.id,class:"app-sidebar-tabs__tab","aria-controls":`tab-${d.id}`,selected:n.activeTab===d.id,tab:d,"onUpdate:selected":h=>i.setActive(d.id)},null,8,["id","aria-controls","selected","tab","onUpdate:selected"]))),128))],34)):C("",!0),r("div",{class:F(["app-sidebar-tabs__content",{"app-sidebar-tabs__content--multiple":i.hasMultipleTabs}])},[q(e.$slots,"default",{},void 0,!0)],2)])}const gg=ee(hg,[["render",fg],["__scopeId","data-v-e74d1502"]]);De(gl);const yg={name:"NcAppSidebar",components:{NcActions:pt,NcAppSidebarHeader:Mf,NcAppSidebarTabs:gg,NcButton:be,NcLoadingIcon:Ba,NcEmptyContent:lt,IconArrowRight:ms,IconClose:Bn,IconDockRight:qf,IconStar:Zf,IconStarOutline:tg},directives:{Focus:pf,ClickOutside:ts},inject:{ncContentSelector:{from:hs,default:void 0}},props:{active:{type:String,default:""},name:{type:String,required:!0},nameEditable:{type:Boolean,default:!1},namePlaceholder:{type:String,default:""},subname:{type:String,default:""},subtitle:{type:String,default:""},background:{type:String,default:""},starred:{type:Boolean,default:null},starLoading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},empty:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceTabs:{type:Boolean,default:!1},linkifyName:{type:Boolean,default:!1},title:{type:String,default:""},open:{type:Boolean,default:!0},toggleClasses:{type:[String,Array,Object],default:""},toggleAttrs:{type:Object,default:void 0},noToggle:{type:Boolean,default:!1}},emits:["close","closed","opened","update:active","update:name","update:nameEditable","update:open","update:starred","submitName","dismissEditing"],setup(){const e=Me(null);return ye("NcAppSidebar:header:ref",e),{uid:kt(),isMobile:vl(),headerRef:e}},data(){return{changeNameTranslated:j("Change name"),closeTranslated:j("Close sidebar"),favoriteTranslated:j("Favorite"),isStarred:this.starred,focusTrap:null,elementToReturnFocus:null}},computed:{canStar(){return this.isStarred!==null},hasFigureClickListener(){return!!this.$attrs.onFigureClick}},watch:{starred(){this.isStarred=this.starred},isMobile(){this.toggleFocusTrap()},open(){this.checkToggleButtonContainerAvailability()}},created(){this.preserveElementToReturnFocus(),this.checkToggleButtonContainerAvailability()},beforeUnmount(){this.$emit("closed"),this.focusTrap?.deactivate()},methods:{isSlotPopulated:yl,t:j,preserveElementToReturnFocus(){if(document.activeElement&&document.activeElement!==document.body&&(this.elementToReturnFocus=document.activeElement,this.elementToReturnFocus.getAttribute("role")==="menuitem")){const e=this.elementToReturnFocus.closest('[role="menu"]');if(e){const a=document.querySelector(`[aria-controls="${e.id}"]`);this.elementToReturnFocus=a}}},initFocusTrap(){this.focusTrap||(this.focusTrap=Ln([this.$refs.sidebar,document.querySelector("#header")],{allowOutsideClick:!0,fallbackFocus:this.$refs.closeButton.$el,trapStack:In(),escapeDeactivates:!1}))},toggleFocusTrap(){this.open&&this.isMobile?(this.initFocusTrap(),this.focusTrap.activate()):this.focusTrap?.deactivate()},onKeydownEsc(e){this.isMobile&&(e.stopPropagation(),this.closeSidebar())},onAfterEnter(e){this.elementToReturnFocus&&this.focus(),this.toggleFocusTrap(),this.$emit("opened",e)},onAfterLeave(e){this.$emit("closed",e),this.toggleFocusTrap(),this.elementToReturnFocus?.focus({focusVisible:!0}),this.elementToReturnFocus=null},closeSidebar(e){this.$emit("close",e),this.$emit("update:open",!1)},onFigureClick(e){this.$emit("figureClick",e)},toggleStarred(){this.isStarred=!this.isStarred,this.$emit("update:starred",this.isStarred)},async editName(){this.$emit("update:nameEditable",!0),this.nameEditable&&(await this.$nextTick(),this.$refs.nameInput.focus())},focus(){if(!this.open&&!this.noToggle){this.$refs.toggle.$el.focus();return}try{this.headerRef.focus()}catch{}},focusActiveTabContent(){this.preserveElementToReturnFocus(),this.$refs.tabs.focusActiveTabContent()},checkToggleButtonContainerAvailability(){this.open===!1&&!this.noToggle&&!this.ncContentSelector&&ze.warn("[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.")},onNameInput(e){this.$emit("update:name",e.target.value)},onSubmitName(e){this.$emit("update:nameEditable",!1),this.$emit("submitName",e)},onDismissEditing(){this.$emit("update:nameEditable",!1),this.$emit("dismissEditing")},onUpdateActive(e){this.$emit("update:active",e)}}},bg=["aria-labelledby"],vg={class:"app-sidebar-header__info"},_g={key:0,class:"app-sidebar-header__tertiary-actions"},wg={class:"app-sidebar-header__name-container"},Cg={class:"app-sidebar-header__mainname-container"},kg=["placeholder","value"],Ag=["title"],xg={key:2,class:"app-sidebar-header__description"};function Sg(e,a,t,s,n,i){const l=k("IconDockRight"),d=k("NcButton"),h=k("NcLoadingIcon"),f=k("IconStar"),m=k("IconStarOutline"),u=k("NcAppSidebarHeader"),g=k("IconArrowRight"),y=k("NcActions"),S=k("IconClose"),b=k("NcAppSidebarTabs"),_=k("NcEmptyContent"),I=ii("focus"),$=ii("click-outside");return o(),M(bl,{appear:"",name:"slide-right",onAfterEnter:i.onAfterEnter,onAfterLeave:i.onAfterLeave},{default:x(()=>[Ee(r("aside",{id:"app-sidebar-vue",ref:"sidebar",class:"app-sidebar","aria-labelledby":`app-sidebar-vue-${s.uid}__header`,onKeydown:a[6]||(a[6]=xe((...z)=>i.onKeydownEsc&&i.onKeydownEsc(...z),["esc"]))},[i.ncContentSelector&&!t.open&&!t.noToggle?(o(),M(Mn,{key:0,to:i.ncContentSelector},[w(d,J({ref:"toggle","aria-label":i.t("Open sidebar"),class:["app-sidebar__toggle",t.toggleClasses],variant:"tertiary"},t.toggleAttrs,{onClick:a[0]||(a[0]=z=>e.$emit("update:open",!0))}),{icon:x(()=>[q(e.$slots,"toggle-icon",{},()=>[w(l,{size:20})],!0)]),_:3},16,["aria-label","class"])],8,["to"])):C("",!0),r("header",{class:F(["app-sidebar-header",{"app-sidebar-header--with-figure":i.isSlotPopulated(e.$slots.header?.())||t.background,"app-sidebar-header--compact":t.compact}])},[t.empty?(o(),M(u,{key:1,class:"app-sidebar-header__mainname--hidden",name:t.name,tabindex:"-1"},null,8,["name"])):q(e.$slots,"info",{key:0},()=>[r("div",vg,[i.isSlotPopulated(e.$slots.header?.())||t.background?(o(),c("div",{key:0,class:F(["app-sidebar-header__figure",{"app-sidebar-header__figure--with-action":i.hasFigureClickListener}]),style:oe({backgroundImage:`url(${t.background})`}),tabindex:"0",onClick:a[1]||(a[1]=(...z)=>i.onFigureClick&&i.onFigureClick(...z)),onKeydown:a[2]||(a[2]=xe((...z)=>i.onFigureClick&&i.onFigureClick(...z),["enter"]))},[q(e.$slots,"header",{class:"app-sidebar-header__background"},void 0,!0)],38)):C("",!0),r("div",{class:F(["app-sidebar-header__desc",{"app-sidebar-header__desc--with-tertiary-action":i.canStar||i.isSlotPopulated(e.$slots["tertiary-actions"]?.()),"app-sidebar-header__desc--editable":t.nameEditable&&!t.subname,"app-sidebar-header__desc--with-subname--editable":t.nameEditable&&t.subname,"app-sidebar-header__desc--without-actions":!i.isSlotPopulated(e.$slots["secondary-actions"]?.())}])},[i.canStar||i.isSlotPopulated(e.$slots["tertiary-actions"]?.())?(o(),c("div",_g,[q(e.$slots,"tertiary-actions",{},()=>[i.canStar?(o(),M(d,{key:0,"aria-label":n.favoriteTranslated,pressed:n.isStarred,class:"app-sidebar-header__star",variant:"secondary",onClick:me(i.toggleStarred,["prevent"])},{icon:x(()=>[t.starLoading?(o(),M(h,{key:0})):n.isStarred?(o(),M(f,{key:1,size:20})):(o(),M(m,{key:2,size:20}))]),_:1},8,["aria-label","pressed","onClick"])):C("",!0)],!0)])):C("",!0),r("div",wg,[r("div",Cg,[Ee(w(u,{class:"app-sidebar-header__mainname",name:t.name,linkify:t.linkifyName,title:t.title,tabindex:t.nameEditable?0:-1,onClick:me(i.editName,["self"])},null,8,["name","linkify","title","tabindex","onClick"]),[[at,!t.nameEditable]]),t.nameEditable?Ee((o(),c("form",{key:0,class:"app-sidebar-header__mainname-form",onSubmit:a[5]||(a[5]=me((...z)=>i.onSubmitName&&i.onSubmitName(...z),["prevent"]))},[Ee(r("input",{ref:"nameInput",class:"app-sidebar-header__mainname-input",type:"text",placeholder:t.namePlaceholder,value:t.name,onKeydown:a[3]||(a[3]=xe(me((...z)=>i.onDismissEditing&&i.onDismissEditing(...z),["stop"]),["esc"])),onInput:a[4]||(a[4]=(...z)=>i.onNameInput&&i.onNameInput(...z))},null,40,kg),[[I]]),w(d,{"aria-label":n.changeNameTranslated,type:"submit",variant:"tertiary-no-background"},{icon:x(()=>[w(g,{size:20})]),_:1},8,["aria-label"])],32)),[[$,()=>i.onSubmitName()]]):C("",!0),i.isSlotPopulated(e.$slots["secondary-actions"]?.())?(o(),M(y,{key:1,class:"app-sidebar-header__menu",forceMenu:t.forceMenu},{default:x(()=>[q(e.$slots,"secondary-actions",{},void 0,!0)]),_:3},8,["forceMenu"])):C("",!0)]),t.subname.trim()!==""||e.$slots.subname?(o(),c("p",{key:0,title:t.subtitle||void 0,class:"app-sidebar-header__subname"},[q(e.$slots,"subname",{},()=>[V(p(t.subname),1)],!0)],8,Ag)):C("",!0)])],2)])],!0),w(d,{ref:"closeButton","aria-label":n.closeTranslated,title:n.closeTranslated,class:"app-sidebar__close",variant:"tertiary",onClick:me(i.closeSidebar,["prevent"])},{icon:x(()=>[w(S,{size:20})]),_:1},8,["aria-label","title","onClick"]),i.isSlotPopulated(e.$slots.description?.())&&!t.empty?(o(),c("div",xg,[q(e.$slots,"description",{},void 0,!0)])):C("",!0)],2),Ee(w(b,{ref:"tabs",active:t.active,forceTabs:t.forceTabs,"onUpdate:active":i.onUpdateActive},{default:x(()=>[q(e.$slots,"default",{},void 0,!0)]),_:3},8,["active","forceTabs","onUpdate:active"]),[[at,!t.loading]]),t.loading?(o(),M(_,{key:1},{icon:x(()=>[w(h,{size:64})]),_:1})):C("",!0)],40,bg),[[at,t.open]])]),_:3},8,["onAfterEnter","onAfterLeave"])}const Eg=ee(yg,[["render",Sg],["__scopeId","data-v-e8979b7f"]]),Ng={name:"NcAppSidebarTab",inject:["registerTab","unregisterTab","getActiveTab","isTablistShown"],props:{id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,default:""},order:{type:Number,default:0}},emits:["bottomReached","scroll"],expose:["id","name","icon","order","renderIcon"],computed:{isActive(){return this.getActiveTab()===this.id}},created(){this.registerTab(this)},beforeUnmount(){this.unregisterTab(this.id)},methods:{onScroll(e){this.$el.scrollHeight-this.$el.scrollTop===this.$el.clientHeight&&this.$emit("bottomReached",e),this.$emit("scroll",e)},renderIcon(){return this.$slots.icon?.()}}},Tg=["id","aria-hidden","aria-label","aria-labelledby","role","tabindex"],Dg={class:"hidden-visually"};function Lg(e,a,t,s,n,i){return o(),c("section",{id:`tab-${t.id}`,"aria-hidden":!i.isActive,"aria-label":i.isTablistShown()?void 0:t.name,"aria-labelledby":i.isTablistShown()?`tab-button-${t.id}`:void 0,class:F(["app-sidebar__tab",{"app-sidebar__tab--active":i.isActive}]),role:i.isTablistShown()?"tabpanel":void 0,tabindex:i.isTablistShown()?0:-1,onScroll:a[0]||(a[0]=(...l)=>i.onScroll&&i.onScroll(...l))},[r("h3",Dg,p(t.name),1),q(e.$slots,"default",{},void 0,!0)],42,Tg)}const Ig=ee(Ng,[["render",Lg],["__scopeId","data-v-dba10798"]]),Bg={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mg=["aria-hidden","aria-label"],Rg=["fill","width","height"],$g={d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"},zg={key:0};function Pg(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon information-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",$g,[t.title?(o(),c("title",zg,p(t.title),1)):C("",!0)])],8,Rg))],16,Mg)}const Og=U(Bg,[["render",Pg]]),Vg={name:"CommentOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},qg=["aria-hidden","aria-label"],Hg=["fill","width","height"],Fg={d:"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10Z"},Ug={key:0};function jg(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon comment-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Fg,[t.title?(o(),c("title",Ug,p(t.title),1)):C("",!0)])],8,Hg))],16,qg)}const Wg=U(Vg,[["render",jg]]),Gg={name:"HistoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Zg=["aria-hidden","aria-label"],Kg=["fill","width","height"],Yg={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"},Xg={key:0};function Qg(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon history-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Yg,[t.title?(o(),c("title",Xg,p(t.title),1)):C("",!0)])],8,Kg))],16,Zg)}const Jg=U(Gg,[["render",Qg]]),e2={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},t2=["aria-hidden","aria-label"],a2=["fill","width","height"],i2={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},n2={key:0};function s2(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",i2,[t.title?(o(),c("title",n2,p(t.title),1)):C("",!0)])],8,a2))],16,t2)}const l2=U(e2,[["render",s2]]),o2={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},r2=["aria-hidden","aria-label"],c2=["fill","width","height"],u2={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"},d2={key:0};function p2(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon close-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",u2,[t.title?(o(),c("title",d2,p(t.title),1)):C("",!0)])],8,c2))],16,r2)}const h2=U(o2,[["render",p2]]),m2={name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},f2=["aria-hidden","aria-label"],g2=["fill","width","height"],y2={d:"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"},b2={key:0};function v2(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon cancel-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",y2,[t.title?(o(),c("title",b2,p(t.title),1)):C("",!0)])],8,g2))],16,f2)}const _2=U(m2,[["render",v2]]),w2={name:"CoveragePanel",components:{NcAvatar:Pa,NcEmptyContent:lt,NcNoteCard:Rn,AccountGroup:Ii,StatusChip:Ti},props:{coverage:{type:Object,required:!0}},methods:{t:R}},C2={class:"section"},k2={class:"section__title"},A2={key:2,class:"overlap"},x2={class:"overlap__name"};function S2(e,a,t,s,n,i){const l=k("NcNoteCard"),d=k("NcAvatar"),h=k("StatusChip"),f=k("AccountGroup"),m=k("NcEmptyContent");return o(),c("div",C2,[t.coverage.conflict?(o(),M(l,{key:0,type:"warning"},{default:x(()=>[V(p(i.t("absence","Approving this would put {peak} team members off at once (limit {threshold}).",{peak:t.coverage.projectedPeak,threshold:t.coverage.threshold})),1)]),_:1})):(o(),M(l,{key:1,type:"success"},{default:x(()=>[V(p(i.t("absence","Coverage looks fine — at most {peak} away at once.",{peak:t.coverage.projectedPeak??t.coverage.maxConcurrent})),1)]),_:1})),r("h4",k2,p(i.t("absence","Team members off during these dates")),1),t.coverage.events.length?(o(),c("ul",A2,[(o(!0),c(Q,null,he(t.coverage.events,u=>(o(),c("li",{key:u.requestId,class:"overlap__item"},[w(d,{user:u.employeeUid,"display-name":u.displayName,size:28,"show-user-status":!1},null,8,["user","display-name"]),r("span",x2,p(u.displayName),1),w(h,{status:u.status},null,8,["status"])]))),128))])):(o(),M(m,{key:3,name:i.t("absence","Nobody else is off 🎉")},{icon:x(()=>[w(f,{size:20})]),_:1},8,["name"]))])}const E2=U(w2,[["render",S2],["__scopeId","data-v-3b478eea"]]),N2={name:"RequestStepper",props:{status:{type:String,required:!0}},computed:{steps(){const e=this.status,a={label:R("absence","Requested"),state:"done",tone:"default",icon:"📝"};let t;["PENDING","ESCALATED","WITHDRAWAL_PENDING"].includes(e)?t={label:e==="ESCALATED"?R("absence","With HR"):R("absence","In review"),state:"current",tone:"default",icon:"⏳"}:t={label:R("absence","Reviewed"),state:"done",tone:"default",icon:"👀"};let s;switch(e){case"APPROVED":s={label:R("absence","Approved"),state:"done",tone:"success",icon:"✅"};break;case"REJECTED":s={label:R("absence","Declined"),state:"done",tone:"error",icon:"✋"};break;case"CANCELLED":s={label:R("absence","Cancelled"),state:"done",tone:"muted",icon:"🚫"};break;case"WITHDRAWAL_PENDING":s={label:R("absence","Withdrawing"),state:"current",tone:"default",icon:"↩️"};break;default:s={label:R("absence","Decision"),state:"future",tone:"default",icon:"•"}}return[a,t,s]}},methods:{t:R}},T2=["aria-label"],D2={class:"stepper__dot","aria-hidden":"true"},L2={class:"stepper__label"},I2={key:0,class:"stepper__bar","aria-hidden":"true"};function B2(e,a,t,s,n,i){return o(),c("ol",{class:"stepper","aria-label":i.t("absence","Request progress")},[(o(!0),c(Q,null,he(i.steps,(l,d)=>(o(),c("li",{key:d,class:F(["stepper__step",[`stepper__step--${l.state}`,`stepper__step--${l.tone}`]])},[r("span",D2,p(l.icon),1),r("span",L2,p(l.label),1),de.$emit("close"))},nt({default:x(()=>[w(I,{id:"details",name:i.t("absence","Details"),order:1},{icon:x(()=>[w(d,{size:20})]),default:x(()=>[r("div",$2,[i.showStatus?(o(),M(h,{key:0,status:n.detail.status,class:"section__stepper"},null,8,["status"])):C("",!0),r("dl",z2,[r("dt",null,p(i.t("absence","Employee")),1),r("dd",null,p(n.detail.employeeUid),1),r("dt",null,p(i.t("absence","Type")),1),r("dd",null,[w(f,{"type-id":n.detail.typeId},null,8,["type-id"])]),r("dt",null,p(i.t("absence","Dates")),1),r("dd",null,p(i.rangeLabel),1),r("dt",null,p(i.t("absence","Working days")),1),r("dd",null,p(n.detail.workingDays),1),n.detail.replacementUid?(o(),c(Q,{key:0},[r("dt",null,p(i.t("absence","Replacement")),1),r("dd",P2,[w(m,{user:n.detail.replacementUid,size:20,"show-user-status":!1},null,8,["user"]),V(" "+p(n.detail.replacementName||n.detail.replacementUid),1)])],64)):C("",!0),n.detail.reason?(o(),c(Q,{key:1},[r("dt",null,p(i.t("absence","Reason")),1),r("dd",null,p(n.detail.reason),1)],64)):C("",!0),n.detail.decidedBy?(o(),c(Q,{key:2},[r("dt",null,p(i.t("absence","Decided by")),1),r("dd",O2,[w(m,{user:n.detail.decidedBy,size:20,"show-user-status":!1},null,8,["user"]),V(" "+p(n.detail.decidedBy),1),i.decidedAtLabel?(o(),c("span",V2," · "+p(i.decidedAtLabel),1)):C("",!0)])],64)):C("",!0),n.detail.decisionComment?(o(),c(Q,{key:3},[r("dt",null,p(i.t("absence","Decision note")),1),r("dd",null,p(n.detail.decisionComment),1)],64)):C("",!0)]),r("div",q2,[n.detail.canDecide&&i.isDecidable?(o(),c(Q,{key:0},[w(g,{type:"success",disabled:n.busy,onClick:i.approve},{icon:x(()=>[w(u,{size:20})]),default:x(()=>[V(" "+p(i.decideLabelApprove),1)]),_:1},8,["disabled","onClick"]),w(g,{type:"error",disabled:n.busy,onClick:i.startReject},{icon:x(()=>[w(y,{size:20})]),default:x(()=>[V(" "+p(i.decideLabelReject),1)]),_:1},8,["disabled","onClick"])],64)):C("",!0),n.detail.canModify&&i.isModifiable?(o(),c(Q,{key:1},[i.canEdit?(o(),M(g,{key:0,type:"secondary",disabled:n.busy,onClick:a[0]||(a[0]=te=>e.$emit("edit",n.detail))},{icon:x(()=>[w(S,{size:20})]),default:x(()=>[V(" "+p(i.t("absence","Edit")),1)]),_:1},8,["disabled"])):C("",!0),w(g,{type:"tertiary",disabled:n.busy,onClick:i.cancel},{icon:x(()=>[w(b,{size:20})]),default:x(()=>[V(" "+p(i.cancelLabel),1)]),_:1},8,["disabled","onClick"])],64)):C("",!0)]),n.rejecting?(o(),c("div",H2,[w(_,{modelValue:n.rejectComment,"onUpdate:modelValue":a[1]||(a[1]=te=>n.rejectComment=te),label:i.t("absence","Reason for declining"),rows:"2"},null,8,["modelValue","label"]),r("div",F2,[w(g,{type:"tertiary",onClick:a[2]||(a[2]=te=>n.rejecting=!1)},{default:x(()=>[V(p(i.t("absence","Back")),1)]),_:1}),w(g,{type:"error",disabled:n.rejectComment.trim()===""||n.busy,onClick:i.reject},{default:x(()=>[V(p(i.t("absence","Confirm decline")),1)]),_:1},8,["disabled","onClick"])])])):C("",!0)])]),_:1},8,["name"]),n.detail.coverage?(o(),M(I,{key:0,id:"coverage",name:i.t("absence","Coverage"),order:2},{icon:x(()=>[w($,{size:20})]),default:x(()=>[w(z,{coverage:n.detail.coverage},null,8,["coverage"])]),_:1},8,["name"])):C("",!0),w(I,{id:"comments",name:i.t("absence","Comments"),order:3},{icon:x(()=>[w(W,{size:20})]),default:x(()=>[r("div",U2,[n.detail.comments.length?(o(),c("ul",j2,[(o(!0),c(Q,null,he(n.detail.comments,te=>(o(),c("li",{key:te.id,class:"comments__item"},[r("div",W2,[w(m,{user:te.authorUid,size:24,"show-user-status":!1},null,8,["user"]),r("strong",null,p(te.authorUid),1)]),r("p",null,p(te.body),1)]))),128))])):(o(),M(ie,{key:1,name:i.t("absence","No comments yet"),description:i.t("absence","Start the conversation below.")},{icon:x(()=>[w(W,{size:20})]),_:1},8,["name","description"])),r("div",G2,[w(_,{modelValue:n.newComment,"onUpdate:modelValue":a[3]||(a[3]=te=>n.newComment=te),placeholder:i.t("absence","Add a comment…"),rows:"2"},null,8,["modelValue","placeholder"]),w(g,{type:"secondary",disabled:n.newComment.trim()===""||n.busy,onClick:i.postComment},{default:x(()=>[V(p(i.t("absence","Send")),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"]),w(I,{id:"history",name:i.t("absence","History"),order:4},{icon:x(()=>[w(se,{size:20})]),default:x(()=>[r("div",Z2,[n.detail.history&&n.detail.history.length?(o(),c("ol",K2,[(o(!0),c(Q,null,he(n.detail.history,te=>(o(),c("li",{key:te.id,class:"timeline__item"},[r("span",Y2,p(i.eventMeta(te.eventType).icon),1),r("div",X2,[r("div",Q2,[r("strong",null,p(i.eventMeta(te.eventType).label),1),r("span",J2,p(i.formatDateTime(te.createdAt)),1)]),r("div",ey,[te.actorUid==="system"?(o(),c(Q,{key:0},[V(p(i.t("absence","Automatically")),1)],64)):(o(),c(Q,{key:1},[w(m,{user:te.actorUid,size:20,"show-user-status":!1},null,8,["user"]),V(" "+p(te.actorUid),1)],64))]),te.detail?(o(),c("p",ty,p(te.detail),1)):C("",!0)])]))),128))])):(o(),M(ie,{key:1,name:i.t("absence","No history yet")},{icon:x(()=>[w(se,{size:20})]),_:1},8,["name"]))])]),_:1},8,["name"])]),_:2},[i.showStatus?{name:"description",fn:x(()=>[w(l,{status:n.detail.status},null,8,["status"])]),key:"0"}:void 0]),1032,["name","subname"])):C("",!0)}const iy=U(R2,[["render",ay],["__scopeId","data-v-64204637"]]),ny={name:"App",components:{NcContent:B1,NcAppContent:y0,NcAppNavigation:N0,NcAppNavigationNew:S1,NcAppNavigationItem:C1,NcAppNavigationCaption:I0,NcCounterBubble:Xn,RequestDialog:df,RequestSidebar:iy,Plus:Yn,CalendarAccountOutline:V1,ClipboardCheck:G1,AccountGroup:Ii,ScaleBalance:rs,ChartBar:lm,CalendarMonth:hm,Download:cs,ClipboardPlusOutline:_m},setup(){return ye("absence:openNew",()=>window.dispatchEvent(new CustomEvent("absence:open-new"))),ye("absence:openEdit",e=>window.dispatchEvent(new CustomEvent("absence:open-edit",{detail:e}))),{store:G}},data(){return{showDialog:!1,editRequest:null,recordMode:!1}},computed:{session(){return G.session},pendingCount(){return G.session.pendingApprovals||0}},mounted(){window.addEventListener("absence:open-new",this.openNewRequest),window.addEventListener("absence:open-edit",this.onOpenEditEvent),this.$route.params.id&&G.select(Number(this.$route.params.id))},beforeUnmount(){window.removeEventListener("absence:open-new",this.openNewRequest),window.removeEventListener("absence:open-edit",this.onOpenEditEvent)},methods:{openNewRequest(){this.editRequest=null,this.recordMode=!1,this.showDialog=!0},openRecord(){this.editRequest=null,this.recordMode=!0,this.showDialog=!0},onOpenEditEvent(e){this.openEditRequest(e.detail)},openEditRequest(e){this.editRequest=e,this.recordMode=!1,this.showDialog=!0,G.select(null)},closeDialog(){this.showDialog=!1,this.editRequest=null,this.recordMode=!1},onChanged(){this.closeDialog(),G.select(null),window.dispatchEvent(new CustomEvent("absence:refresh"))}}};function sy(e,a,t,s,n,i){const l=k("Plus"),d=k("NcAppNavigationNew"),h=k("CalendarAccountOutline"),f=k("NcAppNavigationItem"),m=k("ClipboardCheck"),u=k("NcCounterBubble"),g=k("AccountGroup"),y=k("NcAppNavigationCaption"),S=k("ClipboardPlusOutline"),b=k("ScaleBalance"),_=k("ChartBar"),I=k("CalendarMonth"),$=k("Download"),z=k("NcAppNavigation"),W=k("router-view"),ie=k("NcAppContent"),se=k("RequestSidebar"),le=k("RequestDialog"),te=k("NcContent");return o(),M(te,{"app-name":"absence"},{default:x(()=>[w(z,null,{list:x(()=>[w(d,{text:e.t("absence","New request"),onClick:i.openNewRequest},{icon:x(()=>[w(l,{size:20})]),_:1},8,["text","onClick"]),w(f,{name:e.t("absence","My leave"),to:{name:"my"}},{icon:x(()=>[w(h,{size:20})]),_:1},8,["name"]),i.session.isManager||i.session.isHr?(o(),M(f,{key:0,name:e.t("absence","Approvals"),to:{name:"approvals"}},nt({icon:x(()=>[w(m,{size:20})]),_:2},[i.pendingCount>0?{name:"counter",fn:x(()=>[w(u,{count:i.pendingCount,type:"highlighted"},null,8,["count"])]),key:"0"}:void 0]),1032,["name"])):C("",!0),w(f,{name:e.t("absence","Team"),to:{name:"team"}},{icon:x(()=>[w(g,{size:20})]),_:1},8,["name"]),i.session.isHr?(o(),c(Q,{key:1},[w(y,{name:e.t("absence","HR")},null,8,["name"]),w(f,{name:e.t("absence","Record absence"),onClick:i.openRecord},{icon:x(()=>[w(S,{size:20})]),_:1},8,["name","onClick"]),w(f,{name:e.t("absence","Balances"),to:{name:"hr-balances"}},{icon:x(()=>[w(b,{size:20})]),_:1},8,["name"]),w(f,{name:e.t("absence","Statistics"),to:{name:"hr-statistics"}},{icon:x(()=>[w(_,{size:20})]),_:1},8,["name"]),w(f,{name:e.t("absence","Who's off"),to:{name:"hr-whos-off"}},nt({icon:x(()=>[w(I,{size:20})]),_:2},[i.session.escalatedCount>0?{name:"counter",fn:x(()=>[w(u,{count:i.session.escalatedCount},null,8,["count"])]),key:"0"}:void 0]),1032,["name"]),w(f,{name:e.t("absence","Exports"),to:{name:"hr-exports"}},{icon:x(()=>[w($,{size:20})]),_:1},8,["name"])],64)):C("",!0)]),_:1}),w(ie,null,{default:x(()=>[w(W)]),_:1}),s.store.selectedId?(o(),M(se,{key:s.store.selectedId,onClose:a[0]||(a[0]=re=>s.store.select(null)),onEdit:i.openEditRequest,onChanged:i.onChanged},null,8,["onEdit","onChanged"])):C("",!0),n.showDialog?(o(),M(le,{key:1,request:n.editRequest,"hr-mode":n.recordMode,onClose:i.closeDialog,onSaved:i.onChanged},null,8,["request","hr-mode","onClose","onSaved"])):C("",!0)]),_:1})}const ly=U(ny,[["render",sy],["__scopeId","data-v-1e8e2458"]]),Qt=_l(ly);Qt.config.globalProperties.t=R,Qt.config.globalProperties.n=aa,Qt.use(t0),Qt.mount("#absence-app"); +`,Gr={class:"vue-skip-actions__container"},Zr={class:"vue-skip-actions__headline"},Kr={class:"vue-skip-actions__buttons"},Yr=be({__name:"NcContent",props:{appName:{}},setup(e){const a=e;fe(Pn,u),fe(qn,"#content-vue"),fe("appName",Y(()=>a.appName));const t=Ot(),s=Ee(!1),n=Ee(),i=Y(()=>n.value==="navigation"?Wr:jr);$s(()=>{const h=document.getElementById("skip-actions");h&&(h.innerHTML="",h.classList.add("vue-skip-actions"))});function l(){ot("toggle-navigation",{open:!0}),Lt(()=>{window.location.hash="app-navigation-vue",document.getElementById("app-navigation-vue").focus()})}function u(h){s.value=h,n.value||(n.value="navigation")}return(h,f)=>(o(),c("div",{id:"content-vue",class:F(["content",[`app-${e.appName.toLowerCase()}`,{"content--legacy":K(tt)}]])},[(o(),I(_n,{to:"#skip-actions"},[r("div",Gr,[r("div",Zr,d(K(j)("Keyboard navigation help")),1),r("div",Kr,[xe(_(ge,{href:"#app-navigation-vue",variant:"tertiary",onClick:he(l,["prevent"]),onFocusin:f[0]||(f[0]=m=>n.value="navigation"),onMouseover:f[1]||(f[1]=m=>n.value="navigation")},{default:x(()=>[q(d(K(j)("Skip to app navigation")),1)]),_:1},512),[[Je,s.value]]),_(ge,{href:"#app-content-vue",variant:"tertiary",onFocusin:f[2]||(f[2]=m=>n.value="content"),onMouseover:f[3]||(f[3]=m=>n.value="content")},{default:x(()=>[q(d(K(j)("Skip to main content")),1)]),_:1})]),xe(_(Se,{class:"vue-skip-actions__image",svg:i.value,size:"auto"},null,8,["svg"]),[[Je,!K(t)]])])])),V(h.$slots,"default",{},void 0,!0)],2))}}),Xr=ee(Yr,[["__scopeId","data-v-d13dcb98"]]),Qr=["title"],Jr=be({__name:"NcCounterBubble",props:{count:{},active:{type:Boolean},type:{default:""},raw:{type:Boolean}},setup(e){const a=e,t=Y(()=>a.raw?a.count.toString():new Intl.NumberFormat(Cn(),{notation:"compact",compactDisplay:"short"}).format(a.count)),s=Y(()=>{if(a.raw)return;const n=a.count.toString();if(n!==t.value)return n});return(n,i)=>(o(),c("div",{class:F(["counter-bubble__counter",{active:e.active,"counter-bubble__counter--highlighted":e.type==="highlighted","counter-bubble__counter--outlined":e.type==="outlined"}]),title:s.value},d(t.value),11,Qr))}}),Fn=ee(Jr,[["__scopeId","data-v-36ffc13f"]]),ec={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},tc=["aria-hidden","aria-label"],ac=["fill","width","height"],ic={d:"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z"},nc={key:0};function sc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon account-group-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",ic,[t.title?(o(),c("title",nc,d(t.title),1)):C("",!0)])],8,ac))],16,tc)}const _i=U(ec,[["render",sc]]),lc={name:"CalendarAccountOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},oc=["aria-hidden","aria-label"],rc=["fill","width","height"],cc={d:"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19M12 10C14 10 15 12.42 13.59 13.84C12.17 15.26 9.75 14.25 9.75 12.25C9.75 11 10.75 10 12 10M16.5 17.88V18H7.5V17.88C7.5 16.63 9.5 15.63 12 15.63S16.5 16.63 16.5 17.88Z"},uc={key:0};function dc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-account-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",cc,[t.title?(o(),c("title",uc,d(t.title),1)):C("",!0)])],8,rc))],16,oc)}const pc=U(lc,[["render",dc]]),hc={name:"CalendarMonthIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mc=["aria-hidden","aria-label"],fc=["fill","width","height"],gc={d:"M9,10V12H7V10H9M13,10V12H11V10H13M17,10V12H15V10H17M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5A2,2 0 0,1 5,3H6V1H8V3H16V1H18V3H19M19,19V8H5V19H19M9,14V16H7V14H9M13,14V16H11V14H13M17,14V16H15V14H17Z"},bc={key:0};function yc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-month-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",gc,[t.title?(o(),c("title",bc,d(t.title),1)):C("",!0)])],8,fc))],16,mc)}const vc=U(hc,[["render",yc]]),_c={name:"ChartBarIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Cc=["aria-hidden","aria-label"],wc=["fill","width","height"],kc={d:"M22,21H2V3H4V19H6V10H10V19H12V6H16V19H18V14H22V21Z"},xc={key:0};function Sc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chart-bar-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",kc,[t.title?(o(),c("title",xc,d(t.title),1)):C("",!0)])],8,wc))],16,Cc)}const Ac=U(_c,[["render",Sc]]),Lc={name:"ClipboardCheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Nc=["aria-hidden","aria-label"],Dc=["fill","width","height"],Tc={d:"M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z"},Ec={key:0};function Bc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon clipboard-check-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Tc,[t.title?(o(),c("title",Ec,d(t.title),1)):C("",!0)])],8,Dc))],16,Nc)}const Ic=U(Lc,[["render",Bc]]),Mc={name:"ClipboardPlusOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},zc=["aria-hidden","aria-label"],$c=["fill","width","height"],Rc={d:"M19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M7 7H17V5H19V19H5V5H7V7M13 12H16V14H13V17H11V14H8V12H11V9H13V12Z"},Oc={key:0};function Pc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon clipboard-plus-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Rc,[t.title?(o(),c("title",Oc,d(t.title),1)):C("",!0)])],8,$c))],16,zc)}const qc=U(Mc,[["render",Pc]]),Vc={name:"DownloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Hc=["aria-hidden","aria-label"],Fc=["fill","width","height"],Uc={d:"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"},jc={key:0};function Wc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon download-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Uc,[t.title?(o(),c("title",jc,d(t.title),1)):C("",!0)])],8,Fc))],16,Hc)}const Un=U(Vc,[["render",Wc]]),Gc={name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Zc=["aria-hidden","aria-label"],Kc=["fill","width","height"],Yc={d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"},Xc={key:0};function Qc(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon plus-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Yc,[t.title?(o(),c("title",Xc,d(t.title),1)):C("",!0)])],8,Kc))],16,Zc)}const jn=U(Gc,[["render",Qc]]),Jc={name:"ScaleBalanceIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},eu=["aria-hidden","aria-label"],tu=["fill","width","height"],au={d:"M12,3C10.73,3 9.6,3.8 9.18,5H3V7H4.95L2,14C1.53,16 3,17 5.5,17C8,17 9.56,16 9,14L6.05,7H9.17C9.5,7.85 10.15,8.5 11,8.83V20H2V22H22V20H13V8.82C13.85,8.5 14.5,7.85 14.82,7H17.95L15,14C14.53,16 16,17 18.5,17C21,17 22.56,16 22,14L19.05,7H21V5H14.83C14.4,3.8 13.27,3 12,3M12,5A1,1 0 0,1 13,6A1,1 0 0,1 12,7A1,1 0 0,1 11,6A1,1 0 0,1 12,5M5.5,10.25L7,14H4L5.5,10.25M18.5,10.25L20,14H17L18.5,10.25Z"},iu={key:0};function nu(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon scale-balance-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",au,[t.title?(o(),c("title",iu,d(t.title),1)):C("",!0)])],8,tu))],16,eu)}const Wn=U(Jc,[["render",nu]]),su=Symbol.for("nc:theme:enforced");function lu(e){const a=Y(()=>qs(e)??document.body),t=Ee(Wa(a.value)),s=Vs();function n(){t.value=Wa(a.value)}return Os(a,n,{attributes:!0}),Ae(a,n),Ae(s,n,{immediate:!0}),Ps(t)}const ou=Rs(()=>lu());function ru(){const e=ou(),a=Ce(su,void 0);return Y(()=>a?.value?a.value==="dark":e.value)}Le(Hs);const cu=["for"],uu=["id","type","value","min","max"],du=be({inheritAttrs:!1,__name:"NcDateTimePickerNative",props:ct({class:{default:void 0},id:{default:()=>yt()},inputClass:{default:""},type:{default:"date"},label:{default:()=>j("Please choose a date")},min:{default:null},max:{default:null},hideLabel:{type:Boolean}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const a=ut(e,"modelValue"),t=e,s=Y(()=>a.value?u(a.value):""),n=Y(()=>t.max?u(t.max):void 0),i=Y(()=>t.min?u(t.min):void 0);function l(f){const m=f.getFullYear().toString().padStart(4,"0"),p=(f.getMonth()+1).toString().padStart(2,"0"),g=f.getDate().toString().padStart(2,"0"),b=f.getHours().toString().padStart(2,"0"),S=f.getMinutes().toString().padStart(2,"0");return{yyyy:m,MM:p,dd:g,hh:b,mm:S}}function u(f){const{yyyy:m,MM:p,dd:g,hh:b,mm:S}=l(f);if(t.type==="datetime-local")return`${m}-${p}-${g}T${b}:${S}`;if(t.type==="date")return`${m}-${p}-${g}`;if(t.type==="month")return`${m}-${p}`;if(t.type==="time")return`${b}:${S}`;if(t.type==="week"){const y=new Date(Number.parseInt(m),0,1),A=Math.floor((f.getTime()-y.getTime())/(1440*60*1e3)),R=Math.ceil(A/7);return`${m}-W${R}`}return""}function h(f){const m=f.target;if(!m||isNaN(m.valueAsNumber))a.value=null;else if(t.type==="time"){const p=m.value,{yyyy:g,MM:b,dd:S}=l(a.value||new Date);a.value=new Date(`${g}-${b}-${S}T${p}`)}else if(t.type==="month"){const p=(new Date(m.value).getMonth()+1).toString().padStart(2,"0"),{yyyy:g,dd:b,hh:S,mm:y}=l(a.value||new Date);a.value=new Date(`${g}-${p}-${b}T${S}:${y}`)}else{const p=new Date(m.valueAsNumber).getTimezoneOffset()*1e3*60,g=m.valueAsNumber+p;a.value=new Date(g)}}return(f,m)=>(o(),c("div",{class:F(["native-datetime-picker",f.$props.class])},[r("label",{class:F(["native-datetime-picker__label",{"hidden-visually":e.hideLabel}]),for:e.id},d(e.label),11,cu),r("input",J({id:e.id,class:["native-datetime-picker__input",e.inputClass],type:e.type,value:s.value,min:i.value,max:n.value},f.$attrs,{onInput:h}),null,16,uu)],2))}}),Ci=ee(du,[["__scopeId","data-v-b97e1f7a"]]),pu={class:"textarea__main-wrapper"},hu=["id","aria-describedby","disabled","placeholder","value"],mu=["for"],fu=["id"],gu=be({inheritAttrs:!1,__name:"NcTextArea",props:ct({disabled:{type:Boolean},error:{type:Boolean},helperText:{default:void 0},id:{default:()=>yt()},inputClass:{default:""},label:{default:void 0},labelOutside:{type:Boolean},placeholder:{default:void 0},resize:{default:"both"},success:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e,{expose:a}){const t=ut(e,"modelValue"),s=e;a({focus:f,select:m});const n=ri(),i=Aa("input"),l=Y(()=>s.placeholder||(Dt?s.label:void 0));Ae(()=>s.labelOutside,()=>{!s.labelOutside&&!s.label&&Ie.warn("[NcTextArea] You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.")});const u=Y(()=>{const p=[];return s.helperText&&p.push(`${s.id}-helper-text`),typeof n["aria-describedby"]=="string"&&p.push(n["aria-describedby"]),p.join(" ")||void 0});function h(p){const{value:g}=p.target;t.value=g}function f(p){i.value.focus(p)}function m(){i.value.select()}return(p,g)=>(o(),c("div",{class:F(["textarea",[p.$attrs.class,{"textarea--disabled":e.disabled,"textarea--legacy":K(Dt)}]])},[r("div",pu,[r("textarea",J({...p.$attrs,class:void 0},{id:e.id,ref:"input","aria-describedby":u.value,"aria-live":"polite",class:["textarea__input",[e.inputClass,{"textarea__input--label-outside":e.labelOutside,"textarea__input--legacy":K(Dt),"textarea__input--success":e.success,"textarea__input--error":e.error}]],disabled:e.disabled,placeholder:l.value,style:{resize:e.resize},value:t.value,onInput:h}),null,16,hu),e.labelOutside?C("",!0):(o(),c("label",{key:0,class:"textarea__label",for:e.id},d(e.label),9,mu))]),e.helperText?(o(),c("p",{key:0,id:`${e.id}-helper-text`,class:F(["textarea__helper-text-message",{"textarea__helper-text-message--error":e.error,"textarea__helper-text-message--success":e.success}])},[e.success?(o(),I(Se,{key:0,class:"textarea__helper-text-message__icon",path:K(Zt),inline:""},null,8,["path"])):e.error?(o(),I(Se,{key:1,class:"textarea__helper-text-message__icon",path:K(Ga),inline:""},null,8,["path"])):C("",!0),q(" "+d(e.helperText),1)],10,fu)):C("",!0)],2))}}),Gn=ee(gu,[["__scopeId","data-v-d327fb49"]]),bu={class:"input-field__main-wrapper"},yu=["id","aria-describedby","disabled","placeholder","type","value"],vu=["for"],_u={class:"input-field__icon input-field__icon--leading"},Cu={key:2,class:"input-field__icon input-field__icon--trailing"},wu=["id"],ku=be({inheritAttrs:!1,__name:"NcInputField",props:ct({class:{default:""},inputClass:{default:""},id:{default:()=>yt()},label:{default:void 0},labelOutside:{type:Boolean},type:{default:"text"},placeholder:{default:void 0},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{default:""},disabled:{type:Boolean},pill:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:ct(["trailingButtonClick"],["update:modelValue"]),setup(e,{expose:a,emit:t}){const s=ut(e,"modelValue"),n=e,i=t;a({focus:g,select:b});const l=ri(),u=Aa("input"),h=Y(()=>n.showTrailingButton||n.success),f=Y(()=>{if(n.placeholder)return n.placeholder;if(n.label)return Dt?n.label:""}),m=Y(()=>n.label||n.labelOutside),p=Y(()=>{const y=[];return n.helperText&&y.push(`${n.id}-helper-text`),l["aria-describedby"]&&y.push(String(l["aria-describedby"])),y.join(" ")||void 0});function g(y){u.value.focus(y)}function b(){u.value.select()}function S(y){const A=y.target;s.value=n.type==="number"&&typeof s.value=="number"?parseFloat(A.value):A.value}return(y,A)=>(o(),c("div",{class:F(["input-field",[{"input-field--disabled":e.disabled,"input-field--error":e.error,"input-field--label-outside":e.labelOutside||!m.value,"input-field--leading-icon":!!y.$slots.icon,"input-field--trailing-icon":h.value,"input-field--pill":e.pill,"input-field--success":e.success,"input-field--legacy":K(Dt)},y.$props.class]])},[r("div",bu,[r("input",J(y.$attrs,{id:e.id,ref:"input","aria-describedby":p.value,"aria-live":"polite",class:["input-field__input",e.inputClass],disabled:e.disabled,placeholder:f.value,type:e.type,value:s.value.toString(),onInput:S}),null,16,yu),!e.labelOutside&&m.value?(o(),c("label",{key:0,class:"input-field__label",for:e.id},d(e.label),9,vu)):C("",!0),xe(r("div",_u,[V(y.$slots,"icon",{},void 0,!0)],512),[[Je,!!y.$slots.icon]]),e.showTrailingButton?(o(),I(ge,{key:1,class:"input-field__trailing-button","aria-label":e.trailingButtonLabel,disabled:e.disabled,variant:"tertiary-no-background",onClick:A[0]||(A[0]=R=>i("trailingButtonClick",R))},{icon:x(()=>[V(y.$slots,"trailing-button-icon",{},void 0,!0)]),_:3},8,["aria-label","disabled"])):e.success||e.error?(o(),c("div",Cu,[e.success?(o(),I(Se,{key:0,path:K(Zt)},null,8,["path"])):(o(),I(Se,{key:1,path:K(Ga)},null,8,["path"]))])):C("",!0)]),e.helperText?(o(),c("p",{key:0,id:`${e.id}-helper-text`,class:"input-field__helper-text-message"},[e.success?(o(),I(Se,{key:0,class:"input-field__helper-text-message__icon",path:K(Zt),inline:""},null,8,["path"])):e.error?(o(),I(Se,{key:1,class:"input-field__helper-text-message__icon",path:K(Ga),inline:""},null,8,["path"])):C("",!0),q(" "+d(e.helperText),1)],8,wu)):C("",!0)],2))}}),Yi=ee(ku,[["__scopeId","data-v-8e16cbb5"]]);Le(Fs,vn);const Zn=be({__name:"NcTextField",props:ct({class:{},inputClass:{},id:{},label:{},labelOutside:{type:Boolean},type:{},placeholder:{},showTrailingButton:{type:Boolean},trailingButtonLabel:{default:void 0},success:{type:Boolean},error:{type:Boolean},helperText:{},disabled:{type:Boolean},pill:{type:Boolean},trailingButtonIcon:{default:"close"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(e,{expose:a}){const t=ut(e,"modelValue"),s=e;a({focus:h,select:f});const n=Aa("inputField"),i={arrowEnd:j("Save changes"),close:j("Clear text"),undo:j("Undo changes")},l=new Set(Object.keys(Yi.props)),u=Y(()=>{const m=Object.fromEntries(Object.entries(s).filter(([p])=>l.has(p)));return m.trailingButtonLabel??=i[s.trailingButtonIcon],m});function h(m){n.value.focus(m)}function f(){n.value.select()}return(m,p)=>(o(),I(K(Yi),J(u.value,{ref:"inputField",modelValue:t.value,"onUpdate:modelValue":p[0]||(p[0]=g=>t.value=g)}),et({_:2},[m.$slots.icon?{name:"icon",fn:x(()=>[V(m.$slots,"icon")]),key:"0"}:void 0,e.type!=="search"?{name:"trailing-button-icon",fn:x(()=>[e.trailingButtonIcon==="arrowEnd"?(o(),I(K(Se),{key:0,directional:"",path:K(fn)},null,8,["path"])):(o(),I(K(Se),{key:1,path:e.trailingButtonIcon==="undo"?K(Us):K(js)},null,8,["path"]))]),key:"1"}:void 0]),1040,["modelValue"]))}}),xu={name:"SendIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Su=["aria-hidden","aria-label"],Au=["fill","width","height"],Lu={d:"M2,21L23,12L2,3V10L17,12L2,14V21Z"},Nu={key:0};function Du(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon send-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Lu,[t.title?(o(),c("title",Nu,d(t.title),1)):C("",!0)])],8,Au))],16,Su)}const Tu=U(xu,[["render",Du]]);function Eu(){try{return xa("absence","session")}catch{return{uid:null}}}function Bu(){try{return xa("absence","leaveTypes")||[]}catch{return[]}}const W=hn({session:Eu(),leaveTypes:Bu(),requests:[],balance:{balances:[]},loading:!1,selectedId:null,leaveType(e){return e==null?{label:M("absence","Absent"),color:"#888",icon:"🌴"}:this.leaveTypes.find(a=>a.id===e)||{label:M("absence","Unknown"),color:"#888",icon:"❔"}},isHrRecorded(e){const a=this.leaveType(e.typeId);return a&&a.employeeRequestable===!1},statusVisible(e){return!(this.isHrRecorded(e)&&e.status==="APPROVED")},get enabledLeaveTypes(){return this.leaveTypes.filter(e=>e.enabled)},get requestableLeaveTypes(){return this.leaveTypes.filter(e=>e.enabled&&e.employeeRequestable)},async refreshSession(){try{this.session=await ce.getSession()}catch(e){console.error("Absence: failed to refresh session",e)}},async loadLeaveTypes(){this.leaveTypes=await ce.listLeaveTypes(!1)},async loadRequests(e){this.loading=!0;try{this.requests=await ce.listRequests(e)}catch{Fe(M("absence","Could not load requests"))}finally{this.loading=!1}},async loadMyBalance(e){this.balance=await ce.getMyBalance(e)},async createRequest(e){const a=await ce.createRequest(e);return St(M("absence","On its way ✈️")),await this.refreshSession(),a},async updateRequest(e,a){const t=await ce.updateRequest(e,a);return St(M("absence","Request updated")),t},async cancelRequest(e){const a=await ce.cancelRequest(e);return St(M("absence","Request cancelled")),await this.refreshSession(),a},async approveRequest(e,a){const t=await ce.approveRequest(e,a);return await this.refreshSession(),t},async rejectRequest(e,a){const t=await ce.rejectRequest(e,a);return St(M("absence","Request declined")),await this.refreshSession(),t},select(e){this.selectedId=e}});function Iu(e){switch(e){case"PENDING":return{label:M("absence","Pending"),text:"var(--color-warning-text)",tint:"var(--color-warning)",icon:"⏳"};case"ESCALATED":return{label:M("absence","With HR"),text:"var(--color-warning-text)",tint:"var(--color-warning)",icon:"⏫"};case"APPROVED":return{label:M("absence","Approved"),text:"var(--color-success-text)",tint:"var(--color-success)",icon:"✅"};case"REJECTED":return{label:M("absence","Declined"),text:"var(--color-error-text)",tint:"var(--color-error)",icon:"✋"};case"CANCELLED":return{label:M("absence","Cancelled"),text:"var(--color-text-maxcontrast)",tint:"var(--color-text-maxcontrast)",icon:"🚫"};case"WITHDRAWAL_PENDING":return{label:M("absence","Withdrawal pending"),text:"var(--color-warning-text)",tint:"var(--color-warning)",icon:"↩️"};default:return{label:e,text:"var(--color-main-text)",tint:"var(--color-text-maxcontrast)",icon:"•"}}}const Mu={name:"RequestDialog",components:{NcModal:kn,NcSelect:mi,NcDateTimePickerNative:Ci,NcTextArea:Gn,NcTextField:Zn,NcNoteCard:wn,NcButton:ge,NcLoadingIcon:Na,Send:Tu},props:{request:{type:Object,default:null},hrMode:{type:Boolean,default:!1}},emits:["close","saved"],data(){return{selectedType:null,startIso:null,endIso:null,workingDays:"",workingDaysTouched:!1,holidayChecker:null,reason:"",submitting:!1,selectedEmployee:null,employeeOptions:[],employeeLoading:!1,selectedReplacement:null,replacementOptions:[],replacementLoading:!1}},computed:{isEdit(){return this.request!==null},dialogTitle(){return this.hrMode?M("absence","Record absence"):this.isEdit?M("absence","Edit request"):M("absence","Request time off")},submitLabel(){return this.isEdit?M("absence","Save changes"):this.hrMode?M("absence","Record"):M("absence","Submit request")},typeOptions(){return this.hrMode?W.enabledLeaveTypes:W.requestableLeaveTypes},typeColor(){return this.selectedType?this.selectedType.color:"var(--color-primary-element)"},requiresNote(){return this.selectedType?this.selectedType.requiresNote:!1},needsReplacement(){return this.selectedType?this.selectedType.requiresReplacement:!1},startDate:{get(){return this.startIso?new Date(this.startIso+"T00:00:00"):null},set(e){this.startIso=e?Me(e):null,this.startIso&&this.endIso&&this.endIsoa.typeId===this.selectedType.id&&a.year===e&&a.entitlement!==null)||null},projectedAvailable(){return this.balanceRow?Math.round((this.balanceRow.available-this.workingDaysNum)*10)/10:null},wouldGoNegative(){return this.balanceRow&&this.selectedType&&this.selectedType.countsAgainstBalance&&this.projectedAvailable<0},availablePct(){return!this.balanceRow||!this.balanceRow.entitlement?0:Math.max(0,Math.min(100,this.projectedAvailable/this.balanceRow.entitlement*100))},canSubmit(){return!(!this.selectedType||!this.startIso||!this.endIso||this.workingDaysNum<=0||this.hrMode&&!this.selectedEmployee||this.needsReplacement&&!this.selectedReplacement||this.requiresNote&&this.reason.trim()==="")}},watch:{startIso(){this.recomputePrefill()},endIso(){this.recomputePrefill()}},async mounted(){await this.initFromProps(),!this.hrMode&&!W.balance.balances.length&&await W.loadMyBalance();try{this.holidayChecker=await Zs(W.session.holidayCountry,W.session.holidayRegion),this.recomputePrefill()}catch{}},methods:{t:M,onWorkingDaysInput(e){this.workingDays=e,this.workingDaysTouched=!0},recomputePrefill(){if(this.isEdit||this.workingDaysTouched||!this.startIso||!this.endIso)return;const e=Ws(W.session.workWeekdays||"1,2,3,4,5");this.workingDays=String(Gs(this.startIso,this.endIso,e,this.holidayChecker))},formatDays(e){return e==null?"—":Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async initFromProps(){const e=this.typeOptions;if(this.request)this.selectedType=W.enabledLeaveTypes.find(a=>a.id===this.request.typeId)||e[0],this.startIso=this.request.startDate,this.endIso=this.request.endDate,this.workingDays=String(this.request.workingDays),this.reason=this.request.reason||"",this.request.replacementUid&&(this.selectedReplacement={uid:this.request.replacementUid,displayName:this.request.replacementName||this.request.replacementUid});else{this.selectedType=e[0]||null;const a=Me(new Date);this.startIso=a,this.endIso=a,this.hrMode||(this.selectedReplacement=this.pastReplacements()[0]||null)}this.hrMode||(this.replacementOptions=this.pastReplacements(),this.selectedReplacement&&!this.replacementOptions.some(a=>a.uid===this.selectedReplacement.uid)&&(this.replacementOptions=[this.selectedReplacement,...this.replacementOptions]))},pastReplacements(){const e=new Set,a=[],t=W.requests.filter(s=>s.employeeUid===W.session.uid&&s.replacementUid).sort((s,n)=>n.id-s.id);for(const s of t)e.has(s.replacementUid)||(e.add(s.replacementUid),a.push({uid:s.replacementUid,displayName:s.replacementName||s.replacementUid}));return a},async onEmployeeSearch(e){if(!(!e||e.length<2)){this.employeeLoading=!0;try{this.employeeOptions=await ce.searchUsers(e)}catch{this.employeeOptions=[]}finally{this.employeeLoading=!1}}},async onReplacementSearch(e){if(!(!e||e.length<2)){this.replacementLoading=!0;try{const a=await ce.searchUsers(e);this.replacementOptions=a.filter(t=>t.uid!==this.subjectUid)}catch{this.replacementOptions=[]}finally{this.replacementLoading=!1}}},async submit(){if(!this.canSubmit)return;this.submitting=!0;const e={typeId:this.selectedType.id,startDate:this.startIso,endDate:this.endIso,workingDays:this.workingDaysNum,reason:this.reason};this.hrMode&&this.selectedEmployee&&(e.employeeUid=this.selectedEmployee.uid),this.needsReplacement&&this.selectedReplacement&&(e.replacementUid=this.selectedReplacement.uid);try{this.isEdit?await W.updateRequest(this.request.id,e):await W.createRequest(e),this.$emit("saved")}catch(a){Fe(a.response?.data?.message||M("absence","Could not save the request"))}finally{this.submitting=!1}}}},zu={class:"dialog"},$u={class:"dialog__title"},Ru={key:1,class:"dialog__field"},Ou={class:"dialog__label"},Pu={class:"dialog__field"},qu={class:"dialog__label"},Vu={class:"opt"},Hu={class:"opt__icon"},Fu={class:"opt"},Uu={class:"opt__icon"},ju={key:2,class:"dialog__field"},Wu={class:"dialog__label"},Gu={class:"dialog__hint"},Zu={class:"dialog__row"},Ku={class:"dialog__field"},Yu={class:"dialog__label"},Xu={class:"dialog__field"},Qu={class:"dialog__label"},Ju={class:"dialog__field"},ed={class:"dialog__label"},td={class:"dialog__hint"},ad=["href"],id={class:"preview__balance"},nd={class:"preview__bar",role:"presentation"},sd={class:"dialog__field"},ld={class:"dialog__label"},od={key:0,class:"dialog__req"},rd={key:1,class:"dialog__optional"},cd={class:"dialog__actions"};function ud(e,a,t,s,n,i){const l=w("NcNoteCard"),u=w("NcSelect"),h=w("NcDateTimePickerNative"),f=w("NcTextField"),m=w("NcTextArea"),p=w("NcButton"),g=w("NcLoadingIcon"),b=w("Send"),S=w("NcModal");return o(),I(S,{name:i.dialogTitle,size:"normal",onClose:a[7]||(a[7]=y=>e.$emit("close"))},{default:x(()=>[r("div",zu,[r("h2",$u,d(i.dialogTitle),1),t.hrMode?(o(),I(l,{key:0,type:"info"},{default:x(()=>[q(d(i.t("absence","Record an absence on behalf of an employee (e.g. sick leave). It is booked directly, without an approval step.")),1)]),_:1})):C("",!0),t.hrMode?(o(),c("div",Ru,[r("label",Ou,d(i.t("absence","Employee")),1),_(u,{modelValue:n.selectedEmployee,"onUpdate:modelValue":a[0]||(a[0]=y=>n.selectedEmployee=y),options:n.employeeOptions,loading:n.employeeLoading,userSelect:!0,label:"displayName",filterable:!1,placeholder:i.t("absence","Search for an employee…"),"aria-label-combobox":i.t("absence","Employee"),onSearch:i.onEmployeeSearch},null,8,["modelValue","options","loading","placeholder","aria-label-combobox","onSearch"])])):C("",!0),r("div",Pu,[r("label",qu,d(i.t("absence","Leave type")),1),_(u,{modelValue:n.selectedType,"onUpdate:modelValue":a[1]||(a[1]=y=>n.selectedType=y),options:i.typeOptions,label:"label",clearable:!1,"aria-label-combobox":i.t("absence","Leave type")},{option:x(({icon:y,label:A})=>[r("span",Vu,[r("span",Hu,d(y),1),q(d(A),1)])]),"selected-option":x(({icon:y,label:A})=>[r("span",Fu,[r("span",Uu,d(y),1),q(d(A),1)])]),_:1},8,["modelValue","options","aria-label-combobox"])]),i.needsReplacement?(o(),c("div",ju,[r("label",Wu,[q(d(i.t("absence","Replacement")),1),a[8]||(a[8]=r("span",{class:"dialog__req"},"*",-1))]),_(u,{modelValue:n.selectedReplacement,"onUpdate:modelValue":a[2]||(a[2]=y=>n.selectedReplacement=y),options:n.replacementOptions,loading:n.replacementLoading,userSelect:!0,label:"displayName",filterable:!1,placeholder:i.t("absence","Who covers for you?"),"aria-label-combobox":i.t("absence","Replacement"),onSearch:i.onReplacementSearch},null,8,["modelValue","options","loading","placeholder","aria-label-combobox","onSearch"]),r("p",Gu,d(i.t("absence","A colleague who covers your duties while you are away. They are notified once your leave is approved.")),1)])):C("",!0),r("div",Zu,[r("div",Ku,[r("label",Yu,d(i.t("absence","From")),1),_(h,{modelValue:i.startDate,"onUpdate:modelValue":a[3]||(a[3]=y=>i.startDate=y),type:"date"},null,8,["modelValue"])]),r("div",Xu,[r("label",Qu,d(i.t("absence","To")),1),_(h,{modelValue:i.endDate,"onUpdate:modelValue":a[4]||(a[4]=y=>i.endDate=y),type:"date"},null,8,["modelValue"])])]),r("div",Ju,[r("label",ed,[q(d(i.t("absence","Working days")),1),a[9]||(a[9]=r("span",{class:"dialog__req"},"*",-1))]),_(f,{modelValue:n.workingDays,type:"number",min:"0",step:"0.5",label:i.t("absence","Working days"),labelVisible:!1,"onUpdate:modelValue":i.onWorkingDaysInput},null,8,["modelValue","label","onUpdate:modelValue"]),r("p",td,[i.prefillActive?(o(),c(Q,{key:0},[q(d(i.t("absence","Prefilled from your"))+" ",1),r("a",{href:i.settingsUrl,target:"_blank",rel:"noreferrer noopener",class:"dialog__link"},d(i.t("absence","working days and public holidays")),9,ad),q(" "+d(i.t("absence","— adjust it if needed. Your manager will verify it.")),1)],64)):(o(),c(Q,{key:1},[q(d(i.t("absence","Number of working days this absence covers (excluding weekends and public holidays). Your manager will verify it.")),1)],64))])]),i.balanceRow&&!t.hrMode&&i.workingDaysNum>0?(o(),c("div",{key:3,class:"preview",style:oe({"--type-color":i.typeColor})},[r("div",id,[r("span",null,d(i.t("absence","Available")),1),r("strong",null,d(i.formatDays(i.balanceRow.available))+" → "+d(i.formatDays(i.projectedAvailable)),1),r("span",nd,[r("span",{class:"preview__bar-fill",style:oe({width:i.availablePct+"%"})},null,4)])])],4)):C("",!0),i.wouldGoNegative?(o(),I(l,{key:4,type:"warning"},{default:x(()=>[q(d(i.t("absence","Heads up: this goes beyond your available balance. You can still submit — HR may approve it.")),1)]),_:1})):C("",!0),r("div",sd,[r("label",ld,[q(d(i.t("absence","Reason"))+" ",1),i.requiresNote?(o(),c("span",od,"*")):(o(),c("span",rd,d(i.t("absence","(optional)")),1))]),_(m,{modelValue:n.reason,"onUpdate:modelValue":a[5]||(a[5]=y=>n.reason=y),placeholder:i.t("absence","Optional note for your manager"),resize:"vertical",rows:"2"},null,8,["modelValue","placeholder"])]),r("div",cd,[_(p,{variant:"tertiary",onClick:a[6]||(a[6]=y=>e.$emit("close"))},{default:x(()=>[q(d(i.t("absence","Cancel")),1)]),_:1}),_(p,{variant:"primary",disabled:!i.canSubmit||n.submitting,onClick:i.submit},{icon:x(()=>[n.submitting?(o(),I(g,{key:0,size:20})):(o(),I(b,{key:1,size:20}))]),default:x(()=>[q(" "+d(i.submitLabel),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"])}const dd=U(Mu,[["render",ud],["__scopeId","data-v-1cc8782f"]]),Ra=new WeakMap,Kn={mounted(e,a){const t=!a.modifiers.bubble;let s;if(typeof a.value=="function")s=Ii(e,a.value,{capture:t});else{const[n,i]=a.value;s=Ii(e,n,Object.assign({capture:t},i))}Ra.set(e,s)},unmounted(e){const a=Ra.get(e);a&&typeof a=="function"?a():a?.stop(),Ra.delete(e)}},pd={mounted(e){e.focus()}},hd="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",md="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",Ja="numeric",ei="ascii",ti="alpha",Tt="asciinumeric",At="alphanumeric",ai="domain",Yn="emoji",fd="scheme",gd="slashscheme",Oa="whitespace";function bd(e,a){return e in a||(a[e]=[]),a[e]}function st(e,a,t){a[Ja]&&(a[Tt]=!0,a[At]=!0),a[ei]&&(a[Tt]=!0,a[ti]=!0),a[Tt]&&(a[At]=!0),a[ti]&&(a[At]=!0),a[At]&&(a[ai]=!0),a[Yn]&&(a[ai]=!0);for(const s in a){const n=bd(s,t);n.indexOf(e)<0&&n.push(e)}}function yd(e,a){const t={};for(const s in a)a[s].indexOf(e)>=0&&(t[s]=!0);return t}function ke(e=null){this.j={},this.jr=[],this.jd=null,this.t=e}ke.groups={},ke.prototype={accepts(){return!!this.t},go(e){const a=this,t=a.j[e];if(t)return t;for(let s=0;se.ta(a,t,s,n),de=(e,a,t,s,n)=>e.tr(a,t,s,n),Xi=(e,a,t,s,n)=>e.ts(a,t,s,n),E=(e,a,t,s,n)=>e.tt(a,t,s,n),He="WORD",ii="UWORD",Xn="ASCIINUMERICAL",Qn="ALPHANUMERICAL",$t="LOCALHOST",ni="TLD",si="UTLD",Gt="SCHEME",mt="SLASH_SCHEME",wi="NUM",li="WS",ki="NL",Et="OPENBRACE",Bt="CLOSEBRACE",Xt="OPENBRACKET",Qt="CLOSEBRACKET",Jt="OPENPAREN",ea="CLOSEPAREN",ta="OPENANGLEBRACKET",aa="CLOSEANGLEBRACKET",ia="FULLWIDTHLEFTPAREN",na="FULLWIDTHRIGHTPAREN",sa="LEFTCORNERBRACKET",la="RIGHTCORNERBRACKET",oa="LEFTWHITECORNERBRACKET",ra="RIGHTWHITECORNERBRACKET",ca="FULLWIDTHLESSTHAN",ua="FULLWIDTHGREATERTHAN",da="AMPERSAND",pa="APOSTROPHE",ha="ASTERISK",Qe="AT",ma="BACKSLASH",fa="BACKTICK",ga="CARET",lt="COLON",xi="COMMA",ba="DOLLAR",ze="DOT",ya="EQUALS",Si="EXCLAMATION",Te="HYPHEN",It="PERCENT",va="PIPE",_a="PLUS",Ca="POUND",Mt="QUERY",Ai="QUOTE",Jn="FULLWIDTHMIDDLEDOT",Li="SEMI",$e="SLASH",zt="TILDE",wa="UNDERSCORE",es="EMOJI",ka="SYM";var ts=Object.freeze({__proto__:null,ALPHANUMERICAL:Qn,AMPERSAND:da,APOSTROPHE:pa,ASCIINUMERICAL:Xn,ASTERISK:ha,AT:Qe,BACKSLASH:ma,BACKTICK:fa,CARET:ga,CLOSEANGLEBRACKET:aa,CLOSEBRACE:Bt,CLOSEBRACKET:Qt,CLOSEPAREN:ea,COLON:lt,COMMA:xi,DOLLAR:ba,DOT:ze,EMOJI:es,EQUALS:ya,EXCLAMATION:Si,FULLWIDTHGREATERTHAN:ua,FULLWIDTHLEFTPAREN:ia,FULLWIDTHLESSTHAN:ca,FULLWIDTHMIDDLEDOT:Jn,FULLWIDTHRIGHTPAREN:na,HYPHEN:Te,LEFTCORNERBRACKET:sa,LEFTWHITECORNERBRACKET:oa,LOCALHOST:$t,NL:ki,NUM:wi,OPENANGLEBRACKET:ta,OPENBRACE:Et,OPENBRACKET:Xt,OPENPAREN:Jt,PERCENT:It,PIPE:va,PLUS:_a,POUND:Ca,QUERY:Mt,QUOTE:Ai,RIGHTCORNERBRACKET:la,RIGHTWHITECORNERBRACKET:ra,SCHEME:Gt,SEMI:Li,SLASH:$e,SLASH_SCHEME:mt,SYM:ka,TILDE:zt,TLD:ni,UNDERSCORE:wa,UTLD:si,UWORD:ii,WORD:He,WS:li});const qe=/[a-z]/,xt=new RegExp("\\p{L}","u"),Pa=new RegExp("\\p{Emoji}","u"),Ve=/\d/,qa=/\s/,Qi="\r",Va=` +`,vd="️",_d="‍",Ha="";let Vt=null,Ht=null;function Cd(e=[]){const a={};ke.groups=a;const t=new ke;Vt==null&&(Vt=Ji(hd)),Ht==null&&(Ht=Ji(md)),E(t,"'",pa),E(t,"{",Et),E(t,"}",Bt),E(t,"[",Xt),E(t,"]",Qt),E(t,"(",Jt),E(t,")",ea),E(t,"<",ta),E(t,">",aa),E(t,"(",ia),E(t,")",na),E(t,"「",sa),E(t,"」",la),E(t,"『",oa),E(t,"』",ra),E(t,"<",ca),E(t,">",ua),E(t,"&",da),E(t,"*",ha),E(t,"@",Qe),E(t,"`",fa),E(t,"^",ga),E(t,":",lt),E(t,",",xi),E(t,"$",ba),E(t,".",ze),E(t,"=",ya),E(t,"!",Si),E(t,"-",Te),E(t,"%",It),E(t,"|",va),E(t,"+",_a),E(t,"#",Ca),E(t,"?",Mt),E(t,'"',Ai),E(t,"/",$e),E(t,";",Li),E(t,"~",zt),E(t,"_",wa),E(t,"\\",ma),E(t,"・",Jn);const s=de(t,Ve,wi,{[Ja]:!0});de(s,Ve,s);const n=de(s,qe,Xn,{[Tt]:!0}),i=de(s,xt,Qn,{[At]:!0}),l=de(t,qe,He,{[ei]:!0});de(l,Ve,n),de(l,qe,l),de(n,Ve,n),de(n,qe,n);const u=de(t,xt,ii,{[ti]:!0});de(u,qe),de(u,Ve,i),de(u,xt,u),de(i,Ve,i),de(i,qe),de(i,xt,i);const h=E(t,Va,ki,{[Oa]:!0}),f=E(t,Qi,li,{[Oa]:!0}),m=de(t,qa,li,{[Oa]:!0});E(t,Ha,m),E(f,Va,h),E(f,Ha,m),de(f,qa,m),E(m,Qi),E(m,Va),de(m,qa,m),E(m,Ha,m);const p=de(t,Pa,es,{[Yn]:!0});E(p,"#"),de(p,Pa,p),E(p,vd,p);const g=E(p,_d);E(g,"#"),de(g,Pa,p);const b=[[qe,l],[Ve,n]],S=[[qe,null],[xt,u],[Ve,i]];for(let y=0;yy[0]>A[0]?1:-1);for(let y=0;y=0?R[ai]=!0:qe.test(A)?Ve.test(A)?R[Tt]=!0:R[ei]=!0:R[Ja]=!0,Xi(t,A,A,R)}return Xi(t,"localhost",$t,{ascii:!0}),t.jd=new ke(ka),{start:t,tokens:Object.assign({groups:a},ts)}}function as(e,a){const t=wd(a.replace(/[A-Z]/g,u=>u.toLowerCase())),s=t.length,n=[];let i=0,l=0;for(;l=0&&(p+=t[l].length,g++),f+=t[l].length,i+=t[l].length,l++;i-=p,l-=g,f-=p,n.push({t:m.t,v:a.slice(i-f,i),s:i-f,e:i})}return n}function wd(e){const a=[],t=e.length;let s=0;for(;s56319||s+1===t||(i=e.charCodeAt(s+1))<56320||i>57343?e[s]:e.slice(s,s+2);a.push(l),s+=l.length}return a}function Ye(e,a,t,s,n){let i;const l=a.length;for(let u=0;u=0;)i++;if(i>0){a.push(t.join(""));for(let l=parseInt(e.substring(s,s+i),10);l>0;l--)t.pop();s+=i}else t.push(e[s]),s++}return a}const Rt={defaultProtocol:"http",events:null,format:en,formatHref:en,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Ni(e,a=null){let t=Object.assign({},Rt);e&&(t=Object.assign(t,e instanceof Ni?e.o:e));const s=t.ignoreTags,n=[];for(let i=0;it?s.substring(0,t)+"…":s},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e=Rt.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const a=this,t=this.toHref(e.get("defaultProtocol")),s=e.get("formatHref",t,this),n=e.get("tagName",t,a),i=this.toFormattedString(e),l={},u=e.get("className",t,a),h=e.get("target",t,a),f=e.get("rel",t,a),m=e.getObj("attributes",t,a),p=e.getObj("events",t,a);return l.href=s,u&&(l.class=u),h&&(l.target=h),f&&(l.rel=f),m&&Object.assign(l,m),{tagName:n,attributes:l,content:i,eventListeners:p}}};function Ba(e,a){class t extends is{constructor(n,i){super(n,i),this.t=e}}for(const s in a)t.prototype[s]=a[s];return t.t=e,t}const kd=Ba("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),tn=Ba("text"),xd=Ba("nl"),Ft=Ba("url",{isLink:!0,toHref(e=Rt.defaultProtocol){return this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==$t&&e[1].t===lt}}),De=e=>new ke(e);function Sd({groups:e}){const a=e.domain.concat([da,ha,Qe,ma,fa,ga,ba,ya,Te,wi,It,va,_a,Ca,$e,ka,zt,wa]),t=[pa,lt,xi,ze,Si,It,Mt,Ai,Li,ta,aa,Et,Bt,Qt,Xt,Jt,ea,ia,na,sa,la,oa,ra,ca,ua],s=[da,pa,ha,ma,fa,ga,ba,ya,Te,Et,Bt,It,va,_a,Ca,Mt,$e,ka,zt,wa],n=De(),i=E(n,zt);X(i,s,i),X(i,e.domain,i);const l=De(),u=De(),h=De();X(n,e.domain,l),X(n,e.scheme,u),X(n,e.slashscheme,h),X(l,s,i),X(l,e.domain,l);const f=E(l,Qe);E(i,Qe,f),E(u,Qe,f),E(h,Qe,f);const m=E(i,ze);X(m,s,i),X(m,e.domain,i);const p=De();X(f,e.domain,p),X(p,e.domain,p);const g=E(p,ze);X(g,e.domain,p);const b=De(kd);X(g,e.tld,b),X(g,e.utld,b),E(f,$t,b);const S=E(p,Te);E(S,Te,S),X(S,e.domain,p),X(b,e.domain,p),E(b,ze,g),E(b,Te,S);const y=E(l,Te),A=E(l,ze);E(y,Te,y),X(y,e.domain,l),X(A,s,i),X(A,e.domain,l);const R=De(Ft);X(A,e.tld,R),X(A,e.utld,R),X(R,e.domain,l),X(R,s,i),E(R,ze,A),E(R,Te,y),E(R,Qe,f);const P=E(R,lt),z=De(Ft);X(P,e.numeric,z);const G=De(Ft),ae=De();X(G,a,G),X(G,t,ae),X(ae,a,G),X(ae,t,ae),E(R,$e,G),E(z,$e,G);const se=E(u,lt),le=E(h,lt),te=E(le,$e),re=E(te,$e);X(u,e.domain,l),E(u,ze,A),E(u,Te,y),X(h,e.domain,l),E(h,ze,A),E(h,Te,y),X(se,e.domain,G),E(se,$e,G),E(se,Mt,G),X(re,e.domain,G),X(re,a,G),E(re,$e,G);const Ue=[[Et,Bt],[Xt,Qt],[Jt,ea],[ta,aa],[ia,na],[sa,la],[oa,ra],[ca,ua]];for(let je=0;je=0&&g++,n++,m++;if(g<0)n-=m,n0&&(i.push(Fa(tn,a,l)),l=[]),n-=g,m-=g;const b=p.t,S=t.slice(n-m,n);i.push(Fa(b,a,S))}}return l.length>0&&i.push(Fa(tn,a,l)),i}function Fa(e,a,t){const s=t[0].s,n=t[t.length-1].e,i=a.slice(s,n);return new e(i,t)}const me={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function Ld(){me.scanner=Cd(me.customSchemes);for(let e=0;e +`):!n.isLink||!a.check(n)?s.push(xn(n.toString())):s.push(a.render(n));return s.join("")}function Dd(e){return e.replace(/"/g,""")}function Td(e){const a=[];for(const t in e){const s=e[t]+"";a.push(`${t}="${Dd(s)}"`)}return a.join(" ")}function Ed({tagName:e,attributes:a,content:t}){return`<${e} ${Td(a)}>${xn(t)}`}const Bd=function(e,{value:a}){a?.linkify===!0&&(e.innerHTML=Nd(a.text))},Id=["title"],Md=be({__name:"NcAppSidebarHeader",props:{name:{},title:{},linkify:{type:Boolean}},setup(e){const a=Ce("NcAppSidebar:header:ref");return(t,s)=>xe((o(),c("h2",{ref_key:"headerRef",ref:a,tabindex:"-1",title:e.title},[q(d(e.name),1)],8,Id)),[[K(Bd),{text:e.name,linkify:e.linkify}]])}}),zd=["aria-labelledby"],$d={key:0,class:"empty-content__icon","aria-hidden":"true"},Rd=["id"],Od={key:2,class:"empty-content__description"},Pd={key:3,class:"empty-content__action"},qd=be({__name:"NcEmptyContent",props:{description:{default:""},name:{default:""}},setup(e){const a=yt();return(t,s)=>(o(),c("div",{"aria-labelledby":K(a),class:"empty-content",role:"note"},[t.$slots.icon?(o(),c("div",$d,[V(t.$slots,"icon",{},void 0,!0)])):C("",!0),e.name!==""||t.$slots.name?(o(),c("div",{key:1,id:K(a),class:"empty-content__name"},[V(t.$slots,"name",{},()=>[q(d(e.name),1)],!0)],8,Rd)):C("",!0),e.description!==""||t.$slots.description?(o(),c("p",Od,[V(t.$slots,"description",{},()=>[q(d(e.description),1)],!0)])):C("",!0),t.$slots.action?(o(),c("div",Pd,[V(t.$slots,"action",{},void 0,!0)])):C("",!0)],8,zd))}}),at=ee(qd,[["__scopeId","data-v-8609a4c1"]]),Vd={name:"DockRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Hd=["aria-hidden","aria-label"],Fd=["fill","width","height"],Ud={d:"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z"},jd={key:0};function Wd(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon dock-right-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Ud,[t.title?(o(),c("title",jd,d(t.title),1)):C("",!0)])],8,Fd))],16,Hd)}const Gd=ee(Vd,[["render",Wd]]),Zd={name:"StarIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Kd=["aria-hidden","aria-label"],Yd=["fill","width","height"],Xd={d:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"},Qd={key:0};function Jd(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon star-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Xd,[t.title?(o(),c("title",Qd,d(t.title),1)):C("",!0)])],8,Yd))],16,Kd)}const ep=ee(Zd,[["render",Jd]]),tp={name:"StarOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ap=["aria-hidden","aria-label"],ip=["fill","width","height"],np={d:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z"},sp={key:0};function lp(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon star-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",np,[t.title?(o(),c("title",sp,d(t.title),1)):C("",!0)])],8,ip))],16,ap)}const op=ee(tp,[["render",lp]]),rp=["aria-selected","tabindex"],cp=be({__name:"NcAppSidebarTabsButton",props:ct({tab:{}},{selected:{type:Boolean,required:!0},selectedModifiers:{}}),emits:["update:selected"],setup(e){const a=ut(e,"selected");return(t,s)=>(o(),c("button",{class:F(["button-vue",[t.$style.sidebarTabsButton,{[t.$style.sidebarTabsButton_selected]:a.value,[t.$style.sidebarTabsButton_legacy]:K(tt)}]]),role:"tab","aria-selected":a.value,tabindex:a.value?0:-1,onClick:s[0]||(s[0]=n=>a.value=!0)},[r("span",{class:F(t.$style.sidebarTabsButton__icon)},[_(vi,{vnodes:e.tab.renderIcon()},{default:x(()=>[r("span",{class:F([t.$style.sidebarTabsButton__legacyIcon,e.tab.icon])},null,2)]),_:1},8,["vnodes"])],2),r("span",{class:F(t.$style.sidebarTabsButton__name)},d(e.tab.name),3)],10,rp))}}),up="_sidebarTabsButton_OCROY",dp="_sidebarTabsButton_legacy_e9-y9",pp="_sidebarTabsButton_selected_S48M1",hp="_sidebarTabsButton__name_GZRY8",mp="_sidebarTabsButton__icon_ZDmkU",fp="_sidebarTabsButton__legacyIcon_y6cLW",gp={"material-design-icon":"_material-design-icon_v9SPG",sidebarTabsButton:up,sidebarTabsButton_legacy:dp,sidebarTabsButton_selected:pp,sidebarTabsButton__name:hp,sidebarTabsButton__icon:mp,sidebarTabsButton__legacyIcon:fp},bp={$style:gp},yp=ee(cp,[["__cssModules",bp]]),vp={name:"NcAppSidebarTabs",components:{NcAppSidebarTabsButton:yp},provide(){return{registerTab:this.registerTab,unregisterTab:this.unregisterTab,getActiveTab:()=>this.activeTab,isTablistShown:()=>this.hasMultipleTabs}},props:{active:{type:String,default:""},forceTabs:{type:Boolean,default:!1}},emits:["update:active"],data(e){return{tabs:[],activeTab:e.active,isLegacy34:tt}},computed:{hasMultipleTabs(){return this.tabs.length>1},showForSingleTab(){return this.forceTabs&&this.tabs.length===1},currentTabIndex(){return this.tabs.findIndex(e=>e.id===this.activeTab)}},watch:{tabs(){this.active&&this.updateActive()},active(e){e!==this.activeTab&&this.updateActive()}},methods:{setActive(e){this.activeTab=e,this.$emit("update:active",this.activeTab)},focusPreviousTab(){this.currentTabIndex>0&&this.setActive(this.tabs[this.currentTabIndex-1].id),this.focusActiveTab()},focusNextTab(){this.currentTabIndexe===this.active)?this.active:this.tabs[0]?.id??""},registerTab(e){this.tabs.push(e),this.tabs.sort((a,t)=>a.order===t.order?a.name.localeCompare(t.name,[Cn()]):a.order-t.order),this.updateActive()},unregisterTab(e){const a=this.tabs.findIndex(t=>t.id===e);a!==-1&&this.tabs.splice(a,1),this.activeTab===e&&this.updateActive()}}},_p={class:"app-sidebar-tabs"};function Cp(e,a,t,s,n,i){const l=w("NcAppSidebarTabsButton");return o(),c("div",_p,[i.hasMultipleTabs||i.showForSingleTab?(o(),c("div",{key:0,role:"tablist",class:F(["app-sidebar-tabs__nav",{"app-sidebar-tabs__nav--legacy":n.isLegacy34}]),onKeydown:[a[0]||(a[0]=we(he((...u)=>i.focusPreviousTab&&i.focusPreviousTab(...u),["exact","prevent","stop"]),["left"])),a[1]||(a[1]=we(he((...u)=>i.focusNextTab&&i.focusNextTab(...u),["exact","prevent","stop"]),["right"])),a[2]||(a[2]=we(he((...u)=>i.focusActiveTabContent&&i.focusActiveTabContent(...u),["exact","prevent","stop"]),["tab"])),a[3]||(a[3]=we(he((...u)=>i.focusFirstTab&&i.focusFirstTab(...u),["exact","prevent","stop"]),["home"])),a[4]||(a[4]=we(he((...u)=>i.focusLastTab&&i.focusLastTab(...u),["exact","prevent","stop"]),["end"])),a[5]||(a[5]=we(he((...u)=>i.focusFirstTab&&i.focusFirstTab(...u),["exact","prevent","stop"]),["page-up"])),a[6]||(a[6]=we(he((...u)=>i.focusLastTab&&i.focusLastTab(...u),["exact","prevent","stop"]),["page-down"]))]},[(o(!0),c(Q,null,pe(n.tabs,u=>(o(),I(l,{id:`tab-button-${u.id}`,key:u.id,class:"app-sidebar-tabs__tab","aria-controls":`tab-${u.id}`,selected:n.activeTab===u.id,tab:u,"onUpdate:selected":h=>i.setActive(u.id)},null,8,["id","aria-controls","selected","tab","onUpdate:selected"]))),128))],34)):C("",!0),r("div",{class:F(["app-sidebar-tabs__content",{"app-sidebar-tabs__content--multiple":i.hasMultipleTabs}])},[V(e.$slots,"default",{},void 0,!0)],2)])}const wp=ee(vp,[["render",Cp],["__scopeId","data-v-e74d1502"]]);Le(Ks);const kp={name:"NcAppSidebar",components:{NcActions:rt,NcAppSidebarHeader:Md,NcAppSidebarTabs:wp,NcButton:ge,NcLoadingIcon:Na,NcEmptyContent:at,IconArrowRight:Vn,IconClose:yn,IconDockRight:Gd,IconStar:ep,IconStarOutline:op},directives:{Focus:pd,ClickOutside:Kn},inject:{ncContentSelector:{from:qn,default:void 0}},props:{active:{type:String,default:""},name:{type:String,required:!0},nameEditable:{type:Boolean,default:!1},namePlaceholder:{type:String,default:""},subname:{type:String,default:""},subtitle:{type:String,default:""},background:{type:String,default:""},starred:{type:Boolean,default:null},starLoading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},empty:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceTabs:{type:Boolean,default:!1},linkifyName:{type:Boolean,default:!1},title:{type:String,default:""},open:{type:Boolean,default:!0},toggleClasses:{type:[String,Array,Object],default:""},toggleAttrs:{type:Object,default:void 0},noToggle:{type:Boolean,default:!1}},emits:["close","closed","opened","update:active","update:name","update:nameEditable","update:open","update:starred","submitName","dismissEditing"],setup(){const e=Ee(null);return fe("NcAppSidebar:header:ref",e),{uid:yt(),isMobile:Qs(),headerRef:e}},data(){return{changeNameTranslated:j("Change name"),closeTranslated:j("Close sidebar"),favoriteTranslated:j("Favorite"),isStarred:this.starred,focusTrap:null,elementToReturnFocus:null}},computed:{canStar(){return this.isStarred!==null},hasFigureClickListener(){return!!this.$attrs.onFigureClick}},watch:{starred(){this.isStarred=this.starred},isMobile(){this.toggleFocusTrap()},open(){this.checkToggleButtonContainerAvailability()}},created(){this.preserveElementToReturnFocus(),this.checkToggleButtonContainerAvailability()},beforeUnmount(){this.$emit("closed"),this.focusTrap?.deactivate()},methods:{isSlotPopulated:Ys,t:j,preserveElementToReturnFocus(){if(document.activeElement&&document.activeElement!==document.body&&(this.elementToReturnFocus=document.activeElement,this.elementToReturnFocus.getAttribute("role")==="menuitem")){const e=this.elementToReturnFocus.closest('[role="menu"]');if(e){const a=document.querySelector(`[aria-controls="${e.id}"]`);this.elementToReturnFocus=a}}},initFocusTrap(){this.focusTrap||(this.focusTrap=gn([this.$refs.sidebar,document.querySelector("#header")],{allowOutsideClick:!0,fallbackFocus:this.$refs.closeButton.$el,trapStack:bn(),escapeDeactivates:!1}))},toggleFocusTrap(){this.open&&this.isMobile?(this.initFocusTrap(),this.focusTrap.activate()):this.focusTrap?.deactivate()},onKeydownEsc(e){this.isMobile&&(e.stopPropagation(),this.closeSidebar())},onAfterEnter(e){this.elementToReturnFocus&&this.focus(),this.toggleFocusTrap(),this.$emit("opened",e)},onAfterLeave(e){this.$emit("closed",e),this.toggleFocusTrap(),this.elementToReturnFocus?.focus({focusVisible:!0}),this.elementToReturnFocus=null},closeSidebar(e){this.$emit("close",e),this.$emit("update:open",!1)},onFigureClick(e){this.$emit("figureClick",e)},toggleStarred(){this.isStarred=!this.isStarred,this.$emit("update:starred",this.isStarred)},async editName(){this.$emit("update:nameEditable",!0),this.nameEditable&&(await this.$nextTick(),this.$refs.nameInput.focus())},focus(){if(!this.open&&!this.noToggle){this.$refs.toggle.$el.focus();return}try{this.headerRef.focus()}catch{}},focusActiveTabContent(){this.preserveElementToReturnFocus(),this.$refs.tabs.focusActiveTabContent()},checkToggleButtonContainerAvailability(){this.open===!1&&!this.noToggle&&!this.ncContentSelector&&Ie.warn("[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.")},onNameInput(e){this.$emit("update:name",e.target.value)},onSubmitName(e){this.$emit("update:nameEditable",!1),this.$emit("submitName",e)},onDismissEditing(){this.$emit("update:nameEditable",!1),this.$emit("dismissEditing")},onUpdateActive(e){this.$emit("update:active",e)}}},xp=["aria-labelledby"],Sp={class:"app-sidebar-header__info"},Ap={key:0,class:"app-sidebar-header__tertiary-actions"},Lp={class:"app-sidebar-header__name-container"},Np={class:"app-sidebar-header__mainname-container"},Dp=["placeholder","value"],Tp=["title"],Ep={key:2,class:"app-sidebar-header__description"};function Bp(e,a,t,s,n,i){const l=w("IconDockRight"),u=w("NcButton"),h=w("NcLoadingIcon"),f=w("IconStar"),m=w("IconStarOutline"),p=w("NcAppSidebarHeader"),g=w("IconArrowRight"),b=w("NcActions"),S=w("IconClose"),y=w("NcAppSidebarTabs"),A=w("NcEmptyContent"),R=Za("focus"),P=Za("click-outside");return o(),I(Xs,{appear:"",name:"slide-right",onAfterEnter:i.onAfterEnter,onAfterLeave:i.onAfterLeave},{default:x(()=>[xe(r("aside",{id:"app-sidebar-vue",ref:"sidebar",class:"app-sidebar","aria-labelledby":`app-sidebar-vue-${s.uid}__header`,onKeydown:a[6]||(a[6]=we((...z)=>i.onKeydownEsc&&i.onKeydownEsc(...z),["esc"]))},[i.ncContentSelector&&!t.open&&!t.noToggle?(o(),I(_n,{key:0,to:i.ncContentSelector},[_(u,J({ref:"toggle","aria-label":i.t("Open sidebar"),class:["app-sidebar__toggle",t.toggleClasses],variant:"tertiary"},t.toggleAttrs,{onClick:a[0]||(a[0]=z=>e.$emit("update:open",!0))}),{icon:x(()=>[V(e.$slots,"toggle-icon",{},()=>[_(l,{size:20})],!0)]),_:3},16,["aria-label","class"])],8,["to"])):C("",!0),r("header",{class:F(["app-sidebar-header",{"app-sidebar-header--with-figure":i.isSlotPopulated(e.$slots.header?.())||t.background,"app-sidebar-header--compact":t.compact}])},[t.empty?(o(),I(p,{key:1,class:"app-sidebar-header__mainname--hidden",name:t.name,tabindex:"-1"},null,8,["name"])):V(e.$slots,"info",{key:0},()=>[r("div",Sp,[i.isSlotPopulated(e.$slots.header?.())||t.background?(o(),c("div",{key:0,class:F(["app-sidebar-header__figure",{"app-sidebar-header__figure--with-action":i.hasFigureClickListener}]),style:oe({backgroundImage:`url(${t.background})`}),tabindex:"0",onClick:a[1]||(a[1]=(...z)=>i.onFigureClick&&i.onFigureClick(...z)),onKeydown:a[2]||(a[2]=we((...z)=>i.onFigureClick&&i.onFigureClick(...z),["enter"]))},[V(e.$slots,"header",{class:"app-sidebar-header__background"},void 0,!0)],38)):C("",!0),r("div",{class:F(["app-sidebar-header__desc",{"app-sidebar-header__desc--with-tertiary-action":i.canStar||i.isSlotPopulated(e.$slots["tertiary-actions"]?.()),"app-sidebar-header__desc--editable":t.nameEditable&&!t.subname,"app-sidebar-header__desc--with-subname--editable":t.nameEditable&&t.subname,"app-sidebar-header__desc--without-actions":!i.isSlotPopulated(e.$slots["secondary-actions"]?.())}])},[i.canStar||i.isSlotPopulated(e.$slots["tertiary-actions"]?.())?(o(),c("div",Ap,[V(e.$slots,"tertiary-actions",{},()=>[i.canStar?(o(),I(u,{key:0,"aria-label":n.favoriteTranslated,pressed:n.isStarred,class:"app-sidebar-header__star",variant:"secondary",onClick:he(i.toggleStarred,["prevent"])},{icon:x(()=>[t.starLoading?(o(),I(h,{key:0})):n.isStarred?(o(),I(f,{key:1,size:20})):(o(),I(m,{key:2,size:20}))]),_:1},8,["aria-label","pressed","onClick"])):C("",!0)],!0)])):C("",!0),r("div",Lp,[r("div",Np,[xe(_(p,{class:"app-sidebar-header__mainname",name:t.name,linkify:t.linkifyName,title:t.title,tabindex:t.nameEditable?0:-1,onClick:he(i.editName,["self"])},null,8,["name","linkify","title","tabindex","onClick"]),[[Je,!t.nameEditable]]),t.nameEditable?xe((o(),c("form",{key:0,class:"app-sidebar-header__mainname-form",onSubmit:a[5]||(a[5]=he((...z)=>i.onSubmitName&&i.onSubmitName(...z),["prevent"]))},[xe(r("input",{ref:"nameInput",class:"app-sidebar-header__mainname-input",type:"text",placeholder:t.namePlaceholder,value:t.name,onKeydown:a[3]||(a[3]=we(he((...z)=>i.onDismissEditing&&i.onDismissEditing(...z),["stop"]),["esc"])),onInput:a[4]||(a[4]=(...z)=>i.onNameInput&&i.onNameInput(...z))},null,40,Dp),[[R]]),_(u,{"aria-label":n.changeNameTranslated,type:"submit",variant:"tertiary-no-background"},{icon:x(()=>[_(g,{size:20})]),_:1},8,["aria-label"])],32)),[[P,()=>i.onSubmitName()]]):C("",!0),i.isSlotPopulated(e.$slots["secondary-actions"]?.())?(o(),I(b,{key:1,class:"app-sidebar-header__menu",forceMenu:t.forceMenu},{default:x(()=>[V(e.$slots,"secondary-actions",{},void 0,!0)]),_:3},8,["forceMenu"])):C("",!0)]),t.subname.trim()!==""||e.$slots.subname?(o(),c("p",{key:0,title:t.subtitle||void 0,class:"app-sidebar-header__subname"},[V(e.$slots,"subname",{},()=>[q(d(t.subname),1)],!0)],8,Tp)):C("",!0)])],2)])],!0),_(u,{ref:"closeButton","aria-label":n.closeTranslated,title:n.closeTranslated,class:"app-sidebar__close",variant:"tertiary",onClick:he(i.closeSidebar,["prevent"])},{icon:x(()=>[_(S,{size:20})]),_:1},8,["aria-label","title","onClick"]),i.isSlotPopulated(e.$slots.description?.())&&!t.empty?(o(),c("div",Ep,[V(e.$slots,"description",{},void 0,!0)])):C("",!0)],2),xe(_(y,{ref:"tabs",active:t.active,forceTabs:t.forceTabs,"onUpdate:active":i.onUpdateActive},{default:x(()=>[V(e.$slots,"default",{},void 0,!0)]),_:3},8,["active","forceTabs","onUpdate:active"]),[[Je,!t.loading]]),t.loading?(o(),I(A,{key:1},{icon:x(()=>[_(h,{size:64})]),_:1})):C("",!0)],40,xp),[[Je,t.open]])]),_:3},8,["onAfterEnter","onAfterLeave"])}const Ip=ee(kp,[["render",Bp],["__scopeId","data-v-e8979b7f"]]),Mp={name:"NcAppSidebarTab",inject:["registerTab","unregisterTab","getActiveTab","isTablistShown"],props:{id:{type:String,required:!0},name:{type:String,required:!0},icon:{type:String,default:""},order:{type:Number,default:0}},emits:["bottomReached","scroll"],expose:["id","name","icon","order","renderIcon"],computed:{isActive(){return this.getActiveTab()===this.id}},created(){this.registerTab(this)},beforeUnmount(){this.unregisterTab(this.id)},methods:{onScroll(e){this.$el.scrollHeight-this.$el.scrollTop===this.$el.clientHeight&&this.$emit("bottomReached",e),this.$emit("scroll",e)},renderIcon(){return this.$slots.icon?.()}}},zp=["id","aria-hidden","aria-label","aria-labelledby","role","tabindex"],$p={class:"hidden-visually"};function Rp(e,a,t,s,n,i){return o(),c("section",{id:`tab-${t.id}`,"aria-hidden":!i.isActive,"aria-label":i.isTablistShown()?void 0:t.name,"aria-labelledby":i.isTablistShown()?`tab-button-${t.id}`:void 0,class:F(["app-sidebar__tab",{"app-sidebar__tab--active":i.isActive}]),role:i.isTablistShown()?"tabpanel":void 0,tabindex:i.isTablistShown()?0:-1,onScroll:a[0]||(a[0]=(...l)=>i.onScroll&&i.onScroll(...l))},[r("h3",$p,d(t.name),1),V(e.$slots,"default",{},void 0,!0)],42,zp)}const Op=ee(Mp,[["render",Rp],["__scopeId","data-v-dba10798"]]);function Pp(e,a){const t=(m,p)=>m.startsWith(p)?m.slice(p.length):m,s=(m,...p)=>p.reduce((g,b)=>t(g,b),m);if(!e)return null;const n=/^https?:\/\//.test(a),i=/^[a-z][a-z0-9+.-]*:.+/.test(a);if(!n&&i||n&&!a.startsWith(Mi())||!n&&!a.startsWith("/"))return null;const l=n?s(a,Mi(),"/index.php"):a,u=s(e.options.history.base,Js(),"/index.php"),h=s(l,u)||"/",f=e.resolve(h);return f.matched.length?f.fullPath:null}function qp(e){return window._nc_contacts_menu_hooks?Object.values(window._nc_contacts_menu_hooks).filter(a=>a.enabled(e)):[]}const Vp=new Int32Array(4);class ve{static hashStr(a,t=!1){return this.onePassHasher.start().appendStr(a).end(t)}static hashAsciiStr(a,t=!1){return this.onePassHasher.start().appendAsciiStr(a).end(t)}static stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);static buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);static hexChars="0123456789abcdef";static hexOut=[];static onePassHasher=new ve;static _hex(a){const t=ve.hexChars,s=ve.hexOut;let n,i,l,u;for(u=0;u<4;u+=1)for(i=u*8,n=a[u],l=0;l<8;l+=2)s[i+1+l]=t.charAt(n&15),n>>>=4,s[i+0+l]=t.charAt(n&15),n>>>=4;return s.join("")}static _md5cycle(a,t){let s=a[0],n=a[1],i=a[2],l=a[3];s+=(n&i|~n&l)+t[0]-680876936|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[1]-389564586|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[2]+606105819|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[3]-1044525330|0,n=(n<<22|n>>>10)+i|0,s+=(n&i|~n&l)+t[4]-176418897|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[5]+1200080426|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[6]-1473231341|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[7]-45705983|0,n=(n<<22|n>>>10)+i|0,s+=(n&i|~n&l)+t[8]+1770035416|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[9]-1958414417|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[10]-42063|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[11]-1990404162|0,n=(n<<22|n>>>10)+i|0,s+=(n&i|~n&l)+t[12]+1804603682|0,s=(s<<7|s>>>25)+n|0,l+=(s&n|~s&i)+t[13]-40341101|0,l=(l<<12|l>>>20)+s|0,i+=(l&s|~l&n)+t[14]-1502002290|0,i=(i<<17|i>>>15)+l|0,n+=(i&l|~i&s)+t[15]+1236535329|0,n=(n<<22|n>>>10)+i|0,s+=(n&l|i&~l)+t[1]-165796510|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[6]-1069501632|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[11]+643717713|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[0]-373897302|0,n=(n<<20|n>>>12)+i|0,s+=(n&l|i&~l)+t[5]-701558691|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[10]+38016083|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[15]-660478335|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[4]-405537848|0,n=(n<<20|n>>>12)+i|0,s+=(n&l|i&~l)+t[9]+568446438|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[14]-1019803690|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[3]-187363961|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[8]+1163531501|0,n=(n<<20|n>>>12)+i|0,s+=(n&l|i&~l)+t[13]-1444681467|0,s=(s<<5|s>>>27)+n|0,l+=(s&i|n&~i)+t[2]-51403784|0,l=(l<<9|l>>>23)+s|0,i+=(l&n|s&~n)+t[7]+1735328473|0,i=(i<<14|i>>>18)+l|0,n+=(i&s|l&~s)+t[12]-1926607734|0,n=(n<<20|n>>>12)+i|0,s+=(n^i^l)+t[5]-378558|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[8]-2022574463|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[11]+1839030562|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[14]-35309556|0,n=(n<<23|n>>>9)+i|0,s+=(n^i^l)+t[1]-1530992060|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[4]+1272893353|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[7]-155497632|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[10]-1094730640|0,n=(n<<23|n>>>9)+i|0,s+=(n^i^l)+t[13]+681279174|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[0]-358537222|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[3]-722521979|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[6]+76029189|0,n=(n<<23|n>>>9)+i|0,s+=(n^i^l)+t[9]-640364487|0,s=(s<<4|s>>>28)+n|0,l+=(s^n^i)+t[12]-421815835|0,l=(l<<11|l>>>21)+s|0,i+=(l^s^n)+t[15]+530742520|0,i=(i<<16|i>>>16)+l|0,n+=(i^l^s)+t[2]-995338651|0,n=(n<<23|n>>>9)+i|0,s+=(i^(n|~l))+t[0]-198630844|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[7]+1126891415|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[14]-1416354905|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[5]-57434055|0,n=(n<<21|n>>>11)+i|0,s+=(i^(n|~l))+t[12]+1700485571|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[3]-1894986606|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[10]-1051523|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[1]-2054922799|0,n=(n<<21|n>>>11)+i|0,s+=(i^(n|~l))+t[8]+1873313359|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[15]-30611744|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[6]-1560198380|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[13]+1309151649|0,n=(n<<21|n>>>11)+i|0,s+=(i^(n|~l))+t[4]-145523070|0,s=(s<<6|s>>>26)+n|0,l+=(n^(s|~i))+t[11]-1120210379|0,l=(l<<10|l>>>22)+s|0,i+=(s^(l|~n))+t[2]+718787259|0,i=(i<<15|i>>>17)+l|0,n+=(l^(i|~s))+t[9]-343485551|0,n=(n<<21|n>>>11)+i|0,a[0]=s+a[0]|0,a[1]=n+a[1]|0,a[2]=i+a[2]|0,a[3]=l+a[3]|0}_dataLength=0;_bufferLength=0;_state=new Int32Array(4);_buffer=new ArrayBuffer(68);_buffer8;_buffer32;constructor(){this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(ve.stateIdentity),this}appendStr(a){const t=this._buffer8,s=this._buffer32;let n=this._bufferLength,i,l;for(l=0;l>>6)+192,t[n++]=i&63|128;else if(i<55296||i>56319)t[n++]=(i>>>12)+224,t[n++]=i>>>6&63|128,t[n++]=i&63|128;else{if(i=(i-55296)*1024+(a.charCodeAt(++l)-56320)+65536,i>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");t[n++]=(i>>>18)+240,t[n++]=i>>>12&63|128,t[n++]=i>>>6&63|128,t[n++]=i&63|128}n>=64&&(this._dataLength+=64,ve._md5cycle(this._state,s),n-=64,s[0]=s[16])}return this._bufferLength=n,this}appendAsciiStr(a){const t=this._buffer8,s=this._buffer32;let n=this._bufferLength,i,l=0;for(;;){for(i=Math.min(a.length-l,64-n);i--;)t[n++]=a.charCodeAt(l++);if(n<64)break;this._dataLength+=64,ve._md5cycle(this._state,s),n=0}return this._bufferLength=n,this}appendByteArray(a){const t=this._buffer8,s=this._buffer32;let n=this._bufferLength,i,l=0;for(;;){for(i=Math.min(a.length-l,64-n);i--;)t[n++]=a[l++];if(n<64)break;this._dataLength+=64,ve._md5cycle(this._state,s),n=0}return this._bufferLength=n,this}getState(){const a=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[a[0],a[1],a[2],a[3]]}}setState(a){const t=a.buffer,s=a.state,n=this._state;let i;for(this._dataLength=a.length,this._bufferLength=a.buflen,n[0]=s[0],n[1]=s[1],n[2]=s[2],n[3]=s[3],i=0;i>2)+1;this._dataLength+=t;const l=this._dataLength*8;if(s[t]=128,s[t+1]=s[t+2]=s[t+3]=0,n.set(ve.buffer32Identity.subarray(i),i),t>55&&(ve._md5cycle(this._state,n),n.set(ve.buffer32Identity)),l<=4294967295)n[14]=l;else{const u=l.toString(16).match(/(.*?)(.{0,8})$/);if(u===null)return a?Vp:"";const h=parseInt(u[2],16),f=parseInt(u[1],16)||0;n[14]=h,n[15]=f}return ve._md5cycle(this._state,n),a?this._state:ve._hex(this._state)}}if(ve.hashStr("hello")!=="5d41402abc4b2a76b9719d911017c592")throw new Error("Md5 self test failed.");Le(el);class _e{constructor(a,t,s,n){this.r=a,this.g=t,this.b=s,this.name=n,this.r=Math.min(a,255),this.g=Math.min(t,255),this.b=Math.min(s,255),this.name=n}r;g;b;name;get color(){const a=t=>`00${t.toString(16)}`.slice(-2);return`#${a(this.r)}${a(this.g)}${a(this.b)}`}}function Hp(e,a,t){return{r:(t.r-a.r)/e,g:(t.g-a.g)/e,b:(t.b-a.b)/e}}function Ua(e,a,t){const s=[];s.push(a);const n=Hp(e,a,t);for(let i=1;i/g,u=/<\/?([^\s\/>]+)/;function h(S,y,A){S=S||"",y=y||[],A=A||"";let R=m(y,A);return p(S,R)}function f(S,y){S=S||[],y=y||"";let A=m(S,y);return function(R){return p(R||"",A)}}h.init_streaming_mode=f;function m(S,y){return S=g(S),{allowable_tags:S,tag_replacement:y,state:s,tag_buffer:"",depth:0,in_quote_char:""}}function p(S,y){if(typeof S!="string")throw new TypeError("'html' parameter must be a string");let A=y.allowable_tags,R=y.tag_replacement,P=y.state,z=y.tag_buffer,G=y.depth,ae=y.in_quote_char,se="";for(let le=0,te=S.length;le":if(ae)break;if(G){G--;break}ae="",P=s,z+=">",A.has(b(z))?se+=z:se+=R,z="";break;case'"':case"'":re===ae?ae="":ae=ae||re,z+=re;break;case"-":z===""?(z.slice(-2)=="--"&&(P=s),z=""):z+=re)}return y.state=P,y.tag_buffer=z,y.depth=G,y.in_quote_char=ae,se}function g(S){let y=new Set;if(typeof S=="string"){let A;for(;A=l.exec(S);)y.add(A[1])}else!t.nonNative&&typeof S[t.iterator]=="function"?y=new Set(S):typeof S.forEach=="function"&&S.forEach(y.add,y);return y}function b(S){let y=u.exec(S);return y?y[1].toLowerCase():null}e.exports?e.exports=h:a.striptags=h})(jp)})(oi)),oi.exports}Wp();function Gp(e,a){const t=(a?.size||64)<=64?64:512,s=a?.isGuest?"/guest":"",n=a?.isDarkTheme??Wa(document.body)?"/dark":"";return fi(`/avatar${s}/{user}/{size}${n}?guestFallback=true`,{user:e,size:t})}const Zp=` + + + +`,Kp=` + + + +`,Yp=` + + + +`,rn=` + + + +`,Xp=` + + + +`;Le(tl),Le(al);function ss(e){switch(e){case"away":return j("away");case"busy":return j("busy");case"dnd":return j("do not disturb");case"online":return j("online");case"invisible":return j("invisible");case"offline":return j("offline");default:return e}}const Qp=["aria-hidden","aria-label","innerHTML"],Jp=be({__name:"NcUserStatusIcon",props:ct({user:{default:void 0},ariaHidden:{type:[Boolean,String],default:!1}},{status:{},statusModifiers:{}}),emits:["update:status"],setup(e){const a=ut(e,"status"),t=e,s=Y(()=>a.value&&["invisible","offline"].includes(a.value)),n=Y(()=>a.value&&(!t.ariaHidden||t.ariaHidden==="false")?j("User status: {status}",{status:ss(a.value)}):void 0);Ae(()=>t.user,async u=>{if(!a.value&&u&&bi()?.user_status?.enabled)try{const{data:h}=await gi.get(Sn("/apps/user_status/api/v1/statuses/{user}",{user:u}));a.value=h.ocs?.data?.status}catch(h){Ie.debug("Error while fetching user status",{error:h})}},{immediate:!0});const i={online:Xp,away:Zp,busy:Kp,dnd:Yp,invisible:rn,offline:rn},l=Y(()=>a.value&&i[a.value]);return(u,h)=>a.value?(o(),c("span",{key:0,class:F(["user-status-icon",{"user-status-icon--invisible":s.value}]),"aria-hidden":!n.value||void 0,"aria-label":n.value,role:"img",innerHTML:l.value},null,10,Qp)):C("",!0)}}),eh=ee(Jp,[["__scopeId","data-v-881a79fb"]]),th={name:"NcActionLink",mixins:[Ea],inject:{isInSemanticMenu:{from:La,default:!1}},props:{href:{type:String,required:!0,validator:e=>{try{return new URL(e)}catch{return e.startsWith("#")||e.startsWith("/")}}},download:{type:String,default:null},target:{type:String,default:"_self",validator:e=>e&&(!e.startsWith("_")||["_blank","_self","_parent","_top"].indexOf(e)>-1)},title:{type:String,default:null}}},ah=["role"],ih=["download","href","aria-label","target","title","role"],nh={key:0,class:"action-link__longtext-wrapper"},sh={class:"action-link__name"},lh=["textContent"],oh=["textContent"],rh={key:2,class:"action-link__text"};function ch(e,a,t,s,n,i){return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[r("a",{download:t.download,href:t.href,"aria-label":e.ariaLabel,target:t.target,title:t.title,class:"action-link focusable",rel:"nofollow noreferrer noopener",role:i.isInSemanticMenu&&"menuitem",onClick:a[0]||(a[0]=(...l)=>e.onClick&&e.onClick(...l))},[V(e.$slots,"icon",{},()=>[r("span",{"aria-hidden":"true",class:F(["action-link__icon",[e.isIconUrl?"action-link__icon--url":e.icon]]),style:oe({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)],!0),e.name?(o(),c("span",nh,[r("strong",sh,d(e.name),1),a[1]||(a[1]=r("br",null,null,-1)),r("span",{class:"action-link__longtext",textContent:d(e.text)},null,8,lh)])):e.isLongText?(o(),c("span",{key:1,class:"action-link__longtext",textContent:d(e.text)},null,8,oh)):(o(),c("span",rh,d(e.text),1)),C("",!0)],8,ih)],8,ah)}const uh=ee(th,[["render",ch],["__scopeId","data-v-32f01b7a"]]),dh={name:"NcActionRouter",mixins:[Ea],inject:{isInSemanticMenu:{from:La,default:!1}},props:{to:{type:[String,Object],required:!0}}},ph=["role"],hh={key:0,class:"action-router__longtext-wrapper"},mh={class:"action-router__name"},fh=["textContent"],gh=["textContent"],bh={key:2,class:"action-router__text"};function yh(e,a,t,s,n,i){const l=w("RouterLink");return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[_(l,{"aria-label":e.ariaLabel,class:"action-router focusable",rel:"nofollow noreferrer noopener",role:i.isInSemanticMenu&&"menuitem",title:e.title,to:t.to,onClick:e.onClick},{default:x(()=>[V(e.$slots,"icon",{},()=>[r("span",{"aria-hidden":"true",class:F(["action-router__icon",[e.isIconUrl?"action-router__icon--url":e.icon]]),style:oe({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)],!0),e.name?(o(),c("span",hh,[r("strong",mh,d(e.name),1),a[0]||(a[0]=r("br",null,null,-1)),r("span",{class:"action-router__longtext",textContent:d(e.text)},null,8,fh)])):e.isLongText?(o(),c("span",{key:1,class:"action-router__longtext",textContent:d(e.text)},null,8,gh)):(o(),c("span",bh,d(e.text),1)),C("",!0)]),_:3},8,["aria-label","role","title","to","onClick"])],8,ph)}const vh=ee(dh,[["render",yh],["__scopeId","data-v-87267750"]]),_h={name:"NcActionText",mixins:[Ea],inject:{isInSemanticMenu:{from:La,default:!1}}},Ch=["role"],wh={key:0,class:"action-text__longtext-wrapper"},kh={class:"action-text__name"},xh=["textContent"],Sh=["textContent"],Ah={key:2,class:"action-text__text"};function Lh(e,a,t,s,n,i){return o(),c("li",{class:"action",role:i.isInSemanticMenu&&"presentation"},[r("span",{class:"action-text",onClick:a[0]||(a[0]=(...l)=>e.onClick&&e.onClick(...l))},[V(e.$slots,"icon",{},()=>[e.icon!==""?(o(),c("span",{key:0,"aria-hidden":"true",class:F(["action-text__icon",[e.isIconUrl?"action-text__icon--url":e.icon]]),style:oe({backgroundImage:e.isIconUrl?`url(${e.icon})`:null})},null,6)):C("",!0)],!0),e.name?(o(),c("span",wh,[r("strong",kh,d(e.name),1),r("span",{class:"action-text__longtext",textContent:d(e.text)},null,8,xh)])):e.isLongText?(o(),c("span",{key:1,class:"action-text__longtext",textContent:d(e.text)},null,8,Sh)):(o(),c("span",Ah,d(e.text),1)),C("",!0)])],8,Ch)}const Nh=ee(_h,[["render",Lh],["__scopeId","data-v-fa684b48"]]);Le(il);const Dh={data(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{async fetchUserStatus(e){if(!e)return;const a=bi();if(!(!Object.hasOwn(a,"user_status")||!a.user_status.enabled)&&Ka())try{const{data:t}=await gi.get(Sn("apps/user_status/api/v1/statuses/{userId}",{userId:e}));this.setUserStatus(t.ocs.data)}catch(t){if(t.response.status===404&&t.response.data.ocs?.data?.length===0)return;Ie.error("Failed to fetch user status",{error:t})}},setUserStatus({status:e,message:a,icon:t}){this.userStatus.status=e||"",this.userStatus.message=a||"",this.userStatus.icon=t||"",this.hasStatus=!!e}}},ls=mn("nextcloud").persist().build();function Th(e){const a=ls.getItem("user-has-avatar."+e);return typeof a=="string"?!!a:null}function cn(e,a){e&&ls.setItem("user-has-avatar."+e,a)}const Eh={name:"NcAvatar",directives:{ClickOutside:Kn},components:{IconDotsHorizontal:nl,NcActions:rt,NcButton:ge,NcIconSvgWrapper:Se,NcLoadingIcon:Na,NcUserStatusIcon:eh},mixins:[Dh],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},hideStatus:{type:Boolean,default:!1},verboseStatus:{type:Boolean,default:!1},preloadedUserStatus:{type:Object,default:void 0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},noPlaceholder:{type:Boolean,default:!1},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},menuContainer:{type:[Boolean,String,Object,Element],default:"body"}},setup(){return{isDarkTheme:ru()}},data(){return{avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuLoading:!1,contactsMenuData:{},contactsMenuActions:[],contactsMenuOpenState:!1}},computed:{avatarAriaLabel(){if(this.hasMenu)return this.canDisplayUserStatus||this.showUserStatusIconOnAvatar?j("Avatar of {displayName}, {status}",{displayName:this.displayName??this.user,status:ss(this.userStatus.status)}):j("Avatar of {displayName}",{displayName:this.displayName??this.user})},canDisplayUserStatus(){return!this.hideStatus&&this.hasStatus&&["online","away","busy","dnd"].includes(this.userStatus.status)},showUserStatusIconOnAvatar(){return!this.hideStatus&&!this.verboseStatus&&this.hasStatus&&this.userStatus.status!=="dnd"&&this.userStatus.icon},userIdentifier(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:""},isUserDefined(){return typeof this.user<"u"},isDisplayNameDefined(){return typeof this.displayName<"u"},isUrlDefined(){return typeof this.url<"u"},hasMenu(){return this.disableMenu?!1:this.isMenuLoaded?this.menu.length>0:!(this.user===Ka()?.uid||this.userDoesNotExist||this.url)},showInitials(){return!this.noPlaceholder&&this.userDoesNotExist&&!(this.iconClass||this.$slots.icon)},avatarStyle(){return{"--avatar-size":this.size+"px",lineHeight:this.showInitials?this.size+"px":0,fontSize:Math.round(this.size*.45)+"px"}},initialsWrapperStyle(){const{r:e,g:a,b:t}=ln(this.userIdentifier);return{backgroundColor:`rgba(${e}, ${a}, ${t}, 0.1)`}},initialsStyle(){const{r:e,g:a,b:t}=ln(this.userIdentifier);return{color:`rgb(${e}, ${a}, ${t})`}},tooltip(){return this.disableTooltip?null:this.tooltipMessage?this.tooltipMessage:this.displayName},initials(){let e="?";if(this.showInitials){const a=this.userIdentifier.trim();if(a==="")return e;const t=a.match(/[\p{L}\p{N}\s]/gu);if(!t)return e;const s=t.join(""),n=s.lastIndexOf(" ");e=String.fromCodePoint(s.codePointAt(0)),n!==-1&&(e=e.concat(String.fromCodePoint(s.codePointAt(n+1))))}return e.toLocaleUpperCase()},menu(){const e=this.contactsMenuActions.map(t=>{const s=Pp(this.$router,t.hyperlink);return{ncActionComponent:s?vh:uh,ncActionComponentProps:s?{to:s,icon:t.icon}:{href:t.hyperlink,icon:t.icon},text:t.title}});for(const t of qp(this.contactsMenuData))try{e.push({ncActionComponent:Hn,ncActionComponentProps:{onClick:()=>t.callback(this.contactsMenuData)},text:t.displayName(this.contactsMenuData),iconSvg:t.iconSvg(this.contactsMenuData)})}catch(s){Ie.error(`Failed to render ContactsMenu action ${t.id}`,{error:s,action:t})}function a(t){const s=document.createTextNode(t),n=document.createElement("p");return n.appendChild(s),n.innerHTML}if(!this.hideStatus&&(this.userStatus.icon||this.userStatus.message)){const t=` + ${a(this.userStatus.icon)} + `;return[{ncActionComponent:Nh,ncActionComponentProps:{},iconSvg:this.userStatus.icon?t:void 0,text:`${this.userStatus.message}`}].concat(e)}return e}},watch:{url(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()}},mounted(){this.loadAvatarUrl(),jt("settings:avatar:updated",this.loadAvatarUrl),jt("settings:display-name:updated",this.loadAvatarUrl),!this.hideStatus&&this.user&&!this.isNoUser?(this.preloadedUserStatus?this.setUserStatus(this.preloadedUserStatus):this.fetchUserStatus(this.user),jt("user_status:status.updated",this.handleUserStatusUpdated)):!this.hideStatus&&this.preloadedUserStatus&&this.setUserStatus(this.preloadedUserStatus)},beforeUnmount(){Wt("settings:avatar:updated",this.loadAvatarUrl),Wt("settings:display-name:updated",this.loadAvatarUrl),Wt("user_status:status.updated",this.handleUserStatusUpdated)},methods:{t:j,handleUserStatusUpdated(e){this.user===e.userId&&(this.userStatus={status:e.status,icon:e.icon,message:e.message},this.hasStatus=e.status!==null)},async toggleMenu(e){e.type==="keydown"&&e.key!=="Enter"||(this.contactsMenuOpenState||await this.fetchContactsMenu(),this.contactsMenuOpenState=!this.contactsMenuOpenState)},closeMenu(){this.contactsMenuOpenState=!1},async fetchContactsMenu(){this.contactsMenuLoading=!0;try{const e=encodeURIComponent(this.user),{data:a}=await gi.post(fi("contactsmenu/findOne"),`shareType=0&shareWith=${e}`);this.contactsMenuData=a,this.contactsMenuActions=a.topAction?[a.topAction].concat(a.actions):a.actions}catch{this.contactsMenuOpenState=!1}this.contactsMenuLoading=!1,this.isMenuLoaded=!0},loadAvatarUrl(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser||this.iconClass||this.$slots.icon)){this.isAvatarLoaded=!0,this.userDoesNotExist=!0;return}if(this.isUrlDefined){this.updateImageIfValid(this.url);return}if(this.size<=64){const e=this.avatarUrlGenerator(this.user,64),a=[e+" 1x",this.avatarUrlGenerator(this.user,512)+" 8x"].join(", ");this.updateImageIfValid(e,a)}else{const e=this.avatarUrlGenerator(this.user,512);this.updateImageIfValid(e)}},avatarUrlGenerator(e,a){let t=Gp(e,{size:a,isDarkTheme:this.isDarkTheme,isGuest:this.isGuest});return e===Ka()?.uid&&typeof oc_userconfig<"u"&&(t+="?v="+window.oc_userconfig.avatar.version),t},updateImageIfValid(e,a=null){const t=Th(this.user);if(this.isUserDefined&&typeof t=="boolean"){this.isAvatarLoaded=!0,this.avatarUrlLoaded=e,a&&(this.avatarSrcSetLoaded=a),t===!1&&(this.userDoesNotExist=!0);return}const s=new Image;s.onload=()=>{this.avatarUrlLoaded=e,a&&(this.avatarSrcSetLoaded=a),this.isAvatarLoaded=!0,cn(this.user,!0)},s.onerror=n=>{Ie.debug("[NcAvatar] Invalid avatar url",{error:n,url:e}),this.avatarUrlLoaded=null,this.avatarSrcSetLoaded=null,this.userDoesNotExist=!0,this.isAvatarLoaded=!1,cn(this.user,!1)},a&&(s.srcset=a),s.src=e}}},Bh=["title"],Ih=["src","srcset"],Mh={key:2,class:"avatardiv__user-status avatardiv__user-status--icon"};function zh(e,a,t,s,n,i){const l=w("NcLoadingIcon"),u=w("IconDotsHorizontal"),h=w("NcButton"),f=w("NcIconSvgWrapper"),m=w("NcActions"),p=w("NcUserStatusIcon"),g=Za("click-outside");return xe((o(),c("span",{class:F(["avatardiv popovermenu-wrapper",{"avatardiv--unknown":n.userDoesNotExist,"avatardiv--with-menu":i.hasMenu,"avatardiv--with-menu-loading":n.contactsMenuLoading}]),style:oe(i.avatarStyle),title:i.tooltip},[V(e.$slots,"icon",{},()=>[t.iconClass?(o(),c("span",{key:0,class:F([t.iconClass,"avatar-class-icon"])},null,2)):n.isAvatarLoaded&&!n.userDoesNotExist?(o(),c("img",{key:1,src:n.avatarUrlLoaded,srcset:n.avatarSrcSetLoaded,alt:""},null,8,Ih)):C("",!0)],!0),i.hasMenu&&i.menu.length===0?(o(),I(h,{key:0,"aria-label":i.avatarAriaLabel,class:"action-item action-item__menutoggle",variant:"tertiary-no-background",onClick:i.toggleMenu},{icon:x(()=>[n.contactsMenuLoading?(o(),I(l,{key:0})):(o(),I(u,{key:1,size:20}))]),_:1},8,["aria-label","onClick"])):i.hasMenu?(o(),I(m,{key:1,open:n.contactsMenuOpenState,"onUpdate:open":a[0]||(a[0]=b=>n.contactsMenuOpenState=b),"aria-label":i.avatarAriaLabel,container:t.menuContainer,forceMenu:"",manualOpen:"",variant:"tertiary-no-background",onClick:i.toggleMenu},et({default:x(()=>[(o(!0),c(Q,null,pe(i.menu,(b,S)=>(o(),I(ft(b.ncActionComponent),J({key:S},{ref_for:!0},b.ncActionComponentProps),et({default:x(()=>[q(" "+d(b.text),1)]),_:2},[b.iconSvg?{name:"icon",fn:x(()=>[_(f,{svg:b.iconSvg},null,8,["svg"])]),key:"0"}:void 0]),1040))),128))]),_:2},[n.contactsMenuLoading?{name:"icon",fn:x(()=>[_(l)]),key:"0"}:void 0]),1032,["open","aria-label","container","onClick"])):C("",!0),i.showUserStatusIconOnAvatar?(o(),c("span",Mh,d(e.userStatus.icon),1)):i.canDisplayUserStatus?(o(),I(p,{key:3,class:"avatardiv__user-status",status:e.userStatus.status,"aria-hidden":String(i.hasMenu)},null,8,["status","aria-hidden"])):C("",!0),i.showInitials?(o(),c("span",{key:4,style:oe(i.initialsWrapperStyle),class:"avatardiv__initials-wrapper"},[r("span",{style:oe(i.initialsStyle),class:"avatardiv__initials"},d(i.initials),5)],4)):C("",!0)],14,Bh)),[[g,i.closeMenu]])}const Ia=ee(Eh,[["render",zh],["__scopeId","data-v-e0ae1174"]]),$h={name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Rh=["aria-hidden","aria-label"],Oh=["fill","width","height"],Ph={d:"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"},qh={key:0};function Vh(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon cancel-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Ph,[t.title?(o(),c("title",qh,d(t.title),1)):C("",!0)])],8,Oh))],16,Rh)}const Hh=U($h,[["render",Vh]]),Fh={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Uh=["aria-hidden","aria-label"],jh=["fill","width","height"],Wh={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},Gh={key:0};function Zh(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Wh,[t.title?(o(),c("title",Gh,d(t.title),1)):C("",!0)])],8,jh))],16,Uh)}const Kh=U(Fh,[["render",Zh]]),Yh={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xh=["aria-hidden","aria-label"],Qh=["fill","width","height"],Jh={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"},e0={key:0};function t0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon close-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Jh,[t.title?(o(),c("title",e0,d(t.title),1)):C("",!0)])],8,Qh))],16,Xh)}const a0=U(Yh,[["render",t0]]),i0={name:"CommentOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},n0=["aria-hidden","aria-label"],s0=["fill","width","height"],l0={d:"M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10Z"},o0={key:0};function r0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon comment-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",l0,[t.title?(o(),c("title",o0,d(t.title),1)):C("",!0)])],8,s0))],16,n0)}const c0=U(i0,[["render",r0]]),u0={name:"HistoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},d0=["aria-hidden","aria-label"],p0=["fill","width","height"],h0={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"},m0={key:0};function f0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon history-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",h0,[t.title?(o(),c("title",m0,d(t.title),1)):C("",!0)])],8,p0))],16,d0)}const g0=U(u0,[["render",f0]]),b0={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},y0=["aria-hidden","aria-label"],v0=["fill","width","height"],_0={d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"},C0={key:0};function w0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon information-outline-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",_0,[t.title?(o(),c("title",C0,d(t.title),1)):C("",!0)])],8,v0))],16,y0)}const k0=U(b0,[["render",w0]]),x0={name:"PencilIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},S0=["aria-hidden","aria-label"],A0=["fill","width","height"],L0={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"},N0={key:0};function D0(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon pencil-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",L0,[t.title?(o(),c("title",N0,d(t.title),1)):C("",!0)])],8,A0))],16,S0)}const os=U(x0,[["render",D0]]),T0={name:"StatusChip",props:{status:{type:String,required:!0}},computed:{meta(){return Iu(this.status)}}},E0={class:"status-chip__dot","aria-hidden":"true"};function B0(e,a,t,s,n,i){return o(),c("span",{class:"status-chip",style:oe({"--chip-text":i.meta.text,"--chip-tint":i.meta.tint})},[r("span",E0,d(i.meta.icon),1),q(" "+d(i.meta.label),1)],4)}const Di=U(T0,[["render",B0],["__scopeId","data-v-b664cccb"]]),I0={name:"CoveragePanel",components:{NcAvatar:Ia,NcEmptyContent:at,NcNoteCard:wn,AccountGroup:_i,StatusChip:Di},props:{coverage:{type:Object,required:!0}},methods:{t:M}},M0={class:"section"},z0={class:"section__title"},$0={key:2,class:"overlap"},R0={class:"overlap__name"};function O0(e,a,t,s,n,i){const l=w("NcNoteCard"),u=w("NcAvatar"),h=w("StatusChip"),f=w("AccountGroup"),m=w("NcEmptyContent");return o(),c("div",M0,[t.coverage.conflict?(o(),I(l,{key:0,type:"warning"},{default:x(()=>[q(d(i.t("absence","Approving this would put {peak} team members off at once (limit {threshold}).",{peak:t.coverage.projectedPeak,threshold:t.coverage.threshold})),1)]),_:1})):(o(),I(l,{key:1,type:"success"},{default:x(()=>[q(d(i.t("absence","Coverage looks fine — at most {peak} away at once.",{peak:t.coverage.projectedPeak??t.coverage.maxConcurrent})),1)]),_:1})),r("h4",z0,d(i.t("absence","Team members off during these dates")),1),t.coverage.events.length?(o(),c("ul",$0,[(o(!0),c(Q,null,pe(t.coverage.events,p=>(o(),c("li",{key:p.requestId,class:"overlap__item"},[_(u,{user:p.employeeUid,displayName:p.displayName,size:28,hideStatus:""},null,8,["user","displayName"]),r("span",R0,d(p.displayName),1),_(h,{status:p.status},null,8,["status"])]))),128))])):(o(),I(m,{key:3,name:i.t("absence","Nobody else is off 🎉")},{icon:x(()=>[_(f,{size:20})]),_:1},8,["name"]))])}const P0=U(I0,[["render",O0],["__scopeId","data-v-48df71be"]]),q0={name:"LeaveTypeChip",props:{typeId:{type:Number,required:!0}},computed:{type(){return W.leaveType(this.typeId)}}},V0={class:"type-chip__icon","aria-hidden":"true"};function H0(e,a,t,s,n,i){return o(),c("span",{class:"type-chip",style:oe({"--type-color":i.type.color})},[r("span",V0,d(i.type.icon),1),q(" "+d(i.type.label),1)],4)}const F0=U(q0,[["render",H0],["__scopeId","data-v-debceb16"]]),U0={name:"RequestStepper",props:{status:{type:String,required:!0}},computed:{steps(){const e=this.status,a={label:M("absence","Requested"),state:"done",tone:"default",icon:"📝"};let t;["PENDING","ESCALATED","WITHDRAWAL_PENDING"].includes(e)?t={label:e==="ESCALATED"?M("absence","With HR"):M("absence","In review"),state:"current",tone:"default",icon:"⏳"}:t={label:M("absence","Reviewed"),state:"done",tone:"default",icon:"👀"};let s;switch(e){case"APPROVED":s={label:M("absence","Approved"),state:"done",tone:"success",icon:"✅"};break;case"REJECTED":s={label:M("absence","Declined"),state:"done",tone:"error",icon:"✋"};break;case"CANCELLED":s={label:M("absence","Cancelled"),state:"done",tone:"muted",icon:"🚫"};break;case"WITHDRAWAL_PENDING":s={label:M("absence","Withdrawing"),state:"current",tone:"default",icon:"↩️"};break;default:s={label:M("absence","Decision"),state:"future",tone:"default",icon:"•"}}return[a,t,s]}},methods:{t:M}},j0=["aria-label"],W0={class:"stepper__dot","aria-hidden":"true"},G0={class:"stepper__label"},Z0={key:0,class:"stepper__bar","aria-hidden":"true"};function K0(e,a,t,s,n,i){return o(),c("ol",{class:"stepper","aria-label":i.t("absence","Request progress")},[(o(!0),c(Q,null,pe(i.steps,(l,u)=>(o(),c("li",{key:u,class:F(["stepper__step",[`stepper__step--${l.state}`,`stepper__step--${l.tone}`]])},[r("span",W0,d(l.icon),1),r("span",G0,d(l.label),1),ue.$emit("close"))},et({default:x(()=>[_(R,{id:"details",name:i.t("absence","Details"),order:1},{icon:x(()=>[_(u,{size:20})]),default:x(()=>[r("div",Q0,[i.showStatus?(o(),I(h,{key:0,status:n.detail.status,class:"section__stepper"},null,8,["status"])):C("",!0),r("dl",J0,[r("dt",null,d(i.t("absence","Employee")),1),r("dd",null,d(n.detail.employeeUid),1),r("dt",null,d(i.t("absence","Type")),1),r("dd",null,[_(f,{typeId:n.detail.typeId},null,8,["typeId"])]),r("dt",null,d(i.t("absence","Dates")),1),r("dd",null,d(i.rangeLabel),1),r("dt",null,d(i.t("absence","Working days")),1),r("dd",null,d(n.detail.workingDays),1),n.detail.replacementUid?(o(),c(Q,{key:0},[r("dt",null,d(i.t("absence","Replacement")),1),r("dd",e1,[_(m,{user:n.detail.replacementUid,size:20,hideStatus:""},null,8,["user"]),q(" "+d(n.detail.replacementName||n.detail.replacementUid),1)])],64)):C("",!0),n.detail.reason?(o(),c(Q,{key:1},[r("dt",null,d(i.t("absence","Reason")),1),r("dd",null,d(n.detail.reason),1)],64)):C("",!0),n.detail.decidedBy?(o(),c(Q,{key:2},[r("dt",null,d(i.t("absence","Decided by")),1),r("dd",t1,[_(m,{user:n.detail.decidedBy,size:20,hideStatus:""},null,8,["user"]),q(" "+d(n.detail.decidedBy),1),i.decidedAtLabel?(o(),c("span",a1," · "+d(i.decidedAtLabel),1)):C("",!0)])],64)):C("",!0),n.detail.decisionComment?(o(),c(Q,{key:3},[r("dt",null,d(i.t("absence","Decision note")),1),r("dd",null,d(n.detail.decisionComment),1)],64)):C("",!0)]),r("div",i1,[n.detail.canDecide&&i.isDecidable?(o(),c(Q,{key:0},[_(g,{variant:"success",disabled:n.busy,onClick:i.approve},{icon:x(()=>[_(p,{size:20})]),default:x(()=>[q(" "+d(i.decideLabelApprove),1)]),_:1},8,["disabled","onClick"]),_(g,{variant:"error",disabled:n.busy,onClick:i.startReject},{icon:x(()=>[_(b,{size:20})]),default:x(()=>[q(" "+d(i.decideLabelReject),1)]),_:1},8,["disabled","onClick"])],64)):C("",!0),n.detail.canModify&&i.isModifiable?(o(),c(Q,{key:1},[i.canEdit?(o(),I(g,{key:0,variant:"secondary",disabled:n.busy,onClick:a[0]||(a[0]=te=>e.$emit("edit",n.detail))},{icon:x(()=>[_(S,{size:20})]),default:x(()=>[q(" "+d(i.t("absence","Edit")),1)]),_:1},8,["disabled"])):C("",!0),_(g,{variant:"tertiary",disabled:n.busy,onClick:i.cancel},{icon:x(()=>[_(y,{size:20})]),default:x(()=>[q(" "+d(i.cancelLabel),1)]),_:1},8,["disabled","onClick"])],64)):C("",!0)]),n.rejecting?(o(),c("div",n1,[_(A,{modelValue:n.rejectComment,"onUpdate:modelValue":a[1]||(a[1]=te=>n.rejectComment=te),label:i.t("absence","Reason for declining"),rows:"2"},null,8,["modelValue","label"]),r("div",s1,[_(g,{variant:"tertiary",onClick:a[2]||(a[2]=te=>n.rejecting=!1)},{default:x(()=>[q(d(i.t("absence","Back")),1)]),_:1}),_(g,{variant:"error",disabled:n.rejectComment.trim()===""||n.busy,onClick:i.reject},{default:x(()=>[q(d(i.t("absence","Confirm decline")),1)]),_:1},8,["disabled","onClick"])])])):C("",!0)])]),_:1},8,["name"]),n.detail.coverage?(o(),I(R,{key:0,id:"coverage",name:i.t("absence","Coverage"),order:2},{icon:x(()=>[_(P,{size:20})]),default:x(()=>[_(z,{coverage:n.detail.coverage},null,8,["coverage"])]),_:1},8,["name"])):C("",!0),_(R,{id:"comments",name:i.t("absence","Comments"),order:3},{icon:x(()=>[_(G,{size:20})]),default:x(()=>[r("div",l1,[n.detail.comments.length?(o(),c("ul",o1,[(o(!0),c(Q,null,pe(n.detail.comments,te=>(o(),c("li",{key:te.id,class:"comments__item"},[r("div",r1,[_(m,{user:te.authorUid,size:24,hideStatus:""},null,8,["user"]),r("strong",null,d(te.authorUid),1)]),r("p",null,d(te.body),1)]))),128))])):(o(),I(ae,{key:1,name:i.t("absence","No comments yet"),description:i.t("absence","Start the conversation below.")},{icon:x(()=>[_(G,{size:20})]),_:1},8,["name","description"])),r("div",c1,[_(A,{modelValue:n.newComment,"onUpdate:modelValue":a[3]||(a[3]=te=>n.newComment=te),placeholder:i.t("absence","Add a comment…"),rows:"2"},null,8,["modelValue","placeholder"]),_(g,{variant:"secondary",disabled:n.newComment.trim()===""||n.busy,onClick:i.postComment},{default:x(()=>[q(d(i.t("absence","Send")),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"]),_(R,{id:"history",name:i.t("absence","History"),order:4},{icon:x(()=>[_(se,{size:20})]),default:x(()=>[r("div",u1,[n.detail.history&&n.detail.history.length?(o(),c("ol",d1,[(o(!0),c(Q,null,pe(n.detail.history,te=>(o(),c("li",{key:te.id,class:"timeline__item"},[r("span",p1,d(i.eventMeta(te.eventType).icon),1),r("div",h1,[r("div",m1,[r("strong",null,d(i.eventMeta(te.eventType).label),1),r("span",f1,d(i.formatDateTime(te.createdAt)),1)]),r("div",g1,[te.actorUid==="system"?(o(),c(Q,{key:0},[q(d(i.t("absence","Automatically")),1)],64)):(o(),c(Q,{key:1},[_(m,{user:te.actorUid,size:20,hideStatus:""},null,8,["user"]),q(" "+d(te.actorUid),1)],64))]),te.detail?(o(),c("p",b1,d(te.detail),1)):C("",!0)])]))),128))])):(o(),I(ae,{key:1,name:i.t("absence","No history yet")},{icon:x(()=>[_(se,{size:20})]),_:1},8,["name"]))])]),_:1},8,["name"])]),_:2},[i.showStatus?{name:"description",fn:x(()=>[_(l,{status:n.detail.status},null,8,["status"])]),key:"0"}:void 0]),1032,["name","subname"])):C("",!0)}const v1=U(X0,[["render",y1],["__scopeId","data-v-094834fe"]]),_1={name:"App",components:{NcContent:Xr,NcAppContent:xo,NcAppNavigation:zo,NcAppNavigationNew:Ur,NcAppNavigationItem:qr,NcAppNavigationCaption:Po,NcCounterBubble:Fn,RequestDialog:dd,RequestSidebar:v1,Plus:jn,CalendarAccountOutline:pc,ClipboardCheck:Ic,AccountGroup:_i,ScaleBalance:Wn,ChartBar:Ac,CalendarMonth:vc,Download:Un,ClipboardPlusOutline:qc},setup(){return fe("absence:openNew",()=>window.dispatchEvent(new CustomEvent("absence:open-new"))),fe("absence:openEdit",e=>window.dispatchEvent(new CustomEvent("absence:open-edit",{detail:e}))),{store:W}},data(){return{showDialog:!1,editRequest:null,recordMode:!1}},computed:{session(){return W.session},pendingCount(){return W.session.pendingApprovals||0}},mounted(){window.addEventListener("absence:open-new",this.openNewRequest),window.addEventListener("absence:open-edit",this.onOpenEditEvent),this.$route.params.id&&W.select(Number(this.$route.params.id))},beforeUnmount(){window.removeEventListener("absence:open-new",this.openNewRequest),window.removeEventListener("absence:open-edit",this.onOpenEditEvent)},methods:{openNewRequest(){this.editRequest=null,this.recordMode=!1,this.showDialog=!0},openRecord(){this.editRequest=null,this.recordMode=!0,this.showDialog=!0},onOpenEditEvent(e){this.openEditRequest(e.detail)},openEditRequest(e){this.editRequest=e,this.recordMode=!1,this.showDialog=!0,W.select(null)},closeDialog(){this.showDialog=!1,this.editRequest=null,this.recordMode=!1},onChanged(){this.closeDialog(),W.select(null),window.dispatchEvent(new CustomEvent("absence:refresh"))}}};function C1(e,a,t,s,n,i){const l=w("Plus"),u=w("NcAppNavigationNew"),h=w("CalendarAccountOutline"),f=w("NcAppNavigationItem"),m=w("ClipboardCheck"),p=w("NcCounterBubble"),g=w("AccountGroup"),b=w("NcAppNavigationCaption"),S=w("ClipboardPlusOutline"),y=w("ScaleBalance"),A=w("ChartBar"),R=w("CalendarMonth"),P=w("Download"),z=w("NcAppNavigation"),G=w("router-view"),ae=w("NcAppContent"),se=w("RequestSidebar"),le=w("RequestDialog"),te=w("NcContent");return o(),I(te,{appName:"absence"},{default:x(()=>[_(z,null,{list:x(()=>[_(u,{text:e.t("absence","New request"),onClick:i.openNewRequest},{icon:x(()=>[_(l,{size:20})]),_:1},8,["text","onClick"]),_(f,{name:e.t("absence","My leave"),to:{name:"my"}},{icon:x(()=>[_(h,{size:20})]),_:1},8,["name"]),i.session.isManager||i.session.isHr?(o(),I(f,{key:0,name:e.t("absence","Approvals"),to:{name:"approvals"}},et({icon:x(()=>[_(m,{size:20})]),_:2},[i.pendingCount>0?{name:"counter",fn:x(()=>[_(p,{count:i.pendingCount,type:"highlighted"},null,8,["count"])]),key:"0"}:void 0]),1032,["name"])):C("",!0),_(f,{name:e.t("absence","Team"),to:{name:"team"}},{icon:x(()=>[_(g,{size:20})]),_:1},8,["name"]),i.session.isHr?(o(),c(Q,{key:1},[_(b,{name:e.t("absence","HR")},null,8,["name"]),_(f,{name:e.t("absence","Record absence"),onClick:i.openRecord},{icon:x(()=>[_(S,{size:20})]),_:1},8,["name","onClick"]),_(f,{name:e.t("absence","Balances"),to:{name:"hr-balances"}},{icon:x(()=>[_(y,{size:20})]),_:1},8,["name"]),_(f,{name:e.t("absence","Statistics"),to:{name:"hr-statistics"}},{icon:x(()=>[_(A,{size:20})]),_:1},8,["name"]),_(f,{name:e.t("absence","Who's off"),to:{name:"hr-whos-off"}},et({icon:x(()=>[_(R,{size:20})]),_:2},[i.session.escalatedCount>0?{name:"counter",fn:x(()=>[_(p,{count:i.session.escalatedCount},null,8,["count"])]),key:"0"}:void 0]),1032,["name"]),_(f,{name:e.t("absence","Exports"),to:{name:"hr-exports"}},{icon:x(()=>[_(P,{size:20})]),_:1},8,["name"])],64)):C("",!0)]),_:1}),_(ae,null,{default:x(()=>[_(G)]),_:1}),s.store.selectedId?(o(),I(se,{key:s.store.selectedId,onClose:a[0]||(a[0]=re=>s.store.select(null)),onEdit:i.openEditRequest,onChanged:i.onChanged},null,8,["onEdit","onChanged"])):C("",!0),n.showDialog?(o(),I(le,{key:1,request:n.editRequest,hrMode:n.recordMode,onClose:i.closeDialog,onSaved:i.onChanged},null,8,["request","hrMode","onClose","onSaved"])):C("",!0)]),_:1})}const w1=U(_1,[["render",C1],["__scopeId","data-v-325006a2"]]),k1={name:"CheckAllIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},x1=["aria-hidden","aria-label"],S1=["fill","width","height"],A1={d:"M0.41,13.41L6,19L7.41,17.58L1.83,12M22.24,5.58L11.66,16.17L7.5,12L6.07,13.41L11.66,19L23.66,7M18,7L16.59,5.58L10.24,11.93L11.66,13.34L18,7Z"},L1={key:0};function N1(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-all-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",A1,[t.title?(o(),c("title",L1,d(t.title),1)):C("",!0)])],8,S1))],16,x1)}const D1=U(k1,[["render",N1]]),T1={name:"NcListItem",components:{NcActions:rt,NcCounterBubble:Fn,NcVNodes:vi},inheritAttrs:!1,props:{details:{type:String,default:""},name:{type:String,default:void 0},to:{type:[String,Object],default:null},href:{type:String,default:"#"},target:{type:String,default:""},anchorId:{type:String,default:""},bold:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},active:{type:Boolean,default:void 0},linkAriaLabel:{type:String,default:""},actionsAriaLabel:{type:String,default:void 0},counterNumber:{type:[Number,String],default:0},counterType:{type:String,default:"",validator(e){return["highlighted","outlined",""].indexOf(e)!==-1}},forceDisplayActions:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},oneLine:{type:Boolean,default:!1}},emits:["click","dragstart","update:menuOpen"],setup(){return{isLegacy34:tt}},data(){return{hovered:!1,hasActions:!1,hasSubname:!1,displayActionsOnHoverFocus:!1,menuOpen:!1,hasIndicator:!1,hasDetails:!1}},computed:{showAdditionalElements(){return!this.displayActionsOnHoverFocus||this.forceDisplayActions},showDetails(){return(this.details!==""||this.hasDetails)&&(!this.displayActionsOnHoverFocus||this.forceDisplayActions)}},watch:{menuOpen(e){!e&&!this.hovered&&(this.displayActionsOnHoverFocus=!1)}},mounted(){this.checkSlots()},updated(){this.checkSlots()},methods:{onClick(e,a,t){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&t&&(a?.(e),e.preventDefault())},showActions(){this.hasActions&&(this.displayActionsOnHoverFocus=!0),this.hovered=!1},hideActions(){this.displayActionsOnHoverFocus=!1},handleBlur(e){this.menuOpen||this.$refs["list-item"]?.contains(e.relatedTarget)||this.hideActions()},handleMouseleave(){this.menuOpen||(this.displayActionsOnHoverFocus=!1),this.hovered=!1},handleMouseover(){this.showActions(),this.hovered=!0},handleActionsUpdateOpen(e){this.menuOpen=e,this.$emit("update:menuOpen",e)},checkSlots(){this.hasActions!==!!this.$slots.actions&&(this.hasActions=!!this.$slots.actions),this.hasSubname!==!!this.$slots.subname&&(this.hasSubname=!!this.$slots.subname),this.hasIndicator!==!!this.$slots.indicator&&(this.hasIndicator=!!this.$slots.indicator),this.hasDetails!==!!this.$slots.details&&(this.hasDetails=!!this.$slots.details)}}},E1=["id","aria-label","href","target","rel","onClick"],B1={class:"list-item-content"},I1={class:"list-item-content__main"},M1={class:"list-item-content__name"},z1={class:"list-item-content__details"},$1={key:0,class:"list-item-details__details"},R1={key:1,class:"list-item-details__extra"},O1={key:1,class:"list-item-details__indicator"},P1={key:0,class:"list-item-content__extra-actions"},q1={key:2,class:"list-item__extra"};function V1(e,a,t,s,n,i){const l=w("NcCounterBubble"),u=w("NcActions");return o(),I(ft(t.to?"router-link":"NcVNodes"),pi(hi({...t.to&&{custom:!0,to:t.to}})),{default:x(({href:h,navigate:f,isActive:m})=>[r("li",J({class:["list-item__wrapper",{"list-item__wrapper--active":t.active??m,"list-item__wrapper--legacy":s.isLegacy34}]},e.$attrs),[r("div",{ref:"list-item",class:F(["list-item",{"list-item--compact":t.compact,"list-item--one-line":t.oneLine}]),onMouseover:a[5]||(a[5]=(...p)=>i.handleMouseover&&i.handleMouseover(...p)),onMouseleave:a[6]||(a[6]=(...p)=>i.handleMouseleave&&i.handleMouseleave(...p))},[r("a",{id:t.anchorId||void 0,"aria-label":t.linkAriaLabel,class:"list-item__anchor",href:h||t.href,target:t.target||(t.href==="#"?void 0:"_blank"),rel:t.href==="#"?void 0:"noopener noreferrer",onFocus:a[0]||(a[0]=(...p)=>i.showActions&&i.showActions(...p)),onFocusout:a[1]||(a[1]=(...p)=>i.handleBlur&&i.handleBlur(...p)),onClick:p=>i.onClick(p,f,h),onDragstart:a[2]||(a[2]=p=>e.$emit("dragstart",p)),onKeydown:a[3]||(a[3]=we((...p)=>i.hideActions&&i.hideActions(...p),["esc"]))},[V(e.$slots,"icon",{},void 0,!0),r("div",B1,[r("div",I1,[r("div",M1,[V(e.$slots,"name",{},()=>[q(d(t.name),1)],!0)]),n.hasSubname?(o(),c("div",{key:0,class:F(["list-item-content__subname",{"list-item-content__subname--bold":t.bold}])},[V(e.$slots,"subname",{},void 0,!0)],2)):C("",!0)]),r("div",z1,[i.showDetails?(o(),c("div",$1,[V(e.$slots,"details",{},()=>[q(d(t.details),1)],!0)])):C("",!0),t.counterNumber!==0||n.hasIndicator?xe((o(),c("div",R1,[t.counterNumber!==0?(o(),I(l,{key:0,count:t.counterNumber,active:s.isLegacy34?t.active??m:!1,class:"list-item-details__counter",type:t.counterType},null,8,["count","active","type"])):C("",!0),n.hasIndicator?(o(),c("span",O1,[V(e.$slots,"indicator",{},void 0,!0)])):C("",!0)],512)),[[Je,i.showAdditionalElements]]):C("",!0)])])],40,E1),e.$slots["extra-actions"]?(o(),c("div",P1,[V(e.$slots,"extra-actions",{},void 0,!0)])):C("",!0),t.forceDisplayActions||n.displayActionsOnHoverFocus?(o(),c("div",{key:1,class:"list-item-content__actions",onFocusout:a[4]||(a[4]=(...p)=>i.handleBlur&&i.handleBlur(...p))},[_(u,{ref:"actions",primary:s.isLegacy34?t.active??m:!1,forceMenu:t.forceMenu,"aria-label":t.actionsAriaLabel,"onUpdate:open":i.handleActionsUpdateOpen},et({default:x(()=>[V(e.$slots,"actions",{},void 0,!0)]),_:2},[e.$slots["actions-icon"]?{name:"icon",fn:x(()=>[V(e.$slots,"actions-icon",{},void 0,!0)]),key:"0"}:void 0]),1032,["primary","forceMenu","aria-label","onUpdate:open"])],32)):C("",!0),e.$slots.extra?(o(),c("div",q1,[V(e.$slots,"extra",{},void 0,!0)])):C("",!0)],34)],16)]),_:3},16)}const H1=ee(T1,[["render",V1],["__scopeId","data-v-0e705f5a"]]),F1={name:"RequestListItem",components:{NcListItem:H1,StatusChip:Di},props:{request:{type:Object,required:!0},active:{type:Boolean,default:!1},showEmployee:{type:Boolean,default:!1}},emits:["select"],computed:{type(){return W.leaveType(this.request.typeId)},showStatus(){return W.statusVisible(this.request)},colorSoft(){return`color-mix(in srgb, ${this.type.color} 18%, transparent)`},title(){return this.showEmployee?`${this.request.employeeUid} · ${this.type.label}`:this.type.label},subtitle(){const e=Da(this.request.startDate,this.request.endDate),a=Kt("absence","%n day","%n days",this.request.workingDays);return`${e} · ${a}`}},methods:{t:M,n:Kt}};function U1(e,a,t,s,n,i){const l=w("StatusChip"),u=w("NcListItem");return o(),c("div",{class:F(["rli",{"rli--active":t.active}]),style:oe({"--type-color":i.type.color})},[_(u,{name:i.title,active:t.active,forceDisplayActions:!0,onClick:a[0]||(a[0]=h=>e.$emit("select",t.request.id))},et({icon:x(()=>[r("span",{class:"rli__icon",style:oe({background:i.colorSoft}),"aria-hidden":"true"},d(i.type.icon),5)]),subname:x(()=>[q(d(i.subtitle),1)]),_:2},[i.showStatus?{name:"indicator",fn:x(()=>[_(l,{status:t.request.status},null,8,["status"])]),key:"0"}:void 0]),1032,["name","active"])],6)}const rs=U(F1,[["render",U1],["__scopeId","data-v-4165016d"]]),j1={name:"SkeletonList",props:{rows:{type:Number,default:4}},methods:{t:M}},W1=["aria-label"];function G1(e,a,t,s,n,i){return o(),c("div",{class:"skeleton","aria-label":i.t("absence","Loading…"),role:"status"},[(o(!0),c(Q,null,pe(t.rows,l=>(o(),c("div",{key:l,class:"skeleton__row"},[...a[0]||(a[0]=[An('',3)])]))),128))],8,W1)}const Pt=U(j1,[["render",G1],["__scopeId","data-v-024c423c"]]),Z1=["PENDING","ESCALATED","WITHDRAWAL_PENDING"],K1={name:"Approvals",components:{NcEmptyContent:at,CheckAll:D1,RequestListItem:rs,SkeletonList:Pt},setup(){return{store:W}},data(){return{loading:!0,teamQueue:[],escalated:[]}},mounted(){this.reload(),window.addEventListener("absence:refresh",this.reload)},beforeUnmount(){window.removeEventListener("absence:refresh",this.reload)},methods:{t:M,async reload(){this.loading=!0;try{const e=await ce.listRequests({scope:"reports"});this.teamQueue=e.filter(a=>Z1.includes(a.status)),W.session.isHr&&(this.escalated=await ce.listRequests({scope:"hr",status:"ESCALATED"}))}finally{this.loading=!1}}}},Y1={class:"page"},X1={class:"page__header"},Q1={class:"page__title"},J1={key:0,class:"group"},em={class:"group__title"},tm={key:1,class:"group"},am={class:"group__title"};function im(e,a,t,s,n,i){const l=w("SkeletonList"),u=w("RequestListItem"),h=w("CheckAll"),f=w("NcEmptyContent");return o(),c("div",Y1,[r("header",X1,[r("h2",Q1,d(i.t("absence","Approvals")),1)]),n.loading?(o(),I(l,{key:0,rows:3})):(o(),c(Q,{key:1},[n.teamQueue.length?(o(),c("section",J1,[r("h3",em,d(i.t("absence","Awaiting your decision")),1),_(Ya,{tag:"ul",name:"rli",class:"list"},{default:x(()=>[(o(!0),c(Q,null,pe(n.teamQueue,m=>(o(),I(u,{key:m.id,request:m,showEmployee:!0,active:s.store.selectedId===m.id,onSelect:a[0]||(a[0]=p=>s.store.select(p))},null,8,["request","active"]))),128))]),_:1})])):C("",!0),n.escalated.length?(o(),c("section",tm,[r("h3",am,d(i.t("absence","Escalated to HR"))+" ⏫ ",1),_(Ya,{tag:"ul",name:"rli",class:"list"},{default:x(()=>[(o(!0),c(Q,null,pe(n.escalated,m=>(o(),I(u,{key:m.id,request:m,showEmployee:!0,active:s.store.selectedId===m.id,onSelect:a[1]||(a[1]=p=>s.store.select(p))},null,8,["request","active"]))),128))]),_:1})])):C("",!0),!n.teamQueue.length&&!n.escalated.length?(o(),I(f,{key:2,name:i.t("absence","All caught up!"),description:i.t("absence","No requests waiting for a decision. ✨")},{icon:x(()=>[_(h,{size:20})]),_:1},8,["name","description"])):C("",!0)],64))])}const nm=U(K1,[["render",im],["__scopeId","data-v-686afdad"]]),sm={name:"MagnifyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},lm=["aria-hidden","aria-label"],om=["fill","width","height"],rm={d:"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.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,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"},cm={key:0};function um(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon magnify-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",rm,[t.title?(o(),c("title",cm,d(t.title),1)):C("",!0)])],8,om))],16,lm)}const dm=U(sm,[["render",um]]),pm={name:"HrBalances",components:{NcAvatar:Ia,NcButton:ge,NcEmptyContent:at,NcModal:kn,NcSelect:mi,NcTextField:Zn,Magnify:dm,Pencil:os,ScaleBalance:Wn,SkeletonList:Pt},data(){const e=new Date().getFullYear();return{loading:!0,rows:[],search:"",year:e,years:[e-1,e,e+1],editing:null,saving:!1,form:{baseDays:0,manualAdjustment:0,adjustmentNote:""}}},computed:{filtered(){const e=this.search.trim().toLowerCase();return e?this.rows.filter(a=>a.displayName.toLowerCase().includes(e)||a.employeeUid.toLowerCase().includes(e)):this.rows}},watch:{year(){this.reload()}},mounted(){this.reload()},methods:{t:M,fmt(e){return e==null?"—":Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async reload(){this.loading=!0;try{this.rows=await ce.reportBalances(this.year)}catch{Fe(M("absence","Could not load balances"))}finally{this.loading=!1}},async edit(e){this.editing=e;try{const a=(await ce.listEntitlements(e.employeeUid,this.year)).find(t=>t.typeId===e.typeId);this.form={baseDays:a?a.baseDays:e.baseDays,manualAdjustment:a?a.manualAdjustment:0,adjustmentNote:"",entitlementId:a?a.id:e.entitlementId}}catch{this.form={baseDays:e.baseDays,manualAdjustment:0,adjustmentNote:"",entitlementId:e.entitlementId}}},async save(){this.saving=!0;try{const e={baseDays:Number(this.form.baseDays),manualAdjustment:Number(this.form.manualAdjustment),adjustmentNote:this.form.adjustmentNote};this.form.entitlementId?await ce.updateEntitlement(this.form.entitlementId,e):await ce.createEntitlement({employeeUid:this.editing.employeeUid,year:this.year,typeId:this.editing.typeId,...e}),St(M("absence","Entitlement updated")),this.editing=null,await this.reload()}catch(e){Fe(e.response?.data?.message||M("absence","Could not update entitlement"))}finally{this.saving=!1}}}},hm={class:"page"},mm={class:"page__header"},fm={class:"page__title"},gm={class:"page__tools"},bm={key:1,class:"table-wrap"},ym={class:"tbl"},vm={class:"num"},_m={class:"num"},Cm={class:"num"},wm={class:"num"},km={class:"num"},xm={class:"emp"},Sm={class:"type"},Am={"aria-hidden":"true"},Lm={class:"num"},Nm={class:"num"},Dm={class:"num"},Tm={class:"num"},Em={class:"edit"},Bm={class:"edit__actions"};function Im(e,a,t,s,n,i){const l=w("Magnify"),u=w("NcTextField"),h=w("NcSelect"),f=w("SkeletonList"),m=w("NcAvatar"),p=w("Pencil"),g=w("NcButton"),b=w("ScaleBalance"),S=w("NcEmptyContent"),y=w("NcModal");return o(),c("div",hm,[r("header",mm,[r("h2",fm,d(i.t("absence","Balances")),1),r("div",gm,[_(u,{modelValue:n.search,"onUpdate:modelValue":a[0]||(a[0]=A=>n.search=A),label:i.t("absence","Search employee"),class:"page__search"},{icon:x(()=>[_(l,{size:18})]),_:1},8,["modelValue","label"]),_(h,{modelValue:n.year,"onUpdate:modelValue":a[1]||(a[1]=A=>n.year=A),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])])]),n.loading?(o(),I(f,{key:0,rows:6})):(o(),c("div",bm,[r("table",ym,[r("thead",null,[r("tr",null,[r("th",null,d(i.t("absence","Employee")),1),r("th",null,d(i.t("absence","Type")),1),r("th",vm,d(i.t("absence","Entitlement")),1),r("th",_m,d(i.t("absence","Used")),1),r("th",Cm,d(i.t("absence","Pending")),1),r("th",wm,d(i.t("absence","Remaining")),1),r("th",km,d(i.t("absence","Available")),1),a[7]||(a[7]=r("th",null,null,-1))])]),r("tbody",null,[(o(!0),c(Q,null,pe(i.filtered,A=>(o(),c("tr",{key:A.employeeUid+"-"+A.typeId},[r("td",null,[r("div",xm,[_(m,{user:A.employeeUid,displayName:A.displayName,size:24,hideStatus:""},null,8,["user","displayName"]),q(" "+d(A.displayName),1)])]),r("td",null,[r("span",Sm,[r("span",Am,d(A.typeIcon),1),q(" "+d(A.typeLabel),1)])]),r("td",Lm,d(i.fmt(A.entitlement)),1),r("td",Nm,d(i.fmt(A.used)),1),r("td",Dm,d(i.fmt(A.pending)),1),r("td",Tm,d(i.fmt(A.remaining)),1),r("td",{class:F(["num",{neg:(A.available??0)<0}])},d(i.fmt(A.available)),3),r("td",null,[A.countsAgainstBalance?(o(),I(g,{key:0,variant:"tertiary","aria-label":i.t("absence","Edit entitlement"),onClick:R=>i.edit(A)},{icon:x(()=>[_(p,{size:18})]),_:1},8,["aria-label","onClick"])):C("",!0)])]))),128))])]),i.filtered.length?C("",!0):(o(),I(S,{key:0,name:n.search?i.t("absence","No matches"):i.t("absence","No balances yet"),description:n.search?i.t("absence","No employee matches “{query}”.",{query:n.search}):i.t("absence","Balances appear here once employees have entitlements for {year}.",{year:n.year})},{icon:x(()=>[_(b,{size:20})]),_:1},8,["name","description"]))])),n.editing?(o(),I(y,{key:2,name:i.t("absence","Edit entitlement"),onClose:a[6]||(a[6]=A=>n.editing=null)},{default:x(()=>[r("div",Em,[r("h3",null,d(n.editing.displayName)+" · "+d(n.editing.typeLabel)+" · "+d(n.year),1),r("label",null,d(i.t("absence","Base days")),1),_(u,{modelValue:n.form.baseDays,"onUpdate:modelValue":a[2]||(a[2]=A=>n.form.baseDays=A),type:"number"},null,8,["modelValue"]),r("label",null,d(i.t("absence","Manual adjustment (+/−)")),1),_(u,{modelValue:n.form.manualAdjustment,"onUpdate:modelValue":a[3]||(a[3]=A=>n.form.manualAdjustment=A),type:"number"},null,8,["modelValue"]),r("label",null,d(i.t("absence","Adjustment note")),1),_(u,{modelValue:n.form.adjustmentNote,"onUpdate:modelValue":a[4]||(a[4]=A=>n.form.adjustmentNote=A),placeholder:i.t("absence","Why is this being adjusted?")},null,8,["modelValue","placeholder"]),r("div",Bm,[_(g,{variant:"tertiary",onClick:a[5]||(a[5]=A=>n.editing=null)},{default:x(()=>[q(d(i.t("absence","Cancel")),1)]),_:1}),_(g,{variant:"primary",disabled:n.saving,onClick:i.save},{default:x(()=>[q(d(i.t("absence","Save")),1)]),_:1},8,["disabled","onClick"])])])]),_:1},8,["name"])):C("",!0)])}const Mm=U(pm,[["render",Im],["__scopeId","data-v-a983054a"]]),zm={name:"HrExports",components:{NcButton:ge,NcDateTimePickerNative:Ci,NcSelect:mi,Download:Un},data(){const e=new Date;return{from:new Date(e.getFullYear(),0,1),to:new Date(e.getFullYear(),11,31),year:e.getFullYear(),years:[e.getFullYear()-1,e.getFullYear(),e.getFullYear()+1]}},computed:{requestsUrl(){return ce.exportRequestsUrl(Me(this.from),Me(this.to))},balancesUrl(){return ce.exportBalancesUrl(this.year)}},methods:{t:M}},$m={class:"page"},Rm={class:"page__header"},Om={class:"page__title"},Pm={class:"cards"},qm={class:"card"},Vm={class:"card__row"},Hm=["href"],Fm={class:"card"},Um={class:"card__row"},jm=["href"];function Wm(e,a,t,s,n,i){const l=w("NcDateTimePickerNative"),u=w("Download"),h=w("NcButton"),f=w("NcSelect");return o(),c("div",$m,[r("header",Rm,[r("h2",Om,d(i.t("absence","Exports")),1)]),r("div",Pm,[r("div",qm,[r("h3",null,d(i.t("absence","Requests")),1),r("p",null,d(i.t("absence","All leave requests overlapping the selected date range, as CSV.")),1),r("div",Vm,[_(l,{modelValue:n.from,"onUpdate:modelValue":a[0]||(a[0]=m=>n.from=m),type:"date",label:i.t("absence","From")},null,8,["modelValue","label"]),_(l,{modelValue:n.to,"onUpdate:modelValue":a[1]||(a[1]=m=>n.to=m),type:"date",label:i.t("absence","To")},null,8,["modelValue","label"])]),r("a",{href:i.requestsUrl,class:"dl"},[_(h,{variant:"primary"},{icon:x(()=>[_(u,{size:20})]),default:x(()=>[q(" "+d(i.t("absence","Download requests CSV")),1)]),_:1})],8,Hm)]),r("div",Fm,[r("h3",null,d(i.t("absence","Balances")),1),r("p",null,d(i.t("absence","Per-employee entitlement, used, remaining and carry-over for a year.")),1),r("div",Um,[_(f,{modelValue:n.year,"onUpdate:modelValue":a[2]||(a[2]=m=>n.year=m),options:n.years,clearable:!1,"aria-label-combobox":i.t("absence","Year")},null,8,["modelValue","options","aria-label-combobox"])]),r("a",{href:i.balancesUrl,class:"dl"},[_(h,{variant:"primary"},{icon:x(()=>[_(u,{size:20})]),default:x(()=>[q(" "+d(i.t("absence","Download balances CSV")),1)]),_:1})],8,jm)])])])}const Gm=U(zm,[["render",Wm],["__scopeId","data-v-c1b4a290"]]),Zm={name:"ChartLineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Km=["aria-hidden","aria-label"],Ym=["fill","width","height"],Xm={d:"M16,11.78L20.24,4.45L21.97,5.45L16.74,14.5L10.23,10.75L5.46,19H22V21H2V3H4V17.54L9.5,8L16,11.78Z"},Qm={key:0};function Jm(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chart-line-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Xm,[t.title?(o(),c("title",Qm,d(t.title),1)):C("",!0)])],8,Ym))],16,Km)}const ef=U(Zm,[["render",Jm]]),tf={name:"DonutChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{radius:64,animated:!1}},computed:{circumference(){return 2*Math.PI*this.radius},total(){return this.data.reduce((e,a)=>e+a.value,0)},segments(){const e=this.total||1;let a=0;return this.data.filter(t=>t.value>0).map(t=>{const s=t.value/e*100,n=t.value/e*this.circumference,i={...t,pct:s,len:n,offset:a};return a+=n,i})}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0;return}requestAnimationFrame(()=>{this.animated=!0})},methods:{t:M,fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},af={class:"donut"},nf={key:0,class:"donut__title"},sf={class:"donut__body"},lf=["aria-label"],of=["r"],rf=["r","stroke","stroke-dasharray","stroke-dashoffset"],cf={x:"80",y:"74",class:"donut__total"},uf={x:"80",y:"92",class:"donut__unit"},df={class:"donut__legend"},pf={class:"donut__label"},hf={class:"donut__value"};function mf(e,a,t,s,n,i){return o(),c("figure",af,[t.title?(o(),c("figcaption",nf,d(t.title),1)):C("",!0),r("div",sf,[(o(),c("svg",{viewBox:"0 0 160 160",class:"donut__svg",role:"img","aria-label":t.title},[r("circle",{class:"donut__track",cx:"80",cy:"80",r:n.radius},null,8,of),(o(!0),c(Q,null,pe(i.segments,(l,u)=>(o(),c("circle",{key:u,class:"donut__seg",cx:"80",cy:"80",r:n.radius,stroke:l.color,"stroke-dasharray":`${n.animated?l.len:0} ${i.circumference}`,"stroke-dashoffset":-l.offset,transform:"rotate(-90 80 80)"},[r("title",null,d(l.label)+": "+d(i.fmt(l.value)),1)],8,rf))),128)),r("text",cf,d(i.fmt(i.total)),1),r("text",uf,d(i.t("absence","days")),1)],8,lf)),r("ul",df,[(o(!0),c(Q,null,pe(i.segments,(l,u)=>(o(),c("li",{key:u},[r("span",{class:"donut__swatch",style:oe({background:l.color})},null,4),r("span",pf,d(l.label),1),r("span",hf,d(i.fmt(l.value))+" · "+d(Math.round(l.pct))+"%",1)]))),128))])])])}const ff=U(tf,[["render",mf],["__scopeId","data-v-a6ff040b"]]),gf={name:"LineChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{width:640,height:200,padX:28,padTop:16,padBottom:22}},computed:{max(){return Math.max(1,...this.data.map(e=>e.value))},points(){const e=this.data.length,a=this.width-this.padX*2,t=this.height-this.padTop-this.padBottom;return this.data.map((s,n)=>({x:this.padX+(e<=1?a/2:a*n/(e-1)),y:this.padTop+t*(1-s.value/this.max),label:s.label,value:s.value}))},linePath(){return this.points.map((e,a)=>`${a===0?"M":"L"}${e.x.toFixed(1)} ${e.y.toFixed(1)}`).join(" ")},areaPath(){if(!this.points.length)return"";const e=this.height-this.padBottom,a=this.points[0],t=this.points[this.points.length-1];return`M${a.x} ${e} `+this.points.map(s=>`L${s.x.toFixed(1)} ${s.y.toFixed(1)}`).join(" ")+` L${t.x} ${e} Z`},gridlines(){const e=this.height-this.padTop-this.padBottom;return[0,.5,1].map(a=>this.padTop+e*a)}},methods:{showLabel(e){const a=this.data.length>8?2:1;return e%a===0}}},bf={class:"line"},yf={key:0,class:"line__title"},vf=["viewBox","aria-label"],_f=["x1","x2","y1","y2"],Cf=["d"],wf=["d"],kf=["cx","cy"],xf=["x","y"];function Sf(e,a,t,s,n,i){return o(),c("figure",bf,[t.title?(o(),c("figcaption",yf,d(t.title),1)):C("",!0),(o(),c("svg",{viewBox:`0 0 ${n.width} ${n.height}`,class:"line__svg",role:"img","aria-label":t.title,preserveAspectRatio:"none"},[(o(!0),c(Q,null,pe(i.gridlines,(l,u)=>(o(),c("line",{key:"g"+u,class:"line__grid",x1:n.padX,x2:n.width-n.padX,y1:l,y2:l},null,8,_f))),128)),r("path",{class:"line__area",d:i.areaPath},null,8,Cf),r("path",{ref:"line",class:"line__stroke",d:i.linePath},null,8,wf),(o(!0),c(Q,null,pe(i.points,(l,u)=>(o(),c("g",{key:"p"+u},[r("circle",{class:"line__dot",cx:l.x,cy:l.y,r:"3"},null,8,kf),i.showLabel(u)?(o(),c("text",{key:0,class:"line__xlabel",x:l.x,y:n.height-4,"text-anchor":"middle"},d(l.label),9,xf)):C("",!0)]))),128))],8,vf))])}const Af=U(gf,[["render",Sf],["__scopeId","data-v-f4b72e98"]]),Lf={name:"HrStatistics",components:{NcDateTimePickerNative:Ci,NcEmptyContent:at,ChartLine:ef,LineChart:Af,DonutChart:ff,SkeletonList:Pt},data(){const e=new Date;return{loading:!0,from:new Date(e.getFullYear(),0,1),to:new Date(e.getFullYear(),11,31),trends:{byMonth:{},byType:[],total:0}}},computed:{monthData(){return Object.entries(this.trends.byMonth).map(([e,a])=>({label:e.slice(5),value:a}))},typeData(){return this.trends.byType.map(e=>({label:`${e.typeIcon||""} ${e.typeLabel}`.trim(),value:e.days,color:e.typeColor}))},perMonthAvg(){const e=Object.keys(this.trends.byMonth).length;return e?this.trends.total/e:0}},watch:{from(){this.reload()},to(){this.reload()}},mounted(){this.reload()},methods:{t:M,fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},async reload(){this.loading=!0;try{this.trends=await ce.reportTrends(Me(this.from),Me(this.to))}finally{this.loading=!1}}}},Nf={class:"page"},Df={class:"page__header"},Tf={class:"page__title"},Ef={class:"range"},Bf={class:"cards"},If={class:"card"},Mf={class:"card__value"},zf={class:"card__label"},$f={class:"card"},Rf={class:"card__value"},Of={class:"card__label"},Pf={class:"card"},qf={class:"card__value"},Vf={class:"card__label"},Hf={class:"panel"},Ff={class:"panel"};function Uf(e,a,t,s,n,i){const l=w("NcDateTimePickerNative"),u=w("SkeletonList"),h=w("ChartLine"),f=w("NcEmptyContent"),m=w("LineChart"),p=w("DonutChart");return o(),c("div",Nf,[r("header",Df,[r("h2",Tf,d(i.t("absence","Statistics")),1),r("div",Ef,[_(l,{modelValue:n.from,"onUpdate:modelValue":a[0]||(a[0]=g=>n.from=g),type:"date",label:i.t("absence","From")},null,8,["modelValue","label"]),_(l,{modelValue:n.to,"onUpdate:modelValue":a[1]||(a[1]=g=>n.to=g),type:"date",label:i.t("absence","To")},null,8,["modelValue","label"])])]),n.loading?(o(),I(u,{key:0,rows:4})):(o(),c(Q,{key:1},[r("div",Bf,[r("div",If,[a[2]||(a[2]=r("span",{class:"card__icon","aria-hidden":"true"},"🏖️",-1)),r("span",Mf,d(i.fmt(n.trends.total)),1),r("span",zf,d(i.t("absence","approved leave days")),1)]),r("div",$f,[a[3]||(a[3]=r("span",{class:"card__icon","aria-hidden":"true"},"📊",-1)),r("span",Rf,d(i.fmt(i.perMonthAvg)),1),r("span",Of,d(i.t("absence","avg. days per month")),1)]),r("div",Pf,[a[4]||(a[4]=r("span",{class:"card__icon","aria-hidden":"true"},"🗂️",-1)),r("span",qf,d(n.trends.byType.length),1),r("span",Vf,d(i.t("absence","leave types used")),1)])]),n.trends.total===0?(o(),I(f,{key:0,name:i.t("absence","No approved leave in this range"),description:i.t("absence","Pick a wider date range, or check back once leave has been approved.")},{icon:x(()=>[_(h,{size:20})]),_:1},8,["name","description"])):(o(),c(Q,{key:1},[r("div",Hf,[_(m,{title:i.t("absence","Absence days per month"),data:i.monthData},null,8,["title","data"])]),r("div",Ff,[_(p,{title:i.t("absence","Days by leave type"),data:i.typeData},null,8,["title","data"])])],64))],64))])}const jf=U(Lf,[["render",Uf],["__scopeId","data-v-dccea056"]]),Wf={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Gf=["aria-hidden","aria-label"],Zf=["fill","width","height"],Kf={d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"},Yf={key:0};function Xf(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon calendar-blank-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",Kf,[t.title?(o(),c("title",Yf,d(t.title),1)):C("",!0)])],8,Zf))],16,Gf)}const Qf=U(Wf,[["render",Xf]]),Jf={name:"ChevronLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},eg=["aria-hidden","aria-label"],tg=["fill","width","height"],ag={d:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"},ig={key:0};function ng(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-left-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",ag,[t.title?(o(),c("title",ig,d(t.title),1)):C("",!0)])],8,tg))],16,eg)}const sg=U(Jf,[["render",ng]]),lg={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},og=["aria-hidden","aria-label"],rg=["fill","width","height"],cg={d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},ug={key:0};function dg(e,a,t,s,n,i){return o(),c("span",J(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-right-icon",role:"img",onClick:a[0]||(a[0]=l=>e.$emit("click",l))}),[(o(),c("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[r("path",cg,[t.title?(o(),c("title",ug,d(t.title),1)):C("",!0)])],8,rg))],16,og)}const pg=U(lg,[["render",dg]]),un=864e5,hg={name:"TeamTimeline",components:{NcAvatar:Ia,NcButton:ge,NcEmptyContent:at,ChevronLeft:sg,ChevronRight:pg,CalendarBlank:Qf,SkeletonList:Pt},props:{scope:{type:String,default:"team"}},data(){const e=new Date;return{year:e.getFullYear(),month:e.getMonth(),events:[],dayWidth:30,loading:!0}},computed:{firstDay(){return new Date(this.year,this.month,1)},lastDay(){return new Date(this.year,this.month+1,0)},monthLabel(){return this.firstDay.toLocaleDateString(void 0,{month:"long",year:"numeric"})},days(){const e=[];for(let a=1;a<=this.lastDay.getDate();a++){const t=new Date(this.year,this.month,a),s=t.getDay();e.push({day:a,index:a-1,weekend:s===0||s===6,iso:Me(t)})}return e},todayIndex(){const e=new Date;return e.getFullYear()===this.year&&e.getMonth()===this.month?e.getDate()-1:-1},rows(){const e={},a=this.firstDay,t=this.lastDay.getDate()-1;for(const s of this.events){e[s.employeeUid]||(e[s.employeeUid]={uid:s.employeeUid,name:s.displayName,segments:[]});const n=Math.max(0,Math.round((new Date(s.start+"T00:00:00")-a)/un)),i=Math.min(t,Math.round((new Date(s.end+"T00:00:00")-a)/un));if(i<0||n>t)continue;const l=W.leaveType(s.typeId);e[s.employeeUid].segments.push({left:n*this.dayWidth+2,width:(i-n+1)*this.dayWidth-4,color:l.color,icon:l.icon,pending:s.status!=="APPROVED",title:`${l.label} · ${Da(s.start,s.end)}${s.status!=="APPROVED"?" ("+s.status+")":""}`})}return Object.values(e).sort((s,n)=>s.name.localeCompare(n.name))},legendTypes(){const e=new Set(this.events.map(a=>a.typeId));return W.leaveTypes.filter(a=>e.has(a.id))}},watch:{scope(){this.load()}},mounted(){this.load()},methods:{t:M,async load(){this.loading=!0;try{this.events=(await ce.getCalendar(Me(this.firstDay),Me(this.lastDay),this.scope)).events}catch{this.events=[]}finally{this.loading=!1}},shift(e){let a=this.month+e,t=this.year;a<0&&(a=11,t--),a>11&&(a=0,t++),this.month=a,this.year=t,this.load()},goToday(){const e=new Date;this.year=e.getFullYear(),this.month=e.getMonth(),this.load()}}},mg={class:"gantt"},fg={class:"gantt__toolbar"},gg={class:"gantt__month"},bg={key:1,class:"gantt__scroll"},yg={class:"gantt__row gantt__row--head"},vg={class:"gantt__name gantt__name--head"},_g={class:"gantt__track"},Cg={class:"gantt__name"},wg={class:"gantt__name-text"},kg={class:"gantt__track"},xg=["title"],Sg={class:"gantt__pill-icon","aria-hidden":"true"},Ag={class:"legend"},Lg={class:"legend__item legend__item--muted"};function Ng(e,a,t,s,n,i){const l=w("ChevronLeft"),u=w("NcButton"),h=w("ChevronRight"),f=w("SkeletonList"),m=w("NcAvatar"),p=w("CalendarBlank"),g=w("NcEmptyContent");return o(),c("div",mg,[r("div",fg,[_(u,{variant:"tertiary","aria-label":i.t("absence","Previous month"),onClick:a[0]||(a[0]=b=>i.shift(-1))},{icon:x(()=>[_(l,{size:20})]),_:1},8,["aria-label"]),r("strong",gg,d(i.monthLabel),1),_(u,{variant:"tertiary","aria-label":i.t("absence","Next month"),onClick:a[1]||(a[1]=b=>i.shift(1))},{icon:x(()=>[_(h,{size:20})]),_:1},8,["aria-label"]),_(u,{variant:"tertiary",onClick:i.goToday},{default:x(()=>[q(d(i.t("absence","Today")),1)]),_:1},8,["onClick"])]),n.loading?(o(),I(f,{key:0,rows:4,class:"gantt__loading"})):(o(),c("div",bg,[r("div",{class:"gantt__grid",style:oe({"--day-w":n.dayWidth+"px","--days":i.days.length})},[r("div",yg,[r("div",vg,d(i.t("absence","Person")),1),r("div",_g,[(o(!0),c(Q,null,pe(i.days,b=>(o(),c("span",{key:"h"+b.day,class:F(["gantt__daynum",{"gantt__daynum--weekend":b.weekend,"gantt__daynum--today":b.index===i.todayIndex}]),style:oe({left:b.index*n.dayWidth+"px"})},d(b.day),7))),128))])]),(o(!0),c(Q,null,pe(i.rows,b=>(o(),c("div",{key:b.uid,class:"gantt__row"},[r("div",Cg,[_(m,{user:b.uid,displayName:b.name,size:26,hideStatus:""},null,8,["user","displayName"]),r("span",wg,d(b.name),1)]),r("div",kg,[(o(!0),c(Q,null,pe(i.days,S=>(o(),c("span",{key:"c"+b.uid+S.day,class:F(["gantt__col",{"gantt__col--weekend":S.weekend}]),style:oe({left:S.index*n.dayWidth+"px"})},null,6))),128)),i.todayIndex>=0?(o(),c("span",{key:0,class:"gantt__today",style:oe({left:i.todayIndex*n.dayWidth+"px"})},null,4)):C("",!0),(o(!0),c(Q,null,pe(b.segments,(S,y)=>(o(),c("span",{key:y,class:F(["gantt__pill",{"gantt__pill--pending":S.pending}]),style:oe({left:S.left+"px",width:S.width+"px","--pill":S.color}),title:S.title},[r("span",Sg,d(S.icon),1)],14,xg))),128))])]))),128))],4),i.rows.length?C("",!0):(o(),I(g,{key:0,name:i.t("absence","No absences this month"),description:i.t("absence","A calm, well-staffed month. ☀️")},{icon:x(()=>[_(p,{size:20})]),_:1},8,["name","description"]))])),r("div",Ag,[(o(!0),c(Q,null,pe(i.legendTypes,b=>(o(),c("span",{key:b.id,class:"legend__item"},[r("span",{class:"legend__swatch",style:oe({background:b.color})},null,4),q(d(b.icon)+" "+d(b.label),1)]))),128)),r("span",Lg,[a[2]||(a[2]=r("span",{class:"legend__swatch legend__swatch--pending"},null,-1)),q(d(i.t("absence","Pending / not yet approved")),1)])])])}const cs=U(hg,[["render",Ng],["__scopeId","data-v-d9d12d41"]]),Dg={name:"HrWhosOff",components:{TeamTimeline:cs},methods:{t:M}},Tg={class:"page"},Eg={class:"page__header"},Bg={class:"page__title"};function Ig(e,a,t,s,n,i){const l=w("TeamTimeline");return o(),c("div",Tg,[r("header",Eg,[r("h2",Bg,d(i.t("absence","Who's off")),1)]),_(l,{scope:"company"})])}const Mg=U(Dg,[["render",Ig],["__scopeId","data-v-db4811f1"]]),zg={name:"BalanceRing",props:{row:{type:Object,required:!0}},data(){return{radius:50,animated:!1,tween:0}},computed:{circumference(){return 2*Math.PI*this.radius},fraction(){return!this.row.entitlement||this.row.entitlement<=0?this.row.used>0?1:0:Math.min(1,Math.max(0,this.row.used/this.row.entitlement))},usedOffset(){return this.animated?this.circumference*(1-this.fraction):this.circumference},targetValue(){return this.row.remaining!==null&&this.row.remaining!==void 0?Number(this.row.remaining):Number(this.row.used)},remainingLabel(){return this.format(this.tween)},ariaLabel(){return`${this.row.typeLabel}: ${this.remainingLabel} ${this.t("absence","days left")}`}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0,this.tween=this.targetValue;return}requestAnimationFrame(()=>{this.animated=!0}),this.countUp()},methods:{countUp(){const e=this.targetValue,a=900,t=performance.now(),s=n=>{const i=Math.min(1,(n-t)/a),l=1-Math.pow(1-i,3);this.tween=Math.round(e*l*10)/10,i<1?requestAnimationFrame(s):this.tween=e};requestAnimationFrame(s)},format(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},$g=["aria-label"],Rg={viewBox:"0 0 120 120",class:"ring__svg"},Og=["r"],Pg=["r","stroke","stroke-dasharray","stroke-dashoffset"],qg={x:"60",y:"54",class:"ring__value"},Vg={x:"60",y:"74",class:"ring__unit"},Hg={class:"ring__label"},Fg={class:"ring__icon","aria-hidden":"true"},Ug={class:"ring__name"},jg={class:"ring__meta"},Wg={key:2,class:"ring__pending"};function Gg(e,a,t,s,n,i){return o(),c("div",{class:"ring",role:"group","aria-label":i.ariaLabel},[(o(),c("svg",Rg,[r("circle",{class:"ring__track",cx:"60",cy:"60",r:n.radius},null,8,Og),r("circle",{class:"ring__used",cx:"60",cy:"60",r:n.radius,stroke:t.row.typeColor,"stroke-dasharray":i.circumference,"stroke-dashoffset":i.usedOffset,transform:"rotate(-90 60 60)"},null,8,Pg),r("text",qg,d(i.remainingLabel),1),r("text",Vg,d(e.t("absence","left")),1)])),r("div",Hg,[r("span",Fg,d(t.row.typeIcon),1),r("span",Ug,d(t.row.typeLabel),1)]),r("div",jg,[t.row.entitlement!==null?(o(),c(Q,{key:0},[q(d(e.t("absence","{used} of {total} used",{used:i.format(t.row.used),total:i.format(t.row.entitlement)})),1)],64)):(o(),c(Q,{key:1},[q(d(e.t("absence","{used} taken",{used:i.format(t.row.used)})),1)],64)),t.row.pending>0?(o(),c("span",Wg,"· "+d(e.t("absence","{n} pending",{n:i.format(t.row.pending)})),1)):C("",!0)])],8,$g)}const Zg=U(zg,[["render",Gg],["__scopeId","data-v-430f0399"]]),Kg={name:"BalanceCard",components:{BalanceRing:Zg},props:{row:{type:Object,required:!0}},methods:{t:M,format(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})},signed(e){const a=Number(e);return(a>=0?"+":"−")+this.format(Math.abs(a))}}},Yg={class:"card"},Xg={key:0,class:"ledger"},Qg={class:"ledger__row"},Jg={key:0,class:"ledger__row"},e2={key:1,class:"ledger__row"},t2={class:"ledger__row ledger__row--total"},a2={class:"ledger__row"},i2={key:2,class:"ledger__row ledger__row--pending"};function n2(e,a,t,s,n,i){const l=w("BalanceRing");return o(),c("div",Yg,[_(l,{row:t.row},null,8,["row"]),t.row.entitlement!==null?(o(),c("dl",Xg,[r("div",Qg,[r("dt",null,d(i.t("absence","Base allowance")),1),r("dd",null,d(i.format(t.row.baseDays)),1)]),t.row.carryOverDays?(o(),c("div",Jg,[r("dt",null,d(i.t("absence","Carried over")),1),r("dd",null,d(i.signed(t.row.carryOverDays)),1)])):C("",!0),t.row.manualAdjustment?(o(),c("div",e2,[r("dt",null,d(i.t("absence","Adjustment")),1),r("dd",null,d(i.signed(t.row.manualAdjustment)),1)])):C("",!0),r("div",t2,[r("dt",null,d(i.t("absence","Entitlement")),1),r("dd",null,d(i.format(t.row.entitlement)),1)]),r("div",a2,[r("dt",null,d(i.t("absence","Used")),1),r("dd",null,d(t.row.used?"−"+i.format(t.row.used):i.format(0)),1)]),t.row.pending?(o(),c("div",i2,[r("dt",null,d(i.t("absence","Pending approval")),1),r("dd",null,d("−"+i.format(t.row.pending)),1)])):C("",!0),r("div",{class:"ledger__row ledger__row--available",style:oe({"--type-color":t.row.typeColor})},[r("dt",null,d(i.t("absence","Available")),1),r("dd",null,d(i.format(t.row.available)),1)],4)])):C("",!0)])}const s2=U(Kg,[["render",n2],["__scopeId","data-v-291dbad2"]]),l2={name:"BarChart",props:{title:{type:String,default:""},data:{type:Array,required:!0}},data(){return{width:640,height:220,animated:!1}},computed:{padTop(){return 24},baseline(){return this.height-22},max(){return Math.max(1,...this.data.map(e=>e.value))},slot(){return this.data.length?this.width/this.data.length:this.width},barWidth(){return Math.min(48,this.slot*.6)},bars(){return this.data.map((e,a)=>{const t=e.value/this.max*(this.baseline-this.padTop),s=a*this.slot+(this.slot-this.barWidth)/2;return{x:s,cx:s+this.barWidth/2,y:this.baseline-t,h:t,value:e.value,label:e.label,color:e.color||"var(--color-primary-element)"}})}},mounted(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){this.animated=!0;return}requestAnimationFrame(()=>{this.animated=!0})},methods:{fmt(e){return Number(e).toLocaleString(void 0,{maximumFractionDigits:1})}}},o2={class:"chart"},r2={key:0,class:"chart__title"},c2=["viewBox","aria-label"],u2=["x","y","width","height","fill"],d2=["x","y"],p2=["x","y"];function h2(e,a,t,s,n,i){return o(),c("figure",o2,[t.title?(o(),c("figcaption",r2,d(t.title),1)):C("",!0),(o(),c("svg",{viewBox:`0 0 ${n.width} ${n.height}`,class:"chart__svg",role:"img","aria-label":t.title},[(o(!0),c(Q,null,pe(i.bars,(l,u)=>(o(),c("g",{key:u},[r("rect",{x:l.x,y:n.animated?l.y:i.baseline,width:i.barWidth,height:n.animated?l.h:0,fill:l.color,rx:"4",class:"chart__bar"},null,8,u2),r("text",{x:l.cx,y:n.height-4,"text-anchor":"middle",class:"chart__label"},d(l.label),9,d2),l.value>0?(o(),c("text",{key:0,x:l.cx,y:l.y-4,"text-anchor":"middle",class:"chart__value"},d(i.fmt(l.value)),9,p2)):C("",!0)]))),128))],8,c2))])}const m2=U(l2,[["render",h2],["__scopeId","data-v-fc9e92b9"]]),f2={name:"PalmIllustration"},g2={class:"palm",viewBox:"0 0 160 140",width:"160",height:"140",role:"img","aria-hidden":"true"};function b2(e,a,t,s,n,i){return o(),c("svg",g2,[...a[0]||(a[0]=[An('',7)])])}const y2=U(f2,[["render",b2],["__scopeId","data-v-85fdc3d1"]]),v2={name:"MyLeave",components:{NcButton:ge,NcEmptyContent:at,Plus:jn,BalanceCard:s2,BarChart:m2,RequestListItem:rs,SkeletonList:Pt,PalmIllustration:y2},inject:["absence:openNew"],props:{id:{type:[String,Number],default:null}},setup(){return{store:W}},computed:{year(){return new Date().getFullYear()},rings(){return W.balance.balances.filter(e=>e.year===this.year&&e.countsAgainstBalance)},leaveByMonth(){return this.monthChart(e=>e.countsAgainstBalance!==!1&&e.key!=="sick",null)},sickByMonth(){const e=W.leaveTypes.find(a=>a.key==="sick");return e?this.monthChart(a=>a.key==="sick",e.color):null},nextBreak(){const e=Me(new Date),a=W.requests.filter(l=>l.status==="APPROVED"&&l.endDate>=e).sort((l,u)=>l.startDate.localeCompare(u.startDate));if(!a.length)return null;const t=a[0],s=W.leaveType(t.typeId),n=Da(t.startDate,t.endDate);if(t.startDate<=e)return{icon:s.icon,color:s.color,eyebrow:M("absence","You are off right now"),headline:M("absence","Enjoy your {type}! 🌴",{type:s.label.toLowerCase()}),sub:n};const i=Math.max(1,Math.round((new Date(t.startDate+"T00:00:00")-new Date(e+"T00:00:00"))/864e5));return{icon:s.icon,color:s.color,eyebrow:M("absence","Your next break"),headline:Kt("absence","%n day to go","%n days to go",i),sub:`${s.label} · ${n}`}}},mounted(){this.reload(),window.addEventListener("absence:refresh",this.reload),this.id&&W.select(Number(this.id))},beforeUnmount(){window.removeEventListener("absence:refresh",this.reload)},methods:{t:M,monthChart(e,a){const t=new Array(12).fill(0);for(const s of W.requests)s.status!=="APPROVED"||!e(W.leaveType(s.typeId))||sl(t,s.startDate,s.endDate,s.workingDays,this.year);return t.map((s,n)=>({label:new Date(this.year,n,1).toLocaleDateString(void 0,{month:"short"}),value:Math.round(s*10)/10,...a?{color:a}:{}}))},openNew(){this["absence:openNew"]()},async reload(){await Promise.all([W.loadRequests({scope:"mine"}),W.loadMyBalance()])}}},_2={class:"page"},C2={class:"page__header"},w2={class:"page__title"},k2={class:"hero__emoji","aria-hidden":"true"},x2={class:"hero__text"},S2={class:"hero__eyebrow"},A2={class:"hero__headline"},L2={class:"hero__sub"},N2={key:1,class:"overview"},D2={key:2,class:"charts"},T2={key:0,class:"charts__card"},E2={key:1,class:"charts__card"},B2={class:"requests"},I2={class:"requests__title"};function M2(e,a,t,s,n,i){const l=w("Plus"),u=w("NcButton"),h=w("BalanceCard"),f=w("BarChart"),m=w("SkeletonList"),p=w("RequestListItem"),g=w("PalmIllustration"),b=w("NcEmptyContent");return o(),c("div",_2,[r("header",C2,[r("h2",w2,d(i.t("absence","My leave")),1),_(u,{variant:"primary",onClick:i.openNew},{icon:x(()=>[_(l,{size:20})]),default:x(()=>[q(" "+d(i.t("absence","New request")),1)]),_:1},8,["onClick"])]),i.nextBreak?(o(),c("section",{key:0,class:"hero",style:oe({"--accent":i.nextBreak.color})},[r("span",k2,d(i.nextBreak.icon),1),r("div",x2,[r("span",S2,d(i.nextBreak.eyebrow),1),r("strong",A2,d(i.nextBreak.headline),1),r("span",L2,d(i.nextBreak.sub),1)])],4)):C("",!0),i.rings.length?(o(),c("section",N2,[(o(!0),c(Q,null,pe(i.rings,S=>(o(),I(h,{key:S.typeId+"-"+S.year,row:S},null,8,["row"]))),128))])):C("",!0),i.leaveByMonth||i.sickByMonth?(o(),c("section",D2,[i.leaveByMonth?(o(),c("div",T2,[_(f,{title:i.t("absence","Leave taken by month ({year})",{year:i.year}),data:i.leaveByMonth},null,8,["title","data"])])):C("",!0),i.sickByMonth?(o(),c("div",E2,[_(f,{title:i.t("absence","Sick days by month ({year})",{year:i.year}),data:i.sickByMonth},null,8,["title","data"])])):C("",!0)])):C("",!0),r("section",B2,[r("h3",I2,d(i.t("absence","Requests")),1),s.store.loading?(o(),I(m,{key:0,rows:4})):s.store.requests.length?(o(),I(Ya,{key:1,tag:"ul",name:"rli",class:"requests__list"},{default:x(()=>[(o(!0),c(Q,null,pe(s.store.requests,S=>(o(),I(p,{key:S.id,request:S,active:s.store.selectedId===S.id,onSelect:a[0]||(a[0]=y=>s.store.select(y))},null,8,["request","active"]))),128))]),_:1})):(o(),I(b,{key:2,name:i.t("absence","No leave requests yet"),description:i.t("absence","Your leave requests will appear here once you submit one.")},{icon:x(()=>[_(g)]),action:x(()=>[_(u,{variant:"primary",onClick:i.openNew},{default:x(()=>[q(d(i.t("absence","Request time off")),1)]),_:1},8,["onClick"])]),_:1},8,["name","description"]))])])}const dn=U(v2,[["render",M2],["__scopeId","data-v-c3441718"]]),z2={name:"Team",components:{TeamTimeline:cs},methods:{t:M}},$2={class:"page"},R2={class:"page__header"},O2={class:"page__title"};function P2(e,a,t,s,n,i){const l=w("TeamTimeline");return o(),c("div",$2,[r("header",R2,[r("h2",O2,d(i.t("absence","Team")),1)]),_(l,{scope:"team"})])}const q2=U(z2,[["render",P2],["__scopeId","data-v-cef1eae4"]]),V2=[{path:"/",redirect:"/my"},{path:"/my",name:"my",component:dn},{path:"/approvals",name:"approvals",component:nm},{path:"/team",name:"team",component:q2},{path:"/hr/balances",name:"hr-balances",component:Mm},{path:"/hr/statistics",name:"hr-statistics",component:jf},{path:"/hr/whos-off",name:"hr-whos-off",component:Mg},{path:"/hr/exports",name:"hr-exports",component:Gm},{path:"/requests/:id",name:"request",component:dn,props:!0}],H2=uo({history:Fl(),routes:V2}),Ut=ll(w1);Ut.config.globalProperties.t=M,Ut.config.globalProperties.n=Kt,Ut.use(H2),Ut.mount("#absence-app"); //# sourceMappingURL=absence-main.mjs.map diff --git a/js/absence-main.mjs.license b/js/absence-main.mjs.license index da7da2b..18a264d 100644 --- a/js/absence-main.mjs.license +++ b/js/absence-main.mjs.license @@ -1,7 +1,6 @@ SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: GPL-3.0-or-later SPDX-License-Identifier: MIT -SPDX-FileCopyrightText: Anthony Fu SPDX-FileCopyrightText: Antoni Andre SPDX-FileCopyrightText: Eduardo San Martin Morote SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris) @@ -16,18 +15,12 @@ This file is generated from multiple sources. Included packages: - @nextcloud/capabilities - version: 1.2.1 - license: GPL-3.0-or-later -- @nextcloud/initial-state - - version: 3.0.0 - - license: GPL-3.0-or-later - @nextcloud/vue - - version: 9.8.2 + - version: 9.9.0 - license: AGPL-3.0-or-later - @vueuse/components - version: 14.3.0 - license: MIT -- @vueuse/core - - version: 14.3.0 - - license: MIT - absence - version: 1.0.0 - license: AGPL-3.0-or-later @@ -47,5 +40,5 @@ This file is generated from multiple sources. Included packages: - version: 5.3.1 - license: MIT - vue-router - - version: 4.6.4 + - version: 5.2.0 - license: MIT diff --git a/js/absence-main.mjs.map b/js/absence-main.mjs.map index c6a2547..9413fff 100644 --- a/js/absence-main.mjs.map +++ b/js/absence-main.mjs.map @@ -1 +1 @@ -{"version":3,"file":"absence-main.mjs","sources":["../node_modules/vue-router/dist/devtools-EWN81iOl.mjs","../node_modules/vue-router/dist/vue-router.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmptyContent-CGAPqk4S.mjs","../node_modules/vue-material-design-icons/Plus.vue","../src/components/BalanceRing.vue","../src/components/BalanceCard.vue","../src/components/BarChart.vue","../node_modules/@nextcloud/vue/dist/chunks/NcCounterBubble-CV0YMrXW.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItem-DItks2Sq.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-wIEKSp2G.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsDarkTheme/index.mjs","../src/store.js","../src/components/StatusChip.vue","../src/components/LeaveTypeChip.vue","../src/components/RequestListItem.vue","../src/components/SkeletonList.vue","../src/components/PalmIllustration.vue","../src/views/MyLeave.vue","../node_modules/vue-material-design-icons/CheckAll.vue","../src/views/Approvals.vue","../node_modules/@vueuse/components/node_modules/@vueuse/core/dist/index.js","../node_modules/@vueuse/components/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/autolink-B2azbG18.mjs","../node_modules/@nextcloud/vue/dist/functions/contactsMenu/index.mjs","../node_modules/ts-md5/dist/index.es.js","../node_modules/@nextcloud/vue/dist/chunks/colors-BDeMBgfq.mjs","../node_modules/@nextcloud/vue/dist/functions/usernameToColor/index.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-BX_KxRP-.mjs","../node_modules/@nextcloud/capabilities/node_modules/@nextcloud/initial-state/dist/index.js","../node_modules/@nextcloud/capabilities/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserStatusIcon-DsviB2Cr.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionGlobal-BZFdtdJL.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText-BXR0sWNu.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-BO5T5ePT.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionLink-BFiaYt9A.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionRouter-vYFtIOzD.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionText-CQ9qwJ0p.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAvatar-DX-Nk9Es.mjs","../node_modules/vue-material-design-icons/ChevronLeft.vue","../node_modules/vue-material-design-icons/ChevronRight.vue","../node_modules/vue-material-design-icons/CalendarBlank.vue","../src/components/TeamTimeline.vue","../src/views/Team.vue","../node_modules/@nextcloud/vue/dist/chunks/NcInputField-B1bGxYHt.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs","../node_modules/vue-material-design-icons/Magnify.vue","../node_modules/vue-material-design-icons/Pencil.vue","../node_modules/vue-material-design-icons/ScaleBalance.vue","../src/views/hr/HrBalances.vue","../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePickerNative-BeM4WOA4.mjs","../node_modules/vue-material-design-icons/ChartLine.vue","../src/components/LineChart.vue","../src/components/DonutChart.vue","../src/views/hr/HrStatistics.vue","../src/views/hr/HrWhosOff.vue","../node_modules/vue-material-design-icons/Download.vue","../src/views/hr/HrExports.vue","../src/router.js","../node_modules/splitpanes/dist/splitpanes.esm.js","../node_modules/@nextcloud/vue/node_modules/@nextcloud/initial-state/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/appName-DyNMVZpX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent--92JdjRr.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-CGSWabRB.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-Ciwvl5xb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-Bb9-C2eO.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-BptTnvQU.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronUp-ChH8oB7p.mjs","../node_modules/@nextcloud/vue/dist/chunks/ArrowRight-B1ncAhus.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-B6qC3s63.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-B0-60shw.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationNew-Dspn3-4i.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-BhMoPROW.mjs","../node_modules/vue-material-design-icons/CalendarAccountOutline.vue","../node_modules/vue-material-design-icons/ClipboardCheck.vue","../node_modules/vue-material-design-icons/AccountGroup.vue","../node_modules/vue-material-design-icons/ChartBar.vue","../node_modules/vue-material-design-icons/CalendarMonth.vue","../node_modules/vue-material-design-icons/ClipboardPlusOutline.vue","../node_modules/@nextcloud/vue/dist/chunks/NcTextArea-Dxzj4zdb.mjs","../node_modules/vue-material-design-icons/Send.vue","../src/components/RequestDialog.vue","../node_modules/@nextcloud/vue/dist/directives/Focus/index.mjs","../node_modules/linkifyjs/dist/linkify.mjs","../node_modules/@nextcloud/vue/dist/directives/Linkify/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-DX26aRNB.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarTab-DOSDDbGA.mjs","../node_modules/vue-material-design-icons/InformationOutline.vue","../node_modules/vue-material-design-icons/CommentOutline.vue","../node_modules/vue-material-design-icons/History.vue","../node_modules/vue-material-design-icons/Check.vue","../node_modules/vue-material-design-icons/Close.vue","../node_modules/vue-material-design-icons/Cancel.vue","../src/components/CoveragePanel.vue","../src/components/RequestStepper.vue","../src/components/RequestSidebar.vue","../src/App.vue","../src/main.js"],"sourcesContent":["/*!\n * vue-router v4.6.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n\n//#endregion\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*\n* @internal\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n\n//#endregion\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch (err) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery$1, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery$1(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery$1, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery$1(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery$1, location) {\n\tconst query = location.query ? stringifyQuery$1(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery$1, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery$1(a.query) === stringifyQuery$1(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a?.valueOf() === b?.valueOf();\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n\n//#endregion\n//#region src/history/common.ts\nlet NavigationType = /* @__PURE__ */ function(NavigationType$1) {\n\tNavigationType$1[\"pop\"] = \"pop\";\n\tNavigationType$1[\"push\"] = \"push\";\n\treturn NavigationType$1;\n}({});\nlet NavigationDirection = /* @__PURE__ */ function(NavigationDirection$1) {\n\tNavigationDirection$1[\"back\"] = \"back\";\n\tNavigationDirection$1[\"forward\"] = \"forward\";\n\tNavigationDirection$1[\"unknown\"] = \"\";\n\treturn NavigationDirection$1;\n}({});\n/**\n* Starting location for Histories\n*/\nconst START = \"\";\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^\\/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\twarn$1(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n\n//#endregion\n//#region src/errors.ts\n/**\n* Flags so we can combine them when checking for multiple errors. This is the internal version of\n* {@link NavigationFailureType}.\n*\n* @internal\n*/\nlet ErrorTypes = /* @__PURE__ */ function(ErrorTypes$1) {\n\tErrorTypes$1[ErrorTypes$1[\"MATCHER_NOT_FOUND\"] = 1] = \"MATCHER_NOT_FOUND\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_GUARD_REDIRECT\"] = 2] = \"NAVIGATION_GUARD_REDIRECT\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_ABORTED\"] = 4] = \"NAVIGATION_ABORTED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_CANCELLED\"] = 8] = \"NAVIGATION_CANCELLED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_DUPLICATED\"] = 16] = \"NAVIGATION_DUPLICATED\";\n\treturn ErrorTypes$1;\n}({});\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType$1) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType$1;\n}({});\nconst ErrorTypeMessages = {\n\t[ErrorTypes.MATCHER_NOT_FOUND]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[ErrorTypes.NAVIGATION_GUARD_REDIRECT]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_ABORTED]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_CANCELLED]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[ErrorTypes.NAVIGATION_DUPLICATED]({ from, to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\nfunction stringifyRoute(to) {\n\tif (typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value$1) => {\n\t\t\tif (value$1 !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value$1 != null) search += \"=\" + value$1;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(record, name, guard) {\n\tconst removeFromList = () => {\n\t\trecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\trecord[name].add(guard);\n\t});\n\trecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(ErrorTypes.NAVIGATION_ABORTED, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(ErrorTypes.NAVIGATION_GUARD_REDIRECT, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? canOnlyBeCalledOnce(next, to, from) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst message = `The \"next\" callback was never called inside of ${guard.name ? \"\\\"\" + guard.name + \"\\\"\" : \"\"}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tif (typeof api.now !== \"function\") warn$1(\"[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.\");\n\t\tapi.on.inspectComponent((payload, ctx) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route$1) => route$1.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n\n//#endregion\nexport { isBrowser as $, START as A, stringifyURL as B, computeScrollPosition as C, scrollToPosition as D, saveScrollPosition as E, isSameRouteLocation as F, encodePath as G, decode as H, isSameRouteLocationParams as I, assign as J, warn$1 as K, isSameRouteRecord as L, normalizeBase as M, NEW_stringifyURL as N, NavigationDirection as O, START_LOCATION_NORMALIZED as P, noop as Q, parseURL as R, isRouteName as S, getScrollKey as T, encodeHash as U, stripBase as V, encodeParam as W, isArray as X, identityFn as Y, mergeOptions as Z, ErrorTypes as _, loadRouteLocation as a, isNavigationFailure as b, useCallbacks as c, routerKey as d, routerViewLocationKey as f, stringifyQuery as g, parseQuery as h, guardToPromiseFn as i, createHref as j, NavigationType as k, matchedRouteKey as l, normalizeQuery as m, extractChangingRecords as n, onBeforeRouteLeave as o, viewDepthKey as p, applyToParams as q, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, routeLocationKey as u, NavigationFailureType as v, getSavedScrollPosition as w, isRouteLocation as x, createRouterError as y, resolveRelativePath as z };","/*!\n * vue-router v4.6.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { $ as isBrowser, A as START, B as stringifyURL, C as computeScrollPosition, D as scrollToPosition, E as saveScrollPosition, F as isSameRouteLocation, H as decode, I as isSameRouteLocationParams, J as assign, K as warn$1, L as isSameRouteRecord, M as normalizeBase, O as NavigationDirection, P as START_LOCATION_NORMALIZED, Q as noop, R as parseURL, S as isRouteName, T as getScrollKey, U as encodeHash, V as stripBase, W as encodeParam, X as isArray, Z as mergeOptions, _ as ErrorTypes, a as loadRouteLocation, b as isNavigationFailure, c as useCallbacks, d as routerKey, f as routerViewLocationKey, g as stringifyQuery, h as parseQuery, i as guardToPromiseFn, j as createHref, k as NavigationType, l as matchedRouteKey, m as normalizeQuery, n as extractChangingRecords, o as onBeforeRouteLeave, p as viewDepthKey, q as applyToParams, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as routeLocationKey, v as NavigationFailureType, w as getSavedScrollPosition, x as isRouteLocation, y as createRouterError } from \"./devtools-EWN81iOl.mjs\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location$1) {\n\tconst { pathname, search, hash } = location$1;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: NavigationType.pop,\n\t\t\t\tdirection: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history: history$1 } = window;\n\t\t\tif (!history$1.state) return;\n\t\t\thistory$1.replaceState(assign({}, history$1.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history: history$1, location: location$1 } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location$1) };\n\tconst historyState = { value: history$1.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history$1.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace$1) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location$1.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory$1[replace$1 ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation$1[replace$1 ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history$1.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history$1.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history$1.state) warn$1(\"history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[START, {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location$1, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location$1, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: NavigationType.pop\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: START,\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[START, {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nlet TokenType = /* @__PURE__ */ function(TokenType$1) {\n\tTokenType$1[TokenType$1[\"Static\"] = 0] = \"Static\";\n\tTokenType$1[TokenType$1[\"Param\"] = 1] = \"Param\";\n\tTokenType$1[TokenType$1[\"Group\"] = 2] = \"Group\";\n\treturn TokenType$1;\n}({});\nvar TokenizerState = /* @__PURE__ */ function(TokenizerState$1) {\n\tTokenizerState$1[TokenizerState$1[\"Static\"] = 0] = \"Static\";\n\tTokenizerState$1[TokenizerState$1[\"Param\"] = 1] = \"Param\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExp\"] = 2] = \"ParamRegExp\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExpEnd\"] = 3] = \"ParamRegExpEnd\";\n\tTokenizerState$1[TokenizerState$1[\"EscapeNext\"] = 4] = \"EscapeNext\";\n\treturn TokenizerState$1;\n}(TokenizerState || {});\nconst ROOT_TOKEN = {\n\ttype: TokenType.Static,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = TokenizerState.Static;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === TokenizerState.Static) segment.push({\n\t\t\ttype: TokenType.Static,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === TokenizerState.Param || state === TokenizerState.ParamRegExp || state === TokenizerState.ParamRegExpEnd) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: TokenType.Param,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tif (char === \"\\\\\" && state !== TokenizerState.ParamRegExp) {\n\t\t\tpreviousState = state;\n\t\t\tstate = TokenizerState.EscapeNext;\n\t\t\tcontinue;\n\t\t}\n\t\tswitch (state) {\n\t\t\tcase TokenizerState.Static:\n\t\t\t\tif (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Param;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.EscapeNext:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.Param:\n\t\t\t\tif (char === \"(\") state = TokenizerState.ParamRegExp;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExp:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = TokenizerState.ParamRegExpEnd;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExpEnd:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === TokenizerState.ParamRegExp) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nvar PathScore = /* @__PURE__ */ function(PathScore$1) {\n\tPathScore$1[PathScore$1[\"_multiplier\"] = 10] = \"_multiplier\";\n\tPathScore$1[PathScore$1[\"Root\"] = 90] = \"Root\";\n\tPathScore$1[PathScore$1[\"Segment\"] = 40] = \"Segment\";\n\tPathScore$1[PathScore$1[\"SubSegment\"] = 30] = \"SubSegment\";\n\tPathScore$1[PathScore$1[\"Static\"] = 40] = \"Static\";\n\tPathScore$1[PathScore$1[\"Dynamic\"] = 20] = \"Dynamic\";\n\tPathScore$1[PathScore$1[\"BonusCustomRegExp\"] = 10] = \"BonusCustomRegExp\";\n\tPathScore$1[PathScore$1[\"BonusWildcard\"] = -50] = \"BonusWildcard\";\n\tPathScore$1[PathScore$1[\"BonusRepeatable\"] = -20] = \"BonusRepeatable\";\n\tPathScore$1[PathScore$1[\"BonusOptional\"] = -8] = \"BonusOptional\";\n\tPathScore$1[PathScore$1[\"BonusStrict\"] = .7000000000000001] = \"BonusStrict\";\n\tPathScore$1[PathScore$1[\"BonusCaseSensitive\"] = .25] = \"BonusCaseSensitive\";\n\treturn PathScore$1;\n}(PathScore || {});\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [PathScore.Root];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = PathScore.Segment + (options.sensitive ? PathScore.BonusCaseSensitive : 0);\n\t\t\tif (token.type === TokenType.Static) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += PathScore.Static;\n\t\t\t} else if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re$1 = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re$1 !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += PathScore.BonusCustomRegExp;\n\t\t\t\t\ttry {\n\t\t\t\t\t\t`${re$1}`;\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re$1}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re$1})(?:/(?:${re$1}))*)` : `(${re$1})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += PathScore.Dynamic;\n\t\t\t\tif (optional) subSegmentScore += PathScore.BonusOptional;\n\t\t\t\tif (repeatable) subSegmentScore += PathScore.BonusRepeatable;\n\t\t\t\tif (re$1 === \".*\") subSegmentScore += PathScore.BonusWildcard;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += PathScore.BonusStrict;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === TokenType.Static) path += token.value;\n\t\t\telse if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === PathScore.Static + PathScore.Segment ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === PathScore.Static + PathScore.Segment ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location$1, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location$1 && location$1.name) {\n\t\t\tmatcher = matcherMap.get(location$1.name);\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, { location: location$1 });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location$1.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) warn$1(`Discarded invalid param(s) \"${invalidParams.join(\"\\\", \\\"\")}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location$1.params && pickParams(location$1.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location$1.path != null) {\n\t\t\tpath = location$1.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, {\n\t\t\t\tlocation: location$1,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location$1.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path) warn$1(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\nconst RouterLinkImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(` can no longer be used directly inside or .\nUse slot props instead:\n\n\n <${comp}>\\n \\n \\n`);\n\t}\n}\n\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute$1 = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href$1 = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href$1.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href$1}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute$1.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute$1, {\n\t\t\t\tparams: decodeParams(matchedRoute$1.params),\n\t\t\t\thash: decode(locationNormalized.hash),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref: href$1\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(ErrorTypes.NAVIGATION_CANCELLED, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace$1 = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace: replace$1\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(ErrorTypes.NAVIGATION_DUPLICATED, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure$1) => {\n\t\t\tif (failure$1) {\n\t\t\t\tif (isNavigationFailure(failure$1, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure$1.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace: replace$1 }, locationAsObject(failure$1.to), {\n\t\t\t\t\t\tstate: typeof failure$1.to === \"object\" ? assign({}, data, failure$1.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure$1 = finalizeNavigation(toLocation, from, true, replace$1, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure$1);\n\t\t\treturn failure$1;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, ErrorTypes.NAVIGATION_CANCELLED) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace$1, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace$1 || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_CANCELLED)) return error;\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED) && !info.delta && info.type === NavigationType.pop) routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, ErrorTypes.NAVIGATION_CANCELLED)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === NavigationType.pop && isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve$1, reject) => {\n\t\t\treadyHandlers.add([resolve$1, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve$1, reject]) => err ? reject(err) : resolve$1());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };","import '../assets/NcEmptyContent-DJMDuGVz.css';\nimport { defineComponent, openBlock, createElementBlock, unref, renderSlot, createCommentVNode, createTextVNode, toDisplayString } from \"vue\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"empty-content__icon\",\n \"aria-hidden\": \"true\"\n};\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = {\n key: 2,\n class: \"empty-content__description\"\n};\nconst _hoisted_5 = {\n key: 3,\n class: \"empty-content__action\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcEmptyContent\",\n props: {\n description: { default: \"\" },\n name: { default: \"\" }\n },\n setup(__props) {\n const nameId = createElementId();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n \"aria-labelledby\": unref(nameId),\n class: \"empty-content\",\n role: \"note\"\n }, [\n _ctx.$slots.icon ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n __props.name !== \"\" || _ctx.$slots.name ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n id: unref(nameId),\n class: \"empty-content__name\"\n }, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString(__props.name), 1)\n ], true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true),\n __props.description !== \"\" || _ctx.$slots.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n _ctx.$slots.action ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"action\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1);\n };\n }\n});\nconst NcEmptyContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-8609a4c1\"]]);\nexport {\n NcEmptyContent as N\n};\n//# sourceMappingURL=NcEmptyContent-CGAPqk4S.mjs.map\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","import '../assets/NcCounterBubble-ZnteskDR.css';\nimport { defineComponent, computed, openBlock, createElementBlock, normalizeClass, toDisplayString } from \"vue\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcCounterBubble\",\n props: {\n count: {},\n active: { type: Boolean },\n type: { default: \"\" },\n raw: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const humanizedCount = computed(() => {\n if (props.raw) {\n return props.count.toString();\n }\n const formatter = new Intl.NumberFormat(getCanonicalLocale(), {\n notation: \"compact\",\n compactDisplay: \"short\"\n });\n return formatter.format(props.count);\n });\n const originalCountAsTitleIfNeeded = computed(() => {\n if (props.raw) {\n return;\n }\n const countAsString = props.count.toString();\n if (countAsString === humanizedCount.value) {\n return;\n }\n return countAsString;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"counter-bubble__counter\", {\n active: __props.active,\n \"counter-bubble__counter--highlighted\": __props.type === \"highlighted\",\n \"counter-bubble__counter--outlined\": __props.type === \"outlined\"\n }]),\n title: originalCountAsTitleIfNeeded.value\n }, toDisplayString(humanizedCount.value), 11, _hoisted_1);\n };\n }\n});\nconst NcCounterBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-36ffc13f\"]]);\nexport {\n NcCounterBubble as N\n};\n//# sourceMappingURL=NcCounterBubble-CV0YMrXW.mjs.map\n","import { defineComponent } from \"vue\";\nconst _sfc_main = defineComponent({\n name: \"NcVNodes\",\n props: {\n /**\n * The vnodes to render\n */\n vnodes: {\n type: [Array, Object],\n default: null\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n return this.vnodes || this.$slots?.default?.({});\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map\n","import '../assets/NcListItem-1uR7AJIf.css';\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcActions } from \"./NcActions-DY4GGONi.mjs\";\nimport { N as NcCounterBubble } from \"./NcCounterBubble-CV0YMrXW.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, withCtx, createElementVNode, mergeProps, normalizeClass, withKeys, renderSlot, createTextVNode, toDisplayString, createElementBlock, createCommentVNode, withDirectives, vShow, createVNode, createSlots } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcListItem\",\n components: {\n NcActions,\n NcCounterBubble,\n NcVNodes: _sfc_main$1\n },\n inheritAttrs: false,\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * The details text displayed in the upper right part of the component\n */\n details: {\n type: String,\n default: \"\"\n },\n /**\n * Name (first line of text)\n */\n name: {\n type: String,\n default: void 0\n },\n /**\n * The route for the router link.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * The value for the external link\n */\n href: {\n type: String,\n default: \"#\"\n },\n /**\n * The HTML target attribute used for the link\n */\n target: {\n type: String,\n default: \"\"\n },\n /**\n * Id for the `` element\n */\n anchorId: {\n type: String,\n default: \"\"\n },\n /**\n * Make subname bold\n */\n bold: {\n type: Boolean,\n default: false\n },\n /**\n * Show the NcListItem in compact design\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the active state of the component\n */\n active: {\n type: Boolean,\n default: void 0\n },\n /**\n * Aria label for the wrapper element\n */\n linkAriaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions toggle\n */\n actionsAriaLabel: {\n type: String,\n default: void 0\n },\n /**\n * If different from 0 this component will display the\n * NcCounterBubble component\n */\n counterNumber: {\n type: [Number, String],\n default: 0\n },\n /**\n * Outlined or highlighted state of the counter\n */\n counterType: {\n type: String,\n default: \"\",\n validator(value) {\n return [\"highlighted\", \"outlined\", \"\"].indexOf(value) !== -1;\n }\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Show the list component layout\n */\n oneLine: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"click\",\n \"dragstart\",\n \"update:menuOpen\"\n ],\n data() {\n return {\n hovered: false,\n hasActions: false,\n hasSubname: false,\n displayActionsOnHoverFocus: false,\n menuOpen: false,\n hasIndicator: false,\n hasDetails: false\n };\n },\n computed: {\n showAdditionalElements() {\n return !this.displayActionsOnHoverFocus || this.forceDisplayActions;\n },\n showDetails() {\n return (this.details !== \"\" || this.hasDetails) && (!this.displayActionsOnHoverFocus || this.forceDisplayActions);\n }\n },\n watch: {\n menuOpen(newValue) {\n if (!newValue && !this.hovered) {\n this.displayActionsOnHoverFocus = false;\n }\n }\n },\n mounted() {\n this.checkSlots();\n },\n updated() {\n this.checkSlots();\n },\n methods: {\n /**\n * Handle link click\n *\n * @param {MouseEvent|KeyboardEvent} event - Native click or keydown event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n showActions() {\n if (this.hasActions) {\n this.displayActionsOnHoverFocus = true;\n }\n this.hovered = false;\n },\n hideActions() {\n this.displayActionsOnHoverFocus = false;\n },\n /**\n * @param {FocusEvent} event UI event\n */\n handleBlur(event) {\n if (this.menuOpen) {\n return;\n }\n if (this.$refs[\"list-item\"]?.contains(event.relatedTarget)) {\n return;\n }\n this.hideActions();\n },\n /**\n * Hide the actions on mouseleave unless the menu is open\n */\n handleMouseleave() {\n if (!this.menuOpen) {\n this.displayActionsOnHoverFocus = false;\n }\n this.hovered = false;\n },\n handleMouseover() {\n this.showActions();\n this.hovered = true;\n },\n handleActionsUpdateOpen(e) {\n this.menuOpen = e;\n this.$emit(\"update:menuOpen\", e);\n },\n // Check if subname and actions slots are populated\n checkSlots() {\n if (this.hasActions !== !!this.$slots.actions) {\n this.hasActions = !!this.$slots.actions;\n }\n if (this.hasSubname !== !!this.$slots.subname) {\n this.hasSubname = !!this.$slots.subname;\n }\n if (this.hasIndicator !== !!this.$slots.indicator) {\n this.hasIndicator = !!this.$slots.indicator;\n }\n if (this.hasDetails !== !!this.$slots.details) {\n this.hasDetails = !!this.$slots.details;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-label\", \"href\", \"target\", \"rel\", \"onClick\"];\nconst _hoisted_2 = { class: \"list-item-content\" };\nconst _hoisted_3 = { class: \"list-item-content__main\" };\nconst _hoisted_4 = { class: \"list-item-content__name\" };\nconst _hoisted_5 = { class: \"list-item-content__details\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"list-item-details__details\"\n};\nconst _hoisted_7 = {\n key: 1,\n class: \"list-item-details__extra\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"list-item-details__indicator\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"list-item-content__extra-actions\"\n};\nconst _hoisted_10 = {\n key: 2,\n class: \"list-item__extra\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCounterBubble = resolveComponent(\"NcCounterBubble\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($props.to ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$props.to && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"li\", mergeProps({\n class: [\"list-item__wrapper\", {\n \"list-item__wrapper--active\": $props.active ?? isActive,\n \"list-item__wrapper--legacy\": $setup.isLegacy34\n }]\n }, _ctx.$attrs), [\n createElementVNode(\"div\", {\n ref: \"list-item\",\n class: normalizeClass([\"list-item\", {\n \"list-item--compact\": $props.compact,\n \"list-item--one-line\": $props.oneLine\n }]),\n onMouseover: _cache[5] || (_cache[5] = (...args) => $options.handleMouseover && $options.handleMouseover(...args)),\n onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args))\n }, [\n createElementVNode(\"a\", {\n id: $props.anchorId || void 0,\n \"aria-label\": $props.linkAriaLabel,\n class: \"list-item__anchor\",\n href: routerLinkHref || $props.href,\n target: $props.target || ($props.href === \"#\" ? void 0 : \"_blank\"),\n rel: $props.href === \"#\" ? void 0 : \"noopener noreferrer\",\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.showActions && $options.showActions(...args)),\n onFocusout: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onDragstart: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"dragstart\", $event)),\n onKeydown: _cache[3] || (_cache[3] = withKeys((...args) => $options.hideActions && $options.hideActions(...args), [\"esc\"]))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString($props.name), 1)\n ], true)\n ]),\n $data.hasSubname ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"list-item-content__subname\", { \"list-item-content__subname--bold\": $props.bold }])\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"div\", _hoisted_5, [\n $options.showDetails ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"details\", {}, () => [\n createTextVNode(toDisplayString($props.details), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n $props.counterNumber !== 0 || $data.hasIndicator ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_7, [\n $props.counterNumber !== 0 ? (openBlock(), createBlock(_component_NcCounterBubble, {\n key: 0,\n count: $props.counterNumber,\n active: $setup.isLegacy34 ? $props.active ?? isActive : false,\n class: \"list-item-details__counter\",\n type: $props.counterType\n }, null, 8, [\"count\", \"active\", \"type\"])) : createCommentVNode(\"\", true),\n $data.hasIndicator ? (openBlock(), createElementBlock(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"indicator\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 512)), [\n [vShow, $options.showAdditionalElements]\n ]) : createCommentVNode(\"\", true)\n ])\n ])\n ], 40, _hoisted_1),\n _ctx.$slots[\"extra-actions\"] ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"extra-actions\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n $props.forceDisplayActions || $data.displayActionsOnHoverFocus ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"list-item-content__actions\",\n onFocusout: _cache[4] || (_cache[4] = (...args) => $options.handleBlur && $options.handleBlur(...args))\n }, [\n createVNode(_component_NcActions, {\n ref: \"actions\",\n primary: $setup.isLegacy34 ? $props.active ?? isActive : false,\n forceMenu: $props.forceMenu,\n \"aria-label\": $props.actionsAriaLabel,\n \"onUpdate:open\": $options.handleActionsUpdateOpen\n }, createSlots({\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"actions-icon\"] ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions-icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"primary\", \"forceMenu\", \"aria-label\", \"onUpdate:open\"])\n ], 32)) : createCommentVNode(\"\", true),\n _ctx.$slots.extra ? (openBlock(), createElementBlock(\"div\", _hoisted_10, [\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 34)\n ], 16)\n ]),\n _: 3\n }, 16);\n}\nconst NcListItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-7e90555e\"]]);\nexport {\n NcListItem as N\n};\n//# sourceMappingURL=NcListItem-DItks2Sq.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INJECTION_KEY_THEME = /* @__PURE__ */ Symbol.for(\"nc:theme:enforced\");\nexport {\n INJECTION_KEY_THEME as I\n};\n//# sourceMappingURL=constants-wIEKSp2G.mjs.map\n","import { createSharedComposable, usePreferredDark, useMutationObserver } from \"@vueuse/core\";\nimport { computed, toValue, ref, watch, readonly, inject } from \"vue\";\nimport { checkIfDarkTheme } from \"../../functions/isDarkTheme/index.mjs\";\nimport { I as INJECTION_KEY_THEME } from \"../../chunks/constants-wIEKSp2G.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useIsDarkThemeElement(el) {\n const element = computed(() => toValue(el) ?? document.body);\n const isDarkTheme = ref(checkIfDarkTheme(element.value));\n const isDarkSystemTheme = usePreferredDark();\n function updateIsDarkTheme() {\n isDarkTheme.value = checkIfDarkTheme(element.value);\n }\n useMutationObserver(element, updateIsDarkTheme, { attributes: true });\n watch(element, updateIsDarkTheme);\n watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });\n return readonly(isDarkTheme);\n}\nconst useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());\nfunction useIsDarkTheme() {\n const isDarkTheme = useInternalIsDarkTheme();\n const enforcedTheme = inject(INJECTION_KEY_THEME, void 0);\n return computed(() => {\n if (enforcedTheme?.value) {\n return enforcedTheme.value === \"dark\";\n }\n return isDarkTheme.value;\n });\n}\nexport {\n useIsDarkTheme,\n useIsDarkThemeElement\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n *\n * Lightweight reactive store shared across views (no Vuex/Pinia dependency).\n */\nimport { reactive } from 'vue'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport api from './api.js'\n\nfunction initialSession() {\n\ttry {\n\t\treturn loadState('absence', 'session')\n\t} catch (e) {\n\t\treturn { uid: null }\n\t}\n}\n\nfunction initialLeaveTypes() {\n\ttry {\n\t\treturn loadState('absence', 'leaveTypes') || []\n\t} catch (e) {\n\t\treturn []\n\t}\n}\n\nexport const store = reactive({\n\tsession: initialSession(),\n\tleaveTypes: initialLeaveTypes(),\n\trequests: [],\n\tbalance: { balances: [] },\n\tloading: false,\n\tselectedId: null,\n\n\t// ---- getters ----\n\tleaveType(id) {\n\t\t// A null/undefined id means the server withheld the leave type (neutral\n\t\t// shared-calendar visibility): show a generic \"Absent\" marker, not \"Unknown\".\n\t\tif (id === null || id === undefined) {\n\t\t\treturn { label: t('absence', 'Absent'), color: '#888', icon: '🌴' }\n\t\t}\n\t\treturn this.leaveTypes.find((t) => t.id === id) || { label: t('absence', 'Unknown'), color: '#888', icon: '❔' }\n\t},\n\t/** True when the type is recorded by HR (e.g. sick leave), not self-requested. */\n\tisHrRecorded(request) {\n\t\tconst type = this.leaveType(request.typeId)\n\t\treturn type && type.employeeRequestable === false\n\t},\n\t/**\n\t * Whether to show a status chip. HR-recorded leave (sick) that is approved has no\n\t * approval concept, so the \"Approved\" label is hidden as noise.\n\t */\n\tstatusVisible(request) {\n\t\treturn !(this.isHrRecorded(request) && request.status === 'APPROVED')\n\t},\n\tget enabledLeaveTypes() {\n\t\treturn this.leaveTypes.filter((t) => t.enabled)\n\t},\n\t/** Types an employee may self-request (excludes HR-recorded types like sick leave). */\n\tget requestableLeaveTypes() {\n\t\treturn this.leaveTypes.filter((t) => t.enabled && t.employeeRequestable)\n\t},\n\n\t// ---- actions ----\n\tasync refreshSession() {\n\t\ttry {\n\t\t\tthis.session = await api.getSession()\n\t\t} catch (e) {\n\t\t\tconsole.error('Absence: failed to refresh session', e)\n\t\t}\n\t},\n\n\tasync loadLeaveTypes() {\n\t\tthis.leaveTypes = await api.listLeaveTypes(false)\n\t},\n\n\tasync loadRequests(params) {\n\t\tthis.loading = true\n\t\ttry {\n\t\t\tthis.requests = await api.listRequests(params)\n\t\t} catch (e) {\n\t\t\tshowError(t('absence', 'Could not load requests'))\n\t\t} finally {\n\t\t\tthis.loading = false\n\t\t}\n\t},\n\n\tasync loadMyBalance(year) {\n\t\tthis.balance = await api.getMyBalance(year)\n\t},\n\n\tasync createRequest(data) {\n\t\tconst created = await api.createRequest(data)\n\t\tshowSuccess(t('absence', 'On its way ✈️'))\n\t\tawait this.refreshSession()\n\t\treturn created\n\t},\n\n\tasync updateRequest(id, data) {\n\t\tconst updated = await api.updateRequest(id, data)\n\t\tshowSuccess(t('absence', 'Request updated'))\n\t\treturn updated\n\t},\n\n\tasync cancelRequest(id) {\n\t\tconst res = await api.cancelRequest(id)\n\t\tshowSuccess(t('absence', 'Request cancelled'))\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tasync approveRequest(id, comment) {\n\t\tconst res = await api.approveRequest(id, comment)\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tasync rejectRequest(id, comment) {\n\t\tconst res = await api.rejectRequest(id, comment)\n\t\tshowSuccess(t('absence', 'Request declined'))\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tselect(id) {\n\t\tthis.selectedId = id\n\t},\n})\n\n/**\n * Visual metadata for a request status (spec §15.4).\n * `text` uses Nextcloud's contrast-optimised *-text variables so labels stay\n * readable; `tint` is the base semantic colour used for the chip background.\n */\nexport function statusMeta(status) {\n\tswitch (status) {\n\tcase 'PENDING':\n\t\treturn { label: t('absence', 'Pending'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '⏳' }\n\tcase 'ESCALATED':\n\t\treturn { label: t('absence', 'With HR'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '⏫' }\n\tcase 'APPROVED':\n\t\treturn { label: t('absence', 'Approved'), text: 'var(--color-success-text)', tint: 'var(--color-success)', icon: '✅' }\n\tcase 'REJECTED':\n\t\treturn { label: t('absence', 'Declined'), text: 'var(--color-error-text)', tint: 'var(--color-error)', icon: '✋' }\n\tcase 'CANCELLED':\n\t\treturn { label: t('absence', 'Cancelled'), text: 'var(--color-text-maxcontrast)', tint: 'var(--color-text-maxcontrast)', icon: '🚫' }\n\tcase 'WITHDRAWAL_PENDING':\n\t\treturn { label: t('absence', 'Withdrawal pending'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '↩️' }\n\tdefault:\n\t\treturn { label: status, text: 'var(--color-main-text)', tint: 'var(--color-text-maxcontrast)', icon: '•' }\n\t}\n}\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","import { bypassFilter, camelize, clamp, computedWithControl, containsProp, createEventHook, createFilterWrapper, createRef, createSingletonPromise, debounceFilter, hasOwn, identity, increaseWithUnit, injectLocal, isClient, isDef, isIOS, isObject, isWorker, makeDestructurable, noop, notNullish, objectEntries, objectOmit, objectPick, pausableFilter, promiseTimeout, provideLocal, pxValue, syncRef, throttleFilter, timestamp, toArray, toRef, toRefs, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useDebounceFn, useIntervalFn, useThrottleFn, useTimeoutFn, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchWithFilter, whenever } from \"@vueuse/shared\";\nimport { Fragment, TransitionGroup, computed, customRef, defineComponent, getCurrentInstance, getCurrentScope, h, hasInjectionContext, inject, isReadonly, isRef, markRaw, nextTick, onBeforeUpdate, onMounted, onUpdated, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toValue, unref, watch, watchEffect } from \"vue\";\nexport * from \"@vueuse/shared\";\n//#region computedAsync/index.ts\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n\tvar _globalThis$reportErr;\n\tlet options;\n\tif (isRef(optionsOrRef)) options = { evaluating: optionsOrRef };\n\telse options = optionsOrRef || {};\n\tconst { lazy = false, flush = \"sync\", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;\n\tconst started = shallowRef(!lazy);\n\tconst current = shallow ? shallowRef(initialState) : ref(initialState);\n\tlet counter = 0;\n\twatchEffect(async (onInvalidate) => {\n\t\tif (!started.value) return;\n\t\tcounter++;\n\t\tconst counterAtBeginning = counter;\n\t\tlet hasFinished = false;\n\t\tif (evaluating) Promise.resolve().then(() => {\n\t\t\tevaluating.value = true;\n\t\t});\n\t\ttry {\n\t\t\tconst result = await evaluationCallback((cancelCallback) => {\n\t\t\t\tonInvalidate(() => {\n\t\t\t\t\tif (evaluating) evaluating.value = false;\n\t\t\t\t\tif (!hasFinished) cancelCallback();\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (counterAtBeginning === counter) current.value = result;\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (evaluating && counterAtBeginning === counter) evaluating.value = false;\n\t\t\thasFinished = true;\n\t\t}\n\t}, { flush });\n\tif (lazy) return computed(() => {\n\t\tstarted.value = true;\n\t\treturn current.value;\n\t});\n\telse return current;\n}\n/** @deprecated use `computedAsync` instead */\nconst asyncComputed = computedAsync;\n//#endregion\n//#region computedInject/index.ts\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n\tlet source = inject(key);\n\tif (defaultSource) source = inject(key, defaultSource);\n\tif (treatDefaultAsFactory) source = inject(key, defaultSource, treatDefaultAsFactory);\n\tif (typeof options === \"function\") return computed((oldValue) => options(source, oldValue));\n\telse return computed({\n\t\tget: (oldValue) => options.get(source, oldValue),\n\t\tset: options.set\n\t});\n}\n//#endregion\n//#region createReusableTemplate/index.ts\n/**\n* This function creates `define` and `reuse` components in pair,\n* It also allow to pass a generic to bind with type.\n*\n* @see https://vueuse.org/createReusableTemplate\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createReusableTemplate(options = {}) {\n\tconst { inheritAttrs = true, name = \"ReusableTemplate\" } = options;\n\tconst render = shallowRef();\n\tconst define = defineComponent({\n\t\tname: `${name}.define`,\n\t\tsetup(_, { slots }) {\n\t\t\treturn () => {\n\t\t\t\trender.value = slots.default;\n\t\t\t};\n\t\t}\n\t});\n\tconst reuse = defineComponent({\n\t\tinheritAttrs,\n\t\tname: `${name}.reuse`,\n\t\tprops: options.props,\n\t\tsetup(props, { attrs, slots }) {\n\t\t\treturn () => {\n\t\t\t\tvar _render$value;\n\t\t\t\tif (!render.value && true) throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n\t\t\t\tconst vnode = (_render$value = render.value) === null || _render$value === void 0 ? void 0 : _render$value.call(render, {\n\t\t\t\t\t...options.props == null ? keysToCamelKebabCase(attrs) : props,\n\t\t\t\t\t$slots: slots\n\t\t\t\t});\n\t\t\t\treturn inheritAttrs && (vnode === null || vnode === void 0 ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n\t\t\t};\n\t\t}\n\t});\n\treturn makeDestructurable({\n\t\tdefine,\n\t\treuse\n\t}, [define, reuse]);\n}\nfunction keysToCamelKebabCase(obj) {\n\tconst newObj = {};\n\tfor (const key in obj) newObj[camelize(key)] = obj[key];\n\treturn newObj;\n}\n//#endregion\n//#region createTemplatePromise/index.ts\n/**\n* Creates a template promise component.\n*\n* @see https://vueuse.org/createTemplatePromise\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createTemplatePromise(options = {}) {\n\tlet index = 0;\n\tconst instances = ref([]);\n\tfunction create(...args) {\n\t\tconst props = shallowReactive({\n\t\t\tkey: index++,\n\t\t\targs,\n\t\t\tpromise: void 0,\n\t\t\tresolve: () => {},\n\t\t\treject: () => {},\n\t\t\tisResolving: false,\n\t\t\toptions\n\t\t});\n\t\tinstances.value.push(props);\n\t\tprops.promise = new Promise((_resolve, _reject) => {\n\t\t\tprops.resolve = (v) => {\n\t\t\t\tprops.isResolving = true;\n\t\t\t\treturn _resolve(v);\n\t\t\t};\n\t\t\tprops.reject = _reject;\n\t\t}).finally(() => {\n\t\t\tprops.promise = void 0;\n\t\t\tconst index = instances.value.indexOf(props);\n\t\t\tif (index !== -1) instances.value.splice(index, 1);\n\t\t});\n\t\treturn props.promise;\n\t}\n\tfunction start(...args) {\n\t\tif (options.singleton && instances.value.length > 0) return instances.value[0].promise;\n\t\treturn create(...args);\n\t}\n\tconst component = defineComponent((_, { slots }) => {\n\t\tconst renderList = () => instances.value.map((props) => {\n\t\t\tvar _slots$default;\n\t\t\treturn h(Fragment, { key: props.key }, (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots, props));\n\t\t});\n\t\tif (options.transition) return () => h(TransitionGroup, options.transition, renderList);\n\t\treturn renderList;\n\t});\n\tcomponent.start = start;\n\treturn component;\n}\n//#endregion\n//#region createUnrefFn/index.ts\n/**\n* Make a plain function accepting ref and raw values as arguments.\n* Returns the same value the unconverted function returns, with proper typing.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createUnrefFn(fn) {\n\treturn function(...args) {\n\t\treturn fn.apply(this, args.map((i) => toValue(i)));\n\t};\n}\n//#endregion\n//#region _configurable.ts\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n//#endregion\n//#region unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n//#endregion\n//#region useEventListener/index.ts\nfunction useEventListener(...args) {\n\tconst register = (el, event, listener, options) => {\n\t\tel.addEventListener(event, listener, options);\n\t\treturn () => el.removeEventListener(event, listener, options);\n\t};\n\tconst firstParamTargets = computed(() => {\n\t\tconst test = toArray(toValue(args[0])).filter((e) => e != null);\n\t\treturn test.every((e) => typeof e !== \"string\") ? test : void 0;\n\t});\n\treturn watchImmediate(() => {\n\t\tvar _firstParamTargets$va, _firstParamTargets$va2;\n\t\treturn [\n\t\t\t(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),\n\t\t\ttoArray(toValue(firstParamTargets.value ? args[1] : args[0])),\n\t\t\ttoArray(unref(firstParamTargets.value ? args[2] : args[1])),\n\t\t\ttoValue(firstParamTargets.value ? args[3] : args[2])\n\t\t];\n\t}, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {\n\t\tif (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;\n\t\tconst optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;\n\t\tconst cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));\n\t\tonCleanup(() => {\n\t\t\tcleanups.forEach((fn) => fn());\n\t\t});\n\t}, { flush: \"post\" });\n}\n//#endregion\n//#region onClickOutside/index.ts\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n\tconst { window = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;\n\tif (!window) return controls ? {\n\t\tstop: noop,\n\t\tcancel: noop,\n\t\ttrigger: noop\n\t} : noop;\n\tif (isIOS && !_iOSWorkaround) {\n\t\t_iOSWorkaround = true;\n\t\tconst listenerOptions = { passive: true };\n\t\tArray.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop, listenerOptions));\n\t\twindow.document.documentElement.addEventListener(\"click\", noop, listenerOptions);\n\t}\n\tlet shouldListen = true;\n\tconst shouldIgnore = (event) => {\n\t\treturn toValue(ignore).some((target) => {\n\t\t\tif (typeof target === \"string\") return Array.from(window.document.querySelectorAll(target)).some((el) => el === event.target || event.composedPath().includes(el));\n\t\t\telse {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\treturn el && (event.target === el || event.composedPath().includes(el));\n\t\t\t}\n\t\t});\n\t};\n\t/**\n\t* Determines if the given target has multiple root elements.\n\t* Referenced from: https://github.com/vuejs/test-utils/blob/ccb460be55f9f6be05ab708500a41ec8adf6f4bc/src/vue-wrapper.ts#L21\n\t*/\n\tfunction hasMultipleRoots(target) {\n\t\tconst vm = toValue(target);\n\t\treturn vm && vm.$.subTree.shapeFlag === 16;\n\t}\n\tfunction checkMultipleRoots(target, event) {\n\t\tconst vm = toValue(target);\n\t\tconst children = vm.$.subTree && vm.$.subTree.children;\n\t\tif (children == null || !Array.isArray(children)) return false;\n\t\treturn children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n\t}\n\tconst listener = (event) => {\n\t\tconst el = unrefElement(target);\n\t\tif (event.target == null) return;\n\t\tif (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;\n\t\tif (!el || el === event.target || event.composedPath().includes(el)) return;\n\t\tif (\"detail\" in event && event.detail === 0) shouldListen = !shouldIgnore(event);\n\t\tif (!shouldListen) {\n\t\t\tshouldListen = true;\n\t\t\treturn;\n\t\t}\n\t\thandler(event);\n\t};\n\tlet isProcessingClick = false;\n\tconst cleanup = [\n\t\tuseEventListener(window, \"click\", (event) => {\n\t\t\tif (!isProcessingClick) {\n\t\t\t\tisProcessingClick = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisProcessingClick = false;\n\t\t\t\t}, 0);\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t}, {\n\t\t\tpassive: true,\n\t\t\tcapture\n\t\t}),\n\t\tuseEventListener(window, \"pointerdown\", (e) => {\n\t\t\tconst el = unrefElement(target);\n\t\t\tshouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n\t\t}, { passive: true }),\n\t\tdetectIframe && useEventListener(window, \"blur\", (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\tlet activeEl = window.document.activeElement;\n\t\t\t\twhile (activeEl === null || activeEl === void 0 ? void 0 : activeEl.shadowRoot) activeEl = activeEl.shadowRoot.activeElement;\n\t\t\t\tif ((activeEl === null || activeEl === void 0 ? void 0 : activeEl.tagName) === \"IFRAME\" && !(el === null || el === void 0 ? void 0 : el.contains(window.document.activeElement))) handler(event);\n\t\t\t}, 0);\n\t\t}, { passive: true })\n\t].filter(Boolean);\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\tif (controls) return {\n\t\tstop,\n\t\tcancel: () => {\n\t\t\tshouldListen = false;\n\t\t},\n\t\ttrigger: (event) => {\n\t\t\tshouldListen = true;\n\t\t\tlistener(event);\n\t\t\tshouldListen = false;\n\t\t}\n\t};\n\treturn stop;\n}\n//#endregion\n//#region useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n//#endregion\n//#region useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n//#endregion\n//#region useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"MutationObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n//#endregion\n//#region onElementRemoval/index.ts\n/**\n* Fires when the element or any element containing it is removed.\n*\n* @param target\n* @param callback\n* @param options\n*/\nfunction onElementRemoval(target, callback, options = {}) {\n\tconst { window = defaultWindow, document = window === null || window === void 0 ? void 0 : window.document, flush = \"sync\" } = options;\n\tif (!window || !document) return noop;\n\tlet stopFn;\n\tconst cleanupAndUpdate = (fn) => {\n\t\tstopFn === null || stopFn === void 0 || stopFn();\n\t\tstopFn = fn;\n\t};\n\tconst stopWatch = watchEffect(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (el) {\n\t\t\tconst { stop } = useMutationObserver(document, (mutationsList) => {\n\t\t\t\tif (mutationsList.map((mutation) => [...mutation.removedNodes]).flat().some((node) => node === el || node.contains(el))) callback(mutationsList);\n\t\t\t}, {\n\t\t\t\twindow,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupAndUpdate(stop);\n\t\t}\n\t}, { flush });\n\tconst stopHandle = () => {\n\t\tstopWatch();\n\t\tcleanupAndUpdate();\n\t};\n\ttryOnScopeDispose(stopHandle);\n\treturn stopHandle;\n}\n//#endregion\n//#region onKeyStroke/index.ts\nfunction createKeyPredicate(keyFilter) {\n\tif (typeof keyFilter === \"function\") return keyFilter;\n\telse if (typeof keyFilter === \"string\") return (event) => event.key === keyFilter;\n\telse if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);\n\treturn () => true;\n}\nfunction onKeyStroke(...args) {\n\tlet key;\n\tlet handler;\n\tlet options = {};\n\tif (args.length === 3) {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t\toptions = args[2];\n\t} else if (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tkey = true;\n\t\thandler = args[0];\n\t\toptions = args[1];\n\t} else {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t}\n\telse {\n\t\tkey = true;\n\t\thandler = args[0];\n\t}\n\tconst { target = defaultWindow, eventName = \"keydown\", passive = false, dedupe = false } = options;\n\tconst predicate = createKeyPredicate(key);\n\tconst listener = (e) => {\n\t\tif (e.repeat && toValue(dedupe)) return;\n\t\tif (predicate(e)) handler(e);\n\t};\n\treturn useEventListener(target, eventName, listener, passive);\n}\n/**\n* Listen to the keydown event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyDown(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keydown\"\n\t});\n}\n/**\n* Listen to the keypress event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyPressed(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keypress\"\n\t});\n}\n/**\n* Listen to the keyup event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyUp(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keyup\"\n\t});\n}\n//#endregion\n//#region onLongPress/index.ts\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n\tvar _options$modifiers10, _options$modifiers11;\n\tconst elementRef = computed(() => unrefElement(target));\n\tlet timeout;\n\tlet posStart;\n\tlet startTimestamp;\n\tlet hasLongPressed = false;\n\tfunction clear() {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = void 0;\n\t\t}\n\t\tposStart = void 0;\n\t\tstartTimestamp = void 0;\n\t\thasLongPressed = false;\n\t}\n\tfunction getDelay(ev) {\n\t\tconst delay = options === null || options === void 0 ? void 0 : options.delay;\n\t\tif (typeof delay === \"function\") return delay(ev);\n\t\treturn delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;\n\t}\n\tfunction onRelease(ev) {\n\t\tvar _options$modifiers, _options$modifiers2, _options$modifiers3;\n\t\tconst [_startTimestamp, _posStart, _hasLongPressed] = [\n\t\t\tstartTimestamp,\n\t\t\tposStart,\n\t\t\thasLongPressed\n\t\t];\n\t\tclear();\n\t\tif (!(options === null || options === void 0 ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) return;\n\t\tif ((options === null || options === void 0 || (_options$modifiers = options.modifiers) === null || _options$modifiers === void 0 ? void 0 : _options$modifiers.self) && ev.target !== elementRef.value) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers2 = options.modifiers) === null || _options$modifiers2 === void 0 ? void 0 : _options$modifiers2.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers3 = options.modifiers) === null || _options$modifiers3 === void 0 ? void 0 : _options$modifiers3.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - _posStart.x;\n\t\tconst dy = ev.y - _posStart.y;\n\t\tconst distance = Math.sqrt(dx * dx + dy * dy);\n\t\toptions.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed, ev);\n\t}\n\tfunction onDown(ev) {\n\t\tvar _options$modifiers4, _options$modifiers5, _options$modifiers6;\n\t\tif ((options === null || options === void 0 || (_options$modifiers4 = options.modifiers) === null || _options$modifiers4 === void 0 ? void 0 : _options$modifiers4.self) && ev.target !== elementRef.value) return;\n\t\tclear();\n\t\tif (options === null || options === void 0 || (_options$modifiers5 = options.modifiers) === null || _options$modifiers5 === void 0 ? void 0 : _options$modifiers5.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers6 = options.modifiers) === null || _options$modifiers6 === void 0 ? void 0 : _options$modifiers6.stop) ev.stopPropagation();\n\t\tposStart = {\n\t\t\tx: ev.x,\n\t\t\ty: ev.y\n\t\t};\n\t\tstartTimestamp = ev.timeStamp;\n\t\ttimeout = setTimeout(() => {\n\t\t\thasLongPressed = true;\n\t\t\thandler(ev);\n\t\t}, getDelay(ev));\n\t}\n\tfunction onMove(ev) {\n\t\tvar _options$modifiers7, _options$modifiers8, _options$modifiers9, _options$distanceThre;\n\t\tif ((options === null || options === void 0 || (_options$modifiers7 = options.modifiers) === null || _options$modifiers7 === void 0 ? void 0 : _options$modifiers7.self) && ev.target !== elementRef.value) return;\n\t\tif (!posStart || (options === null || options === void 0 ? void 0 : options.distanceThreshold) === false) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers8 = options.modifiers) === null || _options$modifiers8 === void 0 ? void 0 : _options$modifiers8.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers9 = options.modifiers) === null || _options$modifiers9 === void 0 ? void 0 : _options$modifiers9.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - posStart.x;\n\t\tconst dy = ev.y - posStart.y;\n\t\tif (Math.sqrt(dx * dx + dy * dy) >= ((_options$distanceThre = options === null || options === void 0 ? void 0 : options.distanceThreshold) !== null && _options$distanceThre !== void 0 ? _options$distanceThre : DEFAULT_THRESHOLD)) clear();\n\t}\n\tconst listenerOptions = {\n\t\tcapture: options === null || options === void 0 || (_options$modifiers10 = options.modifiers) === null || _options$modifiers10 === void 0 ? void 0 : _options$modifiers10.capture,\n\t\tonce: options === null || options === void 0 || (_options$modifiers11 = options.modifiers) === null || _options$modifiers11 === void 0 ? void 0 : _options$modifiers11.once\n\t};\n\tconst cleanup = [\n\t\tuseEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n\t\tuseEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n\t\tuseEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n\t];\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\treturn stop;\n}\n//#endregion\n//#region onStartTyping/index.ts\nfunction isFocusedElementEditable() {\n\tconst { activeElement, body } = document;\n\tif (!activeElement) return false;\n\tif (activeElement === body) return false;\n\tswitch (activeElement.tagName) {\n\t\tcase \"INPUT\":\n\t\tcase \"TEXTAREA\": return true;\n\t}\n\treturn activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({ keyCode, metaKey, ctrlKey, altKey }) {\n\tif (metaKey || ctrlKey || altKey) return false;\n\tif (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) return true;\n\tif (keyCode >= 65 && keyCode <= 90) return true;\n\treturn false;\n}\n/**\n* Fires when users start typing on non-editable elements.\n*\n* @see https://vueuse.org/onStartTyping\n* @param callback\n* @param options\n*/\nfunction onStartTyping(callback, options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditable() && isTypedCharValid(event)) callback(event);\n\t};\n\tif (document) useEventListener(document, \"keydown\", keydown, { passive: true });\n}\n//#endregion\n//#region templateRef/index.ts\n/**\n* @deprecated Use Vue's built-in `useTemplateRef` instead.\n*\n* Shorthand for binding ref to template element.\n*\n* @see https://vueuse.org/templateRef\n* @param key\n* @param initialValue\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction templateRef(key, initialValue = null) {\n\tconst instance = getCurrentInstance();\n\tlet _trigger = () => {};\n\tconst element = customRef((track, trigger) => {\n\t\t_trigger = trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tvar _instance$proxy$$refs, _instance$proxy;\n\t\t\t\ttrack();\n\t\t\t\treturn (_instance$proxy$$refs = instance === null || instance === void 0 || (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$refs[key]) !== null && _instance$proxy$$refs !== void 0 ? _instance$proxy$$refs : initialValue;\n\t\t\t},\n\t\t\tset() {}\n\t\t};\n\t});\n\ttryOnMounted(_trigger);\n\tonUpdated(_trigger);\n\treturn element;\n}\n//#endregion\n//#region useActiveElement/index.ts\n/**\n* Reactive `document.activeElement`\n*\n* @see https://vueuse.org/useActiveElement\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useActiveElement(options = {}) {\n\tvar _options$document;\n\tconst { window = defaultWindow, deep = true, triggerOnRemoval = false } = options;\n\tconst document = (_options$document = options.document) !== null && _options$document !== void 0 ? _options$document : window === null || window === void 0 ? void 0 : window.document;\n\tconst getDeepActiveElement = () => {\n\t\tlet element = document === null || document === void 0 ? void 0 : document.activeElement;\n\t\tif (deep) {\n\t\t\tvar _element$shadowRoot;\n\t\t\twhile (element === null || element === void 0 ? void 0 : element.shadowRoot) element = element === null || element === void 0 || (_element$shadowRoot = element.shadowRoot) === null || _element$shadowRoot === void 0 ? void 0 : _element$shadowRoot.activeElement;\n\t\t}\n\t\treturn element;\n\t};\n\tconst activeElement = shallowRef();\n\tconst trigger = () => {\n\t\tactiveElement.value = getDeepActiveElement();\n\t};\n\tif (window) {\n\t\tconst listenerOptions = {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t};\n\t\tuseEventListener(window, \"blur\", (event) => {\n\t\t\tif (event.relatedTarget !== null) return;\n\t\t\ttrigger();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"focus\", trigger, listenerOptions);\n\t}\n\tif (triggerOnRemoval) onElementRemoval(activeElement, trigger, { document });\n\ttrigger();\n\treturn activeElement;\n}\n//#endregion\n//#region useRafFn/index.ts\n/**\n* Call function on every `requestAnimationFrame`. With controls of pausing and resuming.\n*\n* @see https://vueuse.org/useRafFn\n* @param fn\n* @param options\n*/\nfunction useRafFn(fn, options = {}) {\n\tconst { immediate = true, fpsLimit = null, window = defaultWindow, once = false } = options;\n\tconst isActive = shallowRef(false);\n\tconst intervalLimit = computed(() => {\n\t\tconst limit = toValue(fpsLimit);\n\t\treturn limit ? 1e3 / limit : null;\n\t});\n\tlet previousFrameTimestamp = 0;\n\tlet rafId = null;\n\tfunction loop(timestamp) {\n\t\tif (!isActive.value || !window) return;\n\t\tif (!previousFrameTimestamp) previousFrameTimestamp = timestamp;\n\t\tconst delta = timestamp - previousFrameTimestamp;\n\t\tif (intervalLimit.value && delta < intervalLimit.value) {\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t\treturn;\n\t\t}\n\t\tpreviousFrameTimestamp = timestamp;\n\t\tfn({\n\t\t\tdelta,\n\t\t\ttimestamp\n\t\t});\n\t\tif (once) {\n\t\t\tisActive.value = false;\n\t\t\trafId = null;\n\t\t\treturn;\n\t\t}\n\t\trafId = window.requestAnimationFrame(loop);\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value && window) {\n\t\t\tisActive.value = true;\n\t\t\tpreviousFrameTimestamp = 0;\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tif (rafId != null && window) {\n\t\t\twindow.cancelAnimationFrame(rafId);\n\t\t\trafId = null;\n\t\t}\n\t}\n\tif (immediate) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n//#endregion\n//#region useAnimate/index.ts\n/**\n* Reactive Web Animations API\n*\n* @see https://vueuse.org/useAnimate\n* @param target\n* @param keyframes\n* @param options\n*/\nfunction useAnimate(target, keyframes, options) {\n\tlet config;\n\tlet animateOptions;\n\tif (isObject(options)) {\n\t\tconfig = options;\n\t\tanimateOptions = objectOmit(options, [\n\t\t\t\"window\",\n\t\t\t\"immediate\",\n\t\t\t\"commitStyles\",\n\t\t\t\"persist\",\n\t\t\t\"onReady\",\n\t\t\t\"onError\"\n\t\t]);\n\t} else {\n\t\tconfig = { duration: options };\n\t\tanimateOptions = options;\n\t}\n\tconst { window = defaultWindow, immediate = true, commitStyles, persist, playbackRate: _playbackRate = 1, onReady, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = config;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n\tconst animate = shallowRef(void 0);\n\tconst store = shallowReactive({\n\t\tstartTime: null,\n\t\tcurrentTime: null,\n\t\ttimeline: null,\n\t\tplaybackRate: _playbackRate,\n\t\tpending: false,\n\t\tplayState: immediate ? \"idle\" : \"paused\",\n\t\treplaceState: \"active\"\n\t});\n\tconst pending = computed(() => store.pending);\n\tconst playState = computed(() => store.playState);\n\tconst replaceState = computed(() => store.replaceState);\n\tconst startTime = computed({\n\t\tget() {\n\t\t\treturn store.startTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.startTime = value;\n\t\t\tif (animate.value) animate.value.startTime = value;\n\t\t}\n\t});\n\tconst currentTime = computed({\n\t\tget() {\n\t\t\treturn store.currentTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.currentTime = value;\n\t\t\tif (animate.value) {\n\t\t\t\tanimate.value.currentTime = value;\n\t\t\t\tsyncResume();\n\t\t\t}\n\t\t}\n\t});\n\tconst timeline = computed({\n\t\tget() {\n\t\t\treturn store.timeline;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.timeline = value;\n\t\t\tif (animate.value) animate.value.timeline = value;\n\t\t}\n\t});\n\tconst playbackRate = computed({\n\t\tget() {\n\t\t\treturn store.playbackRate;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.playbackRate = value;\n\t\t\tif (animate.value) animate.value.playbackRate = value;\n\t\t}\n\t});\n\tconst play = () => {\n\t\tif (animate.value) try {\n\t\t\tanimate.value.play();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t\telse update();\n\t};\n\tconst pause = () => {\n\t\ttry {\n\t\t\tvar _animate$value;\n\t\t\t(_animate$value = animate.value) === null || _animate$value === void 0 || _animate$value.pause();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst reverse = () => {\n\t\tif (!animate.value) update();\n\t\ttry {\n\t\t\tvar _animate$value2;\n\t\t\t(_animate$value2 = animate.value) === null || _animate$value2 === void 0 || _animate$value2.reverse();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst finish = () => {\n\t\ttry {\n\t\t\tvar _animate$value3;\n\t\t\t(_animate$value3 = animate.value) === null || _animate$value3 === void 0 || _animate$value3.finish();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\ttry {\n\t\t\tvar _animate$value4;\n\t\t\t(_animate$value4 = animate.value) === null || _animate$value4 === void 0 || _animate$value4.cancel();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\twatch(() => unrefElement(target), (el) => {\n\t\tif (el) update(true);\n\t\telse animate.value = void 0;\n\t});\n\twatch(() => keyframes, (value) => {\n\t\tif (animate.value) {\n\t\t\tupdate();\n\t\t\tconst targetEl = unrefElement(target);\n\t\t\tif (targetEl) animate.value.effect = new KeyframeEffect(targetEl, toValue(value), animateOptions);\n\t\t}\n\t}, { deep: true });\n\ttryOnMounted(() => update(true), false);\n\ttryOnScopeDispose(cancel);\n\tfunction update(init) {\n\t\tconst el = unrefElement(target);\n\t\tif (!isSupported.value || !el) return;\n\t\tif (!animate.value) animate.value = el.animate(toValue(keyframes), animateOptions);\n\t\tif (persist) animate.value.persist();\n\t\tif (_playbackRate !== 1) animate.value.playbackRate = _playbackRate;\n\t\tif (init && !immediate) animate.value.pause();\n\t\telse syncResume();\n\t\tonReady === null || onReady === void 0 || onReady(animate.value);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(animate, [\n\t\t\"cancel\",\n\t\t\"finish\",\n\t\t\"remove\"\n\t], syncPause, listenerOptions);\n\tuseEventListener(animate, \"finish\", () => {\n\t\tvar _animate$value5;\n\t\tif (commitStyles) (_animate$value5 = animate.value) === null || _animate$value5 === void 0 || _animate$value5.commitStyles();\n\t}, listenerOptions);\n\tconst { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n\t\tif (!animate.value) return;\n\t\tstore.pending = animate.value.pending;\n\t\tstore.playState = animate.value.playState;\n\t\tstore.replaceState = animate.value.replaceState;\n\t\tstore.startTime = animate.value.startTime;\n\t\tstore.currentTime = animate.value.currentTime;\n\t\tstore.timeline = animate.value.timeline;\n\t\tstore.playbackRate = animate.value.playbackRate;\n\t}, { immediate: false });\n\tfunction syncResume() {\n\t\tif (isSupported.value) resumeRef();\n\t}\n\tfunction syncPause() {\n\t\tif (isSupported.value && window) window.requestAnimationFrame(pauseRef);\n\t}\n\treturn {\n\t\tisSupported,\n\t\tanimate,\n\t\tplay,\n\t\tpause,\n\t\treverse,\n\t\tfinish,\n\t\tcancel,\n\t\tpending,\n\t\tplayState,\n\t\treplaceState,\n\t\tstartTime,\n\t\tcurrentTime,\n\t\ttimeline,\n\t\tplaybackRate\n\t};\n}\n//#endregion\n//#region useAsyncQueue/index.ts\n/**\n* Asynchronous queue task controller.\n*\n* @see https://vueuse.org/useAsyncQueue\n* @param tasks\n* @param options\n*/\nfunction useAsyncQueue(tasks, options) {\n\tconst { interrupt = true, onError = noop, onFinished = noop, signal } = options || {};\n\tconst promiseState = {\n\t\taborted: \"aborted\",\n\t\tfulfilled: \"fulfilled\",\n\t\tpending: \"pending\",\n\t\trejected: \"rejected\"\n\t};\n\tconst result = reactive(Array.from(Array.from({ length: tasks.length }), () => ({\n\t\tstate: promiseState.pending,\n\t\tdata: null\n\t})));\n\tconst activeIndex = shallowRef(-1);\n\tif (!tasks || tasks.length === 0) {\n\t\tonFinished();\n\t\treturn {\n\t\t\tactiveIndex,\n\t\t\tresult\n\t\t};\n\t}\n\tfunction updateResult(state, res) {\n\t\tactiveIndex.value++;\n\t\tresult[activeIndex.value].data = res;\n\t\tresult[activeIndex.value].state = state;\n\t}\n\ttasks.reduce((prev, curr) => {\n\t\treturn prev.then((prevRes) => {\n\t\t\tvar _result$activeIndex$v;\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, /* @__PURE__ */ new Error(\"aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (((_result$activeIndex$v = result[activeIndex.value]) === null || _result$activeIndex$v === void 0 ? void 0 : _result$activeIndex$v.state) === promiseState.rejected && interrupt) {\n\t\t\t\tonFinished();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst done = curr(prevRes).then((currentRes) => {\n\t\t\t\tupdateResult(promiseState.fulfilled, currentRes);\n\t\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\t\treturn currentRes;\n\t\t\t});\n\t\t\tif (!signal) return done;\n\t\t\treturn Promise.race([done, whenAborted(signal)]);\n\t\t}).catch((e) => {\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, e);\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\tupdateResult(promiseState.rejected, e);\n\t\t\tonError();\n\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\treturn e;\n\t\t});\n\t}, Promise.resolve());\n\treturn {\n\t\tactiveIndex,\n\t\tresult\n\t};\n}\nfunction whenAborted(signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst error = /* @__PURE__ */ new Error(\"aborted\");\n\t\tif (signal.aborted) reject(error);\n\t\telse signal.addEventListener(\"abort\", () => reject(error), { once: true });\n\t});\n}\n//#endregion\n//#region useAsyncState/index.ts\n/**\n* Reactive async state. Will not block your setup function and will trigger changes once\n* the promise is ready.\n*\n* @see https://vueuse.org/useAsyncState\n* @param promise The promise / async function to be resolved\n* @param initialState The initial state, used until the first evaluation finishes\n* @param options\n*/\nfunction useAsyncState(promise, initialState, options) {\n\tvar _globalThis$reportErr;\n\tconst { immediate = true, delay = 0, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop, onSuccess = noop, resetOnExecute = true, shallow = true, throwError } = options !== null && options !== void 0 ? options : {};\n\tconst state = shallow ? shallowRef(initialState) : ref(initialState);\n\tconst isReady = shallowRef(false);\n\tconst isLoading = shallowRef(false);\n\tconst error = shallowRef(void 0);\n\tlet executionsCount = 0;\n\tasync function execute(delay = 0, ...args) {\n\t\tconst executionId = executionsCount += 1;\n\t\tif (resetOnExecute) state.value = toValue(initialState);\n\t\terror.value = void 0;\n\t\tisReady.value = false;\n\t\tisLoading.value = true;\n\t\tif (delay > 0) await promiseTimeout(delay);\n\t\tconst _promise = typeof promise === \"function\" ? promise(...args) : promise;\n\t\ttry {\n\t\t\tconst data = await _promise;\n\t\t\tif (executionId === executionsCount) {\n\t\t\t\tstate.value = data;\n\t\t\t\tisReady.value = true;\n\t\t\t}\n\t\t\tonSuccess(data);\n\t\t\treturn data;\n\t\t} catch (e) {\n\t\t\tif (executionId === executionsCount) error.value = e;\n\t\t\tonError(e);\n\t\t\tif (throwError) throw e;\n\t\t} finally {\n\t\t\tif (executionId === executionsCount) isLoading.value = false;\n\t\t}\n\t}\n\tif (immediate) execute(delay);\n\tconst shell = {\n\t\tstate,\n\t\tisReady,\n\t\tisLoading,\n\t\terror,\n\t\texecute,\n\t\texecuteImmediate: (...args) => execute(0, ...args)\n\t};\n\tfunction waitUntilIsLoaded() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilIsLoaded().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\n//#endregion\n//#region useBase64/serialization.ts\nconst defaults = {\n\tarray: (v) => JSON.stringify(v),\n\tobject: (v) => JSON.stringify(v),\n\tset: (v) => JSON.stringify(Array.from(v)),\n\tmap: (v) => JSON.stringify(Object.fromEntries(v)),\n\tnull: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n\tif (!target) return defaults.null;\n\tif (target instanceof Map) return defaults.map;\n\telse if (target instanceof Set) return defaults.set;\n\telse if (Array.isArray(target)) return defaults.array;\n\telse return defaults.object;\n}\n//#endregion\n//#region useBase64/index.ts\nfunction useBase64(target, options) {\n\tconst base64 = shallowRef(\"\");\n\tconst promise = shallowRef();\n\tfunction execute() {\n\t\tif (!isClient) return;\n\t\tpromise.value = new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst _target = toValue(target);\n\t\t\t\tif (_target == null) resolve(\"\");\n\t\t\t\telse if (typeof _target === \"string\") resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n\t\t\t\telse if (_target instanceof Blob) resolve(blobToBase64(_target));\n\t\t\t\telse if (_target instanceof ArrayBuffer) resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n\t\t\t\telse if (_target instanceof HTMLCanvasElement) resolve(_target.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\telse if (_target instanceof HTMLImageElement) {\n\t\t\t\t\tconst img = _target.cloneNode(false);\n\t\t\t\t\timg.crossOrigin = \"Anonymous\";\n\t\t\t\t\timgLoaded(img).then(() => {\n\t\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\tcanvas.width = img.width;\n\t\t\t\t\t\tcanvas.height = img.height;\n\t\t\t\t\t\tctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tresolve(canvas.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\t\t}).catch(reject);\n\t\t\t\t} else if (typeof _target === \"object\") {\n\t\t\t\t\tconst serialized = ((options === null || options === void 0 ? void 0 : options.serializer) || getDefaultSerialization(_target))(_target);\n\t\t\t\t\treturn resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n\t\t\t\t} else reject(/* @__PURE__ */ new Error(\"target is unsupported types\"));\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t\tpromise.value.then((res) => {\n\t\t\tbase64.value = (options === null || options === void 0 ? void 0 : options.dataUrl) === false ? res.replace(/^data:.*?;base64,/, \"\") : res;\n\t\t});\n\t\treturn promise.value;\n\t}\n\tif (isRef(target) || typeof target === \"function\") watch(target, execute, { immediate: true });\n\telse execute();\n\treturn {\n\t\tbase64,\n\t\tpromise,\n\t\texecute\n\t};\n}\nfunction imgLoaded(img) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!img.complete) {\n\t\t\timg.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\timg.onerror = reject;\n\t\t} else resolve();\n\t});\n}\nfunction blobToBase64(blob) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = (e) => {\n\t\t\tresolve(e.target.result);\n\t\t};\n\t\tfr.onerror = reject;\n\t\tfr.readAsDataURL(blob);\n\t});\n}\n//#endregion\n//#region useBattery/index.ts\n/**\n* Reactive Battery Status API.\n*\n* @see https://vueuse.org/useBattery\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBattery(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst events = [\n\t\t\"chargingchange\",\n\t\t\"chargingtimechange\",\n\t\t\"dischargingtimechange\",\n\t\t\"levelchange\"\n\t];\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n\tconst charging = shallowRef(false);\n\tconst chargingTime = shallowRef(0);\n\tconst dischargingTime = shallowRef(0);\n\tconst level = shallowRef(1);\n\tlet battery;\n\tfunction updateBatteryInfo() {\n\t\tcharging.value = this.charging;\n\t\tchargingTime.value = this.chargingTime || 0;\n\t\tdischargingTime.value = this.dischargingTime || 0;\n\t\tlevel.value = this.level;\n\t}\n\tif (isSupported.value) navigator.getBattery().then((_battery) => {\n\t\tbattery = _battery;\n\t\tupdateBatteryInfo.call(battery);\n\t\tuseEventListener(battery, events, updateBatteryInfo, { passive: true });\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcharging,\n\t\tchargingTime,\n\t\tdischargingTime,\n\t\tlevel\n\t};\n}\n//#endregion\n//#region useBluetooth/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useBluetooth(options) {\n\tlet { acceptAllDevices = false } = options || {};\n\tconst { filters = void 0, optionalServices = void 0, navigator = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"bluetooth\" in navigator);\n\tconst device = shallowRef();\n\tconst error = shallowRef(null);\n\twatch(device, () => {\n\t\tconnectToBluetoothGATTServer();\n\t});\n\tasync function requestDevice() {\n\t\tif (!isSupported.value) return;\n\t\terror.value = null;\n\t\tif (filters && filters.length > 0) acceptAllDevices = false;\n\t\ttry {\n\t\t\tdevice.value = await (navigator === null || navigator === void 0 ? void 0 : navigator.bluetooth.requestDevice({\n\t\t\t\tacceptAllDevices,\n\t\t\t\tfilters,\n\t\t\t\toptionalServices\n\t\t\t}));\n\t\t} catch (err) {\n\t\t\terror.value = err;\n\t\t}\n\t}\n\tconst server = shallowRef();\n\tconst isConnected = shallowRef(false);\n\tfunction reset() {\n\t\tisConnected.value = false;\n\t\tdevice.value = void 0;\n\t\tserver.value = void 0;\n\t}\n\tasync function connectToBluetoothGATTServer() {\n\t\terror.value = null;\n\t\tif (device.value && device.value.gatt) {\n\t\t\tuseEventListener(device, \"gattserverdisconnected\", reset, { passive: true });\n\t\t\ttry {\n\t\t\t\tserver.value = await device.value.gatt.connect();\n\t\t\t\tisConnected.value = server.value.connected;\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t}\n\t}\n\ttryOnMounted(() => {\n\t\tvar _device$value$gatt;\n\t\tif (device.value) (_device$value$gatt = device.value.gatt) === null || _device$value$gatt === void 0 || _device$value$gatt.connect();\n\t});\n\ttryOnScopeDispose(() => {\n\t\tvar _device$value$gatt2;\n\t\tif (device.value) (_device$value$gatt2 = device.value.gatt) === null || _device$value$gatt2 === void 0 || _device$value$gatt2.disconnect();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisConnected: shallowReadonly(isConnected),\n\t\tdevice,\n\t\trequestDevice,\n\t\tserver,\n\t\terror\n\t};\n}\n//#endregion\n//#region useSSRWidth/index.ts\nconst ssrWidthSymbol = Symbol(\"vueuse-ssr-width\");\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSSRWidth() {\n\tconst ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;\n\treturn typeof ssrWidth === \"number\" ? ssrWidth : void 0;\n}\nfunction provideSSRWidth(width, app) {\n\tif (app !== void 0) app.provide(ssrWidthSymbol, width);\n\telse provideLocal(ssrWidthSymbol, width);\n}\n//#endregion\n//#region useMediaQuery/index.ts\n/**\n* Reactive Media Query.\n*\n* @see https://vueuse.org/useMediaQuery\n* @param query\n* @param options\n*/\nfunction useMediaQuery(query, options = {}) {\n\tconst { window = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n\tconst ssrSupport = shallowRef(typeof ssrWidth === \"number\");\n\tconst mediaQuery = shallowRef();\n\tconst matches = shallowRef(false);\n\tconst handler = (event) => {\n\t\tmatches.value = event.matches;\n\t};\n\twatchEffect(() => {\n\t\tif (ssrSupport.value) {\n\t\t\tssrSupport.value = !isSupported.value;\n\t\t\tmatches.value = toValue(query).split(\",\").some((queryString) => {\n\t\t\t\tconst not = queryString.includes(\"not all\");\n\t\t\t\tconst minWidth = queryString.match(/\\(\\s*min-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tconst maxWidth = queryString.match(/\\(\\s*max-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tlet res = Boolean(minWidth || maxWidth);\n\t\t\t\tif (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);\n\t\t\t\tif (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);\n\t\t\t\treturn not ? !res : res;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (!isSupported.value) return;\n\t\tmediaQuery.value = window.matchMedia(toValue(query));\n\t\tmatches.value = mediaQuery.value.matches;\n\t});\n\tuseEventListener(mediaQuery, \"change\", handler, { passive: true });\n\treturn computed(() => matches.value);\n}\n//#endregion\n//#region useBreakpoints/breakpoints.ts\n/**\n* Breakpoints from Tailwind V2\n*\n* @see https://tailwindcss.com/docs/breakpoints\n*/\nconst breakpointsTailwind = {\n\t\"sm\": 640,\n\t\"md\": 768,\n\t\"lg\": 1024,\n\t\"xl\": 1280,\n\t\"2xl\": 1536\n};\n/**\n* Breakpoints from Bootstrap V5\n*\n* @see https://getbootstrap.com/docs/5.0/layout/breakpoints\n*/\nconst breakpointsBootstrapV5 = {\n\txs: 0,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1400\n};\n/**\n* Breakpoints from Vuetify V2\n*\n* @see https://v2.vuetifyjs.com/en/features/breakpoints/\n*/\nconst breakpointsVuetifyV2 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1264,\n\txl: 1904\n};\n/**\n* Breakpoints from Vuetify V3\n*\n* @see https://vuetifyjs.com/en/styles/float/#overview\n*/\nconst breakpointsVuetifyV3 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1280,\n\txl: 1920,\n\txxl: 2560\n};\n/**\n* Alias to `breakpointsVuetifyV2`\n*\n* @deprecated explictly use `breakpointsVuetifyV2` or `breakpointsVuetifyV3` instead\n*/\nconst breakpointsVuetify = breakpointsVuetifyV2;\n/**\n* Breakpoints from Ant Design\n*\n* @see https://ant.design/components/layout/#breakpoint-width\n*/\nconst breakpointsAntDesign = {\n\txs: 480,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1600\n};\n/**\n* Breakpoints from Quasar V2\n*\n* @see https://quasar.dev/style/breakpoints\n*/\nconst breakpointsQuasar = {\n\txs: 0,\n\tsm: 600,\n\tmd: 1024,\n\tlg: 1440,\n\txl: 1920\n};\n/**\n* Sematic Breakpoints\n*/\nconst breakpointsSematic = {\n\tmobileS: 320,\n\tmobileM: 375,\n\tmobileL: 425,\n\ttablet: 768,\n\tlaptop: 1024,\n\tlaptopL: 1440,\n\tdesktop4K: 2560\n};\n/**\n* Breakpoints from Master CSS\n*\n* @see https://docs.master.co/css/breakpoints\n*/\nconst breakpointsMasterCss = {\n\t\"3xs\": 360,\n\t\"2xs\": 480,\n\t\"xs\": 600,\n\t\"sm\": 768,\n\t\"md\": 1024,\n\t\"lg\": 1280,\n\t\"xl\": 1440,\n\t\"2xl\": 1600,\n\t\"3xl\": 1920,\n\t\"4xl\": 2560\n};\n/**\n* Breakpoints from PrimeFlex\n*\n* @see https://primeflex.org/installation\n*/\nconst breakpointsPrimeFlex = {\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200\n};\n/**\n* Breakpoints from ElementUI/ElementPlus\n*\n* @see https://element.eleme.io/#/en-US/component/layout\n* @see https://element-plus.org/en-US/component/layout.html\n*/\nconst breakpointsElement = {\n\txs: 0,\n\tsm: 768,\n\tmd: 992,\n\tlg: 1200,\n\txl: 1920\n};\n//#endregion\n//#region useBreakpoints/index.ts\n/**\n* Reactively viewport breakpoints\n*\n* @see https://vueuse.org/useBreakpoints\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBreakpoints(breakpoints, options = {}) {\n\tfunction getValue(k, delta) {\n\t\tlet v = toValue(breakpoints[toValue(k)]);\n\t\tif (delta != null) v = increaseWithUnit(v, delta);\n\t\tif (typeof v === \"number\") v = `${v}px`;\n\t\treturn v;\n\t}\n\tconst { window = defaultWindow, strategy = \"min-width\", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst ssrSupport = typeof ssrWidth === \"number\";\n\tconst mounted = ssrSupport ? shallowRef(false) : { value: true };\n\tif (ssrSupport) tryOnMounted(() => mounted.value = !!window);\n\tfunction match(query, size) {\n\t\tif (!mounted.value && ssrSupport) return query === \"min\" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);\n\t\tif (!window) return false;\n\t\treturn window.matchMedia(`(${query}-width: ${size})`).matches;\n\t}\n\tconst greaterOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n\t};\n\tconst smallerOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n\t};\n\tconst shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n\t\tObject.defineProperty(shortcuts, k, {\n\t\t\tget: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\treturn shortcuts;\n\t}, {});\n\tfunction current() {\n\t\tconst points = Object.keys(breakpoints).map((k) => [\n\t\t\tk,\n\t\t\tshortcutMethods[k],\n\t\t\tpxValue(getValue(k))\n\t\t]).sort((a, b) => a[2] - b[2]);\n\t\treturn computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n\t}\n\treturn Object.assign(shortcutMethods, {\n\t\tgreaterOrEqual,\n\t\tsmallerOrEqual,\n\t\tgreater(k) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(k, .1)})`, options);\n\t\t},\n\t\tsmaller(k) {\n\t\t\treturn useMediaQuery(() => `(max-width: ${getValue(k, -.1)})`, options);\n\t\t},\n\t\tbetween(a, b) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -.1)})`, options);\n\t\t},\n\t\tisGreater(k) {\n\t\t\treturn match(\"min\", getValue(k, .1));\n\t\t},\n\t\tisGreaterOrEqual(k) {\n\t\t\treturn match(\"min\", getValue(k));\n\t\t},\n\t\tisSmaller(k) {\n\t\t\treturn match(\"max\", getValue(k, -.1));\n\t\t},\n\t\tisSmallerOrEqual(k) {\n\t\t\treturn match(\"max\", getValue(k));\n\t\t},\n\t\tisInBetween(a, b) {\n\t\t\treturn match(\"min\", getValue(a)) && match(\"max\", getValue(b, -.1));\n\t\t},\n\t\tcurrent,\n\t\tactive() {\n\t\t\tconst bps = current();\n\t\t\treturn computed(() => bps.value.length === 0 ? \"\" : bps.value.at(strategy === \"min-width\" ? -1 : 0));\n\t\t}\n\t});\n}\n//#endregion\n//#region useBroadcastChannel/index.ts\n/**\n* Reactive BroadcastChannel\n*\n* @see https://vueuse.org/useBroadcastChannel\n* @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n* @param options\n*\n*/\nfunction useBroadcastChannel(options) {\n\tconst { name, window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"BroadcastChannel\" in window);\n\tconst isClosed = shallowRef(false);\n\tconst channel = shallowRef();\n\tconst data = shallowRef();\n\tconst error = shallowRef(null);\n\tconst post = (data) => {\n\t\tif (channel.value) channel.value.postMessage(data);\n\t};\n\tconst close = () => {\n\t\tif (channel.value) channel.value.close();\n\t\tisClosed.value = true;\n\t};\n\tif (isSupported.value) tryOnMounted(() => {\n\t\terror.value = null;\n\t\tchannel.value = new BroadcastChannel(name);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(channel, \"message\", (e) => {\n\t\t\tdata.value = e.data;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"messageerror\", (e) => {\n\t\t\terror.value = e;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"close\", () => {\n\t\t\tisClosed.value = true;\n\t\t}, listenerOptions);\n\t});\n\ttryOnScopeDispose(() => {\n\t\tclose();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tchannel,\n\t\tdata,\n\t\tpost,\n\t\tclose,\n\t\terror,\n\t\tisClosed\n\t};\n}\n//#endregion\n//#region useBrowserLocation/index.ts\nconst WRITABLE_PROPERTIES = [\n\t\"hash\",\n\t\"host\",\n\t\"hostname\",\n\t\"href\",\n\t\"pathname\",\n\t\"port\",\n\t\"protocol\",\n\t\"search\"\n];\n/**\n* Reactive browser location.\n*\n* @see https://vueuse.org/useBrowserLocation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBrowserLocation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst refs = Object.fromEntries(WRITABLE_PROPERTIES.map((key) => [key, ref()]));\n\tfor (const [key, ref] of objectEntries(refs)) watch(ref, (value) => {\n\t\tif (!(window === null || window === void 0 ? void 0 : window.location) || window.location[key] === value) return;\n\t\twindow.location[key] = value;\n\t});\n\tconst buildState = (trigger) => {\n\t\tvar _window$location;\n\t\tconst { state, length } = (window === null || window === void 0 ? void 0 : window.history) || {};\n\t\tconst { origin } = (window === null || window === void 0 ? void 0 : window.location) || {};\n\t\tfor (const key of WRITABLE_PROPERTIES) refs[key].value = window === null || window === void 0 || (_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location[key];\n\t\treturn reactive({\n\t\t\ttrigger,\n\t\t\tstate,\n\t\t\tlength,\n\t\t\torigin,\n\t\t\t...refs\n\t\t});\n\t};\n\tconst state = ref(buildState(\"load\"));\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), listenerOptions);\n\t\tuseEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), listenerOptions);\n\t}\n\treturn state;\n}\n//#endregion\n//#region useCached/index.ts\nfunction useCached(refValue, comparator = (newSourceValue, cachedValue) => newSourceValue === cachedValue, options) {\n\tconst { deepRefs = true, ...watchOptions } = options || {};\n\tconst cachedValue = createRef(refValue.value, deepRefs);\n\twatch(() => refValue.value, (value) => {\n\t\tif (!comparator(value, cachedValue.value)) cachedValue.value = value;\n\t}, watchOptions);\n\treturn cachedValue;\n}\n//#endregion\n//#region usePermission/index.ts\n/**\n* Reactive Permissions API.\n*\n* @see https://vueuse.org/usePermission\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePermission(permissionDesc, options = {}) {\n\tconst { controls = false, navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"permissions\" in navigator);\n\tconst permissionStatus = shallowRef();\n\tconst desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n\tconst state = shallowRef();\n\tconst update = () => {\n\t\tvar _permissionStatus$val, _permissionStatus$val2;\n\t\tstate.value = (_permissionStatus$val = (_permissionStatus$val2 = permissionStatus.value) === null || _permissionStatus$val2 === void 0 ? void 0 : _permissionStatus$val2.state) !== null && _permissionStatus$val !== void 0 ? _permissionStatus$val : \"prompt\";\n\t};\n\tuseEventListener(permissionStatus, \"change\", update, { passive: true });\n\tconst query = createSingletonPromise(async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionStatus.value) try {\n\t\t\tpermissionStatus.value = await navigator.permissions.query(desc);\n\t\t} catch (_unused) {\n\t\t\tpermissionStatus.value = void 0;\n\t\t} finally {\n\t\t\tupdate();\n\t\t}\n\t\tif (controls) return toRaw(permissionStatus.value);\n\t});\n\tquery();\n\tif (controls) return {\n\t\tstate,\n\t\tisSupported,\n\t\tquery\n\t};\n\telse return state;\n}\n//#endregion\n//#region useClipboard/index.ts\nfunction useClipboard(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;\n\tconst isClipboardApiSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst permissionRead = usePermission(\"clipboard-read\");\n\tconst permissionWrite = usePermission(\"clipboard-write\");\n\tconst isSupported = computed(() => isClipboardApiSupported.value || legacy);\n\tconst text = shallowRef(\"\");\n\tconst copied = shallowRef(false);\n\tconst copyPending = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tlet lastLegacyId = 0;\n\tasync function updateText() {\n\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionRead.value));\n\t\tif (!useLegacy) try {\n\t\t\ttext.value = await navigator.clipboard.readText();\n\t\t} catch (_unused) {\n\t\t\tuseLegacy = true;\n\t\t}\n\t\tif (useLegacy) text.value = legacyRead();\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateText, { passive: true });\n\tasync function copy(value) {\n\t\tconst resolvedValue = value !== null && value !== void 0 ? value : toValue(source);\n\t\tif (isSupported.value && resolvedValue != null) {\n\t\t\tcopyPending.value = true;\n\t\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionWrite.value));\n\t\t\tif (!useLegacy) try {\n\t\t\t\tconst clipboardItem = createClipboardItem(resolvedValue);\n\t\t\t\tawait navigator.clipboard.write([clipboardItem]);\n\t\t\t} catch (_unused2) {\n\t\t\t\tuseLegacy = true;\n\t\t\t}\n\t\t\tif (useLegacy) if (typeof resolvedValue === \"string\") {\n\t\t\t\ttext.value = resolvedValue;\n\t\t\t\tlegacyCopy(resolvedValue);\n\t\t\t} else {\n\t\t\t\tconst currentId = ++lastLegacyId;\n\t\t\t\tconst resolvedText = await resolvedValue();\n\t\t\t\tif (resolvedText != null && currentId === lastLegacyId) {\n\t\t\t\t\ttext.value = resolvedText;\n\t\t\t\t\tlegacyCopy(resolvedText);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t\tcopyPending.value = false;\n\t\t}\n\t}\n\tfunction createClipboardItem(value) {\n\t\tif (typeof value === \"string\") {\n\t\t\ttext.value = value;\n\t\t\treturn new ClipboardItem({ \"text/plain\": value });\n\t\t} else return new ClipboardItem({ \"text/plain\": value().then((resolvedText = \"\") => {\n\t\t\ttext.value = resolvedText;\n\t\t\treturn new Blob([resolvedText], { type: \"text/plain\" });\n\t\t}) });\n\t}\n\tfunction legacyCopy(value) {\n\t\tconst ta = document.createElement(\"textarea\");\n\t\tta.value = value;\n\t\tta.style.position = \"absolute\";\n\t\tta.style.opacity = \"0\";\n\t\tta.setAttribute(\"readonly\", \"\");\n\t\tdocument.body.appendChild(ta);\n\t\tta.select();\n\t\tdocument.execCommand(\"copy\");\n\t\tta.remove();\n\t}\n\tfunction legacyRead() {\n\t\tvar _document$getSelectio, _document, _document$getSelectio2;\n\t\treturn (_document$getSelectio = (_document = document) === null || _document === void 0 || (_document$getSelectio2 = _document.getSelection) === null || _document$getSelectio2 === void 0 || (_document$getSelectio2 = _document$getSelectio2.call(_document)) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.toString()) !== null && _document$getSelectio !== void 0 ? _document$getSelectio : \"\";\n\t}\n\tfunction isAllowed(status) {\n\t\treturn status === \"granted\" || status === \"prompt\";\n\t}\n\treturn {\n\t\tcopyPending: shallowReadonly(copyPending),\n\t\tisSupported,\n\t\ttext: shallowReadonly(text),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy\n\t};\n}\n//#endregion\n//#region useClipboardItems/index.ts\nfunction useClipboardItems(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500 } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst content = shallowRef([]);\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tfunction updateContent() {\n\t\tif (isSupported.value) navigator.clipboard.read().then((items) => {\n\t\t\tcontent.value = items;\n\t\t});\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateContent, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tawait navigator.clipboard.write(value);\n\t\t\tcontent.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\treturn {\n\t\tisSupported,\n\t\tcontent: shallowReadonly(content),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy,\n\t\tread: updateContent\n\t};\n}\n//#endregion\n//#region useCloned/index.ts\nfunction cloneFnJSON(source) {\n\treturn JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n\tconst cloned = ref({});\n\tconst isModified = shallowRef(false);\n\tlet _lastSync = false;\n\tconst { manual, clone = cloneFnJSON, deep = true, immediate = true } = options;\n\twatch(cloned, () => {\n\t\tif (_lastSync) {\n\t\t\t_lastSync = false;\n\t\t\treturn;\n\t\t}\n\t\tisModified.value = true;\n\t}, {\n\t\tdeep: true,\n\t\tflush: \"sync\"\n\t});\n\tfunction sync() {\n\t\t_lastSync = true;\n\t\tisModified.value = false;\n\t\tcloned.value = clone(toValue(source));\n\t}\n\tif (!manual && (isRef(source) || typeof source === \"function\")) watch(source, sync, {\n\t\t...options,\n\t\tdeep,\n\t\timmediate\n\t});\n\telse sync();\n\treturn {\n\t\tcloned,\n\t\tisModified,\n\t\tsync\n\t};\n}\n//#endregion\n//#region ssr-handlers.ts\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n\tif (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};\n\treturn _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n\treturn handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n\thandlers[key] = fn;\n}\n//#endregion\n//#region usePreferredDark/index.ts\n/**\n* Reactive dark theme preference.\n*\n* @see https://vueuse.org/usePreferredDark\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredDark(options) {\n\treturn useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n//#endregion\n//#region useStorage/guess.ts\nfunction guessSerializerType(rawInit) {\n\treturn rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n//#endregion\n//#region useStorage/index.ts\nconst StorageSerializers = {\n\tboolean: {\n\t\tread: (v) => v === \"true\",\n\t\twrite: (v) => String(v)\n\t},\n\tobject: {\n\t\tread: (v) => JSON.parse(v),\n\t\twrite: (v) => JSON.stringify(v)\n\t},\n\tnumber: {\n\t\tread: (v) => Number.parseFloat(v),\n\t\twrite: (v) => String(v)\n\t},\n\tany: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tstring: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tmap: {\n\t\tread: (v) => new Map(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v.entries()))\n\t},\n\tset: {\n\t\tread: (v) => new Set(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v))\n\t},\n\tdate: {\n\t\tread: (v) => new Date(v),\n\t\twrite: (v) => v.toISOString()\n\t}\n};\nconst customStorageEventName = \"vueuse-storage\";\n/**\n* Reactive LocalStorage/SessionStorage.\n*\n* @see https://vueuse.org/useStorage\n*/\nfunction useStorage(key, defaults, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, initOnMounted } = options;\n\tconst data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n\tconst keyComputed = computed(() => toValue(key));\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorage\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tif (!storage) return data;\n\tconst rawInit = toValue(defaults);\n\tconst type = guessSerializerType(rawInit);\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tconst { pause: pauseWatch, resume: resumeWatch } = watchPausable(data, (newValue) => write(newValue), {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\twatch(keyComputed, () => update(), { flush });\n\tlet firstMounted = false;\n\tconst onStorageEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdate(ev);\n\t};\n\tconst onStorageCustomEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdateFromCustomEvent(ev);\n\t};\n\t/**\n\t* The custom event is needed for same-document syncing when using custom\n\t* storage backends, but it doesn't work across different documents.\n\t*\n\t* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.\n\t*/\n\tif (window && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window, \"storage\", onStorageEvent, { passive: true });\n\telse useEventListener(window, customStorageEventName, onStorageCustomEvent);\n\tif (initOnMounted) tryOnMounted(() => {\n\t\tfirstMounted = true;\n\t\tupdate();\n\t});\n\telse update();\n\tfunction dispatchWriteEvent(oldValue, newValue) {\n\t\tif (window) {\n\t\t\tconst payload = {\n\t\t\t\tkey: keyComputed.value,\n\t\t\t\toldValue,\n\t\t\t\tnewValue,\n\t\t\t\tstorageArea: storage\n\t\t\t};\n\t\t\twindow.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, { detail: payload }));\n\t\t}\n\t}\n\tfunction write(v) {\n\t\ttry {\n\t\t\tconst oldValue = storage.getItem(keyComputed.value);\n\t\t\tif (v == null) {\n\t\t\t\tdispatchWriteEvent(oldValue, null);\n\t\t\t\tstorage.removeItem(keyComputed.value);\n\t\t\t} else {\n\t\t\t\tconst serialized = serializer.write(v);\n\t\t\t\tif (oldValue !== serialized) {\n\t\t\t\t\tstorage.setItem(keyComputed.value, serialized);\n\t\t\t\t\tdispatchWriteEvent(oldValue, serialized);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tfunction read(event) {\n\t\tconst rawValue = event ? event.newValue : storage.getItem(keyComputed.value);\n\t\tif (rawValue == null) {\n\t\t\tif (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));\n\t\t\treturn rawInit;\n\t\t} else if (!event && mergeDefaults) {\n\t\t\tconst value = serializer.read(rawValue);\n\t\t\tif (typeof mergeDefaults === \"function\") return mergeDefaults(value, rawInit);\n\t\t\telse if (type === \"object\" && !Array.isArray(value)) return {\n\t\t\t\t...rawInit,\n\t\t\t\t...value\n\t\t\t};\n\t\t\treturn value;\n\t\t} else if (typeof rawValue !== \"string\") return rawValue;\n\t\telse return serializer.read(rawValue);\n\t}\n\tfunction update(event) {\n\t\tif (event && event.storageArea !== storage) return;\n\t\tif (event && event.key == null) {\n\t\t\tdata.value = rawInit;\n\t\t\treturn;\n\t\t}\n\t\tif (event && event.key !== keyComputed.value) return;\n\t\tpauseWatch();\n\t\ttry {\n\t\t\tconst serializedData = serializer.write(data.value);\n\t\t\tif (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (event) nextTick(resumeWatch);\n\t\t\telse resumeWatch();\n\t\t}\n\t}\n\tfunction updateFromCustomEvent(event) {\n\t\tupdate(event.detail);\n\t}\n\treturn data;\n}\n//#endregion\n//#region useColorMode/index.ts\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n/**\n* Reactive color mode with auto data persistence.\n*\n* @see https://vueuse.org/useColorMode\n* @param options\n*/\nfunction useColorMode(options = {}) {\n\tconst { selector = \"html\", attribute = \"class\", initialValue = \"auto\", window = defaultWindow, storage, storageKey = \"vueuse-color-scheme\", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;\n\tconst modes = {\n\t\tauto: \"\",\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t\t...options.modes || {}\n\t};\n\tconst preferredDark = usePreferredDark({ window });\n\tconst system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n\tconst store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {\n\t\twindow,\n\t\tlistenToStorageChanges\n\t}));\n\tconst state = computed(() => store.value === \"auto\" ? system.value : store.value);\n\tconst updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector, attribute, value) => {\n\t\tconst el = typeof selector === \"string\" ? window === null || window === void 0 ? void 0 : window.document.querySelector(selector) : unrefElement(selector);\n\t\tif (!el) return;\n\t\tconst classesToAdd = /* @__PURE__ */ new Set();\n\t\tconst classesToRemove = /* @__PURE__ */ new Set();\n\t\tlet attributeToChange = null;\n\t\tif (attribute === \"class\") {\n\t\t\tconst current = value.split(/\\s/g);\n\t\t\tObject.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n\t\t\t\tif (current.includes(v)) classesToAdd.add(v);\n\t\t\t\telse classesToRemove.add(v);\n\t\t\t});\n\t\t} else attributeToChange = {\n\t\t\tkey: attribute,\n\t\t\tvalue\n\t\t};\n\t\tif (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;\n\t\tlet style;\n\t\tif (disableTransition) {\n\t\t\tstyle = window.document.createElement(\"style\");\n\t\t\tstyle.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n\t\t\twindow.document.head.appendChild(style);\n\t\t}\n\t\tfor (const c of classesToAdd) el.classList.add(c);\n\t\tfor (const c of classesToRemove) el.classList.remove(c);\n\t\tif (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);\n\t\tif (disableTransition) {\n\t\t\twindow.getComputedStyle(style).opacity;\n\t\t\tdocument.head.removeChild(style);\n\t\t}\n\t});\n\tfunction defaultOnChanged(mode) {\n\t\tvar _modes$mode;\n\t\tupdateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);\n\t}\n\tfunction onChanged(mode) {\n\t\tif (options.onChanged) options.onChanged(mode, defaultOnChanged);\n\t\telse defaultOnChanged(mode);\n\t}\n\twatch(state, onChanged, {\n\t\tflush: \"post\",\n\t\timmediate: true\n\t});\n\ttryOnMounted(() => onChanged(state.value));\n\tconst auto = computed({\n\t\tget() {\n\t\t\treturn emitAuto ? store.value : state.value;\n\t\t},\n\t\tset(v) {\n\t\t\tstore.value = v;\n\t\t}\n\t});\n\treturn Object.assign(auto, {\n\t\tstore,\n\t\tsystem,\n\t\tstate\n\t});\n}\n//#endregion\n//#region useConfirmDialog/index.ts\n/**\n* Hooks for creating confirm dialogs. Useful for modal windows, popups and logins.\n*\n* @see https://vueuse.org/useConfirmDialog/\n* @param revealed `boolean` `ref` that handles a modal window\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useConfirmDialog(revealed = shallowRef(false)) {\n\tconst confirmHook = createEventHook();\n\tconst cancelHook = createEventHook();\n\tconst revealHook = createEventHook();\n\tlet _resolve = noop;\n\tconst reveal = (data) => {\n\t\trevealHook.trigger(data);\n\t\trevealed.value = true;\n\t\treturn new Promise((resolve) => {\n\t\t\t_resolve = resolve;\n\t\t});\n\t};\n\tconst confirm = (data) => {\n\t\trevealed.value = false;\n\t\tconfirmHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: false\n\t\t});\n\t};\n\tconst cancel = (data) => {\n\t\trevealed.value = false;\n\t\tcancelHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: true\n\t\t});\n\t};\n\treturn {\n\t\tisRevealed: computed(() => revealed.value),\n\t\treveal,\n\t\tconfirm,\n\t\tcancel,\n\t\tonReveal: revealHook.on,\n\t\tonConfirm: confirmHook.on,\n\t\tonCancel: cancelHook.on\n\t};\n}\n//#endregion\n//#region useCountdown/index.ts\nfunction getDefaultScheduler$8(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = 1e3, immediate = false } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn (cb) => useIntervalFn(cb, 1e3, { immediate: false });\n}\n/**\n* Reactive countdown timer in seconds.\n*\n* @param initialCountdown\n* @param options\n*\n* @see https://vueuse.org/useCountdown\n*/\nfunction useCountdown(initialCountdown, options = {}) {\n\tconst remaining = shallowRef(toValue(initialCountdown));\n\tconst { scheduler = getDefaultScheduler$8(options), onTick, onComplete } = options;\n\tconst controls = scheduler(() => {\n\t\tconst value = remaining.value - 1;\n\t\tremaining.value = value < 0 ? 0 : value;\n\t\tonTick === null || onTick === void 0 || onTick();\n\t\tif (remaining.value <= 0) {\n\t\t\tcontrols.pause();\n\t\t\tonComplete === null || onComplete === void 0 || onComplete();\n\t\t}\n\t});\n\tconst reset = (countdown) => {\n\t\tvar _toValue;\n\t\tremaining.value = (_toValue = toValue(countdown)) !== null && _toValue !== void 0 ? _toValue : toValue(initialCountdown);\n\t};\n\tconst stop = () => {\n\t\tcontrols.pause();\n\t\treset();\n\t};\n\tconst resume = () => {\n\t\tif (!controls.isActive.value) {\n\t\t\tif (remaining.value > 0) controls.resume();\n\t\t}\n\t};\n\tconst start = (countdown) => {\n\t\treset(countdown);\n\t\tcontrols.resume();\n\t};\n\treturn {\n\t\tremaining,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tpause: controls.pause,\n\t\tresume,\n\t\tisActive: controls.isActive\n\t};\n}\n//#endregion\n//#region useCssSupports/index.ts\nfunction useCssSupports(...args) {\n\tlet options = {};\n\tif (typeof toValue(args.at(-1)) === \"object\") options = args.pop();\n\tconst [prop, value] = args;\n\tconst { window = defaultWindow, ssrValue = false } = options;\n\tconst isMounted = useMounted();\n\treturn { isSupported: computed(() => {\n\t\tif (!isClient || !isMounted.value) return ssrValue;\n\t\treturn args.length === 2 ? window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop), toValue(value)) : window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop));\n\t}) };\n}\n//#endregion\n//#region useCssVar/index.ts\n/**\n* Manipulate CSS variables.\n*\n* @see https://vueuse.org/useCssVar\n* @param prop\n* @param target\n* @param options\n*/\nfunction useCssVar(prop, target, options = {}) {\n\tconst { window = defaultWindow, initialValue, observe = false } = options;\n\tconst variable = shallowRef(initialValue);\n\tconst elRef = computed(() => {\n\t\tvar _window$document;\n\t\treturn unrefElement(target) || (window === null || window === void 0 || (_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);\n\t});\n\tfunction updateCssVar() {\n\t\tconst key = toValue(prop);\n\t\tconst el = toValue(elRef);\n\t\tif (el && window && key) {\n\t\t\tvar _window$getComputedSt;\n\t\t\tvariable.value = ((_window$getComputedSt = window.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim()) || variable.value || initialValue;\n\t\t}\n\t}\n\tif (observe) useMutationObserver(elRef, updateCssVar, {\n\t\tattributeFilter: [\"style\", \"class\"],\n\t\twindow\n\t});\n\twatch([elRef, () => toValue(prop)], (_, old) => {\n\t\tif (old[0] && old[1]) old[0].style.removeProperty(old[1]);\n\t\tupdateCssVar();\n\t}, { immediate: true });\n\twatch([variable, elRef], ([val, el]) => {\n\t\tconst raw_prop = toValue(prop);\n\t\tif ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);\n\t\telse el.style.setProperty(raw_prop, val);\n\t}, { immediate: true });\n\treturn variable;\n}\n//#endregion\n//#region useCurrentElement/index.ts\nfunction useCurrentElement(rootComponent) {\n\tconst vm = getCurrentInstance();\n\tconst currentElement = computedWithControl(() => null, () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el);\n\tonUpdated(currentElement.trigger);\n\tonMounted(currentElement.trigger);\n\treturn currentElement;\n}\n//#endregion\n//#region useCycleList/index.ts\n/**\n* Cycle through a list of items\n*\n* @see https://vueuse.org/useCycleList\n*/\nfunction useCycleList(list, options) {\n\tconst state = shallowRef(getInitialValue());\n\tconst listRef = toRef(list);\n\tconst index = computed({\n\t\tget() {\n\t\t\tvar _options$fallbackInde;\n\t\t\tconst targetList = listRef.value;\n\t\t\tlet index = (options === null || options === void 0 ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n\t\t\tif (index < 0) index = (_options$fallbackInde = options === null || options === void 0 ? void 0 : options.fallbackIndex) !== null && _options$fallbackInde !== void 0 ? _options$fallbackInde : 0;\n\t\t\treturn index;\n\t\t},\n\t\tset(v) {\n\t\t\tset(v);\n\t\t}\n\t});\n\tfunction set(i) {\n\t\tconst targetList = listRef.value;\n\t\tconst length = targetList.length;\n\t\tconst value = targetList[(i % length + length) % length];\n\t\tstate.value = value;\n\t\treturn value;\n\t}\n\tfunction shift(delta = 1) {\n\t\treturn set(index.value + delta);\n\t}\n\tfunction next(n = 1) {\n\t\treturn shift(n);\n\t}\n\tfunction prev(n = 1) {\n\t\treturn shift(-n);\n\t}\n\tfunction getInitialValue() {\n\t\tvar _toValue, _options$initialValue;\n\t\treturn (_toValue = toValue((_options$initialValue = options === null || options === void 0 ? void 0 : options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : toValue(list)[0])) !== null && _toValue !== void 0 ? _toValue : void 0;\n\t}\n\twatch(listRef, () => set(index.value));\n\treturn {\n\t\tstate,\n\t\tindex,\n\t\tnext,\n\t\tprev,\n\t\tgo: set\n\t};\n}\n//#endregion\n//#region useDark/index.ts\n/**\n* Reactive dark mode with auto data persistence.\n*\n* @see https://vueuse.org/useDark\n* @param options\n*/\nfunction useDark(options = {}) {\n\tconst { valueDark = \"dark\", valueLight = \"\" } = options;\n\tconst mode = useColorMode({\n\t\t...options,\n\t\tonChanged: (mode, defaultHandler) => {\n\t\t\tvar _options$onChanged;\n\t\t\tif (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode === \"dark\", defaultHandler, mode);\n\t\t\telse defaultHandler(mode);\n\t\t},\n\t\tmodes: {\n\t\t\tdark: valueDark,\n\t\t\tlight: valueLight\n\t\t}\n\t});\n\tconst system = computed(() => mode.system.value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn mode.value === \"dark\";\n\t\t},\n\t\tset(v) {\n\t\t\tconst modeVal = v ? \"dark\" : \"light\";\n\t\t\tif (system.value === modeVal) mode.value = \"auto\";\n\t\t\telse mode.value = modeVal;\n\t\t}\n\t});\n}\n//#endregion\n//#region useManualRefHistory/index.ts\nfunction fnBypass(v) {\n\treturn v;\n}\nfunction fnSetSource(source, value) {\n\treturn source.value = value;\n}\nfunction defaultDump(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useManualRefHistory\n* @param source\n* @param options\n*/\nfunction useManualRefHistory(source, options = {}) {\n\tconst { clone = false, dump = defaultDump(clone), parse = defaultParse(clone), setSource = fnSetSource } = options;\n\tfunction _createHistoryRecord() {\n\t\treturn markRaw({\n\t\t\tsnapshot: dump(source.value),\n\t\t\ttimestamp: timestamp()\n\t\t});\n\t}\n\tconst last = ref(_createHistoryRecord());\n\tconst undoStack = ref([]);\n\tconst redoStack = ref([]);\n\tconst _setSource = (record) => {\n\t\tsetSource(source, parse(record.snapshot));\n\t\tlast.value = record;\n\t};\n\tconst commit = () => {\n\t\tundoStack.value.unshift(last.value);\n\t\tlast.value = _createHistoryRecord();\n\t\tif (options.capacity && undoStack.value.length > options.capacity) undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n\t\tif (redoStack.value.length) redoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst clear = () => {\n\t\tundoStack.value.splice(0, undoStack.value.length);\n\t\tredoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst undo = () => {\n\t\tconst state = undoStack.value.shift();\n\t\tif (state) {\n\t\t\tredoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst redo = () => {\n\t\tconst state = redoStack.value.shift();\n\t\tif (state) {\n\t\t\tundoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst reset = () => {\n\t\t_setSource(last.value);\n\t};\n\treturn {\n\t\tsource,\n\t\tundoStack,\n\t\tredoStack,\n\t\tlast,\n\t\thistory: computed(() => [last.value, ...undoStack.value]),\n\t\tcanUndo: computed(() => undoStack.value.length > 0),\n\t\tcanRedo: computed(() => redoStack.value.length > 0),\n\t\tclear,\n\t\tcommit,\n\t\treset,\n\t\tundo,\n\t\tredo\n\t};\n}\n//#endregion\n//#region useRefHistory/index.ts\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useRefHistory\n* @param source\n* @param options\n*/\nfunction useRefHistory(source, options = {}) {\n\tconst { deep = false, flush = \"pre\", eventFilter, shouldCommit = () => true } = options;\n\tconst { eventFilter: composedFilter, pause, resume: resumeTracking, isActive: isTracking } = pausableFilter(eventFilter);\n\tlet lastRawValue = source.value;\n\tconst { ignoreUpdates, ignorePrevAsyncUpdates, stop } = watchIgnorable(source, commit, {\n\t\tdeep,\n\t\tflush,\n\t\teventFilter: composedFilter\n\t});\n\tfunction setSource(source, value) {\n\t\tignorePrevAsyncUpdates();\n\t\tignoreUpdates(() => {\n\t\t\tsource.value = value;\n\t\t\tlastRawValue = value;\n\t\t});\n\t}\n\tconst manualHistory = useManualRefHistory(source, {\n\t\t...options,\n\t\tclone: options.clone || deep,\n\t\tsetSource\n\t});\n\tconst { clear, commit: manualCommit } = manualHistory;\n\tfunction commit() {\n\t\tignorePrevAsyncUpdates();\n\t\tif (!shouldCommit(lastRawValue, source.value)) return;\n\t\tlastRawValue = source.value;\n\t\tmanualCommit();\n\t}\n\tfunction resume(commitNow) {\n\t\tresumeTracking();\n\t\tif (commitNow) commit();\n\t}\n\tfunction batch(fn) {\n\t\tlet canceled = false;\n\t\tconst cancel = () => canceled = true;\n\t\tignoreUpdates(() => {\n\t\t\tfn(cancel);\n\t\t});\n\t\tif (!canceled) commit();\n\t}\n\tfunction dispose() {\n\t\tstop();\n\t\tclear();\n\t}\n\treturn {\n\t\t...manualHistory,\n\t\tisTracking,\n\t\tpause,\n\t\tresume,\n\t\tcommit,\n\t\tbatch,\n\t\tdispose\n\t};\n}\n//#endregion\n//#region useDebouncedRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with debounce filter.\n*\n* @see https://vueuse.org/useDebouncedRefHistory\n* @param source\n* @param options\n*/\nfunction useDebouncedRefHistory(source, options = {}) {\n\tconst filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n//#endregion\n//#region useDeviceMotion/index.ts\n/**\n* Reactive DeviceMotionEvent.\n*\n* @see https://vueuse.org/useDeviceMotion\n* @param options\n*/\nfunction useDeviceMotion(options = {}) {\n\tconst { window = defaultWindow, requestPermissions = false, eventFilter = bypassFilter } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof DeviceMotionEvent !== \"undefined\");\n\tconst requirePermissions = /* @__PURE__ */ useSupported(() => isSupported.value && \"requestPermission\" in DeviceMotionEvent && typeof DeviceMotionEvent.requestPermission === \"function\");\n\tconst permissionGranted = shallowRef(false);\n\tconst acceleration = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tconst rotationRate = ref({\n\t\talpha: null,\n\t\tbeta: null,\n\t\tgamma: null\n\t});\n\tconst interval = shallowRef(0);\n\tconst accelerationIncludingGravity = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tfunction init() {\n\t\tif (window) useEventListener(window, \"devicemotion\", createFilterWrapper(eventFilter, (event) => {\n\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\tacceleration.value = {\n\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t};\n\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t};\n\t\t\trotationRate.value = {\n\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t};\n\t\t\tinterval.value = event.interval;\n\t\t}), { passive: true });\n\t}\n\tconst ensurePermissions = async () => {\n\t\tif (!requirePermissions.value) permissionGranted.value = true;\n\t\tif (permissionGranted.value) return;\n\t\tif (requirePermissions.value) {\n\t\t\tconst requestPermission = DeviceMotionEvent.requestPermission;\n\t\t\ttry {\n\t\t\t\tif (await requestPermission() === \"granted\") {\n\t\t\t\t\tpermissionGranted.value = true;\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}\n\t};\n\tif (isSupported.value) if (requestPermissions && requirePermissions.value) ensurePermissions().then(() => init());\n\telse init();\n\treturn {\n\t\tacceleration,\n\t\taccelerationIncludingGravity,\n\t\trotationRate,\n\t\tinterval,\n\t\tisSupported,\n\t\trequirePermissions,\n\t\tensurePermissions,\n\t\tpermissionGranted\n\t};\n}\n//#endregion\n//#region useDeviceOrientation/index.ts\n/**\n* Reactive DeviceOrientationEvent.\n*\n* @see https://vueuse.org/useDeviceOrientation\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDeviceOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"DeviceOrientationEvent\" in window);\n\tconst isAbsolute = shallowRef(false);\n\tconst alpha = shallowRef(null);\n\tconst beta = shallowRef(null);\n\tconst gamma = shallowRef(null);\n\tif (window && isSupported.value) useEventListener(window, \"deviceorientation\", (event) => {\n\t\tisAbsolute.value = event.absolute;\n\t\talpha.value = event.alpha;\n\t\tbeta.value = event.beta;\n\t\tgamma.value = event.gamma;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tisAbsolute,\n\t\talpha,\n\t\tbeta,\n\t\tgamma\n\t};\n}\n//#endregion\n//#region useDevicePixelRatio/index.ts\n/**\n* Reactively track `window.devicePixelRatio`.\n*\n* @see https://vueuse.org/useDevicePixelRatio\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDevicePixelRatio(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst pixelRatio = shallowRef(1);\n\tconst query = useMediaQuery(() => `(resolution: ${pixelRatio.value}dppx)`, options);\n\tlet stop = noop;\n\tif (window) stop = watchImmediate(query, () => pixelRatio.value = window.devicePixelRatio);\n\treturn {\n\t\tpixelRatio: shallowReadonly(pixelRatio),\n\t\tstop\n\t};\n}\n//#endregion\n//#region useDevicesList/index.ts\n/**\n* Reactive `enumerateDevices` listing available input/output devices\n*\n* @see https://vueuse.org/useDevicesList\n* @param options\n*/\nfunction useDevicesList(options = {}) {\n\tconst { navigator = defaultNavigator, requestPermissions = false, constraints = {\n\t\taudio: true,\n\t\tvideo: true\n\t}, onUpdated } = options;\n\tconst devices = shallowRef([]);\n\tconst videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n\tconst audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n\tconst audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n\tconst permissionGranted = shallowRef(false);\n\tlet stream;\n\tasync function update() {\n\t\tif (!isSupported.value) return;\n\t\tdevices.value = await navigator.mediaDevices.enumerateDevices();\n\t\tonUpdated === null || onUpdated === void 0 || onUpdated(devices.value);\n\t\tif (stream) {\n\t\t\tstream.getTracks().forEach((t) => t.stop());\n\t\t\tstream = null;\n\t\t}\n\t}\n\tasync function ensurePermissions() {\n\t\tconst deviceName = constraints.video ? \"camera\" : \"microphone\";\n\t\tif (!isSupported.value) return false;\n\t\tif (permissionGranted.value) return true;\n\t\tconst { state, query } = usePermission(deviceName, { controls: true });\n\t\tawait query();\n\t\tif (state.value !== \"granted\") {\n\t\t\tlet granted = true;\n\t\t\ttry {\n\t\t\t\tconst allDevices = await navigator.mediaDevices.enumerateDevices();\n\t\t\t\tconst hasCamera = allDevices.some((device) => device.kind === \"videoinput\");\n\t\t\t\tconst hasMicrophone = allDevices.some((device) => device.kind === \"audioinput\" || device.kind === \"audiooutput\");\n\t\t\t\tconstraints.video = hasCamera ? constraints.video : false;\n\t\t\t\tconstraints.audio = hasMicrophone ? constraints.audio : false;\n\t\t\t\tstream = await navigator.mediaDevices.getUserMedia(constraints);\n\t\t\t} catch (_unused) {\n\t\t\t\tstream = null;\n\t\t\t\tgranted = false;\n\t\t\t}\n\t\t\tupdate();\n\t\t\tpermissionGranted.value = granted;\n\t\t} else permissionGranted.value = true;\n\t\treturn permissionGranted.value;\n\t}\n\tif (isSupported.value) {\n\t\tif (requestPermissions) ensurePermissions();\n\t\tuseEventListener(navigator.mediaDevices, \"devicechange\", update, { passive: true });\n\t\tupdate();\n\t}\n\treturn {\n\t\tdevices,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tvideoInputs,\n\t\taudioInputs,\n\t\taudioOutputs,\n\t\tisSupported\n\t};\n}\n//#endregion\n//#region useDisplayMedia/index.ts\n/**\n* Reactive `mediaDevices.getDisplayMedia` streaming\n*\n* @see https://vueuse.org/useDisplayMedia\n* @param options\n*/\nfunction useDisplayMedia(options = {}) {\n\tvar _options$enabled;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst video = options.video;\n\tconst audio = options.audio;\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator === null || navigator === void 0 || (_navigator$mediaDevic = navigator.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getDisplayMedia;\n\t});\n\tconst constraint = {\n\t\taudio,\n\t\tvideo\n\t};\n\tconst stream = shallowRef();\n\tasync function _start() {\n\t\tvar _stream$value;\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => useEventListener(t, \"ended\", stop, { passive: true }));\n\t\treturn stream.value;\n\t}\n\tasync function _stop() {\n\t\tvar _stream$value2;\n\t\t(_stream$value2 = stream.value) === null || _stream$value2 === void 0 || _stream$value2.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\tenabled\n\t};\n}\n//#endregion\n//#region useDocumentVisibility/index.ts\n/**\n* Reactively track `document.visibilityState`.\n*\n* @see https://vueuse.org/useDocumentVisibility\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDocumentVisibility(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tif (!document) return shallowRef(\"visible\");\n\tconst visibility = shallowRef(document.visibilityState);\n\tuseEventListener(document, \"visibilitychange\", () => {\n\t\tvisibility.value = document.visibilityState;\n\t}, { passive: true });\n\treturn visibility;\n}\n//#endregion\n//#region useDraggable/index.ts\nconst defaultScrollConfig = {\n\tspeed: 2,\n\tmargin: 30,\n\tdirection: \"both\"\n};\nfunction clampContainerScroll(container) {\n\tif (container.scrollLeft > container.scrollWidth - container.clientWidth) container.scrollLeft = Math.max(0, container.scrollWidth - container.clientWidth);\n\tif (container.scrollTop > container.scrollHeight - container.clientHeight) container.scrollTop = Math.max(0, container.scrollHeight - container.clientHeight);\n}\n/**\n* Make elements draggable.\n*\n* @see https://vueuse.org/useDraggable\n* @param target\n* @param options\n*/\nfunction useDraggable(target, options = {}) {\n\tvar _toValue, _toValue2, _toValue3, _scrollConfig$directi;\n\tconst { pointerTypes, preventDefault, stopPropagation, exact, onMove, onEnd, onStart, initialValue, axis = \"both\", draggingElement = defaultWindow, containerElement, handle: draggingHandle = target, buttons = [0], restrictInView, autoScroll = false } = options;\n\tconst position = ref((_toValue = toValue(initialValue)) !== null && _toValue !== void 0 ? _toValue : {\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst pressedDelta = ref();\n\tconst filterEvent = (e) => {\n\t\tif (pointerTypes) return pointerTypes.includes(e.pointerType);\n\t\treturn true;\n\t};\n\tconst handleEvent = (e) => {\n\t\tif (toValue(preventDefault)) e.preventDefault();\n\t\tif (toValue(stopPropagation)) e.stopPropagation();\n\t};\n\tconst scrollConfig = toValue(autoScroll);\n\tconst scrollSettings = typeof scrollConfig === \"object\" ? {\n\t\tspeed: (_toValue2 = toValue(scrollConfig.speed)) !== null && _toValue2 !== void 0 ? _toValue2 : defaultScrollConfig.speed,\n\t\tmargin: (_toValue3 = toValue(scrollConfig.margin)) !== null && _toValue3 !== void 0 ? _toValue3 : defaultScrollConfig.margin,\n\t\tdirection: (_scrollConfig$directi = scrollConfig.direction) !== null && _scrollConfig$directi !== void 0 ? _scrollConfig$directi : defaultScrollConfig.direction\n\t} : defaultScrollConfig;\n\tconst getScrollAxisValues = (value) => typeof value === \"number\" ? [value, value] : [value.x, value.y];\n\tconst handleAutoScroll = (container, targetRect, position) => {\n\t\tconst { clientWidth, clientHeight, scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;\n\t\tconst [marginX, marginY] = getScrollAxisValues(scrollSettings.margin);\n\t\tconst [speedX, speedY] = getScrollAxisValues(scrollSettings.speed);\n\t\tlet deltaX = 0;\n\t\tlet deltaY = 0;\n\t\tif (scrollSettings.direction === \"x\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.x < marginX && scrollLeft > 0) deltaX = -speedX;\n\t\t\telse if (position.x + targetRect.width > clientWidth - marginX && scrollLeft < scrollWidth - clientWidth) deltaX = speedX;\n\t\t}\n\t\tif (scrollSettings.direction === \"y\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.y < marginY && scrollTop > 0) deltaY = -speedY;\n\t\t\telse if (position.y + targetRect.height > clientHeight - marginY && scrollTop < scrollHeight - clientHeight) deltaY = speedY;\n\t\t}\n\t\tif (deltaX || deltaY) container.scrollBy({\n\t\t\tleft: deltaX,\n\t\t\ttop: deltaY,\n\t\t\tbehavior: \"auto\"\n\t\t});\n\t};\n\tlet autoScrollInterval = null;\n\tconst startAutoScroll = () => {\n\t\tconst container = toValue(containerElement);\n\t\tif (container && !autoScrollInterval) autoScrollInterval = setInterval(() => {\n\t\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\t\tconst { x, y } = position.value;\n\t\t\tconst relativePosition = {\n\t\t\t\tx: x - container.scrollLeft,\n\t\t\t\ty: y - container.scrollTop\n\t\t\t};\n\t\t\tif (relativePosition.x >= 0 && relativePosition.y >= 0) {\n\t\t\t\thandleAutoScroll(container, targetRect, relativePosition);\n\t\t\t\trelativePosition.x += container.scrollLeft;\n\t\t\t\trelativePosition.y += container.scrollTop;\n\t\t\t\tposition.value = relativePosition;\n\t\t\t}\n\t\t}, 1e3 / 60);\n\t};\n\tconst stopAutoScroll = () => {\n\t\tif (autoScrollInterval) {\n\t\t\tclearInterval(autoScrollInterval);\n\t\t\tautoScrollInterval = null;\n\t\t}\n\t};\n\tconst isPointerNearEdge = (pointer, container, margin, targetRect) => {\n\t\tconst [marginX, marginY] = typeof margin === \"number\" ? [margin, margin] : [margin.x, margin.y];\n\t\tconst { clientWidth, clientHeight } = container;\n\t\treturn pointer.x < marginX || pointer.x + targetRect.width > clientWidth - marginX || pointer.y < marginY || pointer.y + targetRect.height > clientHeight - marginY;\n\t};\n\tconst checkAutoScroll = () => {\n\t\tif (toValue(options.disabled) || !pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (!container) return;\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst { x, y } = position.value;\n\t\tif (isPointerNearEdge({\n\t\t\tx: x - container.scrollLeft,\n\t\t\ty: y - container.scrollTop\n\t\t}, container, scrollSettings.margin, targetRect)) startAutoScroll();\n\t\telse stopAutoScroll();\n\t};\n\tif (toValue(autoScroll)) watch(position, checkAutoScroll);\n\tconst start = (e) => {\n\t\tvar _container$getBoundin;\n\t\tif (!toValue(buttons).includes(e.button)) return;\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (toValue(exact) && e.target !== toValue(target)) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst containerRect = container === null || container === void 0 || (_container$getBoundin = container.getBoundingClientRect) === null || _container$getBoundin === void 0 ? void 0 : _container$getBoundin.call(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst pos = {\n\t\t\tx: e.clientX - (container ? targetRect.left - containerRect.left + (autoScroll ? 0 : container.scrollLeft) : targetRect.left),\n\t\t\ty: e.clientY - (container ? targetRect.top - containerRect.top + (autoScroll ? 0 : container.scrollTop) : targetRect.top)\n\t\t};\n\t\tif ((onStart === null || onStart === void 0 ? void 0 : onStart(pos, e)) === false) return;\n\t\tpressedDelta.value = pos;\n\t\thandleEvent(e);\n\t};\n\tconst move = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (container instanceof HTMLElement) clampContainerScroll(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tlet { x, y } = position.value;\n\t\tif (axis === \"x\" || axis === \"both\") {\n\t\t\tx = e.clientX - pressedDelta.value.x;\n\t\t\tif (container) x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n\t\t}\n\t\tif (axis === \"y\" || axis === \"both\") {\n\t\t\ty = e.clientY - pressedDelta.value.y;\n\t\t\tif (container) y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n\t\t}\n\t\tif (toValue(autoScroll) && container) {\n\t\t\tif (autoScrollInterval === null) handleAutoScroll(container, targetRect, {\n\t\t\t\tx,\n\t\t\t\ty\n\t\t\t});\n\t\t\tx += container.scrollLeft;\n\t\t\ty += container.scrollTop;\n\t\t}\n\t\tif (container && (restrictInView || autoScroll)) {\n\t\t\tif (axis !== \"y\") {\n\t\t\t\tconst relativeX = x - container.scrollLeft;\n\t\t\t\tif (relativeX < 0) x = container.scrollLeft;\n\t\t\t\telse if (relativeX > container.clientWidth - targetRect.width) x = container.clientWidth - targetRect.width + container.scrollLeft;\n\t\t\t}\n\t\t\tif (axis !== \"x\") {\n\t\t\t\tconst relativeY = y - container.scrollTop;\n\t\t\t\tif (relativeY < 0) y = container.scrollTop;\n\t\t\t\telse if (relativeY > container.clientHeight - targetRect.height) y = container.clientHeight - targetRect.height + container.scrollTop;\n\t\t\t}\n\t\t}\n\t\tposition.value = {\n\t\t\tx,\n\t\t\ty\n\t\t};\n\t\tonMove === null || onMove === void 0 || onMove(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tconst end = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tpressedDelta.value = void 0;\n\t\tif (autoScroll) stopAutoScroll();\n\t\tonEnd === null || onEnd === void 0 || onEnd(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tif (isClient) {\n\t\tconst config = () => {\n\t\t\tvar _options$capture;\n\t\t\treturn {\n\t\t\t\tcapture: (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : true,\n\t\t\t\tpassive: !toValue(preventDefault)\n\t\t\t};\n\t\t};\n\t\tuseEventListener(draggingHandle, \"pointerdown\", start, config);\n\t\tuseEventListener(draggingElement, \"pointermove\", move, config);\n\t\tuseEventListener(draggingElement, \"pointerup\", end, config);\n\t}\n\treturn {\n\t\t...toRefs(position),\n\t\tposition,\n\t\tisDragging: computed(() => !!pressedDelta.value),\n\t\tstyle: computed(() => `\n left: ${position.value.x}px;\n top: ${position.value.y}px;\n ${autoScroll ? \"text-wrap: nowrap;\" : \"\"}\n `)\n\t};\n}\n//#endregion\n//#region useDropZone/index.ts\nfunction useDropZone(target, options = {}) {\n\tconst isOverDropZone = shallowRef(false);\n\tconst files = shallowRef(null);\n\tlet counter = 0;\n\tlet isValid = true;\n\tif (isClient) {\n\t\tvar _options$multiple, _options$preventDefau;\n\t\tconst _options = typeof options === \"function\" ? { onDrop: options } : options;\n\t\tconst multiple = (_options$multiple = _options.multiple) !== null && _options$multiple !== void 0 ? _options$multiple : true;\n\t\tconst preventDefaultForUnhandled = (_options$preventDefau = _options.preventDefaultForUnhandled) !== null && _options$preventDefau !== void 0 ? _options$preventDefau : false;\n\t\tconst getFiles = (event) => {\n\t\t\tvar _event$dataTransfer$f, _event$dataTransfer;\n\t\t\tconst list = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);\n\t\t\treturn list.length === 0 ? null : multiple ? list : [list[0]];\n\t\t};\n\t\tconst checkDataTypes = (types) => {\n\t\t\tconst dataTypes = unref(_options.dataTypes);\n\t\t\tif (typeof dataTypes === \"function\") return dataTypes(types);\n\t\t\tif (!(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length)) return true;\n\t\t\tif (types.length === 0) return false;\n\t\t\treturn types.every((type) => dataTypes.some((allowedType) => type.includes(allowedType)));\n\t\t};\n\t\tconst checkValidity = (items) => {\n\t\t\tif (_options.checkValidity) return _options.checkValidity(items);\n\t\t\tconst dataTypesValid = checkDataTypes(Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type));\n\t\t\tconst multipleFilesValid = multiple || items.length <= 1;\n\t\t\treturn dataTypesValid && multipleFilesValid;\n\t\t};\n\t\tconst isSafari = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !(\"chrome\" in window);\n\t\tconst handleDragEvent = (event, eventType) => {\n\t\t\tvar _event$dataTransfer2, _ref;\n\t\t\tconst dataTransferItemList = (_event$dataTransfer2 = event.dataTransfer) === null || _event$dataTransfer2 === void 0 ? void 0 : _event$dataTransfer2.items;\n\t\t\tisValid = (_ref = dataTransferItemList && checkValidity(dataTransferItemList)) !== null && _ref !== void 0 ? _ref : false;\n\t\t\tif (preventDefaultForUnhandled) event.preventDefault();\n\t\t\tif (!isSafari() && !isValid) {\n\t\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"none\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n\t\t\tconst currentFiles = getFiles(event);\n\t\t\tswitch (eventType) {\n\t\t\t\tcase \"enter\":\n\t\t\t\t\tvar _options$onEnter;\n\t\t\t\t\tcounter += 1;\n\t\t\t\t\tisOverDropZone.value = true;\n\t\t\t\t\t(_options$onEnter = _options.onEnter) === null || _options$onEnter === void 0 || _options$onEnter.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"over\":\n\t\t\t\t\tvar _options$onOver;\n\t\t\t\t\t(_options$onOver = _options.onOver) === null || _options$onOver === void 0 || _options$onOver.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"leave\":\n\t\t\t\t\tvar _options$onLeave;\n\t\t\t\t\tcounter -= 1;\n\t\t\t\t\tif (counter === 0) isOverDropZone.value = false;\n\t\t\t\t\t(_options$onLeave = _options.onLeave) === null || _options$onLeave === void 0 || _options$onLeave.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"drop\":\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tisOverDropZone.value = false;\n\t\t\t\t\tif (isValid) {\n\t\t\t\t\t\tvar _options$onDrop;\n\t\t\t\t\t\tfiles.value = currentFiles;\n\t\t\t\t\t\t(_options$onDrop = _options.onDrop) === null || _options$onDrop === void 0 || _options$onDrop.call(_options, currentFiles, event);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tuseEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n\t\tuseEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n\t\tuseEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n\t\tuseEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n\t}\n\treturn {\n\t\tfiles,\n\t\tisOverDropZone\n\t};\n}\n//#endregion\n//#region useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"ResizeObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementBounding/index.ts\n/**\n* Reactive bounding box of an HTML element.\n*\n* @see https://vueuse.org/useElementBounding\n* @param target\n*/\nfunction useElementBounding(target, options = {}) {\n\tconst { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = \"sync\" } = options;\n\tconst height = shallowRef(0);\n\tconst bottom = shallowRef(0);\n\tconst left = shallowRef(0);\n\tconst right = shallowRef(0);\n\tconst top = shallowRef(0);\n\tconst width = shallowRef(0);\n\tconst x = shallowRef(0);\n\tconst y = shallowRef(0);\n\tfunction recalculate() {\n\t\tconst el = unrefElement(target);\n\t\tif (!el) {\n\t\t\tif (reset) {\n\t\t\t\theight.value = 0;\n\t\t\t\tbottom.value = 0;\n\t\t\t\tleft.value = 0;\n\t\t\t\tright.value = 0;\n\t\t\t\ttop.value = 0;\n\t\t\t\twidth.value = 0;\n\t\t\t\tx.value = 0;\n\t\t\t\ty.value = 0;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst rect = el.getBoundingClientRect();\n\t\theight.value = rect.height;\n\t\tbottom.value = rect.bottom;\n\t\tleft.value = rect.left;\n\t\tright.value = rect.right;\n\t\ttop.value = rect.top;\n\t\twidth.value = rect.width;\n\t\tx.value = rect.x;\n\t\ty.value = rect.y;\n\t}\n\tfunction update() {\n\t\tif (updateTiming === \"sync\") recalculate();\n\t\telse if (updateTiming === \"next-frame\") requestAnimationFrame(() => recalculate());\n\t}\n\tuseResizeObserver(target, update);\n\twatch(() => unrefElement(target), (ele) => !ele && update());\n\tuseMutationObserver(target, update, { attributeFilter: [\"style\", \"class\"] });\n\tif (windowScroll) useEventListener(\"scroll\", update, {\n\t\tcapture: true,\n\t\tpassive: true\n\t});\n\tif (windowResize) useEventListener(\"resize\", update, { passive: true });\n\ttryOnMounted(() => {\n\t\tif (immediate) update();\n\t});\n\treturn {\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty,\n\t\tupdate\n\t};\n}\n//#endregion\n//#region useElementByPoint/index.ts\nfunction getDefaultScheduler$7(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (cb) => useRafFn(cb, { immediate }) : (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive element by point.\n*\n* @see https://vueuse.org/useElementByPoint\n* @param options - UseElementByPointOptions\n*/\nfunction useElementByPoint(options) {\n\tconst { x, y, document = defaultDocument, multiple, scheduler = getDefaultScheduler$7(options) } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (toValue(multiple)) return document && \"elementsFromPoint\" in document;\n\t\treturn document && \"elementFromPoint\" in document;\n\t});\n\tconst element = shallowRef(null);\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\t...scheduler(() => {\n\t\t\tvar _document$elementsFro, _document$elementFrom;\n\t\t\telement.value = toValue(multiple) ? (_document$elementsFro = document === null || document === void 0 ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) !== null && _document$elementsFro !== void 0 ? _document$elementsFro : [] : (_document$elementFrom = document === null || document === void 0 ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) !== null && _document$elementFrom !== void 0 ? _document$elementFrom : null;\n\t\t})\n\t};\n}\n//#endregion\n//#region useElementHover/index.ts\nfunction useElementHover(el, options = {}) {\n\tconst { delayEnter = 0, delayLeave = 0, triggerOnRemoval = false, window = defaultWindow } = options;\n\tconst isHovered = shallowRef(false);\n\tlet timer;\n\tconst toggle = (entering) => {\n\t\tconst delay = entering ? delayEnter : delayLeave;\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t\tif (delay) timer = setTimeout(() => isHovered.value = entering, delay);\n\t\telse isHovered.value = entering;\n\t};\n\tif (!window) return isHovered;\n\tuseEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n\tuseEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n\tif (triggerOnRemoval) onElementRemoval(computed(() => unrefElement(el)), () => toggle(false));\n\treturn isHovered;\n}\n//#endregion\n//#region useElementSize/index.ts\n/**\n* Reactive size of an HTML element.\n*\n* @see https://vueuse.org/useElementSize\n*/\nfunction useElementSize(target, initialSize = {\n\twidth: 0,\n\theight: 0\n}, options = {}) {\n\tconst { window = defaultWindow, box = \"content-box\" } = options;\n\tconst isSVG = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes(\"svg\");\n\t});\n\tconst width = shallowRef(initialSize.width);\n\tconst height = shallowRef(initialSize.height);\n\tconst { stop: stop1 } = useResizeObserver(target, ([entry]) => {\n\t\tconst boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n\t\tif (window && isSVG.value) {\n\t\t\tconst $elem = unrefElement(target);\n\t\t\tif ($elem) {\n\t\t\t\tconst rect = $elem.getBoundingClientRect();\n\t\t\t\twidth.value = rect.width;\n\t\t\t\theight.value = rect.height;\n\t\t\t}\n\t\t} else if (boxSize) {\n\t\t\tconst formatBoxSize = toArray(boxSize);\n\t\t\twidth.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n\t\t\theight.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n\t\t} else {\n\t\t\twidth.value = entry.contentRect.width;\n\t\t\theight.value = entry.contentRect.height;\n\t\t}\n\t}, options);\n\ttryOnMounted(() => {\n\t\tconst ele = unrefElement(target);\n\t\tif (ele) {\n\t\t\twidth.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n\t\t\theight.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n\t\t}\n\t});\n\tconst stop2 = watch(() => unrefElement(target), (ele) => {\n\t\twidth.value = ele ? initialSize.width : 0;\n\t\theight.value = ele ? initialSize.height : 0;\n\t});\n\tfunction stop() {\n\t\tstop1();\n\t\tstop2();\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useIntersectionObserver/index.ts\n/**\n* Detects changes to a target element's visibility.\n*\n* @see https://vueuse.org/useIntersectionObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useIntersectionObserver(target, callback, options = {}) {\n\tconst { root, rootMargin, threshold = 0, window = defaultWindow, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"IntersectionObserver\" in window);\n\tconst targets = computed(() => {\n\t\treturn toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t});\n\tlet cleanup = noop;\n\tconst isActive = shallowRef(immediate);\n\tconst stopWatch = isSupported.value ? watch(() => [\n\t\ttargets.value,\n\t\tunrefElement(root),\n\t\ttoValue(rootMargin),\n\t\tisActive.value\n\t], ([targets, root, rootMargin]) => {\n\t\tcleanup();\n\t\tif (!isActive.value) return;\n\t\tif (!targets.length) return;\n\t\tconst observer = new IntersectionObserver(callback, {\n\t\t\troot: unrefElement(root),\n\t\t\trootMargin,\n\t\t\tthreshold\n\t\t});\n\t\ttargets.forEach((el) => el && observer.observe(el));\n\t\tcleanup = () => {\n\t\t\tobserver.disconnect();\n\t\t\tcleanup = noop;\n\t\t};\n\t}, {\n\t\timmediate,\n\t\tflush: \"post\"\n\t}) : noop;\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t\tisActive.value = false;\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tisActive,\n\t\tpause() {\n\t\t\tcleanup();\n\t\t\tisActive.value = false;\n\t\t},\n\t\tresume() {\n\t\t\tisActive.value = true;\n\t\t},\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementVisibility/index.ts\nfunction useElementVisibility(element, options = {}) {\n\tconst { window = defaultWindow, scrollTarget, threshold = 0, rootMargin, once = false, initialValue = false } = options;\n\tconst isVisible = shallowRef(initialValue);\n\tconst observerController = useIntersectionObserver(element, (intersectionObserverEntries) => {\n\t\tlet isIntersecting = isVisible.value;\n\t\tlet latestTime = 0;\n\t\tfor (const entry of intersectionObserverEntries) if (entry.time >= latestTime) {\n\t\t\tlatestTime = entry.time;\n\t\t\tisIntersecting = entry.isIntersecting;\n\t\t}\n\t\tisVisible.value = isIntersecting;\n\t\tif (once) watchOnce(isVisible, () => {\n\t\t\tobserverController.stop();\n\t\t});\n\t}, {\n\t\troot: scrollTarget,\n\t\twindow,\n\t\tthreshold,\n\t\trootMargin\n\t});\n\treturn options.controls ? {\n\t\t...observerController,\n\t\tisVisible\n\t} : isVisible;\n}\n//#endregion\n//#region useEventBus/internal.ts\n/* #__PURE__ */\nconst events = /* @__PURE__ */ new Map();\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tconst scope = getCurrentScope();\n\tfunction on(listener) {\n\t\tvar _scope$cleanups;\n\t\tconst listeners = events.get(key) || /* @__PURE__ */ new Set();\n\t\tlisteners.add(listener);\n\t\tevents.set(key, listeners);\n\t\tconst _off = () => off(listener);\n\t\tscope === null || scope === void 0 || (_scope$cleanups = scope.cleanups) === null || _scope$cleanups === void 0 || _scope$cleanups.push(_off);\n\t\treturn _off;\n\t}\n\tfunction once(listener) {\n\t\tfunction _listener(...args) {\n\t\t\toff(_listener);\n\t\t\tlistener(...args);\n\t\t}\n\t\treturn on(_listener);\n\t}\n\tfunction off(listener) {\n\t\tconst listeners = events.get(key);\n\t\tif (!listeners) return;\n\t\tlisteners.delete(listener);\n\t\tif (!listeners.size) reset();\n\t}\n\tfunction reset() {\n\t\tevents.delete(key);\n\t}\n\tfunction emit(event, payload) {\n\t\tvar _events$get;\n\t\t(_events$get = events.get(key)) === null || _events$get === void 0 || _events$get.forEach((v) => v(event, payload));\n\t}\n\treturn {\n\t\ton,\n\t\tonce,\n\t\toff,\n\t\temit,\n\t\treset\n\t};\n}\n//#endregion\n//#region useEventSource/index.ts\nfunction resolveNestedOptions$1(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive wrapper for EventSource.\n*\n* @see https://vueuse.org/useEventSource\n* @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource\n* @param url\n* @param events\n* @param options\n*/\nfunction useEventSource(url, events = [], options = {}) {\n\tconst event = shallowRef(null);\n\tconst data = shallowRef(null);\n\tconst status = shallowRef(\"CONNECTING\");\n\tconst eventSource = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst urlRef = toRef(url);\n\tconst lastEventId = shallowRef(null);\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tconst { withCredentials = false, immediate = true, autoConnect = true, autoReconnect, serializer = { read: (v) => v } } = options;\n\tconst close = () => {\n\t\tif (isClient && eventSource.value) {\n\t\t\teventSource.value.close();\n\t\t\teventSource.value = null;\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\texplicitlyClosed = true;\n\t\t}\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst es = new EventSource(urlRef.value, { withCredentials });\n\t\tstatus.value = \"CONNECTING\";\n\t\teventSource.value = es;\n\t\tes.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\terror.value = null;\n\t\t};\n\t\tes.onerror = (e) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\terror.value = e;\n\t\t\tif (es.readyState === 2 && !explicitlyClosed && autoReconnect) {\n\t\t\t\tes.close();\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions$1(autoReconnect);\n\t\t\t\tretried += 1;\n\t\t\t\tif (typeof retries === \"number\" && (retries < 0 || retried < retries)) setTimeout(_init, delay);\n\t\t\t\telse if (typeof retries === \"function\" && retries()) setTimeout(_init, delay);\n\t\t\t\telse onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tes.onmessage = (e) => {\n\t\t\tvar _serializer$read;\n\t\t\tevent.value = null;\n\t\t\tdata.value = (_serializer$read = serializer.read(e.data)) !== null && _serializer$read !== void 0 ? _serializer$read : null;\n\t\t\tlastEventId.value = e.lastEventId;\n\t\t};\n\t\tfor (const event_name of events) useEventListener(es, event_name, (e) => {\n\t\t\tvar _serializer$read2, _e$lastEventId;\n\t\t\tevent.value = event_name;\n\t\t\tdata.value = (_serializer$read2 = serializer.read(e.data)) !== null && _serializer$read2 !== void 0 ? _serializer$read2 : null;\n\t\t\tlastEventId.value = (_e$lastEventId = e.lastEventId) !== null && _e$lastEventId !== void 0 ? _e$lastEventId : null;\n\t\t}, { passive: true });\n\t};\n\tconst open = () => {\n\t\tif (!isClient) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\ttryOnScopeDispose(close);\n\treturn {\n\t\teventSource,\n\t\tevent,\n\t\tdata,\n\t\tstatus,\n\t\terror,\n\t\topen,\n\t\tclose,\n\t\tlastEventId\n\t};\n}\n//#endregion\n//#region useEyeDropper/index.ts\n/**\n* Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)\n*\n* @see https://vueuse.org/useEyeDropper\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useEyeDropper(options = {}) {\n\tconst { initialValue = \"\" } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n\tconst sRGBHex = shallowRef(initialValue);\n\tasync function open(openOptions) {\n\t\tif (!isSupported.value) return;\n\t\tconst result = await new window.EyeDropper().open(openOptions);\n\t\tsRGBHex.value = result.sRGBHex;\n\t\treturn result;\n\t}\n\treturn {\n\t\tisSupported,\n\t\tsRGBHex,\n\t\topen\n\t};\n}\n//#endregion\n//#region useFavicon/index.ts\nfunction useFavicon(newIcon = null, options = {}) {\n\tconst { baseUrl = \"\", rel = \"icon\", document = defaultDocument } = options;\n\tconst favicon = toRef(newIcon);\n\tconst applyIcon = (icon) => {\n\t\tconst elements = document === null || document === void 0 ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n\t\tif (!elements || elements.length === 0) {\n\t\t\tconst link = document === null || document === void 0 ? void 0 : document.createElement(\"link\");\n\t\t\tif (link) {\n\t\t\t\tlink.rel = rel;\n\t\t\t\tlink.href = `${baseUrl}${icon}`;\n\t\t\t\tlink.type = `image/${icon.split(\".\").pop()}`;\n\t\t\t\tdocument === null || document === void 0 || document.head.append(link);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\telements === null || elements === void 0 || elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n\t};\n\twatch(favicon, (i, o) => {\n\t\tif (typeof i === \"string\" && i !== o) applyIcon(i);\n\t}, { immediate: true });\n\treturn favicon;\n}\n//#endregion\n//#region useFetch/index.ts\nconst payloadMapping = {\n\tjson: \"application/json\",\n\ttext: \"text/plain\"\n};\n/**\n* !!!IMPORTANT!!!\n*\n* If you update the UseFetchOptions interface, be sure to update this object\n* to include the new options\n*/\nfunction isFetchOptions(obj) {\n\treturn obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n\treturn reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n\tif (typeof Headers !== \"undefined\" && headers instanceof Headers) return Object.fromEntries(headers.entries());\n\treturn headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n\tif (combination === \"overwrite\") return async (ctx) => {\n\t\tlet callback;\n\t\tfor (let i = callbacks.length - 1; i >= 0; i--) if (callbacks[i] != null) {\n\t\t\tcallback = callbacks[i];\n\t\t\tbreak;\n\t\t}\n\t\tif (callback) return {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n\telse return async (ctx) => {\n\t\tfor (const callback of callbacks) if (callback) ctx = {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n}\nfunction createFetch(config = {}) {\n\tconst _combination = config.combination || \"chain\";\n\tconst _options = config.options || {};\n\tconst _fetchOptions = config.fetchOptions || {};\n\tfunction useFactoryFetch(url, ...args) {\n\t\tconst computedUrl = computed(() => {\n\t\t\tconst baseUrl = toValue(config.baseUrl);\n\t\t\tconst targetUrl = toValue(url);\n\t\t\treturn baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n\t\t});\n\t\tlet options = _options;\n\t\tlet fetchOptions = _fetchOptions;\n\t\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t\t...options,\n\t\t\t...args[0],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n\t\t};\n\t\telse fetchOptions = {\n\t\t\t...fetchOptions,\n\t\t\t...args[0],\n\t\t\theaders: {\n\t\t\t\t...headersToObject(fetchOptions.headers) || {},\n\t\t\t\t...headersToObject(args[0].headers) || {}\n\t\t\t}\n\t\t};\n\t\tif (args.length > 1 && isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n\t\t};\n\t\treturn useFetch(computedUrl, fetchOptions, options);\n\t}\n\treturn useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n\tvar _defaultWindow$fetch, _globalThis;\n\tconst supportsAbort = typeof AbortController === \"function\";\n\tlet fetchOptions = {};\n\tlet options = {\n\t\timmediate: true,\n\t\trefetch: false,\n\t\ttimeout: 0,\n\t\tupdateDataOnError: false\n\t};\n\tconst config = {\n\t\tmethod: \"GET\",\n\t\ttype: \"text\",\n\t\tpayload: void 0\n\t};\n\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t...options,\n\t\t...args[0]\n\t};\n\telse fetchOptions = args[0];\n\tif (args.length > 1) {\n\t\tif (isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1]\n\t\t};\n\t}\n\tconst { fetch = (_defaultWindow$fetch = defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.fetch) !== null && _defaultWindow$fetch !== void 0 ? _defaultWindow$fetch : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.fetch, initialData, timeout } = options;\n\tconst responseEvent = createEventHook();\n\tconst errorEvent = createEventHook();\n\tconst finallyEvent = createEventHook();\n\tconst isFinished = shallowRef(false);\n\tconst isFetching = shallowRef(false);\n\tconst aborted = shallowRef(false);\n\tconst statusCode = shallowRef(null);\n\tconst response = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst data = shallowRef(initialData || null);\n\tconst canAbort = computed(() => supportsAbort && isFetching.value);\n\tlet controller;\n\tlet timer;\n\tconst abort = (reason) => {\n\t\tif (supportsAbort) {\n\t\t\tcontroller === null || controller === void 0 || controller.abort(reason);\n\t\t\tcontroller = new AbortController();\n\t\t\tcontroller.signal.onabort = () => aborted.value = true;\n\t\t\tfetchOptions = {\n\t\t\t\t...fetchOptions,\n\t\t\t\tsignal: controller.signal\n\t\t\t};\n\t\t}\n\t};\n\tconst loading = (isLoading) => {\n\t\tisFetching.value = isLoading;\n\t\tisFinished.value = !isLoading;\n\t};\n\tif (timeout) timer = useTimeoutFn(abort, timeout, { immediate: false });\n\tlet executeCounter = 0;\n\tconst execute = async (throwOnFailed = false) => {\n\t\tvar _context$options;\n\t\tabort();\n\t\tloading(true);\n\t\terror.value = null;\n\t\tstatusCode.value = null;\n\t\taborted.value = false;\n\t\texecuteCounter += 1;\n\t\tconst currentExecuteCounter = executeCounter;\n\t\tconst defaultFetchOptions = {\n\t\t\tmethod: config.method,\n\t\t\theaders: {}\n\t\t};\n\t\tconst payload = toValue(config.payload);\n\t\tif (payload) {\n\t\t\tvar _payloadMapping$confi;\n\t\t\tconst headers = headersToObject(defaultFetchOptions.headers);\n\t\t\tconst proto = Object.getPrototypeOf(payload);\n\t\t\tif (!config.payloadType && payload && (proto === Object.prototype || Array.isArray(proto)) && !(payload instanceof FormData)) config.payloadType = \"json\";\n\t\t\tif (config.payloadType) headers[\"Content-Type\"] = (_payloadMapping$confi = payloadMapping[config.payloadType]) !== null && _payloadMapping$confi !== void 0 ? _payloadMapping$confi : config.payloadType;\n\t\t\tdefaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n\t\t}\n\t\tlet isCanceled = false;\n\t\tconst context = {\n\t\t\turl: toValue(url),\n\t\t\toptions: {\n\t\t\t\t...defaultFetchOptions,\n\t\t\t\t...fetchOptions\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tisCanceled = true;\n\t\t\t}\n\t\t};\n\t\tif (options.beforeFetch) Object.assign(context, await options.beforeFetch(context));\n\t\tif (isCanceled || !fetch) {\n\t\t\tloading(false);\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\t\tlet responseData = null;\n\t\tif (timer) timer.start();\n\t\treturn fetch(context.url, {\n\t\t\t...defaultFetchOptions,\n\t\t\t...context.options,\n\t\t\theaders: {\n\t\t\t\t...headersToObject(defaultFetchOptions.headers),\n\t\t\t\t...headersToObject((_context$options = context.options) === null || _context$options === void 0 ? void 0 : _context$options.headers)\n\t\t\t}\n\t\t}).then(async (fetchResponse) => {\n\t\t\tresponse.value = fetchResponse;\n\t\t\tstatusCode.value = fetchResponse.status;\n\t\t\tresponseData = await fetchResponse.clone()[config.type]();\n\t\t\tif (!fetchResponse.ok) {\n\t\t\t\tdata.value = initialData || null;\n\t\t\t\tthrow new Error(fetchResponse.statusText);\n\t\t\t}\n\t\t\tif (options.afterFetch) ({data: responseData} = await options.afterFetch({\n\t\t\t\tdata: responseData,\n\t\t\t\tresponse: fetchResponse,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tdata.value = responseData;\n\t\t\tresponseEvent.trigger(fetchResponse);\n\t\t\treturn fetchResponse;\n\t\t}).catch(async (fetchError) => {\n\t\t\tlet errorData = fetchError.message || fetchError.name;\n\t\t\tif (options.onFetchError) ({error: errorData, data: responseData} = await options.onFetchError({\n\t\t\t\tdata: responseData,\n\t\t\t\terror: fetchError,\n\t\t\t\tresponse: response.value,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\terror.value = errorData;\n\t\t\tif (options.updateDataOnError) data.value = responseData;\n\t\t\terrorEvent.trigger(fetchError);\n\t\t\tif (throwOnFailed) throw fetchError;\n\t\t\treturn null;\n\t\t}).finally(() => {\n\t\t\tif (currentExecuteCounter === executeCounter) loading(false);\n\t\t\tif (timer) timer.stop();\n\t\t\tfinallyEvent.trigger(null);\n\t\t});\n\t};\n\tconst refetch = toRef(options.refetch);\n\twatch([refetch, toRef(url)], ([refetch]) => refetch && execute(), { deep: true });\n\tconst shell = {\n\t\tisFinished: shallowReadonly(isFinished),\n\t\tisFetching: shallowReadonly(isFetching),\n\t\tstatusCode,\n\t\tresponse,\n\t\terror,\n\t\tdata,\n\t\tcanAbort,\n\t\taborted,\n\t\tabort,\n\t\texecute,\n\t\tonFetchResponse: responseEvent.on,\n\t\tonFetchError: errorEvent.on,\n\t\tonFetchFinally: finallyEvent.on,\n\t\tget: setMethod(\"GET\"),\n\t\tput: setMethod(\"PUT\"),\n\t\tpost: setMethod(\"POST\"),\n\t\tdelete: setMethod(\"DELETE\"),\n\t\tpatch: setMethod(\"PATCH\"),\n\t\thead: setMethod(\"HEAD\"),\n\t\toptions: setMethod(\"OPTIONS\"),\n\t\tjson: setType(\"json\"),\n\t\ttext: setType(\"text\"),\n\t\tblob: setType(\"blob\"),\n\t\tarrayBuffer: setType(\"arrayBuffer\"),\n\t\tformData: setType(\"formData\")\n\t};\n\tfunction setMethod(method) {\n\t\treturn (payload, payloadType) => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.method = method;\n\t\t\t\tconfig.payload = payload;\n\t\t\t\tconfig.payloadType = payloadType;\n\t\t\t\tif (isRef(config.payload)) watch([refetch, toRef(config.payload)], ([refetch]) => refetch && execute(), { deep: true });\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tfunction waitUntilFinished() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isFinished).toBe(true).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\tfunction setType(type) {\n\t\treturn () => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.type = type;\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (options.immediate) Promise.resolve().then(() => execute());\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\nfunction joinPaths(start, end) {\n\tif (!start.endsWith(\"/\") && !end.startsWith(\"/\")) return `${start}/${end}`;\n\tif (start.endsWith(\"/\") && end.startsWith(\"/\")) return `${start.slice(0, -1)}${end}`;\n\treturn `${start}${end}`;\n}\n//#endregion\n//#region useFileDialog/index.ts\nconst DEFAULT_OPTIONS = {\n\tmultiple: true,\n\taccept: \"*\",\n\treset: false,\n\tdirectory: false\n};\nfunction prepareInitialFiles(files) {\n\tif (!files) return null;\n\tif (files instanceof FileList) return files;\n\tconst dt = new DataTransfer();\n\tfor (const file of files) dt.items.add(file);\n\treturn dt.files;\n}\n/**\n* Open file dialog with ease.\n*\n* @see https://vueuse.org/useFileDialog\n* @param options\n*/\nfunction useFileDialog(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst files = ref(prepareInitialFiles(options.initialFiles));\n\tconst { on: onChange, trigger: changeTrigger } = createEventHook();\n\tconst { on: onCancel, trigger: cancelTrigger } = createEventHook();\n\tconst inputRef = computed(() => {\n\t\tvar _unrefElement;\n\t\tconst input = (_unrefElement = unrefElement(options.input)) !== null && _unrefElement !== void 0 ? _unrefElement : document ? document.createElement(\"input\") : void 0;\n\t\tif (input) {\n\t\t\tinput.type = \"file\";\n\t\t\tinput.onchange = (event) => {\n\t\t\t\tfiles.value = event.target.files;\n\t\t\t\tchangeTrigger(files.value);\n\t\t\t};\n\t\t\tinput.oncancel = () => {\n\t\t\t\tcancelTrigger();\n\t\t\t};\n\t\t}\n\t\treturn input;\n\t});\n\tconst reset = () => {\n\t\tfiles.value = null;\n\t\tif (inputRef.value && inputRef.value.value) {\n\t\t\tinputRef.value.value = \"\";\n\t\t\tchangeTrigger(null);\n\t\t}\n\t};\n\tconst applyOptions = (options) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tel.multiple = toValue(options.multiple);\n\t\tel.accept = toValue(options.accept);\n\t\tel.webkitdirectory = toValue(options.directory);\n\t\tif (hasOwn(options, \"capture\")) el.capture = toValue(options.capture);\n\t};\n\tconst open = (localOptions) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tconst mergedOptions = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t...localOptions\n\t\t};\n\t\tapplyOptions(mergedOptions);\n\t\tif (toValue(mergedOptions.reset)) reset();\n\t\tel.click();\n\t};\n\twatchEffect(() => {\n\t\tapplyOptions(options);\n\t});\n\treturn {\n\t\tfiles: readonly(files),\n\t\topen,\n\t\treset,\n\t\tonCancel,\n\t\tonChange\n\t};\n}\n//#endregion\n//#region useFileSystemAccess/index.ts\nfunction useFileSystemAccess(options = {}) {\n\tconst { window: _window = defaultWindow, dataType = \"Text\" } = options;\n\tconst window = _window;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n\tconst fileHandle = shallowRef();\n\tconst data = shallowRef();\n\tconst file = shallowRef();\n\tconst fileName = computed(() => {\n\t\tvar _file$value$name, _file$value;\n\t\treturn (_file$value$name = (_file$value = file.value) === null || _file$value === void 0 ? void 0 : _file$value.name) !== null && _file$value$name !== void 0 ? _file$value$name : \"\";\n\t});\n\tconst fileMIME = computed(() => {\n\t\tvar _file$value$type, _file$value2;\n\t\treturn (_file$value$type = (_file$value2 = file.value) === null || _file$value2 === void 0 ? void 0 : _file$value2.type) !== null && _file$value$type !== void 0 ? _file$value$type : \"\";\n\t});\n\tconst fileSize = computed(() => {\n\t\tvar _file$value$size, _file$value3;\n\t\treturn (_file$value$size = (_file$value3 = file.value) === null || _file$value3 === void 0 ? void 0 : _file$value3.size) !== null && _file$value$size !== void 0 ? _file$value$size : 0;\n\t});\n\tconst fileLastModified = computed(() => {\n\t\tvar _file$value$lastModif, _file$value4;\n\t\treturn (_file$value$lastModif = (_file$value4 = file.value) === null || _file$value4 === void 0 ? void 0 : _file$value4.lastModified) !== null && _file$value$lastModif !== void 0 ? _file$value$lastModif : 0;\n\t});\n\tasync function open(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tconst [handle] = await window.showOpenFilePicker({\n\t\t\t...toValue(options),\n\t\t\t..._options\n\t\t});\n\t\tfileHandle.value = handle;\n\t\tawait updateData();\n\t}\n\tasync function create(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tdata.value = void 0;\n\t\tawait updateData();\n\t}\n\tasync function save(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tif (!fileHandle.value) return saveAs(_options);\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function saveAs(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function updateFile() {\n\t\tvar _fileHandle$value;\n\t\tfile.value = await ((_fileHandle$value = fileHandle.value) === null || _fileHandle$value === void 0 ? void 0 : _fileHandle$value.getFile());\n\t}\n\tasync function updateData() {\n\t\tvar _file$value5, _file$value6;\n\t\tawait updateFile();\n\t\tconst type = toValue(dataType);\n\t\tif (type === \"Text\") data.value = await ((_file$value5 = file.value) === null || _file$value5 === void 0 ? void 0 : _file$value5.text());\n\t\telse if (type === \"ArrayBuffer\") data.value = await ((_file$value6 = file.value) === null || _file$value6 === void 0 ? void 0 : _file$value6.arrayBuffer());\n\t\telse if (type === \"Blob\") data.value = file.value;\n\t}\n\twatch(() => toValue(dataType), updateData);\n\treturn {\n\t\tisSupported,\n\t\tdata,\n\t\tfile,\n\t\tfileName,\n\t\tfileMIME,\n\t\tfileSize,\n\t\tfileLastModified,\n\t\topen,\n\t\tcreate,\n\t\tsave,\n\t\tsaveAs,\n\t\tupdateData\n\t};\n}\n//#endregion\n//#region useFocus/index.ts\n/**\n* Track or set the focus state of a DOM element.\n*\n* @see https://vueuse.org/useFocus\n* @param target The target element for the focus and blur events.\n* @param options\n*/\nfunction useFocus(target, options = {}) {\n\tconst { initialValue = false, focusVisible = false, preventScroll = false } = options;\n\tconst innerFocused = shallowRef(false);\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, \"focus\", (event) => {\n\t\tvar _matches, _ref;\n\t\tif (!focusVisible || ((_matches = (_ref = event.target).matches) === null || _matches === void 0 ? void 0 : _matches.call(_ref, \":focus-visible\"))) innerFocused.value = true;\n\t}, listenerOptions);\n\tuseEventListener(targetElement, \"blur\", () => innerFocused.value = false, listenerOptions);\n\tconst focused = computed({\n\t\tget: () => innerFocused.value,\n\t\tset(value) {\n\t\t\tvar _targetElement$value, _targetElement$value2;\n\t\t\tif (!value && innerFocused.value) (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || _targetElement$value.blur();\n\t\t\telse if (value && !innerFocused.value) (_targetElement$value2 = targetElement.value) === null || _targetElement$value2 === void 0 || _targetElement$value2.focus({ preventScroll });\n\t\t}\n\t});\n\twatch(targetElement, () => {\n\t\tfocused.value = initialValue;\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\treturn { focused };\n}\n//#endregion\n//#region useFocusWithin/index.ts\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nconst PSEUDO_CLASS_FOCUS_WITHIN = \":focus-within\";\n/**\n* Track if focus is contained within the target element\n*\n* @see https://vueuse.org/useFocusWithin\n* @param target The target element to track\n* @param options Focus within options\n*/\nfunction useFocusWithin(target, options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst _focused = shallowRef(false);\n\tconst focused = computed(() => _focused.value);\n\tconst activeElement = useActiveElement(options);\n\tif (!window || !activeElement.value) return { focused };\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true, listenerOptions);\n\tuseEventListener(targetElement, EVENT_FOCUS_OUT, () => {\n\t\tvar _targetElement$value$, _targetElement$value, _targetElement$value$2;\n\t\treturn _focused.value = (_targetElement$value$ = (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || (_targetElement$value$2 = _targetElement$value.matches) === null || _targetElement$value$2 === void 0 ? void 0 : _targetElement$value$2.call(_targetElement$value, PSEUDO_CLASS_FOCUS_WITHIN)) !== null && _targetElement$value$ !== void 0 ? _targetElement$value$ : false;\n\t}, listenerOptions);\n\treturn { focused };\n}\n//#endregion\n//#region useFps/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useFps(options) {\n\tvar _options$every;\n\tconst fps = shallowRef(0);\n\tif (typeof performance === \"undefined\") return fps;\n\tconst every = (_options$every = options === null || options === void 0 ? void 0 : options.every) !== null && _options$every !== void 0 ? _options$every : 10;\n\tlet last = performance.now();\n\tlet ticks = 0;\n\tuseRafFn(() => {\n\t\tticks += 1;\n\t\tif (ticks >= every) {\n\t\t\tconst now = performance.now();\n\t\t\tconst diff = now - last;\n\t\t\tfps.value = Math.round(1e3 / (diff / ticks));\n\t\t\tlast = now;\n\t\t\tticks = 0;\n\t\t}\n\t});\n\treturn fps;\n}\n//#endregion\n//#region useFullscreen/index.ts\nconst eventHandlers = [\n\t\"fullscreenchange\",\n\t\"webkitfullscreenchange\",\n\t\"webkitendfullscreen\",\n\t\"mozfullscreenchange\",\n\t\"MSFullscreenChange\"\n];\n/**\n* Reactive Fullscreen API.\n*\n* @see https://vueuse.org/useFullscreen\n* @param target\n* @param options\n*/\nfunction useFullscreen(target, options = {}) {\n\tconst { document = defaultDocument, autoExit = false } = options;\n\tconst targetRef = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : document === null || document === void 0 ? void 0 : document.documentElement;\n\t});\n\tconst isFullscreen = shallowRef(false);\n\tconst requestMethod = computed(() => {\n\t\treturn [\n\t\t\t\"requestFullscreen\",\n\t\t\t\"webkitRequestFullscreen\",\n\t\t\t\"webkitEnterFullscreen\",\n\t\t\t\"webkitEnterFullScreen\",\n\t\t\t\"webkitRequestFullScreen\",\n\t\t\t\"mozRequestFullScreen\",\n\t\t\t\"msRequestFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst exitMethod = computed(() => {\n\t\treturn [\n\t\t\t\"exitFullscreen\",\n\t\t\t\"webkitExitFullscreen\",\n\t\t\t\"webkitExitFullScreen\",\n\t\t\t\"webkitCancelFullScreen\",\n\t\t\t\"mozCancelFullScreen\",\n\t\t\t\"msExitFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenEnabled = computed(() => {\n\t\treturn [\n\t\t\t\"fullScreen\",\n\t\t\t\"webkitIsFullScreen\",\n\t\t\t\"webkitDisplayingFullscreen\",\n\t\t\t\"mozFullScreen\",\n\t\t\t\"msFullscreenElement\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenElementMethod = [\n\t\t\"fullscreenElement\",\n\t\t\"webkitFullscreenElement\",\n\t\t\"mozFullScreenElement\",\n\t\t\"msFullscreenElement\"\n\t].find((m) => document && m in document);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n\tconst isCurrentElementFullScreen = () => {\n\t\tif (fullscreenElementMethod) return (document === null || document === void 0 ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n\t\treturn false;\n\t};\n\tconst isElementFullScreen = () => {\n\t\tif (fullscreenEnabled.value) if (document && document[fullscreenEnabled.value] != null) return document[fullscreenEnabled.value];\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[fullscreenEnabled.value]) != null) return Boolean(target[fullscreenEnabled.value]);\n\t\t}\n\t\treturn false;\n\t};\n\tasync function exit() {\n\t\tif (!isSupported.value || !isFullscreen.value) return;\n\t\tif (exitMethod.value) if ((document === null || document === void 0 ? void 0 : document[exitMethod.value]) != null) await document[exitMethod.value]();\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[exitMethod.value]) != null) await target[exitMethod.value]();\n\t\t}\n\t\tisFullscreen.value = false;\n\t}\n\tasync function enter() {\n\t\tif (!isSupported.value || isFullscreen.value) return;\n\t\tif (isElementFullScreen()) await exit();\n\t\tconst target = targetRef.value;\n\t\tif (requestMethod.value && (target === null || target === void 0 ? void 0 : target[requestMethod.value]) != null) {\n\t\t\tawait target[requestMethod.value]();\n\t\t\tisFullscreen.value = true;\n\t\t}\n\t}\n\tasync function toggle() {\n\t\tawait (isFullscreen.value ? exit() : enter());\n\t}\n\tconst handlerCallback = () => {\n\t\tconst isElementFullScreenValue = isElementFullScreen();\n\t\tif (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) isFullscreen.value = isElementFullScreenValue;\n\t};\n\tconst listenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t};\n\tuseEventListener(document, eventHandlers, handlerCallback, listenerOptions);\n\tuseEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, listenerOptions);\n\ttryOnMounted(handlerCallback, false);\n\tif (autoExit) tryOnScopeDispose(exit);\n\treturn {\n\t\tisSupported,\n\t\tisFullscreen,\n\t\tenter,\n\t\texit,\n\t\ttoggle\n\t};\n}\n//#endregion\n//#region useGamepad/index.ts\n/**\n* Maps a standard standard gamepad to an Xbox 360 Controller.\n*/\nfunction mapGamepadToXbox360Controller(gamepad) {\n\treturn computed(() => {\n\t\tif (gamepad.value) return {\n\t\t\tbuttons: {\n\t\t\t\ta: gamepad.value.buttons[0],\n\t\t\t\tb: gamepad.value.buttons[1],\n\t\t\t\tx: gamepad.value.buttons[2],\n\t\t\t\ty: gamepad.value.buttons[3]\n\t\t\t},\n\t\t\tbumper: {\n\t\t\t\tleft: gamepad.value.buttons[4],\n\t\t\t\tright: gamepad.value.buttons[5]\n\t\t\t},\n\t\t\ttriggers: {\n\t\t\t\tleft: gamepad.value.buttons[6],\n\t\t\t\tright: gamepad.value.buttons[7]\n\t\t\t},\n\t\t\tstick: {\n\t\t\t\tleft: {\n\t\t\t\t\thorizontal: gamepad.value.axes[0],\n\t\t\t\t\tvertical: gamepad.value.axes[1],\n\t\t\t\t\tbutton: gamepad.value.buttons[10]\n\t\t\t\t},\n\t\t\t\tright: {\n\t\t\t\t\thorizontal: gamepad.value.axes[2],\n\t\t\t\t\tvertical: gamepad.value.axes[3],\n\t\t\t\t\tbutton: gamepad.value.buttons[11]\n\t\t\t\t}\n\t\t\t},\n\t\t\tdpad: {\n\t\t\t\tup: gamepad.value.buttons[12],\n\t\t\t\tdown: gamepad.value.buttons[13],\n\t\t\t\tleft: gamepad.value.buttons[14],\n\t\t\t\tright: gamepad.value.buttons[15]\n\t\t\t},\n\t\t\tback: gamepad.value.buttons[8],\n\t\t\tstart: gamepad.value.buttons[9]\n\t\t};\n\t\treturn null;\n\t});\n}\n/* @__NO_SIDE_EFFECTS__ */\nfunction useGamepad(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getGamepads\" in navigator);\n\tconst gamepads = ref([]);\n\tconst onConnectedHook = createEventHook();\n\tconst onDisconnectedHook = createEventHook();\n\tconst stateFromGamepad = (gamepad) => {\n\t\tconst hapticActuators = [];\n\t\tconst vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n\t\tif (vibrationActuator) hapticActuators.push(vibrationActuator);\n\t\tif (gamepad.hapticActuators) hapticActuators.push(...gamepad.hapticActuators);\n\t\treturn {\n\t\t\tid: gamepad.id,\n\t\t\tindex: gamepad.index,\n\t\t\tconnected: gamepad.connected,\n\t\t\tmapping: gamepad.mapping,\n\t\t\ttimestamp: gamepad.timestamp,\n\t\t\tvibrationActuator: gamepad.vibrationActuator,\n\t\t\thapticActuators,\n\t\t\taxes: gamepad.axes.map((axes) => axes),\n\t\t\tbuttons: gamepad.buttons.map((button) => ({\n\t\t\t\tpressed: button.pressed,\n\t\t\t\ttouched: button.touched,\n\t\t\t\tvalue: button.value\n\t\t\t}))\n\t\t};\n\t};\n\tconst updateGamepadState = () => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n\t};\n\tconst { isActive, pause, resume } = useRafFn(updateGamepadState);\n\tconst onGamepadConnected = (gamepad) => {\n\t\tif (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n\t\t\tgamepads.value.push(stateFromGamepad(gamepad));\n\t\t\tonConnectedHook.trigger(gamepad.index);\n\t\t}\n\t\tresume();\n\t};\n\tconst onGamepadDisconnected = (gamepad) => {\n\t\tgamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n\t\tonDisconnectedHook.trigger(gamepad.index);\n\t};\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad), listenerOptions);\n\tuseEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad), listenerOptions);\n\ttryOnMounted(() => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) onGamepadConnected(gamepad);\n\t});\n\tpause();\n\treturn {\n\t\tisSupported,\n\t\tonConnected: onConnectedHook.on,\n\t\tonDisconnected: onDisconnectedHook.on,\n\t\tgamepads,\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n//#endregion\n//#region useGeolocation/index.ts\n/**\n* Reactive Geolocation API.\n*\n* @see https://vueuse.org/useGeolocation\n* @param options\n*/\nfunction useGeolocation(options = {}) {\n\tconst { enableHighAccuracy = true, maximumAge = 3e4, timeout = 27e3, navigator = defaultNavigator, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"geolocation\" in navigator);\n\tconst locatedAt = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst coords = shallowRef({\n\t\taccuracy: 0,\n\t\tlatitude: Number.POSITIVE_INFINITY,\n\t\tlongitude: Number.POSITIVE_INFINITY,\n\t\taltitude: null,\n\t\taltitudeAccuracy: null,\n\t\theading: null,\n\t\tspeed: null\n\t});\n\tfunction updatePosition(position) {\n\t\tlocatedAt.value = position.timestamp;\n\t\tcoords.value = position.coords;\n\t\terror.value = null;\n\t}\n\tlet watcher;\n\tfunction resume() {\n\t\tif (isSupported.value) watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n\t\t\tenableHighAccuracy,\n\t\t\tmaximumAge,\n\t\t\ttimeout\n\t\t});\n\t}\n\tif (immediate) resume();\n\tfunction pause() {\n\t\tif (watcher && navigator) navigator.geolocation.clearWatch(watcher);\n\t}\n\ttryOnScopeDispose(() => {\n\t\tpause();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcoords,\n\t\tlocatedAt,\n\t\terror,\n\t\tresume,\n\t\tpause\n\t};\n}\n//#endregion\n//#region useIdle/index.ts\nconst defaultEvents$1 = [\n\t\"mousemove\",\n\t\"mousedown\",\n\t\"resize\",\n\t\"keydown\",\n\t\"touchstart\",\n\t\"wheel\"\n];\nconst oneMinute = 6e4;\n/**\n* Tracks whether the user is being inactive.\n*\n* @see https://vueuse.org/useIdle\n* @param timeout default to 1 minute\n* @param options IdleOptions\n*/\nfunction useIdle(timeout = oneMinute, options = {}) {\n\tconst { initialState = false, listenForVisibilityChange = true, events = defaultEvents$1, window = defaultWindow, eventFilter = throttleFilter(50) } = options;\n\tconst idle = shallowRef(initialState);\n\tconst lastActive = shallowRef(timestamp());\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tconst reset = () => {\n\t\tidle.value = false;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => idle.value = true, timeout);\n\t};\n\tconst onEvent = createFilterWrapper(eventFilter, () => {\n\t\tlastActive.value = timestamp();\n\t\treset();\n\t});\n\tif (window) {\n\t\tconst document = window.document;\n\t\tconst listenerOptions = { passive: true };\n\t\tfor (const event of events) useEventListener(window, event, () => {\n\t\t\tif (!isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tif (listenForVisibilityChange) useEventListener(document, \"visibilitychange\", () => {\n\t\t\tif (document.hidden || !isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tstart();\n\t}\n\tfunction start() {\n\t\tif (isPending.value) return;\n\t\tisPending.value = true;\n\t\tif (!initialState) reset();\n\t}\n\tfunction stop() {\n\t\tidle.value = initialState;\n\t\tclearTimeout(timer);\n\t\tisPending.value = false;\n\t}\n\treturn {\n\t\tidle,\n\t\tlastActive,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tisPending: shallowReadonly(isPending)\n\t};\n}\n//#endregion\n//#region useImage/index.ts\nasync function loadImage(options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst img = new Image();\n\t\tconst { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy, width, height, decoding, fetchPriority, ismap, usemap } = options;\n\t\timg.src = src;\n\t\tif (srcset != null) img.srcset = srcset;\n\t\tif (sizes != null) img.sizes = sizes;\n\t\tif (clazz != null) img.className = clazz;\n\t\tif (loading != null) img.loading = loading;\n\t\tif (crossorigin != null) img.crossOrigin = crossorigin;\n\t\tif (referrerPolicy != null) img.referrerPolicy = referrerPolicy;\n\t\tif (width != null) img.width = width;\n\t\tif (height != null) img.height = height;\n\t\tif (decoding != null) img.decoding = decoding;\n\t\tif (fetchPriority != null) img.fetchPriority = fetchPriority;\n\t\tif (ismap != null) img.isMap = ismap;\n\t\tif (usemap != null) img.useMap = usemap;\n\t\timg.onload = () => resolve(img);\n\t\timg.onerror = reject;\n\t});\n}\n/**\n* Reactive load an image in the browser, you can wait the result to display it or show a fallback.\n*\n* @see https://vueuse.org/useImage\n* @param options Image attributes, as used in the tag\n* @param asyncStateOptions\n*/\nfunction useImage(options, asyncStateOptions = {}) {\n\tconst state = useAsyncState(() => loadImage(toValue(options)), void 0, {\n\t\tresetOnExecute: true,\n\t\t...asyncStateOptions\n\t});\n\twatch(() => toValue(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n\treturn state;\n}\n//#endregion\n//#region _resolve-element.ts\n/**\n* Resolves an element from a given element, window, or document.\n*\n* @internal\n*/\nfunction resolveElement(el) {\n\tif (typeof Window !== \"undefined\" && el instanceof Window) return el.document.documentElement;\n\tif (typeof Document !== \"undefined\" && el instanceof Document) return el.documentElement;\n\treturn el;\n}\n//#endregion\n//#region useScroll/index.ts\n/**\n* We have to check if the scroll amount is close enough to some threshold in order to\n* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded\n* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.\n* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n*/\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n/**\n* Reactive scroll.\n*\n* @see https://vueuse.org/useScroll\n* @param element\n* @param options\n*/\nfunction useScroll(element, options = {}) {\n\tconst { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0\n\t}, observe: _observe = { mutation: false }, eventListenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t}, behavior = \"auto\", window = defaultWindow, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = options;\n\tconst observe = typeof _observe === \"boolean\" ? { mutation: _observe } : _observe;\n\tconst internalX = shallowRef(0);\n\tconst internalY = shallowRef(0);\n\tconst x = computed({\n\t\tget() {\n\t\t\treturn internalX.value;\n\t\t},\n\t\tset(x) {\n\t\t\tscrollTo(x, void 0);\n\t\t}\n\t});\n\tconst y = computed({\n\t\tget() {\n\t\t\treturn internalY.value;\n\t\t},\n\t\tset(y) {\n\t\t\tscrollTo(void 0, y);\n\t\t}\n\t});\n\tfunction scrollTo(_x, _y) {\n\t\tvar _ref, _toValue, _toValue2, _document;\n\t\tif (!window) return;\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\t(_ref = _element instanceof Document ? window.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({\n\t\t\ttop: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,\n\t\t\tleft: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,\n\t\t\tbehavior: toValue(behavior)\n\t\t});\n\t\tconst scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;\n\t\tif (x != null) internalX.value = scrollContainer.scrollLeft;\n\t\tif (y != null) internalY.value = scrollContainer.scrollTop;\n\t}\n\tconst isScrolling = shallowRef(false);\n\tconst arrivedState = reactive({\n\t\tleft: true,\n\t\tright: false,\n\t\ttop: true,\n\t\tbottom: false\n\t});\n\tconst directions = reactive({\n\t\tleft: false,\n\t\tright: false,\n\t\ttop: false,\n\t\tbottom: false\n\t});\n\tconst onScrollEnd = (e) => {\n\t\tif (!isScrolling.value) return;\n\t\tisScrolling.value = false;\n\t\tdirections.left = false;\n\t\tdirections.right = false;\n\t\tdirections.top = false;\n\t\tdirections.bottom = false;\n\t\tonStop(e);\n\t};\n\tconst onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n\tconst setArrivedState = (target) => {\n\t\tvar _document2;\n\t\tif (!window) return;\n\t\tconst el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);\n\t\tconst { display, flexDirection, direction } = window.getComputedStyle(el);\n\t\tconst directionMultipler = direction === \"rtl\" ? -1 : 1;\n\t\tconst scrollLeft = el.scrollLeft;\n\t\tdirections.left = scrollLeft < internalX.value;\n\t\tdirections.right = scrollLeft > internalX.value;\n\t\tconst left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);\n\t\tconst right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\tif (display === \"flex\" && flexDirection === \"row-reverse\") {\n\t\t\tarrivedState.left = right;\n\t\t\tarrivedState.right = left;\n\t\t} else {\n\t\t\tarrivedState.left = left;\n\t\t\tarrivedState.right = right;\n\t\t}\n\t\tinternalX.value = scrollLeft;\n\t\tlet scrollTop = el.scrollTop;\n\t\tif (target === window.document && !scrollTop) scrollTop = window.document.body.scrollTop;\n\t\tdirections.top = scrollTop < internalY.value;\n\t\tdirections.bottom = scrollTop > internalY.value;\n\t\tconst top = Math.abs(scrollTop) <= (offset.top || 0);\n\t\tconst bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\t/**\n\t\t* reverse columns and rows behave exactly the other way around,\n\t\t* bottom is treated as top and top is treated as the negative version of bottom\n\t\t*/\n\t\tif (display === \"flex\" && flexDirection === \"column-reverse\") {\n\t\t\tarrivedState.top = bottom;\n\t\t\tarrivedState.bottom = top;\n\t\t} else {\n\t\t\tarrivedState.top = top;\n\t\t\tarrivedState.bottom = bottom;\n\t\t}\n\t\tinternalY.value = scrollTop;\n\t};\n\tconst onScrollHandler = (e) => {\n\t\tvar _documentElement;\n\t\tif (!window) return;\n\t\tsetArrivedState((_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target);\n\t\tisScrolling.value = true;\n\t\tonScrollEndDebounced(e);\n\t\tonScroll(e);\n\t};\n\tuseEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n\ttryOnMounted(() => {\n\t\ttry {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (!_element) return;\n\t\t\tsetArrivedState(_element);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t});\n\tif ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window && element !== document) useMutationObserver(element, () => {\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\tsetArrivedState(_element);\n\t}, {\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n\tuseEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n\treturn {\n\t\tx,\n\t\ty,\n\t\tisScrolling,\n\t\tarrivedState,\n\t\tdirections,\n\t\tmeasure() {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (window && _element) setArrivedState(_element);\n\t\t}\n\t};\n}\n//#endregion\n//#region useInfiniteScroll/index.ts\n/**\n* Reactive infinite scroll.\n*\n* @see https://vueuse.org/useInfiniteScroll\n*/\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n\tvar _options$distance;\n\tconst { direction = \"bottom\", interval = 100, canLoadMore = () => true } = options;\n\tconst state = reactive(useScroll(element, {\n\t\t...options,\n\t\toffset: {\n\t\t\t[direction]: (_options$distance = options.distance) !== null && _options$distance !== void 0 ? _options$distance : 0,\n\t\t\t...options.offset\n\t\t}\n\t}));\n\tconst promise = shallowRef();\n\tconst isLoading = computed(() => !!promise.value);\n\tconst observedElement = computed(() => {\n\t\treturn resolveElement(toValue(element));\n\t});\n\tconst isElementVisible = useElementVisibility(observedElement);\n\tconst canLoad = computed(() => {\n\t\tif (!observedElement.value) return false;\n\t\treturn canLoadMore(observedElement.value);\n\t});\n\tfunction checkAndLoad() {\n\t\tstate.measure();\n\t\tif (!observedElement.value || !isElementVisible.value || !canLoad.value || promise.value) return;\n\t\tconst { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n\t\tconst isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n\t\tif (state.arrivedState[direction] || isNarrower) promise.value = Promise.all([onLoadMore(state), new Promise((resolve) => setTimeout(resolve, interval))]).finally(() => {\n\t\t\tpromise.value = null;\n\t\t\tnextTick(() => checkAndLoad());\n\t\t});\n\t}\n\ttryOnUnmounted(watch(() => [\n\t\tstate.arrivedState[direction],\n\t\tisElementVisible.value,\n\t\tcanLoad.value\n\t], checkAndLoad, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t}));\n\treturn {\n\t\tisLoading,\n\t\treset() {\n\t\t\tnextTick(() => checkAndLoad());\n\t\t}\n\t};\n}\n//#endregion\n//#region useKeyModifier/index.ts\nconst defaultEvents = [\n\t\"mousedown\",\n\t\"mouseup\",\n\t\"keydown\",\n\t\"keyup\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction useKeyModifier(modifier, options = {}) {\n\tconst { events = defaultEvents, document = defaultDocument, initial = null } = options;\n\tconst state = shallowRef(initial);\n\tif (document) events.forEach((listenerEvent) => {\n\t\tuseEventListener(document, listenerEvent, (evt) => {\n\t\t\tif (typeof evt.getModifierState === \"function\") state.value = evt.getModifierState(modifier);\n\t\t}, { passive: true });\n\t});\n\treturn state;\n}\n//#endregion\n//#region useLocalStorage/index.ts\n/**\n* Reactive LocalStorage.\n*\n* @see https://vueuse.org/useLocalStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useLocalStorage(key, initialValue, options = {}) {\n\tconst { window = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window === null || window === void 0 ? void 0 : window.localStorage, options);\n}\n//#endregion\n//#region useMagicKeys/aliasMap.ts\nconst DefaultMagicKeysAliasMap = {\n\tctrl: \"control\",\n\tcommand: \"meta\",\n\tcmd: \"meta\",\n\toption: \"alt\",\n\tup: \"arrowup\",\n\tdown: \"arrowdown\",\n\tleft: \"arrowleft\",\n\tright: \"arrowright\"\n};\n//#endregion\n//#region useMagicKeys/index.ts\n/**\n* Reactive keys pressed state, with magical keys combination support.\n*\n* @see https://vueuse.org/useMagicKeys\n*/\nfunction useMagicKeys(options = {}) {\n\tconst { reactive: useReactive = false, target = defaultWindow, aliasMap = DefaultMagicKeysAliasMap, passive = true, onEventFired = noop } = options;\n\tconst current = reactive(/* @__PURE__ */ new Set());\n\tconst obj = {\n\t\ttoJSON() {\n\t\t\treturn {};\n\t\t},\n\t\tcurrent\n\t};\n\tconst refs = useReactive ? reactive(obj) : obj;\n\tconst metaDeps = /* @__PURE__ */ new Set();\n\tconst depsMap = new Map([\n\t\t[\"Meta\", metaDeps],\n\t\t[\"Shift\", /* @__PURE__ */ new Set()],\n\t\t[\"Alt\", /* @__PURE__ */ new Set()]\n\t]);\n\tconst usedKeys = /* @__PURE__ */ new Set();\n\tfunction setRefs(key, value) {\n\t\tif (key in refs) if (useReactive) refs[key] = value;\n\t\telse refs[key].value = value;\n\t}\n\tfunction reset() {\n\t\tcurrent.clear();\n\t\tfor (const key of usedKeys) setRefs(key, false);\n\t}\n\tfunction updateDeps(value, e, keys) {\n\t\tif (!value || typeof e.getModifierState !== \"function\") return;\n\t\tfor (const [modifier, depsSet] of depsMap) if (e.getModifierState(modifier)) {\n\t\t\tkeys.forEach((key) => depsSet.add(key));\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction clearDeps(value, key) {\n\t\tif (value) return;\n\t\tconst depsMapKey = `${key[0].toUpperCase()}${key.slice(1)}`;\n\t\tconst deps = depsMap.get(depsMapKey);\n\t\tif (![\"shift\", \"alt\"].includes(key) || !deps) return;\n\t\tconst depsArray = Array.from(deps);\n\t\tconst depsIndex = depsArray.indexOf(key);\n\t\tdepsArray.forEach((key, index) => {\n\t\t\tif (index >= depsIndex) {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t}\n\t\t});\n\t\tdeps.clear();\n\t}\n\tfunction updateRefs(e, value) {\n\t\tvar _e$key, _e$code;\n\t\tconst key = (_e$key = e.key) === null || _e$key === void 0 ? void 0 : _e$key.toLowerCase();\n\t\tconst values = [(_e$code = e.code) === null || _e$code === void 0 ? void 0 : _e$code.toLowerCase(), key].filter(Boolean);\n\t\tif (!key) return;\n\t\tif (key) if (value) current.add(key);\n\t\telse current.delete(key);\n\t\tfor (const key of values) {\n\t\t\tusedKeys.add(key);\n\t\t\tsetRefs(key, value);\n\t\t}\n\t\tupdateDeps(value, e, [...current, ...values]);\n\t\tclearDeps(value, key);\n\t\tif (key === \"meta\" && !value) {\n\t\t\tmetaDeps.forEach((key) => {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t});\n\t\t\tmetaDeps.clear();\n\t\t}\n\t}\n\tuseEventListener(target, \"keydown\", (e) => {\n\t\tupdateRefs(e, true);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(target, \"keyup\", (e) => {\n\t\tupdateRefs(e, false);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(\"blur\", reset, { passive });\n\tuseEventListener(\"focus\", reset, { passive });\n\tconst proxy = new Proxy(refs, { get(target, prop, rec) {\n\t\tif (typeof prop !== \"string\") return Reflect.get(target, prop, rec);\n\t\tprop = prop.toLowerCase();\n\t\tif (prop in aliasMap) prop = aliasMap[prop];\n\t\tif (!(prop in refs)) if (/[+_-]/.test(prop)) {\n\t\t\tconst keys = prop.split(/[+_-]/g).map((i) => i.trim());\n\t\t\trefs[prop] = computed(() => keys.map((key) => toValue(proxy[key])).every(Boolean));\n\t\t} else refs[prop] = shallowRef(false);\n\t\tconst r = Reflect.get(target, prop, rec);\n\t\treturn useReactive ? toValue(r) : r;\n\t} });\n\treturn proxy;\n}\n//#endregion\n//#region useMediaControls/index.ts\n/**\n* Automatically check if the ref exists and if it does run the cb fn\n*/\nfunction usingElRef(source, cb) {\n\tif (toValue(source)) cb(toValue(source));\n}\n/**\n* Converts a TimeRange object to an array\n*/\nfunction timeRangeToArray(timeRanges) {\n\tlet ranges = [];\n\tfor (let i = 0; i < timeRanges.length; ++i) ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\treturn ranges;\n}\n/**\n* Converts a TextTrackList object to an array of `UseMediaTextTrack`\n*/\nfunction tracksToArray(tracks) {\n\treturn Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tlanguage,\n\t\tmode,\n\t\tactiveCues,\n\t\tcues,\n\t\tinBandMetadataTrackDispatchType\n\t}));\n}\nconst defaultOptions = {\n\tsrc: \"\",\n\ttracks: []\n};\nfunction useMediaControls(target, options = {}) {\n\ttarget = toRef(target);\n\toptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst { document = defaultDocument } = options;\n\tconst listenerOptions = { passive: true };\n\tconst currentTime = shallowRef(0);\n\tconst duration = shallowRef(0);\n\tconst seeking = shallowRef(false);\n\tconst volume = shallowRef(1);\n\tconst waiting = shallowRef(false);\n\tconst ended = shallowRef(false);\n\tconst playing = shallowRef(false);\n\tconst rate = shallowRef(1);\n\tconst stalled = shallowRef(false);\n\tconst buffered = shallowRef([]);\n\tconst tracks = shallowRef([]);\n\tconst selectedTrack = shallowRef(-1);\n\tconst isPictureInPicture = shallowRef(false);\n\tconst muted = shallowRef(false);\n\tconst supportsPictureInPicture = Boolean(document && \"pictureInPictureEnabled\" in document);\n\tconst sourceErrorEvent = createEventHook();\n\tconst playbackErrorEvent = createEventHook();\n\t/**\n\t* Disables the specified track. If no track is specified then\n\t* all tracks will be disabled\n\t*\n\t* @param track The id of the track to disable\n\t*/\n\tconst disableTrack = (track) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tif (track) {\n\t\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\t\tel.textTracks[id].mode = \"disabled\";\n\t\t\t} else for (let i = 0; i < el.textTracks.length; ++i) el.textTracks[i].mode = \"disabled\";\n\t\t\tselectedTrack.value = -1;\n\t\t});\n\t};\n\t/**\n\t* Enables the specified track and disables the\n\t* other tracks unless otherwise specified\n\t*\n\t* @param track The track of the id of the track to enable\n\t* @param disableTracks Disable all other tracks\n\t*/\n\tconst enableTrack = (track, disableTracks = true) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\tif (disableTracks) disableTrack();\n\t\t\tel.textTracks[id].mode = \"showing\";\n\t\t\tselectedTrack.value = id;\n\t\t});\n\t};\n\t/**\n\t* Toggle picture in picture mode for the player.\n\t*/\n\tconst togglePictureInPicture = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tusingElRef(target, async (el) => {\n\t\t\t\tif (supportsPictureInPicture) if (!isPictureInPicture.value) el.requestPictureInPicture().then(resolve).catch(reject);\n\t\t\t\telse document.exitPictureInPicture().then(resolve).catch(reject);\n\t\t\t});\n\t\t});\n\t};\n\t/**\n\t* This will automatically inject sources to the media element. The sources will be\n\t* appended as children to the media element as `` elements.\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tconst src = toValue(options.src);\n\t\tlet sources = [];\n\t\tif (!src) return;\n\t\tif (typeof src === \"string\") sources = [{ src }];\n\t\telse if (Array.isArray(src)) sources = src;\n\t\telse if (isObject(src)) sources = [src];\n\t\tel.querySelectorAll(\"source\").forEach((e) => {\n\t\t\te.remove();\n\t\t});\n\t\tsources.forEach(({ src, type, media }) => {\n\t\t\tconst source = document.createElement(\"source\");\n\t\t\tsource.setAttribute(\"src\", src);\n\t\t\tsource.setAttribute(\"type\", type || \"\");\n\t\t\tsource.setAttribute(\"media\", media || \"\");\n\t\t\tuseEventListener(source, \"error\", sourceErrorEvent.trigger, listenerOptions);\n\t\t\tel.appendChild(source);\n\t\t});\n\t\tel.load();\n\t});\n\t/**\n\t* Apply composable state to the element, also when element is changed\n\t*/\n\twatch([target, volume], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.volume = volume.value;\n\t});\n\twatch([target, muted], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.muted = muted.value;\n\t});\n\twatch([target, rate], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.playbackRate = rate.value;\n\t});\n\t/**\n\t* Load Tracks\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst textTracks = toValue(options.tracks);\n\t\tconst el = toValue(target);\n\t\tif (!textTracks || !textTracks.length || !el) return;\n\t\t/**\n\t\t* The MediaAPI provides an API for adding text tracks, but they don't currently\n\t\t* have an API for removing text tracks, so instead we will just create and remove\n\t\t* the tracks manually using the HTML api.\n\t\t*/\n\t\tel.querySelectorAll(\"track\").forEach((e) => e.remove());\n\t\ttextTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n\t\t\tconst track = document.createElement(\"track\");\n\t\t\ttrack.default = isDefault || false;\n\t\t\ttrack.kind = kind;\n\t\t\ttrack.label = label;\n\t\t\ttrack.src = src;\n\t\t\ttrack.srclang = srcLang;\n\t\t\tif (track.default) selectedTrack.value = i;\n\t\t\tel.appendChild(track);\n\t\t});\n\t});\n\t/**\n\t* This will allow us to update the current time from the timeupdate event\n\t* without setting the medias current position, but if the user changes the\n\t* current time via the ref, then the media will seek.\n\t*\n\t* If we did not use an ignorable watch, then the current time update from\n\t* the timeupdate event would cause the media to stutter.\n\t*/\n\tconst { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.currentTime = time;\n\t});\n\t/**\n\t* Using an ignorable watch so we can control the play state using a ref and not\n\t* a function\n\t*/\n\tconst { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tif (isPlaying) el.play().catch((e) => {\n\t\t\tplaybackErrorEvent.trigger(e);\n\t\t\tthrow e;\n\t\t});\n\t\telse el.pause();\n\t});\n\tuseEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime), listenerOptions);\n\tuseEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration, listenerOptions);\n\tuseEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered), listenerOptions);\n\tuseEventListener(target, \"seeking\", () => seeking.value = true, listenerOptions);\n\tuseEventListener(target, \"seeked\", () => seeking.value = false, listenerOptions);\n\tuseEventListener(target, [\"waiting\", \"loadstart\"], () => {\n\t\twaiting.value = true;\n\t\tignorePlayingUpdates(() => playing.value = false);\n\t}, listenerOptions);\n\tuseEventListener(target, \"loadeddata\", () => waiting.value = false, listenerOptions);\n\tuseEventListener(target, \"playing\", () => {\n\t\twaiting.value = false;\n\t\tended.value = false;\n\t\tignorePlayingUpdates(() => playing.value = true);\n\t}, listenerOptions);\n\tuseEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate, listenerOptions);\n\tuseEventListener(target, \"stalled\", () => stalled.value = true, listenerOptions);\n\tuseEventListener(target, \"ended\", () => ended.value = true, listenerOptions);\n\tuseEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false), listenerOptions);\n\tuseEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true), listenerOptions);\n\tuseEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true, listenerOptions);\n\tuseEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false, listenerOptions);\n\tuseEventListener(target, \"volumechange\", () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tvolume.value = el.volume;\n\t\tmuted.value = el.muted;\n\t}, listenerOptions);\n\t/**\n\t* The following listeners need to listen to a nested\n\t* object on the target, so we will have to use a nested\n\t* watch and manually remove the listeners\n\t*/\n\tconst listeners = [];\n\tconst stop = watch([target], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tstop();\n\t\tlisteners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t});\n\ttryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n\treturn {\n\t\tcurrentTime,\n\t\tduration,\n\t\twaiting,\n\t\tseeking,\n\t\tended,\n\t\tstalled,\n\t\tbuffered,\n\t\tplaying,\n\t\trate,\n\t\tvolume,\n\t\tmuted,\n\t\ttracks,\n\t\tselectedTrack,\n\t\tenableTrack,\n\t\tdisableTrack,\n\t\tsupportsPictureInPicture,\n\t\ttogglePictureInPicture,\n\t\tisPictureInPicture,\n\t\tonSourceError: sourceErrorEvent.on,\n\t\tonPlaybackError: playbackErrorEvent.on\n\t};\n}\n//#endregion\n//#region useMemoize/index.ts\n/**\n* Reactive function result cache based on arguments\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemoize(resolver, options) {\n\tconst initCache = () => {\n\t\tif (options === null || options === void 0 ? void 0 : options.cache) return shallowReactive(options.cache);\n\t\treturn shallowReactive(/* @__PURE__ */ new Map());\n\t};\n\tconst cache = initCache();\n\t/**\n\t* Generate key from args\n\t*/\n\tconst generateKey = (...args) => (options === null || options === void 0 ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n\t/**\n\t* Load data and save in cache\n\t*/\n\tconst _loadData = (key, ...args) => {\n\t\tcache.set(key, resolver(...args));\n\t\treturn cache.get(key);\n\t};\n\tconst loadData = (...args) => _loadData(generateKey(...args), ...args);\n\t/**\n\t* Delete key from cache\n\t*/\n\tconst deleteData = (...args) => {\n\t\tcache.delete(generateKey(...args));\n\t};\n\t/**\n\t* Clear cached data\n\t*/\n\tconst clearData = () => {\n\t\tcache.clear();\n\t};\n\tconst memoized = (...args) => {\n\t\tconst key = generateKey(...args);\n\t\tif (cache.has(key)) return cache.get(key);\n\t\treturn _loadData(key, ...args);\n\t};\n\tmemoized.load = loadData;\n\tmemoized.delete = deleteData;\n\tmemoized.clear = clearData;\n\tmemoized.generateKey = generateKey;\n\tmemoized.cache = cache;\n\treturn memoized;\n}\n//#endregion\n//#region useMemory/index.ts\nfunction getDefaultScheduler$6(options) {\n\tif (\"interval\" in options || \"immediate\" in options || \"immediateCallback\" in options) {\n\t\tconst { interval = 1e3, immediate, immediateCallback } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, {\n\t\t\timmediate,\n\t\t\timmediateCallback\n\t\t});\n\t}\n\treturn useIntervalFn;\n}\n/**\n* Reactive Memory Info.\n*\n* @see https://vueuse.org/useMemory\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemory(options = {}) {\n\tconst memory = shallowRef();\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n\tif (isSupported.value) {\n\t\tconst { scheduler = getDefaultScheduler$6 } = options;\n\t\tscheduler(() => {\n\t\t\tmemory.value = performance.memory;\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tmemory\n\t};\n}\n//#endregion\n//#region useMouse/index.ts\nconst UseMouseBuiltinExtractors = {\n\tpage: (event) => [event.pageX, event.pageY],\n\tclient: (event) => [event.clientX, event.clientY],\n\tscreen: (event) => [event.screenX, event.screenY],\n\tmovement: (event) => event instanceof MouseEvent ? [event.movementX, event.movementY] : null\n};\n/**\n* Reactive mouse position.\n*\n* @see https://vueuse.org/useMouse\n* @param options\n*/\nfunction useMouse(options = {}) {\n\tconst { type = \"page\", touch = true, resetOnTouchEnds = false, initialValue = {\n\t\tx: 0,\n\t\ty: 0\n\t}, window = defaultWindow, target = window, scroll = true, eventFilter } = options;\n\tlet _prevMouseEvent = null;\n\tlet _prevScrollX = 0;\n\tlet _prevScrollY = 0;\n\tconst x = shallowRef(initialValue.x);\n\tconst y = shallowRef(initialValue.y);\n\tconst sourceType = shallowRef(null);\n\tconst extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n\tconst mouseHandler = (event) => {\n\t\tconst result = extractor(event);\n\t\t_prevMouseEvent = event;\n\t\tif (result) {\n\t\t\t[x.value, y.value] = result;\n\t\t\tsourceType.value = \"mouse\";\n\t\t}\n\t\tif (window) {\n\t\t\t_prevScrollX = window.scrollX;\n\t\t\t_prevScrollY = window.scrollY;\n\t\t}\n\t};\n\tconst touchHandler = (event) => {\n\t\tif (event.touches.length > 0) {\n\t\t\tconst result = extractor(event.touches[0]);\n\t\t\tif (result) {\n\t\t\t\t[x.value, y.value] = result;\n\t\t\t\tsourceType.value = \"touch\";\n\t\t\t}\n\t\t}\n\t};\n\tconst scrollHandler = () => {\n\t\tif (!_prevMouseEvent || !window) return;\n\t\tconst pos = extractor(_prevMouseEvent);\n\t\tif (_prevMouseEvent instanceof MouseEvent && pos) {\n\t\t\tx.value = pos[0] + window.scrollX - _prevScrollX;\n\t\t\ty.value = pos[1] + window.scrollY - _prevScrollY;\n\t\t}\n\t};\n\tconst reset = () => {\n\t\tx.value = initialValue.x;\n\t\ty.value = initialValue.y;\n\t};\n\tconst mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n\tconst touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n\tconst scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n\t\tif (touch && type !== \"movement\") {\n\t\t\tuseEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n\t\t\tif (resetOnTouchEnds) useEventListener(target, \"touchend\", reset, listenerOptions);\n\t\t}\n\t\tif (scroll && type === \"page\") useEventListener(window, \"scroll\", scrollHandlerWrapper, listenerOptions);\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useMouseInElement/index.ts\n/**\n* Reactive mouse position related to an element.\n*\n* @see https://vueuse.org/useMouseInElement\n* @param target\n* @param options\n*/\nfunction useMouseInElement(target, options = {}) {\n\tconst { windowResize = true, windowScroll = true, handleOutside = true, window = defaultWindow } = options;\n\tconst type = options.type || \"page\";\n\tconst { x, y, sourceType } = useMouse(options);\n\tconst targetRef = shallowRef(target !== null && target !== void 0 ? target : window === null || window === void 0 ? void 0 : window.document.body);\n\tconst elementX = shallowRef(0);\n\tconst elementY = shallowRef(0);\n\tconst elementPositionX = shallowRef(0);\n\tconst elementPositionY = shallowRef(0);\n\tconst elementHeight = shallowRef(0);\n\tconst elementWidth = shallowRef(0);\n\tconst isOutside = shallowRef(true);\n\tfunction update() {\n\t\tif (!window) return;\n\t\tconst el = unrefElement(targetRef);\n\t\tif (!el || !(el instanceof Element)) return;\n\t\tfor (const rect of el.getClientRects()) {\n\t\t\tconst { left, top, width, height } = rect;\n\t\t\telementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n\t\t\telementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n\t\t\telementHeight.value = height;\n\t\t\telementWidth.value = width;\n\t\t\tconst elX = x.value - elementPositionX.value;\n\t\t\tconst elY = y.value - elementPositionY.value;\n\t\t\tisOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n\t\t\tif (handleOutside || !isOutside.value) {\n\t\t\t\telementX.value = elX;\n\t\t\t\telementY.value = elY;\n\t\t\t}\n\t\t\tif (!isOutside.value) break;\n\t\t}\n\t}\n\tconst stopFnList = [];\n\tfunction stop() {\n\t\tstopFnList.forEach((fn) => fn());\n\t\tstopFnList.length = 0;\n\t}\n\ttryOnMounted(() => {\n\t\tupdate();\n\t});\n\tif (window) {\n\t\tconst { stop: stopResizeObserver } = useResizeObserver(targetRef, update);\n\t\tconst { stop: stopMutationObserver } = useMutationObserver(targetRef, update, { attributeFilter: [\"style\", \"class\"] });\n\t\tconst stopWatch = watch([\n\t\t\ttargetRef,\n\t\t\tx,\n\t\t\ty\n\t\t], update);\n\t\tstopFnList.push(stopResizeObserver, stopMutationObserver, stopWatch);\n\t\tuseEventListener(document, \"mouseleave\", () => isOutside.value = true, { passive: true });\n\t\tif (windowScroll) stopFnList.push(useEventListener(\"scroll\", update, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t}));\n\t\tif (windowResize) stopFnList.push(useEventListener(\"resize\", update, { passive: true }));\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType,\n\t\telementX,\n\t\telementY,\n\t\telementPositionX,\n\t\telementPositionY,\n\t\telementHeight,\n\t\telementWidth,\n\t\tisOutside,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useMousePressed/index.ts\n/**\n* Reactive mouse pressing state.\n*\n* @see https://vueuse.org/useMousePressed\n* @param options\n*/\nfunction useMousePressed(options = {}) {\n\tconst { touch = true, drag = true, capture = false, initialValue = false, window = defaultWindow } = options;\n\tconst pressed = shallowRef(initialValue);\n\tconst sourceType = shallowRef(null);\n\tif (!window) return {\n\t\tpressed,\n\t\tsourceType\n\t};\n\tconst onPressed = (srcType) => (event) => {\n\t\tvar _options$onPressed;\n\t\tpressed.value = true;\n\t\tsourceType.value = srcType;\n\t\t(_options$onPressed = options.onPressed) === null || _options$onPressed === void 0 || _options$onPressed.call(options, event);\n\t};\n\tconst onReleased = (event) => {\n\t\tvar _options$onReleased;\n\t\tpressed.value = false;\n\t\tsourceType.value = null;\n\t\t(_options$onReleased = options.onReleased) === null || _options$onReleased === void 0 || _options$onReleased.call(options, event);\n\t};\n\tconst target = computed(() => unrefElement(options.target) || window);\n\tconst listenerOptions = {\n\t\tpassive: true,\n\t\tcapture\n\t};\n\tuseEventListener(target, \"mousedown\", onPressed(\"mouse\"), listenerOptions);\n\tuseEventListener(window, \"mouseleave\", onReleased, listenerOptions);\n\tuseEventListener(window, \"mouseup\", onReleased, listenerOptions);\n\tif (drag) {\n\t\tuseEventListener(target, \"dragstart\", onPressed(\"mouse\"), listenerOptions);\n\t\tuseEventListener(window, \"drop\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"dragend\", onReleased, listenerOptions);\n\t}\n\tif (touch) {\n\t\tuseEventListener(target, \"touchstart\", onPressed(\"touch\"), listenerOptions);\n\t\tuseEventListener(window, \"touchend\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"touchcancel\", onReleased, listenerOptions);\n\t}\n\treturn {\n\t\tpressed,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useNavigatorLanguage/index.ts\n/**\n*\n* Reactive useNavigatorLanguage\n*\n* Detects the currently selected user language and returns a reactive language\n* @see https://vueuse.org/useNavigatorLanguage\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNavigatorLanguage(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"language\" in navigator);\n\tconst language = shallowRef(navigator === null || navigator === void 0 ? void 0 : navigator.language);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tif (navigator) language.value = navigator.language;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tlanguage\n\t};\n}\n//#endregion\n//#region useNetwork/index.ts\n/**\n* Reactive Network status.\n*\n* @see https://vueuse.org/useNetwork\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNetwork(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"connection\" in navigator);\n\tconst isOnline = shallowRef(true);\n\tconst saveData = shallowRef(false);\n\tconst offlineAt = shallowRef(void 0);\n\tconst onlineAt = shallowRef(void 0);\n\tconst downlink = shallowRef(void 0);\n\tconst downlinkMax = shallowRef(void 0);\n\tconst rtt = shallowRef(void 0);\n\tconst effectiveType = shallowRef(void 0);\n\tconst type = shallowRef(\"unknown\");\n\tconst connection = isSupported.value && navigator.connection;\n\tfunction updateNetworkInformation() {\n\t\tif (!navigator) return;\n\t\tisOnline.value = navigator.onLine;\n\t\tofflineAt.value = isOnline.value ? void 0 : Date.now();\n\t\tonlineAt.value = isOnline.value ? Date.now() : void 0;\n\t\tif (connection) {\n\t\t\tdownlink.value = connection.downlink;\n\t\t\tdownlinkMax.value = connection.downlinkMax;\n\t\t\teffectiveType.value = connection.effectiveType;\n\t\t\trtt.value = connection.rtt;\n\t\t\tsaveData.value = connection.saveData;\n\t\t\ttype.value = connection.type;\n\t\t}\n\t}\n\tconst listenerOptions = { passive: true };\n\tif (window) {\n\t\tuseEventListener(window, \"offline\", () => {\n\t\t\tisOnline.value = false;\n\t\t\tofflineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"online\", () => {\n\t\t\tisOnline.value = true;\n\t\t\tonlineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t}\n\tif (connection) useEventListener(connection, \"change\", updateNetworkInformation, listenerOptions);\n\tupdateNetworkInformation();\n\treturn {\n\t\tisSupported,\n\t\tisOnline: shallowReadonly(isOnline),\n\t\tsaveData: shallowReadonly(saveData),\n\t\tofflineAt: shallowReadonly(offlineAt),\n\t\tonlineAt: shallowReadonly(onlineAt),\n\t\tdownlink: shallowReadonly(downlink),\n\t\tdownlinkMax: shallowReadonly(downlinkMax),\n\t\teffectiveType: shallowReadonly(effectiveType),\n\t\trtt: shallowReadonly(rtt),\n\t\ttype: shallowReadonly(type)\n\t};\n}\n//#endregion\n//#region useNow/index.ts\nfunction getDefaultScheduler$5(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (fn) => useRafFn(fn, { immediate }) : (fn) => useIntervalFn(fn, interval, options);\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive current Date instance.\n*\n* @see https://vueuse.org/useNow\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNow(options = {}) {\n\tconst { controls: exposeControls = false, scheduler = getDefaultScheduler$5(options) } = options;\n\tconst now = shallowRef(/* @__PURE__ */ new Date());\n\tconst update = () => now.value = /* @__PURE__ */ new Date();\n\tconst controls = scheduler(update);\n\tif (exposeControls) return {\n\t\tnow,\n\t\t...controls\n\t};\n\telse return now;\n}\n//#endregion\n//#region useObjectUrl/index.ts\n/**\n* Reactive URL representing an object.\n*\n* @see https://vueuse.org/useObjectUrl\n* @param object\n*/\nfunction useObjectUrl(object) {\n\tconst url = shallowRef();\n\tconst release = () => {\n\t\tif (url.value) URL.revokeObjectURL(url.value);\n\t\turl.value = void 0;\n\t};\n\twatch(() => toValue(object), (newObject) => {\n\t\trelease();\n\t\tif (newObject) url.value = URL.createObjectURL(newObject);\n\t}, { immediate: true });\n\ttryOnScopeDispose(release);\n\treturn shallowReadonly(url);\n}\n//#endregion\n//#region ../math/useClamp/index.ts\n/**\n* Reactively clamp a value between two other values.\n*\n* @see https://vueuse.org/useClamp\n* @param value number\n* @param min\n* @param max\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useClamp(value, min, max) {\n\tif (typeof value === \"function\" || isReadonly(value)) return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n\tconst _value = ref(value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn _value.value = clamp(_value.value, toValue(min), toValue(max));\n\t\t},\n\t\tset(value) {\n\t\t\t_value.value = clamp(value, toValue(min), toValue(max));\n\t\t}\n\t});\n}\n//#endregion\n//#region useOffsetPagination/index.ts\nfunction useOffsetPagination(options) {\n\tconst { total = Number.POSITIVE_INFINITY, pageSize = 10, page = 1, onPageChange = noop, onPageSizeChange = noop, onPageCountChange = noop } = options;\n\tconst currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n\tconst pageCount = computed(() => Math.max(1, Math.ceil(toValue(total) / toValue(currentPageSize))));\n\tconst currentPage = useClamp(page, 1, pageCount);\n\tconst isFirstPage = computed(() => currentPage.value === 1);\n\tconst isLastPage = computed(() => currentPage.value === pageCount.value);\n\tif (isRef(page)) syncRef(page, currentPage, { direction: isReadonly(page) ? \"ltr\" : \"both\" });\n\tif (isRef(pageSize)) syncRef(pageSize, currentPageSize, { direction: isReadonly(pageSize) ? \"ltr\" : \"both\" });\n\tfunction prev() {\n\t\tcurrentPage.value--;\n\t}\n\tfunction next() {\n\t\tcurrentPage.value++;\n\t}\n\tconst returnValue = {\n\t\tcurrentPage,\n\t\tcurrentPageSize,\n\t\tpageCount,\n\t\tisFirstPage,\n\t\tisLastPage,\n\t\tprev,\n\t\tnext\n\t};\n\twatch(currentPage, () => {\n\t\tonPageChange(reactive(returnValue));\n\t});\n\twatch(currentPageSize, () => {\n\t\tonPageSizeChange(reactive(returnValue));\n\t});\n\twatch(pageCount, () => {\n\t\tonPageCountChange(reactive(returnValue));\n\t});\n\treturn returnValue;\n}\n//#endregion\n//#region useOnline/index.ts\n/**\n* Reactive online state.\n*\n* @see https://vueuse.org/useOnline\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useOnline(options = {}) {\n\tconst { isOnline } = useNetwork(options);\n\treturn isOnline;\n}\n//#endregion\n//#region usePageLeave/index.ts\n/**\n* Reactive state to show whether mouse leaves the page.\n*\n* @see https://vueuse.org/usePageLeave\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePageLeave(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isLeft = shallowRef(false);\n\tconst handler = (event) => {\n\t\tif (!window) return;\n\t\tevent = event || window.event;\n\t\tisLeft.value = !(event.relatedTarget || event.toElement);\n\t};\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"mouseout\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseleave\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseenter\", handler, listenerOptions);\n\t}\n\treturn isLeft;\n}\n//#endregion\n//#region useScreenOrientation/index.ts\n/**\n* Reactive screen orientation\n*\n* @see https://vueuse.org/useScreenOrientation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useScreenOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n\tconst screenOrientation = isSupported.value ? window.screen.orientation : {};\n\tconst orientation = shallowRef(screenOrientation.type);\n\tconst angle = shallowRef(screenOrientation.angle || 0);\n\tif (isSupported.value) useEventListener(window, \"orientationchange\", () => {\n\t\torientation.value = screenOrientation.type;\n\t\tangle.value = screenOrientation.angle;\n\t}, { passive: true });\n\tconst lockOrientation = (type) => {\n\t\tif (isSupported.value && typeof screenOrientation.lock === \"function\") return screenOrientation.lock(type);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Not supported\"));\n\t};\n\tconst unlockOrientation = () => {\n\t\tif (isSupported.value && typeof screenOrientation.unlock === \"function\") screenOrientation.unlock();\n\t};\n\treturn {\n\t\tisSupported,\n\t\torientation,\n\t\tangle,\n\t\tlockOrientation,\n\t\tunlockOrientation\n\t};\n}\n//#endregion\n//#region useParallax/index.ts\n/**\n* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`\n* if orientation is not supported.\n*\n* @param target\n* @param options\n*/\nfunction useParallax(target, options = {}) {\n\tconst { deviceOrientationTiltAdjust = (i) => i, deviceOrientationRollAdjust = (i) => i, mouseTiltAdjust = (i) => i, mouseRollAdjust = (i) => i, window = defaultWindow } = options;\n\tconst orientation = reactive(useDeviceOrientation({ window }));\n\tconst screenOrientation = reactive(useScreenOrientation({ window }));\n\tconst { elementX: x, elementY: y, elementWidth: width, elementHeight: height } = useMouseInElement(target, {\n\t\thandleOutside: false,\n\t\twindow\n\t});\n\tconst source = computed(() => {\n\t\tif (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) return \"deviceOrientation\";\n\t\treturn \"mouse\";\n\t});\n\treturn {\n\t\troll: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = -orientation.beta / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationRollAdjust(value);\n\t\t\t} else return mouseRollAdjust(-(y.value - height.value / 2) / height.value);\n\t\t}),\n\t\ttilt: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = orientation.gamma / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationTiltAdjust(value);\n\t\t\t} else return mouseTiltAdjust((x.value - width.value / 2) / width.value);\n\t\t}),\n\t\tsource\n\t};\n}\n//#endregion\n//#region useParentElement/index.ts\nfunction useParentElement(element = useCurrentElement()) {\n\tconst parentElement = shallowRef();\n\tconst update = () => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) parentElement.value = el.parentElement;\n\t};\n\ttryOnMounted(update);\n\twatch(() => toValue(element), update);\n\treturn parentElement;\n}\n//#endregion\n//#region usePerformanceObserver/index.ts\n/**\n* Observe performance metrics.\n*\n* @see https://vueuse.org/usePerformanceObserver\n* @param options\n*/\nfunction usePerformanceObserver(options, callback) {\n\tconst { window = defaultWindow, immediate = true, ...performanceOptions } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"PerformanceObserver\" in window);\n\tlet observer;\n\tconst stop = () => {\n\t\tobserver === null || observer === void 0 || observer.disconnect();\n\t};\n\tconst start = () => {\n\t\tif (isSupported.value) {\n\t\t\tstop();\n\t\t\tobserver = new PerformanceObserver(callback);\n\t\t\tobserver.observe(performanceOptions);\n\t\t}\n\t};\n\ttryOnScopeDispose(stop);\n\tif (immediate) start();\n\treturn {\n\t\tisSupported,\n\t\tstart,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePointer/index.ts\nconst defaultState = (/* #__PURE__ */ {\n\tx: 0,\n\ty: 0,\n\tpointerId: 0,\n\tpressure: 0,\n\ttiltX: 0,\n\ttiltY: 0,\n\twidth: 0,\n\theight: 0,\n\ttwist: 0,\n\tpointerType: null\n});\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\n/**\n* Reactive pointer state.\n*\n* @see https://vueuse.org/usePointer\n* @param options\n*/\nfunction usePointer(options = {}) {\n\tconst { target = defaultWindow } = options;\n\tconst isInside = shallowRef(false);\n\tconst state = shallowRef(options.initialValue || {});\n\tObject.assign(state.value, defaultState, state.value);\n\tconst handler = (event) => {\n\t\tisInside.value = true;\n\t\tif (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) return;\n\t\tstate.value = objectPick(event, keys, false);\n\t};\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\n\t\t\t\"pointerdown\",\n\t\t\t\"pointermove\",\n\t\t\t\"pointerup\"\n\t\t], handler, listenerOptions);\n\t\tuseEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n\t}\n\treturn {\n\t\t...toRefs(state),\n\t\tisInside\n\t};\n}\n//#endregion\n//#region usePointerLock/index.ts\n/**\n* Reactive pointer lock.\n*\n* @see https://vueuse.org/usePointerLock\n* @param target\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePointerLock(target, options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => document && \"pointerLockElement\" in document);\n\tconst element = shallowRef();\n\tconst triggerElement = shallowRef();\n\tlet targetElement;\n\tif (isSupported.value) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(document, \"pointerlockchange\", () => {\n\t\t\tvar _pointerLockElement;\n\t\t\tconst currentElement = (_pointerLockElement = document.pointerLockElement) !== null && _pointerLockElement !== void 0 ? _pointerLockElement : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\telement.value = document.pointerLockElement;\n\t\t\t\tif (!element.value) targetElement = triggerElement.value = null;\n\t\t\t}\n\t\t}, listenerOptions);\n\t\tuseEventListener(document, \"pointerlockerror\", () => {\n\t\t\tvar _pointerLockElement2;\n\t\t\tconst currentElement = (_pointerLockElement2 = document.pointerLockElement) !== null && _pointerLockElement2 !== void 0 ? _pointerLockElement2 : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\tconst action = document.pointerLockElement ? \"release\" : \"acquire\";\n\t\t\t\tthrow new Error(`Failed to ${action} pointer lock.`);\n\t\t\t}\n\t\t}, listenerOptions);\n\t}\n\tasync function lock(e) {\n\t\tvar _unrefElement;\n\t\tif (!isSupported.value) throw new Error(\"Pointer Lock API is not supported by your browser.\");\n\t\ttriggerElement.value = e instanceof Event ? e.currentTarget : null;\n\t\ttargetElement = e instanceof Event ? (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : triggerElement.value : unrefElement(e);\n\t\tif (!targetElement) throw new Error(\"Target element undefined.\");\n\t\ttargetElement.requestPointerLock();\n\t\treturn await until(element).toBe(targetElement);\n\t}\n\tasync function unlock() {\n\t\tif (!element.value) return false;\n\t\tdocument.exitPointerLock();\n\t\tawait until(element).toBeNull();\n\t\treturn true;\n\t}\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\ttriggerElement,\n\t\tlock,\n\t\tunlock\n\t};\n}\n//#endregion\n//#region usePointerSwipe/index.ts\n/**\n* Reactive swipe detection based on PointerEvents.\n*\n* @see https://vueuse.org/usePointerSwipe\n* @param target\n* @param options\n*/\nfunction usePointerSwipe(target, options = {}) {\n\tconst targetRef = toRef(target);\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, disableTextSelect = false } = options;\n\tconst posStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosStart = (x, y) => {\n\t\tposStart.x = x;\n\t\tposStart.y = y;\n\t};\n\tconst posEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosEnd = (x, y) => {\n\t\tposEnd.x = x;\n\t\tposEnd.y = y;\n\t};\n\tconst distanceX = computed(() => posStart.x - posEnd.x);\n\tconst distanceY = computed(() => posStart.y - posEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst isPointerDown = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(distanceX.value) > abs(distanceY.value)) return distanceX.value > 0 ? \"left\" : \"right\";\n\t\telse return distanceY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst eventIsAllowed = (e) => {\n\t\tvar _ref, _options$pointerTypes, _options$pointerTypes2;\n\t\tconst isReleasingButton = e.buttons === 0;\n\t\tconst isPrimaryButton = e.buttons === 1;\n\t\treturn (_ref = (_options$pointerTypes = (_options$pointerTypes2 = options.pointerTypes) === null || _options$pointerTypes2 === void 0 ? void 0 : _options$pointerTypes2.includes(e.pointerType)) !== null && _options$pointerTypes !== void 0 ? _options$pointerTypes : isReleasingButton || isPrimaryButton) !== null && _ref !== void 0 ? _ref : true;\n\t};\n\tconst listenerOptions = { passive: true };\n\tconst stops = [\n\t\tuseEventListener(target, \"pointerdown\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tisPointerDown.value = true;\n\t\t\tconst eventTarget = e.target;\n\t\t\teventTarget === null || eventTarget === void 0 || eventTarget.setPointerCapture(e.pointerId);\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosStart(x, y);\n\t\t\tupdatePosEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointermove\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (!isPointerDown.value) return;\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosEnd(x, y);\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointerup\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\t\tisPointerDown.value = false;\n\t\t\tisSwiping.value = false;\n\t\t}, listenerOptions)\n\t];\n\ttryOnMounted(() => {\n\t\tvar _targetRef$value;\n\t\t(_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 || (_targetRef$value = _targetRef$value.style) === null || _targetRef$value === void 0 || _targetRef$value.setProperty(\"touch-action\", \"pan-y\");\n\t\tif (disableTextSelect) {\n\t\t\tvar _targetRef$value2, _targetRef$value3, _targetRef$value4;\n\t\t\t(_targetRef$value2 = targetRef.value) === null || _targetRef$value2 === void 0 || (_targetRef$value2 = _targetRef$value2.style) === null || _targetRef$value2 === void 0 || _targetRef$value2.setProperty(\"-webkit-user-select\", \"none\");\n\t\t\t(_targetRef$value3 = targetRef.value) === null || _targetRef$value3 === void 0 || (_targetRef$value3 = _targetRef$value3.style) === null || _targetRef$value3 === void 0 || _targetRef$value3.setProperty(\"-ms-user-select\", \"none\");\n\t\t\t(_targetRef$value4 = targetRef.value) === null || _targetRef$value4 === void 0 || (_targetRef$value4 = _targetRef$value4.style) === null || _targetRef$value4 === void 0 || _targetRef$value4.setProperty(\"user-select\", \"none\");\n\t\t}\n\t});\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping: shallowReadonly(isSwiping),\n\t\tdirection: shallowReadonly(direction),\n\t\tposStart: readonly(posStart),\n\t\tposEnd: readonly(posEnd),\n\t\tdistanceX,\n\t\tdistanceY,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePreferredColorScheme/index.ts\n/**\n* Reactive prefers-color-scheme media query.\n*\n* @see https://vueuse.org/usePreferredColorScheme\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredColorScheme(options) {\n\tconst isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n\tconst isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n\treturn computed(() => {\n\t\tif (isDark.value) return \"dark\";\n\t\tif (isLight.value) return \"light\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredContrast/index.ts\n/**\n* Reactive prefers-contrast media query.\n*\n* @see https://vueuse.org/usePreferredContrast\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredContrast(options) {\n\tconst isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n\tconst isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n\tconst isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n\treturn computed(() => {\n\t\tif (isMore.value) return \"more\";\n\t\tif (isLess.value) return \"less\";\n\t\tif (isCustom.value) return \"custom\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredLanguages/index.ts\n/**\n* Reactive Navigator Languages.\n*\n* @see https://vueuse.org/usePreferredLanguages\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredLanguages(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tif (!window) return shallowRef([\"en\"]);\n\tconst navigator = window.navigator;\n\tconst value = shallowRef(navigator.languages);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tvalue.value = navigator.languages;\n\t}, { passive: true });\n\treturn value;\n}\n//#endregion\n//#region usePreferredReducedMotion/index.ts\n/**\n* Reactive prefers-reduced-motion media query.\n*\n* @see https://vueuse.org/usePreferredReducedMotion\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedMotion(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredReducedTransparency/index.ts\n/**\n* Reactive prefers-reduced-transparency media query.\n*\n* @see https://vueuse.org/usePreferredReducedTransparency\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedTransparency(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-transparency: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePrevious/index.ts\nfunction usePrevious(value, initialValue) {\n\tconst previous = shallowRef(initialValue);\n\twatch(toRef(value), (_, oldValue) => {\n\t\tprevious.value = oldValue;\n\t}, { flush: \"sync\" });\n\treturn readonly(previous);\n}\n//#endregion\n//#region useScreenSafeArea/index.ts\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\n/**\n* Reactive `env(safe-area-inset-*)`\n*\n* @see https://vueuse.org/useScreenSafeArea\n*/\nfunction useScreenSafeArea() {\n\tconst top = shallowRef(\"\");\n\tconst right = shallowRef(\"\");\n\tconst bottom = shallowRef(\"\");\n\tconst left = shallowRef(\"\");\n\tif (isClient) {\n\t\tconst topCssVar = useCssVar(topVarName);\n\t\tconst rightCssVar = useCssVar(rightVarName);\n\t\tconst bottomCssVar = useCssVar(bottomVarName);\n\t\tconst leftCssVar = useCssVar(leftVarName);\n\t\ttopCssVar.value = \"env(safe-area-inset-top, 0px)\";\n\t\trightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n\t\tbottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n\t\tleftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n\t\ttryOnMounted(update);\n\t\tuseEventListener(\"resize\", useDebounceFn(update), { passive: true });\n\t}\n\tfunction update() {\n\t\ttop.value = getValue(topVarName);\n\t\tright.value = getValue(rightVarName);\n\t\tbottom.value = getValue(bottomVarName);\n\t\tleft.value = getValue(leftVarName);\n\t}\n\treturn {\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\tleft,\n\t\tupdate\n\t};\n}\nfunction getValue(position) {\n\treturn getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n//#endregion\n//#region useScriptTag/index.ts\n/**\n* Async script tag loading.\n*\n* @see https://vueuse.org/useScriptTag\n* @param src\n* @param onLoaded\n* @param options\n*/\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n\tconst { immediate = true, manual = false, type = \"text/javascript\", async = true, crossOrigin, referrerPolicy, noModule, defer, document = defaultDocument, attrs = {}, nonce = void 0 } = options;\n\tconst scriptTag = shallowRef(null);\n\tlet _promise = null;\n\t/**\n\t* Load the script specified via `src`.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the ","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","import '../assets/NcInputField-DpyFJ1xw.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, warn, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, withDirectives, renderSlot, vShow, createBlock, withCtx, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": __props.disabled,\n \"input-field--error\": __props.error,\n \"input-field--label-outside\": __props.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": __props.pill,\n \"input-field--success\": __props.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", __props.inputClass],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n type: __props.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n __props.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": __props.trailingButtonLabel,\n disabled: __props.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : __props.success || __props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-8e16cbb5\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField-B1bGxYHt.mjs.map\n","import { defineComponent, useModel, useTemplateRef, computed, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot, mergeModels } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi-CpchYUUV.mjs\";\nimport { r as register, b as t51, c as t18, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { N as NcInputField } from \"./NcInputField-B1bGxYHt.mjs\";\nregister(t18, t51);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n type: {},\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n __props.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n __props.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: __props.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r.mjs.map\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n","import '../assets/NcDateTimePickerNative-BP6eg8aU.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps, mergeModels } from \"vue\";\nimport { r as register, x as t40, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t40);\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\", \"type\", \"value\", \"min\", \"max\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"native-datetime-picker\", _ctx.$props.class])\n }, [\n createElementVNode(\"label\", {\n class: normalizeClass([\"native-datetime-picker__label\", { \"hidden-visually\": __props.hideLabel }]),\n for: __props.id\n }, toDisplayString(__props.label), 11, _hoisted_1),\n createElementVNode(\"input\", mergeProps({\n id: __props.id,\n class: [\"native-datetime-picker__input\", __props.inputClass],\n type: __props.type,\n value: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value\n }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)\n ], 2);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b97e1f7a\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative-BeM4WOA4.mjs.map\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createRouter, createWebHashHistory } from 'vue-router'\nimport MyLeave from './views/MyLeave.vue'\nimport Approvals from './views/Approvals.vue'\nimport Team from './views/Team.vue'\nimport HrBalances from './views/hr/HrBalances.vue'\nimport HrStatistics from './views/hr/HrStatistics.vue'\nimport HrWhosOff from './views/hr/HrWhosOff.vue'\nimport HrExports from './views/hr/HrExports.vue'\n\nconst routes = [\n\t{ path: '/', redirect: '/my' },\n\t{ path: '/my', name: 'my', component: MyLeave },\n\t{ path: '/approvals', name: 'approvals', component: Approvals },\n\t{ path: '/team', name: 'team', component: Team },\n\t{ path: '/hr/balances', name: 'hr-balances', component: HrBalances },\n\t{ path: '/hr/statistics', name: 'hr-statistics', component: HrStatistics },\n\t{ path: '/hr/whos-off', name: 'hr-whos-off', component: HrWhosOff },\n\t{ path: '/hr/exports', name: 'hr-exports', component: HrExports },\n\t// Deep link from notifications/activity: open My leave with the request selected.\n\t{ path: '/requests/:id', name: 'request', component: MyLeave, props: true },\n]\n\nexport default createRouter({\n\thistory: createWebHashHistory(),\n\troutes,\n})\n","import { computed as e, createBlock as t, createElementBlock as n, getCurrentInstance as r, h as i, inject as a, nextTick as o, normalizeStyle as s, onBeforeUnmount as c, onMounted as l, openBlock as u, provide as d, ref as f, renderSlot as p, resolveDynamicComponent as m, unref as h, useAttrs as g, useSlots as _, watch as v } from \"vue\";\n//#region src/components/splitpanes/splitpanes.vue\nvar y = /* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {\n\t__name: \"splitpanes\",\n\tprops: {\n\t\thorizontal: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tpushOtherPanes: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !0\n\t\t},\n\t\tmaximizePanes: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !0\n\t\t},\n\t\trtl: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tfirstSplitter: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tkeyboardStep: {\n\t\t\ttype: Number,\n\t\t\tdefault: 5\n\t\t}\n\t},\n\temits: [\n\t\t\"ready\",\n\t\t\"resize\",\n\t\t\"resized\",\n\t\t\"pane-click\",\n\t\t\"pane-maximize\",\n\t\t\"pane-add\",\n\t\t\"pane-remove\",\n\t\t\"splitter-click\",\n\t\t\"splitter-dblclick\",\n\t\t\"direction-changed\"\n\t],\n\tsetup(n, { emit: r }) {\n\t\tlet a = r, s = n, p = g(), h = _(), y = f([]), b = e(() => y.value.reduce((e, t) => (e[~~t.id] = t) && e, {})), x = e(() => y.value.length), S = f(null), C = f(!1), w = f({\n\t\t\tmouseDown: !1,\n\t\t\tdragging: !1,\n\t\t\tactiveSplitter: null,\n\t\t\tcursorOffset: 0\n\t\t}), T = f({\n\t\t\tsplitter: null,\n\t\t\ttimeoutId: null\n\t\t}), E = e(() => ({\n\t\t\t[`splitpanes splitpanes--${s.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n\t\t\t\"splitpanes--dragging\": w.value.dragging,\n\t\t\t\"splitpanes--ready\": C.value\n\t\t})), ee = () => {\n\t\t\tdocument.addEventListener(\"mousemove\", k, { passive: !1 }), document.addEventListener(\"mouseup\", A), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", k, { passive: !1 }), document.addEventListener(\"touchend\", A));\n\t\t}, D = () => {\n\t\t\tdocument.removeEventListener(\"mousemove\", k, { passive: !1 }), document.removeEventListener(\"mouseup\", A), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", k, { passive: !1 }), document.removeEventListener(\"touchend\", A));\n\t\t}, O = (e, t) => {\n\t\t\tlet n = e.target.closest(\".splitpanes__splitter\");\n\t\t\tif (n) {\n\t\t\t\tlet { left: t, top: r } = n.getBoundingClientRect(), { clientX: i, clientY: a } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n\t\t\t\tw.value.cursorOffset = s.horizontal ? a - r : i - t;\n\t\t\t}\n\t\t\tee(), w.value.mouseDown = !0, w.value.activeSplitter = t, document.documentElement.style.cursor = s.horizontal ? \"row-resize\" : \"col-resize\";\n\t\t}, k = (e) => {\n\t\t\tw.value.mouseDown && (e.preventDefault(), w.value.dragging || (window.getSelection()?.removeAllRanges(), w.value.dragging = !0), requestAnimationFrame(() => {\n\t\t\t\tL(F(e)), $(\"resize\", { event: e }, !0);\n\t\t\t}));\n\t\t}, A = (e) => {\n\t\t\tw.value.dragging && (window.getSelection()?.removeAllRanges(), $(\"resized\", { event: e }, !0)), w.value.mouseDown = !1, w.value.activeSplitter = null, setTimeout(() => {\n\t\t\t\tw.value.dragging = !1, D(), document.documentElement.style.cursor = \"\";\n\t\t\t}, 100);\n\t\t}, j = (e, t) => {\n\t\t\t\"ontouchstart\" in window && (e.preventDefault(), T.value.splitter === t ? (clearTimeout(T.value.timeoutId), T.value.timeoutId = null, M(e, t), T.value.splitter = null) : (T.value.splitter = t, T.value.timeoutId = setTimeout(() => T.value.splitter = null, 500))), w.value.dragging || $(\"splitter-click\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: t\n\t\t\t}, !0);\n\t\t}, M = (e, t) => {\n\t\t\tif ($(\"splitter-dblclick\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: t\n\t\t\t}, !0), s.maximizePanes) {\n\t\t\t\tlet n = 0;\n\t\t\t\ty.value = y.value.map((e, r) => (e.size = r === t ? e.max : e.min, r !== t && (n += e.min), e)), y.value[t].size -= n, $(\"pane-maximize\", {\n\t\t\t\t\tevent: e,\n\t\t\t\t\tindex: t,\n\t\t\t\t\tpane: y.value[t]\n\t\t\t\t}), $(\"resized\", {\n\t\t\t\t\tevent: e,\n\t\t\t\t\tindex: t\n\t\t\t\t}, !0);\n\t\t\t}\n\t\t}, N = (e, t) => {\n\t\t\tif (!s.keyboardStep) return;\n\t\t\tlet n = s.horizontal ? e.key === \"ArrowDown\" : e.key === \"ArrowRight\", r = s.horizontal ? e.key === \"ArrowUp\" : e.key === \"ArrowLeft\";\n\t\t\tif (!n && !r) return;\n\t\t\te.preventDefault(), w.value.activeSplitter = t;\n\t\t\tlet i = (n ? 1 : -1) * (s.rtl && !s.horizontal ? -1 : 1), a = z(t) + y.value[t].size;\n\t\t\tR(Math.min(Math.max(a + i * s.keyboardStep, 0), 100)), $(\"resize\", { event: e }, !0), $(\"resized\", { event: e }, !0), w.value.activeSplitter = null;\n\t\t}, P = (e, t) => {\n\t\t\tlet n = b.value[t];\n\t\t\tn && $(\"pane-click\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: n.index,\n\t\t\t\tpane: n\n\t\t\t});\n\t\t}, F = (e) => {\n\t\t\tlet t = S.value.getBoundingClientRect(), { clientX: n, clientY: r } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n\t\t\treturn {\n\t\t\t\tx: n - (s.horizontal ? 0 : w.value.cursorOffset) - t.left,\n\t\t\t\ty: r - (s.horizontal ? w.value.cursorOffset : 0) - t.top\n\t\t\t};\n\t\t}, I = (e) => {\n\t\t\te = e[s.horizontal ? \"y\" : \"x\"];\n\t\t\tlet t = S.value[s.horizontal ? \"clientHeight\" : \"clientWidth\"];\n\t\t\treturn s.rtl && !s.horizontal && (e = t - e), e * 100 / t;\n\t\t}, L = (e) => {\n\t\t\tR(I(e));\n\t\t}, R = (e) => {\n\t\t\tlet t = w.value.activeSplitter;\n\t\t\tif (t === null || t >= y.value.length - 1) return;\n\t\t\tlet n = {\n\t\t\t\tprevPanesSize: z(t),\n\t\t\t\tnextPanesSize: B(t),\n\t\t\t\tprevReachedMinPanes: 0,\n\t\t\t\tnextReachedMinPanes: 0\n\t\t\t}, r = 0 + (s.pushOtherPanes ? 0 : n.prevPanesSize), i = 100 - (s.pushOtherPanes ? 0 : n.nextPanesSize);\n\t\t\te = Math.max(Math.min(e, i), r);\n\t\t\tlet a = [t, t + 1], o = y.value[a[0]] || null, c = y.value[a[1]] || null, l = o !== null && o.max < 100 && e >= o.max + n.prevPanesSize, u = c !== null && c.max < 100 && e <= 100 - (c.max + B(t + 1));\n\t\t\tif (l || u) {\n\t\t\t\tl ? (o.size = o.max, c.size = Math.min(Math.max(100 - o.max - n.prevPanesSize - n.nextPanesSize, c.min), c.max)) : (o.size = Math.min(Math.max(100 - c.max - n.prevPanesSize - B(t + 1), o.min), o.max), c.size = c.max);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (s.pushOtherPanes) {\n\t\t\t\tlet t = te(n, e);\n\t\t\t\tif (!t) return;\n\t\t\t\t({sums: n, panesToResize: a} = t), o = y.value[a[0]] || null, c = y.value[a[1]] || null;\n\t\t\t}\n\t\t\to !== null && (o.size = Math.min(Math.max(e - n.prevPanesSize - n.prevReachedMinPanes, o.min), o.max)), c !== null && (c.size = Math.min(Math.max(100 - e - n.nextPanesSize - n.nextReachedMinPanes, c.min), c.max));\n\t\t}, te = (e, t) => {\n\t\t\tlet n = w.value.activeSplitter, r = [n, n + 1];\n\t\t\tif (t < e.prevPanesSize + y.value[r[0]].min) {\n\t\t\t\tif (r[0] = V(n).index, e.prevReachedMinPanes = 0, r[0] < n && y.value.forEach((t, i) => {\n\t\t\t\t\ti > r[0] && i <= n && (t.size = t.min, e.prevReachedMinPanes += t.min);\n\t\t\t\t}), r[0] === void 0) return e.prevReachedMinPanes = 0, y.value[0].size = y.value[0].min, y.value.forEach((t, r) => {\n\t\t\t\t\tr > 0 && r <= n && (t.size = t.min, e.prevReachedMinPanes += t.min);\n\t\t\t\t}), y.value[r[1]].size = 100 - e.prevReachedMinPanes - y.value[0].min - e.prevPanesSize - e.nextPanesSize, null;\n\t\t\t\te.prevPanesSize = z(r[0]);\n\t\t\t}\n\t\t\treturn t > 100 - e.nextPanesSize - y.value[r[1]].min && (r[1] = H(n).index, e.nextReachedMinPanes = 0, r[1] > n + 1 && y.value.forEach((t, i) => {\n\t\t\t\ti > n && i < r[1] && (t.size = t.min, e.nextReachedMinPanes += t.min);\n\t\t\t}), e.nextPanesSize = r[1] === void 0 ? 0 : B(r[1] - 1), r[1] === void 0) ? (e.nextReachedMinPanes = 0, y.value.forEach((t, r) => {\n\t\t\t\tr >= n + 1 && (t.size = t.min, e.nextReachedMinPanes += t.min);\n\t\t\t}), r[0] !== void 0 && (y.value[r[0]].size = 100 - e.prevPanesSize - B(r[0] - 1)), null) : {\n\t\t\t\tsums: e,\n\t\t\t\tpanesToResize: r\n\t\t\t};\n\t\t}, z = (e) => y.value.reduce((t, n, r) => t + (r < e ? n.size : 0), 0), B = (e) => y.value.reduce((t, n, r) => t + (r > e + 1 ? n.size : 0), 0), V = (e) => [...y.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, H = (e) => y.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, U = () => {\n\t\t\tlet e = Array.from(S.value?.children || []);\n\t\t\tfor (let t of e) {\n\t\t\t\tlet e = t.classList.contains(\"splitpanes__pane\"), n = t.classList.contains(\"splitpanes__splitter\");\n\t\t\t\t!e && !n && (t.remove(), console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\"));\n\t\t\t}\n\t\t}, W = (e, t, n = !1) => {\n\t\t\tlet r = e - 1, i = document.createElement(\"div\");\n\t\t\ti.classList.add(\"splitpanes__splitter\"), n || (i.onmousedown = (e) => O(e, r), typeof window < \"u\" && \"ontouchstart\" in window && (i.ontouchstart = (e) => O(e, r)), i.onclick = (e) => j(e, r + 1), s.keyboardStep && (i.setAttribute(\"tabindex\", \"0\"), i.setAttribute(\"role\", \"separator\"), i.setAttribute(\"aria-orientation\", s.horizontal ? \"horizontal\" : \"vertical\"), i.onkeydown = (e) => N(e, r))), i.ondblclick = (e) => M(e, r + 1), t.parentNode.insertBefore(i, t);\n\t\t}, G = (e) => {\n\t\t\te.onmousedown = null, e.onclick = null, e.ondblclick = null, e.onkeydown = null, e.remove();\n\t\t}, K = () => {\n\t\t\tlet e = Array.from(S.value?.children || []);\n\t\t\tfor (let t of e) t.className.includes(\"splitpanes__splitter\") && G(t);\n\t\t\tlet t = 0;\n\t\t\tfor (let n of e) n.className.includes(\"splitpanes__pane\") && (!t && s.firstSplitter ? W(t, n, !0) : t && W(t, n), t++);\n\t\t}, q = ({ uid: e, ...t }) => {\n\t\t\tlet n = b.value[e];\n\t\t\tfor (let [e, r] of Object.entries(t)) n[e] = r;\n\t\t}, J = !1, Y = (e) => {\n\t\t\tlet t = -1;\n\t\t\tArray.from(S.value?.children || []).some((n) => (n.className.includes(\"splitpanes__pane\") && t++, n.isSameNode(e.el))), y.value.splice(t, 0, {\n\t\t\t\t...e,\n\t\t\t\tindex: t\n\t\t\t}), y.value.forEach((e, t) => e.index = t), C.value && !J && (J = !0, o(() => {\n\t\t\t\tK(), Z({ addedPane: y.value[t] }), $(\"pane-add\", { pane: y.value[t] }), J = !1;\n\t\t\t}));\n\t\t}, X = (e) => {\n\t\t\tlet t = y.value.findIndex((t) => t.id === e);\n\t\t\ty.value[t].el = null;\n\t\t\tlet n = y.value.splice(t, 1)[0];\n\t\t\ty.value.forEach((e, t) => e.index = t), o(() => {\n\t\t\t\tK(), $(\"pane-remove\", { pane: n }), Z({ removedPane: {\n\t\t\t\t\t...n,\n\t\t\t\t\tindex: t\n\t\t\t\t} });\n\t\t\t});\n\t\t}, Z = (e = {}) => {\n\t\t\t!e.addedPane && !e.removedPane ? re() : y.value.some((e) => e.givenSize !== null || e.min || e.max < 100) ? ie(e) : ne(), C.value && $(\"resized\");\n\t\t}, ne = () => {\n\t\t\tlet e = 100 / x.value, t = 100, n = [], r = [];\n\t\t\tfor (let i of y.value) i.size = Math.max(Math.min(e, i.max), i.min), t -= i.size, i.size >= i.max && n.push(i.id), i.size <= i.min && r.push(i.id);\n\t\t\tMath.abs(t) > .1 && Q(t, n, r);\n\t\t}, re = () => {\n\t\t\tlet e = 100, t = [], n = [], r = 0;\n\t\t\tfor (let i of y.value) e -= i.size, i.givenSize !== null && r++, i.size >= i.max && t.push(i.id), i.size <= i.min && n.push(i.id);\n\t\t\tlet i = 100;\n\t\t\tif (e > .1) {\n\t\t\t\tfor (let t of y.value) t.givenSize === null && (t.size = Math.max(Math.min(e / (x.value - r), t.max), t.min)), i -= t.size;\n\t\t\t\ti > .1 && Q(i, t, n);\n\t\t\t}\n\t\t}, ie = ({ addedPane: e, removedPane: t } = {}) => {\n\t\t\tlet n = y.value.reduce((e, t) => e + (t.givenSize === null ? 0 : t.givenSize), 0), r = y.value.filter((e) => e.givenSize === null).length, i = r > 0 ? (100 - n) / r : 0, a = 0, o = [], s = [];\n\t\t\tfor (let e of y.value) a -= e.size, e.size >= e.max && o.push(e.id), e.size <= e.min && s.push(e.id);\n\t\t\tif (!(Math.abs(a) < .1)) {\n\t\t\t\ta = 100;\n\t\t\t\tfor (let e of y.value) e.givenSize === null && (e.size = Math.max(Math.min(i, e.max), e.min)), a -= e.size, e.size >= e.max && o.push(e.id), e.size <= e.min && s.push(e.id);\n\t\t\t\tMath.abs(a) > .1 && Q(a, o, s);\n\t\t\t}\n\t\t}, Q = (e, t, n) => {\n\t\t\tlet r;\n\t\t\tr = e > 0 ? e / (x.value - t.length) : e / (x.value - n.length), y.value.forEach((i, a) => {\n\t\t\t\tif (e > 0 && !t.includes(i.id)) {\n\t\t\t\t\tlet t = Math.max(Math.min(i.size + r, i.max), i.min), n = t - i.size;\n\t\t\t\t\te -= n, i.size = t;\n\t\t\t\t} else if (!n.includes(i.id)) {\n\t\t\t\t\tlet t = Math.max(Math.min(i.size + r, i.max), i.min), n = t - i.size;\n\t\t\t\t\te -= n, i.size = t;\n\t\t\t\t}\n\t\t\t}), Math.abs(e) > .1 && C.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n\t\t}, $ = (e, t = void 0, n = !1) => {\n\t\t\tlet r = t?.index ?? w.value.activeSplitter ?? null;\n\t\t\ta(e, {\n\t\t\t\t...t,\n\t\t\t\t...r !== null && { index: r },\n\t\t\t\t...n && r !== null && {\n\t\t\t\t\tprevPane: y.value[r - +!!s.firstSplitter],\n\t\t\t\t\tnextPane: y.value[r + +!s.firstSplitter]\n\t\t\t\t},\n\t\t\t\tpanes: y.value.map((e) => ({\n\t\t\t\t\tmin: e.min,\n\t\t\t\t\tmax: e.max,\n\t\t\t\t\tsize: e.size\n\t\t\t\t}))\n\t\t\t});\n\t\t};\n\t\tv(() => s.firstSplitter, () => K()), v(() => s.horizontal, (e) => o(() => {\n\t\t\ta(\"direction-changed\", {\n\t\t\t\thorizontal: e,\n\t\t\t\tpanes: y.value.map((e) => ({\n\t\t\t\t\tmin: e.min,\n\t\t\t\t\tmax: e.max,\n\t\t\t\t\tsize: e.size\n\t\t\t\t}))\n\t\t\t});\n\t\t})), l(() => {\n\t\t\tU(), K(), Z(), $(\"ready\"), C.value = !0;\n\t\t}), c(() => C.value = !1);\n\t\tlet ae = () => {\n\t\t\tlet { class: e, ...t } = p;\n\t\t\treturn i(\"div\", {\n\t\t\t\tref: S,\n\t\t\t\tclass: [E.value, e],\n\t\t\t\t...t\n\t\t\t}, h.default?.());\n\t\t};\n\t\treturn d(\"panes\", y), d(\"indexedPanes\", b), d(\"horizontal\", e(() => s.horizontal)), d(\"requestUpdate\", q), d(\"onPaneAdd\", Y), d(\"onPaneRemove\", X), d(\"onPaneClick\", P), (e, n) => (u(), t(m(ae)));\n\t}\n}), b = {\n\t__name: \"pane\",\n\tprops: {\n\t\tsize: { type: [Number, String] },\n\t\tminSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0\n\t\t},\n\t\tmaxSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 100\n\t\t}\n\t},\n\tsetup(t) {\n\t\tlet i = t, o = a(\"requestUpdate\"), d = a(\"onPaneAdd\"), m = a(\"horizontal\"), g = a(\"onPaneRemove\"), _ = a(\"onPaneClick\"), y = r()?.uid, b = a(\"indexedPanes\"), x = e(() => b.value[y]), S = f(null), C = e(() => {\n\t\t\tlet e = isNaN(i.size) || i.size === void 0 ? 0 : parseFloat(i.size);\n\t\t\treturn Math.max(Math.min(e, T.value), w.value);\n\t\t}), w = e(() => {\n\t\t\tlet e = parseFloat(i.minSize);\n\t\t\treturn isNaN(e) ? 0 : e;\n\t\t}), T = e(() => {\n\t\t\tlet e = parseFloat(i.maxSize);\n\t\t\treturn isNaN(e) ? 100 : e;\n\t\t}), E = e(() => {\n\t\t\tlet e = x.value?.size ?? (i.size === void 0 ? void 0 : C.value);\n\t\t\treturn e === void 0 ? \"\" : `${m.value ? \"height\" : \"width\"}: ${e}%`;\n\t\t});\n\t\treturn v(() => C.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tsize: e\n\t\t})), v(() => w.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tmin: e\n\t\t})), v(() => T.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tmax: e\n\t\t})), l(() => {\n\t\t\td({\n\t\t\t\tid: y,\n\t\t\t\tel: S.value,\n\t\t\t\tmin: w.value,\n\t\t\t\tmax: T.value,\n\t\t\t\tgivenSize: i.size === void 0 ? null : C.value,\n\t\t\t\tsize: C.value\n\t\t\t});\n\t\t}), c(() => g(y)), (e, t) => (u(), n(\"div\", {\n\t\t\tref_key: \"paneEl\",\n\t\t\tref: S,\n\t\t\tclass: \"splitpanes__pane\",\n\t\t\tonClick: t[0] ||= (t) => h(_)(t, e._.uid),\n\t\t\tstyle: s(E.value)\n\t\t}, [p(e.$slots, \"default\")], 4));\n\t}\n};\n//#endregion\nexport { b as Pane, y as Splitpanes };\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n/**\n * @param app app ID, e.g. \"mail\"\n * @param key name of the property\n * @param fallback optional parameter to use as default value\n * @throws if the key can't be found\n */\nexport function loadState(app, key, fallback) {\n const selector = `#initial-state-${app}-${key}`;\n if (window._nc_initial_state?.has(selector)) {\n return window._nc_initial_state.get(selector);\n }\n else if (!window._nc_initial_state) {\n window._nc_initial_state = new Map();\n }\n const elem = document.querySelector(selector);\n if (elem === null) {\n if (fallback !== undefined) {\n return fallback;\n }\n throw new Error(`Could not find initial state ${key} of ${app}`);\n }\n try {\n const parsedValue = JSON.parse(atob(elem.value));\n window._nc_initial_state.set(selector, parsedValue);\n return parsedValue;\n }\n catch (error) {\n console.error('[@nextcloud/initial-state] Could not parse initial state', { key, app, error });\n if (fallback !== undefined) {\n return fallback;\n }\n throw new Error(`Could not parse initial state ${key} of ${app}`, { cause: error });\n }\n}\n","import { loadState } from \"@nextcloud/initial-state\";\nimport { inject } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction once(func) {\n let wasCalled = false;\n let result;\n return (...args) => {\n if (!wasCalled) {\n wasCalled = true;\n result = func(...args);\n }\n return result;\n };\n}\nlet realAppName = \"missing-app-name\";\ntry {\n realAppName = appName;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appName`.\");\n}\nconst APP_NAME = realAppName;\nlet realAppVersion = \"\";\ntry {\n realAppVersion = appVersion;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.\");\n}\nconst APP_VERSION = realAppVersion;\nfunction useAppName() {\n return inject(\"appName\", APP_NAME);\n}\nconst useLocalizedAppName = once(() => {\n const apps = loadState(\"core\", \"apps\", []);\n const realAppName2 = useAppName();\n return apps.find(({ id }) => id === realAppName2)?.name ?? realAppName2;\n});\nexport {\n APP_VERSION as A,\n useAppName as a,\n useLocalizedAppName as u\n};\n//# sourceMappingURL=appName-DyNMVZpX.mjs.map\n","import '../assets/NcAppContent-BC7DBer3.css';\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Splitpanes, Pane } from \"splitpanes\";\nimport { defineComponent, watch, onMounted, onBeforeUnmount, openBlock, createBlock, unref, normalizeClass, withCtx, createVNode, resolveComponent, createElementBlock, toDisplayString, createCommentVNode, Fragment, withModifiers, withDirectives, createElementVNode, renderSlot, vShow } from \"vue\";\nimport { m as mdiArrowRight } from \"./mdi-CpchYUUV.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, G as t27, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as useLocalizedAppName, a as useAppName } from \"./appName-DyNMVZpX.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport \"splitpanes/dist/splitpanes.css\";\nregister(t27);\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppContentDetailsToggle\",\n setup(__props) {\n const isMobile = useIsMobile();\n watch(isMobile, toggleAppNavigationButton);\n onMounted(() => {\n toggleAppNavigationButton(isMobile.value);\n });\n onBeforeUnmount(() => {\n if (isMobile.value) {\n toggleAppNavigationButton(false);\n }\n });\n function toggleAppNavigationButton(hide = true) {\n const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n if (appNavigationToggle) {\n appNavigationToggle.style.display = hide ? \"none\" : \"\";\n if (hide === true) {\n emit(\"toggle-navigation\", { open: false });\n }\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcButton), {\n \"aria-label\": unref(t)(\"Go back to the list\"),\n class: normalizeClass([\"app-details-toggle\", { \"app-details-toggle--mobile\": unref(isMobile) }]),\n title: unref(t)(\"Go back to the list\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"class\", \"title\"]);\n };\n }\n});\nconst NcAppContentDetailsToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-a28923a1\"]]);\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst instanceName = getCapabilities().theming?.name ?? \"Nextcloud\";\nconst _sfc_main = {\n name: \"NcAppContent\",\n components: {\n NcAppContentDetailsToggle,\n Pane,\n Splitpanes\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state.\n */\n disableSwipe: {\n type: Boolean,\n default: false\n },\n /**\n * Allows you to set the default width of the resizable list in % on vertical-split\n * or respectively the default height on horizontal-split.\n *\n * Must be between `listMinWidth` and `listMaxWidth`.\n */\n listSize: {\n type: Number,\n default: 20\n },\n /**\n * Allows you to set the minimum width of the list column in % on vertical-split\n * or respectively the minimum height on horizontal-split.\n */\n listMinWidth: {\n type: Number,\n default: 15\n },\n /**\n * Allows you to set the maximum width of the list column in % on vertical-split\n * or respectively the maximum height on horizontal-split.\n */\n listMaxWidth: {\n type: Number,\n default: 40\n },\n /**\n * Specify the config key for the pane config sizes\n * Default is the global var appName if you use the webpack-vue-config\n */\n paneConfigKey: {\n type: String,\n default: \"\"\n },\n /**\n * When in mobile view, only the list or the details are shown.\n *\n * If you provide a list, you need to provide a variable\n * that will be set to true by the user when an element of\n * the list gets selected. The details will then show a back\n * arrow to return to the list that will update this prop to false.\n */\n showDetails: {\n type: Boolean,\n default: true\n },\n /**\n * Content layout used when there is a list together with content:\n * - `vertical-split` - a 2-column layout with list and default content separated vertically\n * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.\n * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally\n * On mobile screen `no-split` layout is forced.\n */\n layout: {\n type: String,\n default: \"vertical-split\",\n validator(value) {\n return [\"no-split\", \"vertical-split\", \"horizontal-split\"].includes(value);\n }\n },\n /**\n * Specify the `

` page heading\n */\n pageHeading: {\n type: String,\n default: null\n },\n /**\n * Allow setting the page's ``\n *\n * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.\n * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.\n * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`\n */\n pageTitle: {\n type: String,\n default: null\n }\n },\n emits: [\n \"update:showDetails\",\n \"resizeList\"\n ],\n setup() {\n return {\n appName: useAppName(),\n localizedAppName: useLocalizedAppName(),\n isMobile: useIsMobile(),\n isRtl\n };\n },\n data() {\n return {\n contentHeight: 0,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\") {\n return `pane-list-size-${this.paneConfigKey}`;\n }\n try {\n return `pane-list-size-${this.appName}`;\n } catch {\n logger.info(\"[NcAppContent]: falling back to global nextcloud pane config\");\n return \"pane-list-size-nextcloud\";\n }\n },\n detailsPaneSize() {\n if (this.listPaneSize) {\n return 100 - this.listPaneSize;\n }\n return this.paneDefaults.details.size;\n },\n paneDefaults() {\n return {\n list: {\n size: this.listSize,\n min: this.listMinWidth,\n max: this.listMaxWidth\n },\n // set the inverse values of the details column\n // based on the provided (or default) values of the list column\n details: {\n size: 100 - this.listSize,\n min: 100 - this.listMaxWidth,\n max: 100 - this.listMinWidth\n }\n };\n },\n realPageTitle() {\n const entries = /* @__PURE__ */ new Set();\n if (this.pageTitle) {\n for (const part of this.pageTitle.split(\" - \")) {\n entries.add(part);\n }\n } else if (this.pageHeading) {\n for (const part of this.pageHeading.split(\" - \")) {\n entries.add(part);\n }\n if (entries.size > 0) {\n entries.add(this.localizedAppName);\n }\n } else {\n return null;\n }\n entries.add(instanceName);\n return [...entries.values()].join(\" - \");\n }\n },\n watch: {\n realPageTitle: {\n immediate: true,\n handler() {\n if (this.realPageTitle !== null) {\n document.title = this.realPageTitle;\n }\n }\n },\n paneConfigKey: {\n immediate: true,\n handler() {\n this.restorePaneConfig();\n }\n }\n },\n mounted() {\n if (!this.disableSwipe) {\n this.swiping = useSwipe(this.$el, {\n onSwipeEnd: this.handleSwipe\n });\n }\n this.restorePaneConfig();\n },\n methods: {\n /**\n * handle the swipe event\n *\n * @param {TouchEvent} e The touch event\n * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n */\n handleSwipe(e, direction) {\n const minSwipeX = 70;\n const touchZone = 300;\n if (Math.abs(this.swiping.lengthX) > minSwipeX) {\n if (this.swiping.coordsStart.x < touchZone / 2 && direction === \"right\") {\n emit(\"toggle-navigation\", {\n open: true\n });\n } else if (this.swiping.coordsStart.x < touchZone * 1.5 && direction === \"left\") {\n emit(\"toggle-navigation\", {\n open: false\n });\n }\n }\n },\n handlePaneResize(event) {\n const listPaneSize = parseInt(event.panes[0].size, 10);\n browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n this.listPaneSize = listPaneSize;\n this.$emit(\"resizeList\", { size: listPaneSize });\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n },\n // browserStorage is not reactive, we need to update this manually\n restorePaneConfig() {\n const listPaneSize = parseInt(browserStorage.getItem(this.paneConfigID), 10);\n if (!isNaN(listPaneSize) && listPaneSize !== this.listPaneSize) {\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n this.listPaneSize = listPaneSize;\n return listPaneSize;\n }\n },\n /**\n * The user clicked the back arrow from the details view\n */\n hideDetails() {\n this.$emit(\"update:showDetails\", false);\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"hidden-visually\"\n};\nconst _hoisted_2 = { class: \"app-content-wrapper__list\" };\nconst _hoisted_3 = {\n key: 1,\n class: \"app-content-wrapper\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppContentDetailsToggle = resolveComponent(\"NcAppContentDetailsToggle\");\n const _component_Pane = resolveComponent(\"Pane\");\n const _component_Splitpanes = resolveComponent(\"Splitpanes\");\n return openBlock(), createElementBlock(\"main\", {\n id: \"app-content-vue\",\n class: normalizeClass([\"app-content no-snapper\", { \"app-content--has-list\": !!_ctx.$slots.list }])\n }, [\n $props.pageHeading ? (openBlock(), createElementBlock(\"h1\", _hoisted_1, toDisplayString($props.pageHeading), 1)) : createCommentVNode(\"\", true),\n !!_ctx.$slots.list ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n $setup.isMobile || $props.layout === \"no-split\" ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-content-wrapper app-content-wrapper--no-split\", {\n \"app-content-wrapper--show-details\": $props.showDetails,\n \"app-content-wrapper--show-list\": !$props.showDetails,\n \"app-content-wrapper--mobile\": $setup.isMobile\n }])\n }, [\n $props.showDetails ? (openBlock(), createBlock(_component_NcAppContentDetailsToggle, {\n key: 0,\n onClick: withModifiers($options.hideDetails, [\"stop\", \"prevent\"])\n }, null, 8, [\"onClick\"])) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ], 512), [\n [vShow, !$props.showDetails]\n ]),\n $props.showDetails ? renderSlot(_ctx.$slots, \"default\", { key: 1 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2)) : $props.layout === \"vertical-split\" || $props.layout === \"horizontal-split\" ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_Splitpanes, {\n horizontal: $props.layout === \"horizontal-split\",\n class: normalizeClass([\"default-theme\", {\n \"splitpanes--horizontal\": $props.layout === \"horizontal-split\",\n \"splitpanes--vertical\": $props.layout === \"vertical-split\"\n }]),\n rtl: $setup.isRtl,\n onResized: $options.handlePaneResize\n }, {\n default: withCtx(() => [\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-list\",\n size: $data.listPaneSize || $options.paneDefaults.list.size,\n minSize: $options.paneDefaults.list.min,\n maxSize: $options.paneDefaults.list.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"minSize\", \"maxSize\"]),\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-details\",\n size: $options.detailsPaneSize,\n minSize: $options.paneDefaults.details.min,\n maxSize: $options.paneDefaults.details.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"minSize\", \"maxSize\"])\n ]),\n _: 3\n }, 8, [\"horizontal\", \"class\", \"rtl\", \"onResized\"])\n ])) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n !_ctx.$slots.list ? renderSlot(_ctx.$slots, \"default\", { key: 2 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcAppContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-ea1e6879\"]]);\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent--92JdjRr.mjs.map\n","import '../assets/NcAppNavigationList--36j6Acm.css';\nimport { openBlock, createElementBlock, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationList\"\n};\nconst _hoisted_1 = { class: \"app-navigation-list\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n}\nconst NcAppNavigationList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d72957ed\"]]);\nexport {\n NcAppNavigationList as N\n};\n//# sourceMappingURL=NcAppNavigationList-CGSWabRB.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst HAS_APP_NAVIGATION_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:setHasAppNavigation\");\nconst CONTENT_SELECTOR_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:selector\");\nexport {\n CONTENT_SELECTOR_KEY as C,\n HAS_APP_NAVIGATION_KEY as H\n};\n//# sourceMappingURL=constants-Ciwvl5xb.mjs.map\n","import '../assets/NcAppNavigation-2b1jxOXM.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, createVNode, unref, withCtx, inject, warn, useTemplateRef, ref, watchEffect, watch, onMounted, onUnmounted, normalizeClass, createElementVNode, withKeys, renderSlot, createBlock, createCommentVNode } from \"vue\";\nimport { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcAppNavigationList } from \"./NcAppNavigationList-CGSWabRB.mjs\";\nimport { G as mdiMenuOpen, H as mdiMenu } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { r as register, P as t20, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY } from \"./constants-Ciwvl5xb.mjs\";\nregister(t20);\nconst _hoisted_1$1 = { class: \"app-navigation-toggle-wrapper\" };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationToggle\",\n props: {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n },\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const title = computed(() => open.value ? t(\"Close navigation\") : t(\"Open navigation\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(unref(NcButton), {\n class: \"app-navigation-toggle\",\n \"aria-controls\": \"app-navigation-vue\",\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-label\": title.value,\n title: title.value,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: open.value ? unref(mdiMenuOpen) : unref(mdiMenu)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-expanded\", \"aria-label\", \"title\"])\n ]);\n };\n }\n});\nconst NcAppNavigationToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-5a15295d\"]]);\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"inert\"];\nconst _hoisted_2 = { class: \"app-navigation__search\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigation\",\n props: {\n ariaLabel: {},\n ariaLabelledby: {}\n },\n setup(__props) {\n const props = __props;\n let focusTrap;\n const setHasAppNavigation = inject(\n HAS_APP_NAVIGATION_KEY,\n () => warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n false\n );\n const appNavigationContainerElement = useTemplateRef(\"appNavigationContainer\");\n const isMobile = useIsMobile();\n const open = ref(!isMobile.value);\n watchEffect(() => {\n if (!props.ariaLabel && !props.ariaLabelledby) {\n warn(\"NcAppNavigation requires either `ariaLabel` or `ariaLabelledby` to be set for accessibility.\");\n }\n });\n watch(isMobile, () => {\n open.value = !isMobile.value;\n });\n watch(open, () => {\n toggleFocusTrap();\n });\n onMounted(() => {\n setHasAppNavigation(true);\n subscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n emit(\"navigation-toggled\", {\n open: open.value\n });\n focusTrap = createFocusTrap(appNavigationContainerElement.value, {\n allowOutsideClick: true,\n clickOutsideDeactivates: () => {\n if (isMobile.value) {\n focusTrap.deactivate({ returnFocus: false });\n toggleNavigation(false);\n }\n return false;\n },\n fallbackFocus: appNavigationContainerElement.value,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n toggleFocusTrap();\n });\n onUnmounted(() => {\n setHasAppNavigation(false);\n unsubscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n focusTrap.deactivate();\n });\n function toggleNavigation(state) {\n if (open.value === state) {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n return;\n }\n open.value = state === void 0 ? !open.value : state;\n const bodyStyles = getComputedStyle(document.body);\n const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n }, 1.5 * animationLength);\n }\n function toggleNavigationByEventBus({ open: open2 }) {\n return toggleNavigation(open2);\n }\n function toggleFocusTrap() {\n if (isMobile.value && open.value) {\n focusTrap.activate();\n } else {\n focusTrap.deactivate();\n }\n }\n function handleEsc() {\n if (isMobile.value) {\n toggleNavigation(false);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"appNavigationContainer\",\n class: normalizeClass([\"app-navigation\", {\n \"app-navigation--closed\": !open.value,\n \"app-navigation--legacy\": unref(isLegacy34)\n }])\n }, [\n createElementVNode(\"nav\", {\n id: \"app-navigation-vue\",\n \"aria-hidden\": open.value ? \"false\" : \"true\",\n \"aria-label\": __props.ariaLabel || void 0,\n \"aria-labelledby\": __props.ariaLabelledby || void 0,\n class: \"app-navigation__content\",\n inert: !open.value || void 0,\n onKeydown: withKeys(handleEsc, [\"esc\"])\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"search\", {}, void 0, true)\n ]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation__body\", { \"app-navigation__body--no-list\": !_ctx.$slots.list }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2),\n _ctx.$slots.list ? (openBlock(), createBlock(NcAppNavigationList, {\n key: 0,\n class: \"app-navigation__list\"\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ], 40, _hoisted_1),\n createVNode(NcAppNavigationToggle, {\n open: open.value,\n \"onUpdate:open\": toggleNavigation\n }, null, 8, [\"open\"])\n ], 2);\n };\n }\n});\nconst NcAppNavigation = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-104ef656\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-Bb9-C2eO.mjs.map\n","import '../assets/NcAppNavigationCaption-ggcWspH2.css';\nimport { N as NcActions } from \"./NcActions-DY4GGONi.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, createTextVNode, toDisplayString, createElementBlock, createVNode, normalizeProps, guardReactiveProps, renderSlot, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationCaption\",\n components: {\n NcActions\n },\n props: {\n /**\n * The text of the caption\n */\n name: {\n type: String,\n required: true\n },\n /**\n * `id` to set on the inner caption\n * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n */\n headingId: {\n type: String,\n default: null\n },\n /**\n * Enable when used as a heading\n * e.g. Before NcAppNavigationList\n */\n isHeading: {\n type: Boolean,\n default: false\n },\n /**\n * If `isHeading` is set, this defines the heading level that should be used\n */\n headingLevel: {\n type: Number,\n default: 2\n },\n /**\n * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n ...NcActions.props\n },\n computed: {\n actionsProps() {\n const actionProps = Object.keys(NcActions.props);\n const props = Object.entries(this.$props).filter(([key, _value]) => actionProps.includes(key));\n return Object.fromEntries(props);\n },\n wrapperTag() {\n return this.isHeading ? \"div\" : \"li\";\n },\n captionTag() {\n const headingLevel = Math.max(2, this.headingLevel);\n return this.isHeading ? `h${headingLevel}` : \"span\";\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"app-navigation-caption__actions\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($options.wrapperTag), {\n class: normalizeClass([\"app-navigation-caption\", { \"app-navigation-caption--heading\": $props.isHeading }])\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent($options.captionTag), {\n id: $props.headingId,\n class: \"app-navigation-caption__name\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"id\"])),\n !!_ctx.$slots.actions ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcActions, normalizeProps(guardReactiveProps($options.actionsProps)), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"actionsTriggerIcon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 16)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"class\"]);\n}\nconst NcAppNavigationCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f0e411c2\"]]);\nexport {\n NcAppNavigationCaption as N\n};\n//# sourceMappingURL=NcAppNavigationCaption-BptTnvQU.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronUpIcon\",\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 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" };\nconst _hoisted_4 = { 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 chevron-up-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 $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronUp = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronUp as C\n};\n//# sourceMappingURL=ChevronUp-ChH8oB7p.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ArrowRightIcon\",\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 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" };\nconst _hoisted_4 = { 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 arrow-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, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconArrowRight = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconArrowRight as I\n};\n//# sourceMappingURL=ArrowRight-B1ncAhus.mjs.map\n","import '../assets/NcInputConfirmCancel-BEmwC87z.css';\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { r as register, k as t14, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, withKeys, withDirectives, vModelText, createVNode, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t14);\nconst _sfc_main = {\n name: \"NcInputConfirmCancel\",\n components: {\n IconArrowRight,\n IconClose,\n NcButton\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: false,\n type: Boolean\n },\n /**\n * Placeholder of the edit field\n */\n placeholder: {\n default: \"\",\n type: String\n },\n /**\n * The current name (model value)\n */\n modelValue: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"cancel\",\n \"confirm\",\n \"update:modelValue\"\n ],\n data() {\n return {\n labelConfirm: t(\"Confirm changes\"),\n labelCancel: t(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.modelValue;\n },\n set(newValue) {\n this.$emit(\"update:modelValue\", newValue);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nconst _hoisted_1 = [\"placeholder\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-input-confirm\", { \"app-navigation-input-confirm--legacy\": $setup.isLegacy34 }])\n }, [\n createElementVNode(\"form\", {\n onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.confirm && $options.confirm(...args), [\"prevent\"])),\n onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.cancel && $options.cancel(...args), [\"exact\", \"stop\", \"prevent\"]), [\"esc\"])),\n onClick: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\", \"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $options.valueModel = $event),\n type: \"text\",\n class: \"app-navigation-input-confirm__input\",\n placeholder: $props.placeholder\n }, null, 8, _hoisted_1), [\n [vModelText, $options.valueModel]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelConfirm,\n type: \"submit\",\n variant: \"primary\",\n onClick: withModifiers($options.confirm, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelCancel,\n type: \"reset\",\n variant: $props.primary ? \"primary\" : \"tertiary\",\n onClick: withModifiers($options.cancel, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"variant\", \"onClick\"])\n ], 32)\n ], 2);\n}\nconst NcInputConfirmCancel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a8724c7f\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-B6qC3s63.mjs.map\n","import '../assets/NcAppNavigationItem-BsuZoJAq.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, withKeys, withModifiers, renderSlot, createVNode, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-C6gc637b.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-ChH8oB7p.mjs\";\nimport { r as register, N as t21, a as t, b as t51, O as t23 } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-B6qC3s63.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActions } from \"./NcActions-DY4GGONi.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { _ as _sfc_main$4 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nconst _sfc_main$3 = {\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$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { 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$2 = { 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 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$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$2);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\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$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { 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$1 = { 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$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$1);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t21);\nconst _sfc_main$1 = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton,\n ChevronDown,\n ChevronUp\n },\n setup() {\n return { isLegacy34 };\n },\n props: {\n /**\n * Is the list currently open (or collapsed)\n */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Is the navigation item currently active.\n */\n active: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? t(\"Collapse menu\") : t(\"Open menu\");\n }\n },\n methods: {\n onClick(e) {\n this.$emit(\"click\", e);\n }\n }\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createBlock(_component_NcButton, {\n class: normalizeClass([\"icon-collapse\", {\n \"icon-collapse--active\": $props.active,\n \"icon-collapse--open\": $props.open\n }]),\n \"aria-label\": $options.labelButton,\n variant: $props.active && $setup.isLegacy34 ? \"tertiary-on-primary\" : \"tertiary\",\n onClick: $options.onClick\n }, {\n icon: withCtx(() => [\n $props.open ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"class\", \"aria-label\", \"variant\", \"onClick\"]);\n}\nconst NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-acf5ed2f\"]]);\nregister(t23, t51);\nconst _sfc_main = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions,\n NcActionButton,\n NcAppNavigationIconCollapsible,\n NcInputConfirmCancel,\n NcLoadingIcon,\n NcVNodes: _sfc_main$4,\n Pencil,\n Undo\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: false\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Passing in a route will make the root element of this\n * component a `<router-link />` that points to that route.\n * By leaving this blank, the root element will be a `<li>`.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: false\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: false\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: false\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: false\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: useIsMobile(),\n isLegacy34\n };\n },\n data() {\n return {\n actionsBoundariesElement: void 0,\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: false,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: false,\n focused: false\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n if (this.$parent.$options._componentTag === \"AppNavigationItem\") {\n return false;\n } else {\n return true;\n }\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : t(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return t(\"Undo changes\");\n }\n },\n watch: {\n open(newVal) {\n this.opened = newVal;\n }\n },\n mounted() {\n this.actionsBoundariesElement = document.querySelector(\"#content-vue\") || void 0;\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(state) {\n this.$emit(\"update:menuOpen\", state);\n this.menuOpenLocalValue = state;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened;\n this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name;\n this.editingActive = true;\n this.onMenuToggle(false);\n this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = false;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue);\n this.editingValue = \"\";\n this.editingActive = false;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = true;\n },\n handleBlur() {\n this.focused = false;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(e) {\n if (!this.$refs.actions) {\n return;\n }\n if (this.focused) {\n e.preventDefault();\n this.$refs.actions.$refs.triggerButton.$el.focus();\n this.focused = false;\n } else {\n this.$refs.actions.$refs.triggerButton.$el.blur();\n }\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(href) {\n return href && href.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-current\", \"aria-description\", \"aria-expanded\", \"href\", \"target\", \"title\", \"onClick\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"editingContainer\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"app-navigation-entry__deleted\"\n};\nconst _hoisted_5 = { class: \"app-navigation-entry__deleted-description\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"app-navigation-entry__counter-wrapper\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"app-navigation-entry__children\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcInputConfirmCancel = resolveComponent(\"NcInputConfirmCancel\");\n const _component_Pencil = resolveComponent(\"Pencil\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_Undo = resolveComponent(\"Undo\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcAppNavigationIconCollapsible = resolveComponent(\"NcAppNavigationIconCollapsible\");\n return openBlock(), createElementBlock(\"li\", {\n id: $props.id,\n class: normalizeClass([{\n \"app-navigation-entry--opened\": $data.opened,\n \"app-navigation-entry--pinned\": $props.pinned,\n \"app-navigation-entry--collapsible\": $props.allowCollapse && !!_ctx.$slots.default\n }, \"app-navigation-entry-wrapper\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry\", {\n \"app-navigation-entry--editing\": $data.editingActive,\n \"app-navigation-entry--deleted\": $props.undo,\n \"app-navigation-entry--legacy\": $setup.isLegacy34,\n active: $props.to && isActive || $props.active\n }])\n }, [\n !$props.undo ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n class: \"app-navigation-entry-link\",\n \"aria-current\": $props.active || $props.to && isActive ? \"page\" : void 0,\n \"aria-description\": $props.ariaDescription,\n \"aria-expanded\": !!_ctx.$slots.default ? $data.opened.toString() : void 0,\n href: $props.href || routerLinkHref || \"#\",\n target: $options.isExternal($props.href) ? \"_blank\" : void 0,\n title: $props.title || $props.name,\n onBlur: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.handleTab && $options.handleTab(...args), [\"exact\"]), [\"tab\"]))\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry-icon\", { [$props.icon]: $props.icon }])\n }, [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : renderSlot(_ctx.$slots, \"icon\", {\n key: 1,\n active: $props.active || $props.to && isActive\n }, void 0, true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass([\"app-navigation-entry__name\", { \"hidden-visually\": $data.editingActive }])\n }, toDisplayString($props.name), 3),\n $data.editingActive ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_NcInputConfirmCancel, {\n ref: \"editingInput\",\n modelValue: $data.editingValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.editingValue = $event),\n placeholder: $props.editPlaceholder !== \"\" ? $props.editPlaceholder : $props.name,\n primary: $props.to && isActive || $props.active,\n onCancel: $options.cancelEditing,\n onConfirm: $options.handleEditingDone\n }, null, 8, [\"modelValue\", \"placeholder\", \"primary\", \"onCancel\", \"onConfirm\"])\n ])) : createCommentVNode(\"\", true)\n ], 40, _hoisted_2)) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, toDisplayString($props.name), 1)\n ])) : createCommentVNode(\"\", true),\n (!!_ctx.$slots.actions || !!_ctx.$slots.counter || $props.editable || $props.undo) && !$data.editingActive ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"app-navigation-entry__utils\", { \"app-navigation-entry__utils--display-actions\": $props.forceDisplayActions || $data.menuOpenLocalValue || $props.menuOpen }])\n }, [\n !!_ctx.$slots.counter ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"counter\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n !!_ctx.$slots.actions || $props.editable && !$data.editingActive || $props.undo ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n class: \"app-navigation-entry__actions\",\n container: \"#app-navigation-vue\",\n boundariesElement: $data.actionsBoundariesElement,\n inline: $props.inlineActions,\n placement: $props.menuPlacement,\n open: $props.menuOpen,\n forceMenu: $props.forceMenu,\n defaultIcon: $props.menuIcon,\n variant: \"tertiary\",\n \"onUpdate:open\": $options.onMenuToggle\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n $props.editable && !$data.editingActive ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 0,\n \"aria-label\": $options.editButtonAriaLabel,\n onClick: $options.handleEdit\n }, {\n icon: withCtx(() => [\n createVNode(_component_Pencil, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.editLabel), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 1,\n \"aria-label\": $options.undoButtonAriaLabel,\n onClick: $options.handleUndo\n }, {\n icon: withCtx(() => [\n createVNode(_component_Undo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"boundariesElement\", \"inline\", \"placement\", \"open\", \"forceMenu\", \"defaultIcon\", \"onUpdate:open\"])) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true),\n $props.allowCollapse && !!_ctx.$slots.default ? (openBlock(), createBlock(_component_NcAppNavigationIconCollapsible, {\n key: 3,\n active: $props.to && isActive || $props.active,\n open: $data.opened,\n onClick: withModifiers($options.toggleCollapse, [\"prevent\", \"stop\"])\n }, null, 8, [\"active\", \"open\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ], 2)\n ]),\n _: 3\n }, 16)),\n $options.canHaveChildren && !!_ctx.$slots.default ? (openBlock(), createElementBlock(\"ul\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1);\n}\nconst NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e4d562ae\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-B0-60shw.mjs.map\n","import '../assets/NcAppNavigationNew-Bn8zj5lM.css';\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, createTextVNode, toDisplayString, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n components: {\n NcButton\n },\n props: {\n /**\n * Id of the button\n */\n buttonId: {\n type: String,\n required: false,\n default: \"\"\n },\n /**\n * Disabled state of the button\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Main text of the button\n */\n text: {\n type: String,\n required: true\n },\n /**\n * The color variant to use.\n *\n * @default 'primary'\n */\n variant: {\n type: String,\n default: \"primary\",\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\"].indexOf(value) !== -1;\n }\n }\n },\n emits: [\"click\"]\n};\nconst _hoisted_1 = { class: \"app-navigation-new\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcButton, {\n id: $props.buttonId,\n disabled: $props.disabled,\n variant: $props.variant,\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\"))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.text), 1)\n ]),\n _: 3\n }, 8, [\"id\", \"disabled\", \"variant\"])\n ]);\n}\nconst NcAppNavigationNew = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0ba6c9df\"]]);\nexport {\n NcAppNavigationNew as N\n};\n//# sourceMappingURL=NcAppNavigationNew-Dspn3-4i.mjs.map\n","import '../assets/NcContent-DX4Rs6Pc.css';\nimport { defineComponent, provide, computed, ref, onBeforeMount, openBlock, createElementBlock, normalizeClass, unref, createBlock, Teleport, createElementVNode, toDisplayString, withDirectives, createVNode, withModifiers, withCtx, createTextVNode, vShow, renderSlot, nextTick } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, H as t30, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY, C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t30);\nconst contentSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst navigationSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst _hoisted_1 = { class: \"vue-skip-actions__container\" };\nconst _hoisted_2 = { class: \"vue-skip-actions__headline\" };\nconst _hoisted_3 = { class: \"vue-skip-actions__buttons\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcContent\",\n props: {\n appName: {}\n },\n setup(__props) {\n const props = __props;\n provide(HAS_APP_NAVIGATION_KEY, setAppNavigation);\n provide(CONTENT_SELECTOR_KEY, \"#content-vue\");\n provide(\"appName\", computed(() => props.appName));\n const isMobile = useIsMobile();\n const hasAppNavigation = ref(false);\n const currentFocus = ref();\n const currentImage = computed(() => currentFocus.value === \"navigation\" ? navigationSvg : contentSvg);\n onBeforeMount(() => {\n const container = document.getElementById(\"skip-actions\");\n if (container) {\n container.innerHTML = \"\";\n container.classList.add(\"vue-skip-actions\");\n }\n });\n function openAppNavigation() {\n emit(\"toggle-navigation\", { open: true });\n nextTick(() => {\n window.location.hash = \"app-navigation-vue\";\n document.getElementById(\"app-navigation-vue\").focus();\n });\n }\n function setAppNavigation(value) {\n hasAppNavigation.value = value;\n if (!currentFocus.value) {\n currentFocus.value = \"navigation\";\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: \"content-vue\",\n class: normalizeClass([\"content\", [`app-${__props.appName.toLowerCase()}`, { \"content--legacy\": unref(isLegacy34) }]])\n }, [\n (openBlock(), createBlock(Teleport, { to: \"#skip-actions\" }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, toDisplayString(unref(t)(\"Keyboard navigation help\")), 1),\n createElementVNode(\"div\", _hoisted_3, [\n withDirectives(createVNode(NcButton, {\n href: \"#app-navigation-vue\",\n variant: \"tertiary\",\n onClick: withModifiers(openAppNavigation, [\"prevent\"]),\n onFocusin: _cache[0] || (_cache[0] = ($event) => currentFocus.value = \"navigation\"),\n onMouseover: _cache[1] || (_cache[1] = ($event) => currentFocus.value = \"navigation\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to app navigation\")), 1)\n ]),\n _: 1\n }, 512), [\n [vShow, hasAppNavigation.value]\n ]),\n createVNode(NcButton, {\n href: \"#app-content-vue\",\n variant: \"tertiary\",\n onFocusin: _cache[2] || (_cache[2] = ($event) => currentFocus.value = \"content\"),\n onMouseover: _cache[3] || (_cache[3] = ($event) => currentFocus.value = \"content\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to main content\")), 1)\n ]),\n _: 1\n })\n ]),\n withDirectives(createVNode(NcIconSvgWrapper, {\n class: \"vue-skip-actions__image\",\n svg: currentImage.value,\n size: \"auto\"\n }, null, 8, [\"svg\"]), [\n [vShow, !unref(isMobile)]\n ])\n ])\n ])),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2);\n };\n }\n});\nconst NcContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d13dcb98\"]]);\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-BhMoPROW.mjs.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon calendar-account-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19M12 10C14 10 15 12.42 13.59 13.84C12.17 15.26 9.75 14.25 9.75 12.25C9.75 11 10.75 10 12 10M16.5 17.88V18H7.5V17.88C7.5 16.63 9.5 15.63 12 15.63S16.5 16.63 16.5 17.88Z\">\n <title v-if=\"title\">{{ title }}\n \n \n \n\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","import '../assets/NcTextArea-BxGe3Lqn.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, createBlock, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"textarea__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcTextArea\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n placeholder: { default: void 0 },\n resize: { default: \"both\" },\n success: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const textAreaElement = useTemplateRef(\"input\");\n const internalPlaceholder = computed(() => props.placeholder || (isLegacy ? props.label : void 0));\n watch(() => props.labelOutside, () => {\n if (!props.labelOutside && !props.label) {\n logger.warn(\"[NcTextArea] You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (typeof attrs[\"aria-describedby\"] === \"string\") {\n ariaDescribedby2.push(attrs[\"aria-describedby\"]);\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function handleInput(event) {\n const { value } = event.target;\n modelValue.value = value;\n }\n function focus(options) {\n textAreaElement.value.focus(options);\n }\n function select() {\n textAreaElement.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"textarea\", [\n _ctx.$attrs.class,\n {\n \"textarea--disabled\": __props.disabled,\n \"textarea--legacy\": unref(isLegacy)\n }\n ]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"textarea\", mergeProps({ ..._ctx.$attrs, class: void 0 }, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"textarea__input\", [\n __props.inputClass,\n {\n \"textarea__input--label-outside\": __props.labelOutside,\n \"textarea__input--legacy\": unref(isLegacy),\n \"textarea__input--success\": __props.success,\n \"textarea__input--error\": __props.error\n }\n ]],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n style: { resize: __props.resize },\n value: modelValue.value,\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"textarea__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: normalizeClass([\"textarea__helper-text-message\", {\n \"textarea__helper-text-message--error\": __props.error,\n \"textarea__helper-text-message--success\": __props.success\n }])\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcTextArea = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d327fb49\"]]);\nexport {\n NcTextArea as N\n};\n//# sourceMappingURL=NcTextArea-Dxzj4zdb.mjs.map\n","\n\n","\n\n\n\n\n\n","const directive = {\n mounted(el) {\n el.focus();\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token = null) {\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State][]} jr */\n this.jr = [];\n /** @type {?State} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly = false) {\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n Object.assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // (\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // )\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // <\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // >\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes = []) {\n // Frequently used states (name argument removed during minification)\n /** @type Collections */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, '(', FULLWIDTHLEFTPAREN);\n tt(Start, ')', FULLWIDTHRIGHTPAREN);\n tt(Start, '「', LEFTCORNERBRACKET);\n tt(Start, '」', RIGHTCORNERBRACKET);\n tt(Start, '『', LEFTWHITECORNERBRACKET);\n tt(Start, '』', RIGHTWHITECORNERBRACKET);\n tt(Start, '<', FULLWIDTHLESSTHAN);\n tt(Start, '>', FULLWIDTHGREATERTHAN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n tt(Start, '・', FULLWIDTHMIDDLEDOT);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n [asciinumeric]: true\n });\n const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n [alphanumeric]: true\n });\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, DIGIT, Asciinumeric);\n tr(Word, ASCII_LETTER, Word);\n tr(Asciinumeric, DIGIT, Asciinumeric);\n tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, DIGIT, Alphanumeric);\n tr(UWord, LETTER, UWord);\n tr(Alphanumeric, DIGIT, Alphanumeric);\n tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Nl = tt(Start, LF, NL, {\n [whitespace]: true\n });\n const Cr = tt(Start, CR, WS, {\n [whitespace]: true\n });\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, OBJECT_REPLACEMENT, Ws);\n tt(Cr, LF, Nl); // \\r\\n\n tt(Cr, OBJECT_REPLACEMENT, Ws);\n tr(Cr, SPACE, Ws);\n tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tt(Emoji, '#'); // no transition, emoji regex seems to match #\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tt(EmojiJoiner, '#');\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: Object.assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender = null) {\n let o = Object.assign({}, defaults);\n if (opts) {\n o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol = defaults.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n Object.assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme = defaults.defaultProtocol) {\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\nfunction init$1({\n groups\n}) {\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n tt(DomainHyphen, HYPHEN, DomainHyphen);\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n tt(SchemeColon, QUERY, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n // {}\n [OPENBRACKET, CLOSEBRACKET],\n // []\n [OPENPAREN, CLOSEPAREN],\n // ()\n [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n // <>\n [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n // ()\n [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n // 「」\n [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n // 『』\n [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // <>\n ];\n for (let i = 0; i < bracketPairs.length; i++) {\n const [OPEN, CLOSE] = bracketPairs[i];\n const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n // Continue not accepting for open brackets\n tt(UrlNonaccept, OPEN, UrlOpen);\n\n // URL that begins with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpen` (if the URL has a\n // single opening bracket for some reason).\n const UrlOpenQ = makeState(Url);\n ta(UrlOpen, qsAccepting, UrlOpenQ);\n const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n ta(UrlOpen, qsNonAccepting, UrlOpenSyms);\n\n // Closing bracket component. This character WILL be included in the URL.\n // Must come after qsNonAccepting (which includes all close-bracket tokens)\n // so that CLOSE -> Url wins over CLOSE -> UrlOpenSyms.\n tt(UrlOpen, CLOSE, Url$1);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenQ, CLOSE, Url$1);\n tt(UrlOpenSyms, CLOSE, Url$1);\n }\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n return INIT;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n return INIT;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n */\nfunction find(str, type = null, opts = null) {\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type) && options.check(token)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type = null) {\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, multi as text, tokenize };\n","import escapeHTML from \"escape-html\";\nimport { Options, tokenize } from \"linkifyjs\";\nfunction linkifyString(str) {\n const options = new Options({\n defaultProtocol: \"https\",\n target: \"_blank\",\n className: \"external linkified\",\n attributes: {\n rel: \"nofollow noopener noreferrer\"\n }\n }, defaultRender);\n const tokens = tokenize(str);\n const result = [];\n for (const token of tokens) {\n if (token.t === \"nl\" && options.get(\"nl2br\")) {\n result.push(\"
\\n\");\n } else if (!token.isLink || !options.check(token)) {\n result.push(escapeHTML(token.toString()));\n } else {\n result.push(options.render(token));\n }\n }\n return result.join(\"\");\n}\nfunction escapeAttr(href) {\n return href.replace(/\"/g, \""\");\n}\nfunction attributesToString(attributes) {\n const result = [];\n for (const attr in attributes) {\n const val = attributes[attr] + \"\";\n result.push(`${attr}=\"${escapeAttr(val)}\"`);\n }\n return result.join(\" \");\n}\nfunction defaultRender({ tagName, attributes, content }) {\n return `<${tagName} ${attributesToString(attributes)}>${escapeHTML(content)}`;\n}\nconst directive = function(el, { value }) {\n if (value?.linkify === true) {\n el.innerHTML = linkifyString(value.text);\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, inject, withDirectives, openBlock, createElementBlock, createTextVNode, toDisplayString, unref } from \"vue\";\nimport directive from \"../directives/Linkify/index.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarHeader\",\n props: {\n name: {},\n title: {},\n linkify: { type: Boolean }\n },\n setup(__props) {\n const headerRef = inject(\"NcAppSidebar:header:ref\");\n return (_ctx, _cache) => {\n return withDirectives((openBlock(), createElementBlock(\"h2\", {\n ref_key: \"headerRef\",\n ref: headerRef,\n tabindex: \"-1\",\n title: __props.title\n }, [\n createTextVNode(toDisplayString(__props.name), 1)\n ], 8, _hoisted_1)), [\n [unref(directive), { text: __props.name, linkify: __props.linkify }]\n ]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs.map\n","import '../assets/NcAppSidebar-TcyGhk0L.css';\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useModel, normalizeClass, unref, createVNode, withCtx, mergeModels, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from \"vue\";\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _sfc_main$6 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { useIsSmallMobile } from \"../composables/useIsMobile/index.mjs\";\nimport directive from \"../directives/Focus/index.mjs\";\nimport { r as register, V as t15, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isSlotPopulated, N as NcActions } from \"./NcActions-DY4GGONi.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _sfc_main$7 } from \"./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs\";\nimport { N as NcButton } from \"./NcButton-QbPBynlU.mjs\";\nimport { C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nconst _sfc_main$5 = {\n name: \"DockRightIcon\",\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$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" };\nconst _hoisted_4$3 = { 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 dock-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$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$5);\n}\nconst IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$4 = {\n name: \"StarIcon\",\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$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\" };\nconst _hoisted_4$2 = { 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 star-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$4);\n}\nconst IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$3 = {\n name: \"StarOutlineIcon\",\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$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\" };\nconst _hoisted_4$1 = { 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 star-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$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$3);\n}\nconst IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$2 = [\"aria-selected\", \"tabindex\"];\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarTabsButton\",\n props: /* @__PURE__ */ mergeModels({\n tab: {}\n }, {\n \"selected\": { type: Boolean, ...{ required: true } },\n \"selectedModifiers\": {}\n }),\n emits: [\"update:selected\"],\n setup(__props) {\n const selected = useModel(__props, \"selected\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n class: normalizeClass([\"button-vue\", [_ctx.$style.sidebarTabsButton, {\n [_ctx.$style.sidebarTabsButton_selected]: selected.value,\n [_ctx.$style.sidebarTabsButton_legacy]: unref(isLegacy34)\n }]]),\n role: \"tab\",\n \"aria-selected\": selected.value,\n tabindex: selected.value ? 0 : -1,\n onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)\n }, [\n createVNode(_sfc_main$6, {\n vnodes: __props.tab.renderIcon()\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", {\n class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, __props.tab.icon])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"vnodes\"])\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__name)\n }, toDisplayString(__props.tab.name), 3)\n ], 10, _hoisted_1$2);\n };\n }\n});\nconst sidebarTabsButton = \"_sidebarTabsButton_Uw0-N\";\nconst sidebarTabsButton_legacy = \"_sidebarTabsButton_legacy_FsjhV\";\nconst sidebarTabsButton_selected = \"_sidebarTabsButton_selected_MiFwn\";\nconst sidebarTabsButton__name = \"_sidebarTabsButton__name_Uzc5r\";\nconst sidebarTabsButton__icon = \"_sidebarTabsButton__icon_-Zy-g\";\nconst sidebarTabsButton__legacyIcon = \"_sidebarTabsButton__legacyIcon_svLe8\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_fPSY2\",\n sidebarTabsButton,\n sidebarTabsButton_legacy,\n sidebarTabsButton_selected,\n sidebarTabsButton__name,\n sidebarTabsButton__icon,\n sidebarTabsButton__legacyIcon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSidebarTabsButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__cssModules\", cssModules]]);\nconst _sfc_main$1 = {\n name: \"NcAppSidebarTabs\",\n components: {\n NcAppSidebarTabsButton\n },\n provide() {\n return {\n registerTab: this.registerTab,\n unregisterTab: this.unregisterTab,\n // Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n getActiveTab: () => this.activeTab,\n // Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n isTablistShown: () => this.hasMultipleTabs\n };\n },\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:active\"],\n data(props) {\n return {\n /**\n * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n */\n tabs: [],\n /**\n * Local active (open) tab's ID. It allows to use component without v-model:active\n */\n activeTab: props.active,\n isLegacy34\n };\n },\n computed: {\n /**\n * Has multiple tabs. If only one tab - its content is shown without navigation\n *\n * @return {boolean}\n */\n hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n showForSingleTab() {\n return this.forceTabs && this.tabs.length === 1;\n },\n currentTabIndex() {\n return this.tabs.findIndex((tab) => tab.id === this.activeTab);\n }\n },\n watch: {\n tabs() {\n if (this.active) {\n this.updateActive();\n }\n },\n active(active) {\n if (active !== this.activeTab) {\n this.updateActive();\n }\n }\n },\n methods: {\n /**\n * Set the current active tab\n *\n * @param {string} id the id of the tab\n */\n setActive(id) {\n this.activeTab = id;\n this.$emit(\"update:active\", this.activeTab);\n },\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab();\n },\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab();\n },\n /**\n * Focus the current active tab\n */\n focusActiveTab() {\n this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();\n },\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent() {\n this.$el.querySelector(\"#tab-\" + this.activeTab).focus();\n },\n /**\n * Update the current active tab\n */\n updateActive() {\n this.activeTab = this.active && this.tabs.some(({ id }) => id === this.active) ? this.active : this.tabs[0]?.id ?? \"\";\n },\n /**\n * Register child tab in the tabs\n *\n * @param {object} tab child tab passed to slot\n */\n registerTab(tab) {\n this.tabs.push(tab);\n this.tabs.sort((a, b) => {\n if (a.order === b.order) {\n return a.name.localeCompare(b.name, [getCanonicalLocale()]);\n }\n return a.order - b.order;\n });\n this.updateActive();\n },\n /**\n * Unregister child tab from the tabs\n *\n * @param {string} id tab's id\n */\n unregisterTab(id) {\n const tabIndex = this.tabs.findIndex((tab) => tab.id === id);\n if (tabIndex !== -1) {\n this.tabs.splice(tabIndex, 1);\n }\n if (this.activeTab === id) {\n this.updateActive();\n }\n }\n }\n};\nconst _hoisted_1$1 = { class: \"app-sidebar-tabs\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppSidebarTabsButton = resolveComponent(\"NcAppSidebarTabsButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n $options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n role: \"tablist\",\n class: normalizeClass([\"app-sidebar-tabs__nav\", { \"app-sidebar-tabs__nav--legacy\": $data.isLegacy34 }]),\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.focusPreviousTab && $options.focusPreviousTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"left\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => $options.focusNextTab && $options.focusNextTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"right\"])),\n _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.focusActiveTabContent && $options.focusActiveTabContent(...args), [\"exact\", \"prevent\", \"stop\"]), [\"tab\"])),\n _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"home\"])),\n _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"end\"])),\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-up\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-down\"]))\n ]\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {\n return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {\n id: `tab-button-${tab.id}`,\n key: tab.id,\n class: \"app-sidebar-tabs__tab\",\n \"aria-controls\": `tab-${tab.id}`,\n selected: $data.activeTab === tab.id,\n tab,\n \"onUpdate:selected\": ($event) => $options.setActive(tab.id)\n }, null, 8, [\"id\", \"aria-controls\", \"selected\", \"tab\", \"onUpdate:selected\"]);\n }), 128))\n ], 34)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-tabs__content\", { \"app-sidebar-tabs__content--multiple\": $options.hasMultipleTabs }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2)\n ]);\n}\nconst NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-e74d1502\"]]);\nregister(t15);\nconst _sfc_main = {\n name: \"NcAppSidebar\",\n components: {\n NcActions,\n NcAppSidebarHeader: _sfc_main$7,\n NcAppSidebarTabs,\n NcButton,\n NcLoadingIcon,\n NcEmptyContent,\n IconArrowRight,\n IconClose,\n IconDockRight,\n IconStar,\n IconStarOutline\n },\n directives: {\n Focus: directive,\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n inject: {\n ncContentSelector: {\n from: CONTENT_SELECTOR_KEY,\n default: void 0\n }\n },\n props: {\n /**\n * The active tab\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Main text of the sidebar\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Allow to edit the sidebar name.\n */\n nameEditable: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder in the edit field if the name is editable.\n */\n namePlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Secondary name of the sidebar (subline)\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Title to display for the subname.\n */\n subtitle: {\n type: String,\n default: \"\"\n },\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: \"\"\n },\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n },\n /**\n * Linkify the name\n */\n linkifyName: {\n type: Boolean,\n default: false\n },\n /**\n * Title to display for the name.\n * Can be set to the same text in case it's too long.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Allow to conditionally show the sidebar\n * You can also use `v-if` on the sidebar, but using the open prop allow to keep\n * the sidebar inside the DOM for performance if it is opened and closed multiple times.\n *\n * When using the `open` property to close the sidebar a built-in toggle button will be shown to reopen it,\n * similar to the app navigation. You can remove this button with the `no-toggle` prop.\n */\n open: {\n type: Boolean,\n default: true\n },\n /**\n * Custom classes to assign to the sidebar toggle button.\n * If needed this can be used to assign styles to the button using `:deep()` selector.\n */\n toggleClasses: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Custom attrs to assign to the sidebar toggle button.\n */\n toggleAttrs: {\n type: Object,\n default: void 0\n },\n /**\n * Do not add the built-in toggle button with `open` prop.\n */\n noToggle: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"close\",\n \"closed\",\n \"opened\",\n // 'figureClick', not emitted on purpose to make \"hasFigureClickListener\" work\n \"update:active\",\n \"update:name\",\n \"update:nameEditable\",\n \"update:open\",\n \"update:starred\",\n \"submitName\",\n \"dismissEditing\"\n ],\n setup() {\n const headerRef = ref(null);\n provide(\"NcAppSidebar:header:ref\", headerRef);\n return {\n uid: createElementId(),\n isMobile: useIsSmallMobile(),\n headerRef\n };\n },\n data() {\n return {\n changeNameTranslated: t(\"Change name\"),\n closeTranslated: t(\"Close sidebar\"),\n favoriteTranslated: t(\"Favorite\"),\n isStarred: this.starred,\n focusTrap: null,\n elementToReturnFocus: null\n };\n },\n computed: {\n canStar() {\n return this.isStarred !== null;\n },\n hasFigureClickListener() {\n return !!this.$attrs.onFigureClick;\n }\n },\n watch: {\n starred() {\n this.isStarred = this.starred;\n },\n isMobile() {\n this.toggleFocusTrap();\n },\n open() {\n this.checkToggleButtonContainerAvailability();\n }\n },\n created() {\n this.preserveElementToReturnFocus();\n this.checkToggleButtonContainerAvailability();\n },\n beforeUnmount() {\n this.$emit(\"closed\");\n this.focusTrap?.deactivate();\n },\n methods: {\n isSlotPopulated,\n t,\n preserveElementToReturnFocus() {\n if (document.activeElement && document.activeElement !== document.body) {\n this.elementToReturnFocus = document.activeElement;\n if (this.elementToReturnFocus.getAttribute(\"role\") === \"menuitem\") {\n const menu = this.elementToReturnFocus.closest('[role=\"menu\"]');\n if (menu) {\n const menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`);\n this.elementToReturnFocus = menuTrigger;\n }\n }\n }\n },\n initFocusTrap() {\n if (this.focusTrap) {\n return;\n }\n this.focusTrap = createFocusTrap([\n // The sidebar itself\n this.$refs.sidebar,\n // Nextcloud Server header navigation\n document.querySelector(\"#header\")\n ], {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.closeButton.$el,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.open && this.isMobile) {\n this.initFocusTrap();\n this.focusTrap.activate();\n } else {\n this.focusTrap?.deactivate();\n }\n },\n /**\n * Close the sidebar on pressing the escape key on mobile\n *\n * @param {KeyboardEvent} event key down event\n */\n onKeydownEsc(event) {\n if (this.isMobile) {\n event.stopPropagation();\n this.closeSidebar();\n }\n },\n onAfterEnter(element) {\n if (this.elementToReturnFocus) {\n this.focus();\n }\n this.toggleFocusTrap();\n this.$emit(\"opened\", element);\n },\n onAfterLeave(element) {\n this.$emit(\"closed\", element);\n this.toggleFocusTrap();\n this.elementToReturnFocus?.focus({ focusVisible: true });\n this.elementToReturnFocus = null;\n },\n /**\n * Used to tell parent component the user asked to close the sidebar\n *\n * @param {Event} e close icon click event\n */\n closeSidebar(e) {\n this.$emit(\"close\", e);\n this.$emit(\"update:open\", false);\n },\n /**\n * Emit figure click event to parent component\n *\n * @param {Event} e click event\n */\n onFigureClick(e) {\n this.$emit(\"figureClick\", e);\n },\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred() {\n this.isStarred = !this.isStarred;\n this.$emit(\"update:starred\", this.isStarred);\n },\n async editName() {\n this.$emit(\"update:nameEditable\", true);\n if (this.nameEditable) {\n await this.$nextTick();\n this.$refs.nameInput.focus();\n }\n },\n /**\n * Focus the sidebar\n *\n * @public\n */\n focus() {\n if (!this.open && !this.noToggle) {\n this.$refs.toggle.$el.focus();\n return;\n }\n try {\n this.headerRef.focus();\n } catch {\n warn(\"NcAppSidebar should have focusable header for accessibility reasons. Use NcAppSidebarHeader component.\");\n }\n },\n /**\n * Focus the active tab\n *\n * @public\n */\n focusActiveTabContent() {\n this.preserveElementToReturnFocus();\n this.$refs.tabs.focusActiveTabContent();\n },\n /**\n * Check if the toggle button container is available\n */\n checkToggleButtonContainerAvailability() {\n if (this.open === false && !this.noToggle && !this.ncContentSelector) {\n logger.warn(\"[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.\");\n }\n },\n /**\n * Emit name change event to parent component\n *\n * @param {Event} event input event\n */\n onNameInput(event) {\n this.$emit(\"update:name\", event.target.value);\n },\n /**\n * Emit when the name form edit confirm button is pressed in order\n * to change the name.\n *\n * @param {Event} event submit event\n */\n onSubmitName(event) {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"submitName\", event);\n },\n onDismissEditing() {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"dismissEditing\");\n },\n onUpdateActive(activeTab) {\n this.$emit(\"update:active\", activeTab);\n }\n }\n};\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = { class: \"app-sidebar-header__info\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"app-sidebar-header__tertiary-actions\"\n};\nconst _hoisted_4 = { class: \"app-sidebar-header__name-container\" };\nconst _hoisted_5 = { class: \"app-sidebar-header__mainname-container\" };\nconst _hoisted_6 = [\"placeholder\", \"value\"];\nconst _hoisted_7 = [\"title\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"app-sidebar-header__description\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconDockRight = resolveComponent(\"IconDockRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconStar = resolveComponent(\"IconStar\");\n const _component_IconStarOutline = resolveComponent(\"IconStarOutline\");\n const _component_NcAppSidebarHeader = resolveComponent(\"NcAppSidebarHeader\");\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n const _component_NcAppSidebarTabs = resolveComponent(\"NcAppSidebarTabs\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _directive_focus = resolveDirective(\"focus\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createBlock(Transition, {\n appear: \"\",\n name: \"slide-right\",\n onAfterEnter: $options.onAfterEnter,\n onAfterLeave: $options.onAfterLeave\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"aside\", {\n id: \"app-sidebar-vue\",\n ref: \"sidebar\",\n class: \"app-sidebar\",\n \"aria-labelledby\": `app-sidebar-vue-${$setup.uid}__header`,\n onKeydown: _cache[6] || (_cache[6] = withKeys((...args) => $options.onKeydownEsc && $options.onKeydownEsc(...args), [\"esc\"]))\n }, [\n $options.ncContentSelector && !$props.open && !$props.noToggle ? (openBlock(), createBlock(Teleport, {\n key: 0,\n to: $options.ncContentSelector\n }, [\n createVNode(_component_NcButton, mergeProps({\n ref: \"toggle\",\n \"aria-label\": $options.t(\"Open sidebar\"),\n class: [\"app-sidebar__toggle\", $props.toggleClasses],\n variant: \"tertiary\"\n }, $props.toggleAttrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:open\", true))\n }), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_IconDockRight, { size: 20 })\n ], true)\n ]),\n _: 3\n }, 16, [\"aria-label\", \"class\"])\n ], 8, [\"to\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"header\", {\n class: normalizeClass([\"app-sidebar-header\", {\n \"app-sidebar-header--with-figure\": $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background,\n \"app-sidebar-header--compact\": $props.compact\n }])\n }, [\n !$props.empty ? renderSlot(_ctx.$slots, \"info\", { key: 0 }, () => [\n createElementVNode(\"div\", _hoisted_2, [\n $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-sidebar-header__figure\", {\n \"app-sidebar-header__figure--with-action\": $options.hasFigureClickListener\n }]),\n style: normalizeStyle({\n backgroundImage: `url(${$props.background})`\n }),\n tabindex: \"0\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.onFigureClick && $options.onFigureClick(...args)),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.onFigureClick && $options.onFigureClick(...args), [\"enter\"]))\n }, [\n renderSlot(_ctx.$slots, \"header\", { class: \"app-sidebar-header__background\" }, void 0, true)\n ], 38)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-header__desc\", {\n \"app-sidebar-header__desc--with-tertiary-action\": $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()),\n \"app-sidebar-header__desc--editable\": $props.nameEditable && !$props.subname,\n \"app-sidebar-header__desc--with-subname--editable\": $props.nameEditable && $props.subname,\n \"app-sidebar-header__desc--without-actions\": !$options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.())\n }])\n }, [\n $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()) ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"tertiary-actions\", {}, () => [\n $options.canStar ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.favoriteTranslated,\n pressed: $data.isStarred,\n class: \"app-sidebar-header__star\",\n variant: \"secondary\",\n onClick: withModifiers($options.toggleStarred, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n $props.starLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $data.isStarred ? (openBlock(), createBlock(_component_IconStar, {\n key: 1,\n size: 20\n })) : (openBlock(), createBlock(_component_IconStarOutline, {\n key: 2,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"pressed\", \"onClick\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, [\n withDirectives(createVNode(_component_NcAppSidebarHeader, {\n class: \"app-sidebar-header__mainname\",\n name: $props.name,\n linkify: $props.linkifyName,\n title: $props.title,\n tabindex: $props.nameEditable ? 0 : -1,\n onClick: withModifiers($options.editName, [\"self\"])\n }, null, 8, [\"name\", \"linkify\", \"title\", \"tabindex\", \"onClick\"]), [\n [vShow, !$props.nameEditable]\n ]),\n $props.nameEditable ? withDirectives((openBlock(), createElementBlock(\"form\", {\n key: 0,\n class: \"app-sidebar-header__mainname-form\",\n onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.onSubmitName && $options.onSubmitName(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"nameInput\",\n class: \"app-sidebar-header__mainname-input\",\n type: \"text\",\n placeholder: $props.namePlaceholder,\n value: $props.name,\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.onDismissEditing && $options.onDismissEditing(...args), [\"stop\"]), [\"esc\"])),\n onInput: _cache[4] || (_cache[4] = (...args) => $options.onNameInput && $options.onNameInput(...args))\n }, null, 40, _hoisted_6), [\n [_directive_focus]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.changeNameTranslated,\n type: \"submit\",\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ], 32)), [\n [_directive_click_outside, () => $options.onSubmitName()]\n ]) : createCommentVNode(\"\", true),\n $options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.()) ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n class: \"app-sidebar-header__menu\",\n forceMenu: $props.forceMenu\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"secondary-actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"forceMenu\"])) : createCommentVNode(\"\", true)\n ]),\n $props.subname.trim() !== \"\" || _ctx.$slots[\"subname\"] ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n title: $props.subtitle || void 0,\n class: \"app-sidebar-header__subname\"\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, () => [\n createTextVNode(toDisplayString($props.subname), 1)\n ], true)\n ], 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ], true) : (openBlock(), createBlock(_component_NcAppSidebarHeader, {\n key: 1,\n class: \"app-sidebar-header__mainname--hidden\",\n name: $props.name,\n tabindex: \"-1\"\n }, null, 8, [\"name\"])),\n createVNode(_component_NcButton, {\n ref: \"closeButton\",\n \"aria-label\": $data.closeTranslated,\n title: $data.closeTranslated,\n class: \"app-sidebar__close\",\n variant: \"tertiary\",\n onClick: withModifiers($options.closeSidebar, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.isSlotPopulated(_ctx.$slots.description?.()) && !$props.empty ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 2),\n withDirectives(createVNode(_component_NcAppSidebarTabs, {\n ref: \"tabs\",\n active: $props.active,\n forceTabs: $props.forceTabs,\n \"onUpdate:active\": $options.onUpdateActive\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"active\", \"forceTabs\", \"onUpdate:active\"]), [\n [vShow, !$props.loading]\n ]),\n $props.loading ? (openBlock(), createBlock(_component_NcEmptyContent, { key: 1 }, {\n icon: withCtx(() => [\n createVNode(_component_NcLoadingIcon, { size: 64 })\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 40, _hoisted_1), [\n [vShow, $props.open]\n ])\n ]),\n _: 3\n }, 8, [\"onAfterEnter\", \"onAfterLeave\"]);\n}\nconst NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e8979b7f\"]]);\nexport {\n NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-DX26aRNB.mjs.map\n","import '../assets/NcAppSidebarTab-Xd3HTDbw.css';\nimport { openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppSidebarTab\",\n inject: [\"registerTab\", \"unregisterTab\", \"getActiveTab\", \"isTablistShown\"],\n props: {\n /**\n * Unique id of the sidebar tab\n */\n id: {\n type: String,\n required: true\n },\n /**\n * Tab name in navigation\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Tab icon's html class in navigation. Used if #icon slot is not provided\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Tab order in navigation. If not provided, name is used.\n */\n order: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"bottomReached\",\n \"scroll\"\n ],\n expose: [\"id\", \"name\", \"icon\", \"order\", \"renderIcon\"],\n computed: {\n /**\n * Is the current tab an active tab, that should be shown?\n *\n * @return {boolean}\n */\n isActive() {\n return this.getActiveTab() === this.id;\n }\n },\n created() {\n this.registerTab(this);\n },\n beforeUnmount() {\n this.unregisterTab(this.id);\n },\n methods: {\n onScroll(event) {\n if (this.$el.scrollHeight - this.$el.scrollTop === this.$el.clientHeight) {\n this.$emit(\"bottomReached\", event);\n }\n this.$emit(\"scroll\", event);\n },\n /**\n * Render tab's icon slot if any\n *\n * @return {import('vue').VNode[]}\n */\n renderIcon() {\n return this.$slots.icon?.();\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"role\", \"tabindex\"];\nconst _hoisted_2 = { class: \"hidden-visually\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"section\", {\n id: `tab-${$props.id}`,\n \"aria-hidden\": !$options.isActive,\n \"aria-label\": $options.isTablistShown() ? void 0 : $props.name,\n \"aria-labelledby\": $options.isTablistShown() ? `tab-button-${$props.id}` : void 0,\n class: normalizeClass([\"app-sidebar__tab\", { \"app-sidebar__tab--active\": $options.isActive }]),\n role: $options.isTablistShown() ? \"tabpanel\" : void 0,\n tabindex: $options.isTablistShown() ? 0 : -1,\n onScroll: _cache[0] || (_cache[0] = (...args) => $options.onScroll && $options.onScroll(...args))\n }, [\n createElementVNode(\"h3\", _hoisted_2, toDisplayString($props.name), 1),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 42, _hoisted_1);\n}\nconst NcAppSidebarTab = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-dba10798\"]]);\nexport {\n NcAppSidebarTab as N\n};\n//# sourceMappingURL=NcAppSidebarTab-DOSDDbGA.mjs.map\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createApp } from 'vue'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\nimport router from './router.js'\nimport App from './App.vue'\n\nconst app = createApp(App)\napp.config.globalProperties.t = t\napp.config.globalProperties.n = n\napp.use(router)\napp.mount('#absence-app')\n"],"names":["isBrowser","isRouteComponent","component","isESModule","obj","assign","applyToParams","fn","params","newParams","key","value","isArray","noop","mergeOptions","defaults","partialOptions","options","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","text","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","path","parseURL","parseQuery$1","location","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery$1","stripBase","pathname","base","isSameRouteLocation","a","b","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","i","to","from","fromSegments","toSegments","lastToSegment","position","toPosition","segment","START_LOCATION_NORMALIZED","NavigationType","NavigationType$1","NavigationDirection","NavigationDirection$1","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","el","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","isRouteLocation","route","isRouteName","name","ErrorTypes","ErrorTypes$1","NavigationFailureSymbol","createRouterError","type","isNavigationFailure","error","parseQuery","search","searchParams","searchParam","eqPos","currentValue","stringifyQuery","v","value$1","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","add","handler","reset","guardToPromiseFn","guard","record","runWithContext","enterCallbackArray","resolve","reject","next","valid","guardReturn","guardCall","err","extractComponentsGuards","matched","guardType","guards","rawComponent","componentPromise","resolved","resolvedComponent","extractChangingRecords","leavingRecords","updatingRecords","enteringRecords","len","recordFrom","recordTo","createBaseLocation","createCurrentLocation","location$1","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","state","fromState","listener","pauseListeners","listen","callback","teardown","index","beforeUnloadListener","history$1","destroy","buildState","back","current","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","replace$1","hashIndex","url","data","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","createWebHashHistory","TokenType","TokenType$1","TokenizerState","TokenizerState$1","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","PathScore","PathScore$1","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","score","pattern","keys","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re$1","subPattern","re","parse","match","stringify","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","isLastScoreNegative","last","PATH_PARSER_OPTIONS_DEFAULTS","createRouteRecordMatcher","parent","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","isMatchable","insertMatcher","children","matcherRef","getRoutes","findInsertionIndex","pickParams","k","m","parentMatcher","mergeMetaFields","clearRoutes","normalized","normalizeRecordProps","propsObject","props","meta","lower","upper","mid","insertionAncestor","getInsertionAncestor","ancestor","useLink","router","inject","currentRoute","computed","unref","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","e","guardEvent","p","preferSingleVNode","vnodes","RouterLinkImpl","defineComponent","slots","link","reactive","elClass","getLinkClass","h","RouterLink","target","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","attrs","injectedRoute","routeToDisplay","injectedDepth","depth","initialDepth","matchedRoute","matchedRouteRef","provide","viewRef","ref","watch","instance","oldInstance","oldName","currentName","ViewComponent","normalizeSlot","routePropsOption","routeProps","vnode","slot","slotContent","RouterView","createRouter","beforeGuards","beforeResolveGuards","afterGuards","shallowRef","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matchedRoute$1","href$1","matcherLocation","targetParams","fullPath","href","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","failure$1","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","app","installedApps","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","resolve$1","scrollBehavior","nextTick","started","reactiveRoute","shallowReactive","unmountApp","promise","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_main","__props","nameId","createElementId","_ctx","_cache","openBlock","createElementBlock","renderSlot","createCommentVNode","createTextVNode","toDisplayString","NcEmptyContent","_export_sfc","_createElementBlock","_mergeProps","$props","$event","_createElementVNode","_openBlock","duration","start","step","now","eased","_hoisted_7","_hoisted_9","_hoisted_10","$options","$data","_toDisplayString","_hoisted_6","_hoisted_8","_Fragment","_createTextVNode","_hoisted_11","BalanceRing","t","n","_createVNode","_component_BalanceRing","_normalizeStyle","d","x","_renderList","bar","humanizedCount","getCanonicalLocale","originalCountAsTitleIfNeeded","countAsString","normalizeClass","NcCounterBubble","NcActions","_sfc_main$1","isLegacy34","newValue","event","routerLinkHref","_sfc_render","$setup","_component_NcCounterBubble","resolveComponent","_component_NcActions","createBlock","resolveDynamicComponent","normalizeProps","guardReactiveProps","withCtx","createElementVNode","mergeProps","args","withKeys","withDirectives","vShow","createVNode","createSlots","NcListItem","INJECTION_KEY_THEME","useIsDarkThemeElement","element","toValue","isDarkTheme","checkIfDarkTheme","isDarkSystemTheme","usePreferredDark","updateIsDarkTheme","useMutationObserver","readonly","useInternalIsDarkTheme","createSharedComposable","useIsDarkTheme","enforcedTheme","initialSession","loadState","initialLeaveTypes","store","id","request","api","showError","year","created","showSuccess","updated","res","comment","statusMeta","status","StatusChip","LeaveTypeChip","range","formatRange","days","_normalizeClass","_component_NcListItem","_component_StatusChip","NcButton","Plus","BalanceCard","BarChart","RequestListItem","SkeletonList","PalmIllustration","sickType","today","toIso","approved","r","typeMatches","color","buckets","addWorkingDaysByMonth","month","_hoisted_13","_hoisted_14","_component_NcButton","_component_Plus","row","_createBlock","_component_BalanceCard","_component_BarChart","_hoisted_12","_component_SkeletonList","_TransitionGroup","_component_RequestListItem","_component_NcEmptyContent","_component_PalmIllustration","ACTIONABLE","CheckAll","reports","_component_CheckAll","defaultWindow","isClient","unrefElement","elRef","_$el","plain","useEventListener","register","firstParamTargets","test","toArray","watchImmediate","_firstParamTargets$va","_firstParamTargets$va2","raw_targets","raw_events","raw_listeners","raw_options","_","onCleanup","optionsClone","isObject","cleanups","onClickOutside","window","ignore","capture","detectIframe","controls","shouldListen","shouldIgnore","hasMultipleRoots","vm","checkMultipleRoots","child","isProcessingClick","cleanup","activeEl","stop","stopClickOutsideMap","vOnClickOutside","binding","getRoute","removePrefix","str","prefix","removePrefixes","prefixes","acc","isAbsoluteURL","isNonHttpLink","getBaseUrl","relativeUrl","relativeRouterBase","getRootUrl","potentialRouterPath","getEnabledContactsMenuActions","entry","action","c","s","o","t3","Color","g","toHex","int","calculateStepIncrement","steps","color1","color2","mixPalette","palette","increment","COLOR_RED","COLOR_YELLOW","COLOR_BLUE","generatePalette","palette1","palette2","palette3","hashCode","Md5","finalInt","usernameToColor","username","finalPalette","global","Symbol","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","html","allowable_tags","tag_replacement","context","init_context","striptags_internal","init_striptags_stream","parse_allowable_tags","tag_buffer","in_quote_char","output","idx","normalize_tag","tag_set","module","this","getAvatarUrl","user","size","guestUrl","themeUrl","generateUrl","fallback","selector","elem","parsedValue","getCapabilities","awaySvg","busySvg","dndSvg","invisibleSvg","onlineSvg","t52","t11","getUserStatusText","mergeModels","useModel","isInvisible","ariaLabel","axios","generateOcsUrl","logger","matchSvg","activeSvg","NcUserStatusIcon","ActionGlobalMixin","ActionTextMixin","NC_ACTIONS_CLOSE_MENU","NcIconSvgWrapper","NC_ACTIONS_IS_SEMANTIC_MENU","behavior","mdiCheck","mdiChevronRight","attributes","_component_NcIconSvgWrapper","normalizeStyle","NcActionButton","NcActionLink","_component_RouterLink","NcActionRouter","NcActionText","t10","userStatus","userId","capabilities","getCurrentUser","icon","browserStorage","getBuilder","getUserHasAvatar","flag","setUserHasAvatar","IconDotsHorizontal","NcLoadingIcon","initials","filteredChars","filtered","actions","item","escape","emojiIcon","subscribe","unsubscribe","avatarUrl","srcset","userHasAvatar","img","_component_NcLoadingIcon","_component_IconDotsHorizontal","_component_NcUserStatusIcon","_directive_click_outside","resolveDirective","Fragment","renderList","NcAvatar","DAY_MS","ChevronLeft","ChevronRight","CalendarBlank","arr","dt","dow","byUid","monthStart","lastIndex","ev","startIdx","endIdx","ids","lt","y","_component_ChevronLeft","_component_ChevronRight","_component_NcAvatar","seg","_component_CalendarBlank","TeamTimeline","_component_TeamTimeline","__expose","__emit","modelValue","emit","focus","select","useAttrs","inputElement","useTemplateRef","hasTrailingIcon","internalPlaceholder","isLegacy","isValidLabel","ariaDescribedby","ariaDescribedby2","handleInput","mdiAlertCircleOutline","NcInputField","t18","t51","inputFieldInstance","defaultTrailingButtonLabels","NcInputFieldPropNames","propsToForward","sharedProps","mdiArrowRight","mdiUndo","mdiClose","NcModal","NcSelect","NcTextField","Magnify","Pencil","ScaleBalance","q","ent","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_component_NcTextField","_component_Magnify","_component_NcSelect","_component_Pencil","_component_ScaleBalance","_component_NcModal","t40","formattedValue","formatValue","formattedMax","formattedMin","getReadableDate","yyyy","MM","dd","hh","mm","startDate","daysSinceBeginningOfYear","weekNumber","onInput","input","time","timezoneOffsetSeconds","inputDateWithTimezone","NcDateTimePickerNative","usableW","usableH","first","f","total","pct","ChartLine","LineChart","DonutChart","tt","months","_component_NcDateTimePickerNative","_component_ChartLine","_component_LineChart","_component_DonutChart","Download","_component_Download","MyLeave","Approvals","Team","HrBalances","HrStatistics","HrWhosOff","HrExports","S","C","w","T","E","ee","A","D","O","L","F","$","j","M","N","z","R","P","I","B","l","u","te","V","H","U","W","G","K","J","Y","Z","X","ie","ne","Q","ae","once","func","wasCalled","result","realAppName","appName","APP_NAME","realAppVersion","appVersion","useAppName","useLocalizedAppName","apps","realAppName2","t27","isMobile","useIsMobile","toggleAppNavigationButton","onMounted","onBeforeUnmount","hide","appNavigationToggle","NcAppContentDetailsToggle","instanceName","Pane","Splitpanes","isRtl","entries","part","useSwipe","direction","listPaneSize","_component_NcAppContentDetailsToggle","_component_Pane","_component_Splitpanes","withModifiers","NcAppContent","NcAppNavigationList","HAS_APP_NAVIGATION_KEY","CONTENT_SELECTOR_KEY","t20","_hoisted_1$1","open","title","mdiMenuOpen","mdiMenu","NcAppNavigationToggle","focusTrap","setHasAppNavigation","warn","appNavigationContainerElement","watchEffect","toggleFocusTrap","toggleNavigationByEventBus","createFocusTrap","toggleNavigation","getTrapStack","onUnmounted","bodyStyles","animationLength","open2","handleEsc","NcAppNavigation","actionProps","_value","headingLevel","NcAppNavigationCaption","ChevronUp","IconArrowRight","t14","IconClose","_component_IconArrowRight","_component_IconClose","vModelText","NcInputConfirmCancel","_sfc_main$3","_hoisted_1$2","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_sfc_render$3","_sfc_main$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","Undo","t21","ChevronDown","_sfc_render$1","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","t23","_sfc_main$4","newVal","_component_NcInputConfirmCancel","_component_NcActionButton","_component_Undo","_component_NcAppNavigationIconCollapsible","NcAppNavigationItem","NcAppNavigationNew","t30","contentSvg","navigationSvg","setAppNavigation","hasAppNavigation","currentFocus","currentImage","onBeforeMount","container","openAppNavigation","Teleport","NcContent","textAreaElement","NcTextArea","NcNoteCard","Send","makeHolidayChecker","weekdays","parseWeekdays","countWorkingDays","types","seen","own","users","payload","_hoisted_21","_hoisted_23","_hoisted_25","_hoisted_26","_hoisted_29","_component_NcNoteCard","_withCtx","label","_hoisted_22","_hoisted_24","_hoisted_27","_hoisted_28","_component_NcTextArea","_component_Send","directive","encodedTlds","encodedUtlds","numeric","ascii","alpha","asciinumeric","alphanumeric","domain","emoji","scheme","slashscheme","whitespace","registerGroup","groups","addToGroups","flags","group","flagsForToken","State","nextState","regex","exactOnly","inputs","templateState","allFlags","ta","tr","ts","WORD","UWORD","ASCIINUMERICAL","ALPHANUMERICAL","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL","OPENBRACE","CLOSEBRACE","OPENBRACKET","CLOSEBRACKET","OPENPAREN","CLOSEPAREN","OPENANGLEBRACKET","CLOSEANGLEBRACKET","FULLWIDTHLEFTPAREN","FULLWIDTHRIGHTPAREN","LEFTCORNERBRACKET","RIGHTCORNERBRACKET","LEFTWHITECORNERBRACKET","RIGHTWHITECORNERBRACKET","FULLWIDTHLESSTHAN","FULLWIDTHGREATERTHAN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","FULLWIDTHMIDDLEDOT","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","CR","LF","EMOJI_VARIATION","EMOJI_JOINER","OBJECT_REPLACEMENT","tlds","utlds","init$2","customSchemes","Start","decodeTlds","Num","Asciinumeric","Alphanumeric","Word","UWord","Nl","Cr","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","sch","run$1","iterable","stringToArray","charCount","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","second","defaultt","jr","encoded","words","stack","digits","popDigitCount","popCount","Options","opts","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","operator","isCallable","option","val","MultiToken","truncate","formatted","protocol","formattedHref","tagName","content","className","rel","eventListeners","createTokenClass","Token","Email","Text","Url","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","SchemeColon","SlashSchemeColon","SlashSchemeColonSlash","UriPrefix","bracketPairs","OPEN","CLOSE","UrlOpen","UrlOpenQ","UrlOpenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","INIT","init","tokenize","linkifyString","escapeHTML","escapeAttr","attributesToString","attr","headerRef","_sfc_main$5","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$4","IconDockRight","_hoisted_1$4","IconStar","_hoisted_1$3","IconStarOutline","selected","_sfc_main$6","sidebarTabsButton","sidebarTabsButton_legacy","sidebarTabsButton_selected","sidebarTabsButton__name","sidebarTabsButton__icon","sidebarTabsButton__legacyIcon","style0","cssModules","NcAppSidebarTabsButton","tab","active","tabIndex","_component_NcAppSidebarTabsButton","NcAppSidebarTabs","t15","_sfc_main$7","useIsSmallMobile","isSlotPopulated","menu","menuTrigger","activeTab","_component_IconDockRight","_component_IconStar","_component_IconStarOutline","_component_NcAppSidebarHeader","_component_NcAppSidebarTabs","_directive_focus","Transition","NcAppSidebar","NcAppSidebarTab","AccountGroup","_component_AccountGroup","requested","review","outcome","CoveragePanel","RequestStepper","InformationOutline","CommentOutline","History","Check","Close","CancelIcon","iso","_component_NcAppSidebar","_component_NcAppSidebarTab","_component_InformationOutline","_component_RequestStepper","_component_LeaveTypeChip","_component_Check","_component_Close","_component_CancelIcon","_component_CoveragePanel","_component_CommentOutline","_component_History","RequestDialog","RequestSidebar","CalendarAccountOutline","ClipboardCheck","ChartBar","CalendarMonth","ClipboardPlusOutline","_component_NcContent","_component_NcAppNavigation","_component_NcAppNavigationNew","_component_NcAppNavigationItem","_component_CalendarAccountOutline","_component_ClipboardCheck","_component_NcAppNavigationCaption","_component_ClipboardPlusOutline","_component_ChartBar","_component_CalendarMonth","_component_NcAppContent","_component_router_view","_component_RequestSidebar","_component_RequestDialog","createApp","App"],"mappings":"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","x_google_ignoreList":[0,1,2,3,7,8,9,10,11,19,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,45,46,47,48,49,51,52,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,90,91,92,93,94]} \ No newline at end of file +{"version":3,"file":"absence-main.mjs","sources":["../node_modules/@nextcloud/capabilities/dist/index.mjs","../node_modules/splitpanes/dist/splitpanes.esm.js","../node_modules/vue-router/dist/devtools-Bpr7ZAVB.js","../node_modules/vue-router/dist/vue-router.js","../node_modules/@nextcloud/vue/dist/chunks/appName-DyNMVZpX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-DavgjaFX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-CGSWabRB.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-Ciwvl5xb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-g57j16pB.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-VjSWJ8R4.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronUp-ChH8oB7p.mjs","../node_modules/@nextcloud/vue/dist/chunks/ArrowRight-B1ncAhus.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-CGTllrXj.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionGlobal-BZFdtdJL.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText-BXR0sWNu.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-BO5T5ePT.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-CDeYtA3E.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationNew-CBNppM7Q.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-BYh5hWDN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCounterBubble-CV0YMrXW.mjs","../node_modules/vue-material-design-icons/AccountGroup.vue","../node_modules/vue-material-design-icons/CalendarAccountOutline.vue","../node_modules/vue-material-design-icons/CalendarMonth.vue","../node_modules/vue-material-design-icons/ChartBar.vue","../node_modules/vue-material-design-icons/ClipboardCheck.vue","../node_modules/vue-material-design-icons/ClipboardPlusOutline.vue","../node_modules/vue-material-design-icons/Download.vue","../node_modules/vue-material-design-icons/Plus.vue","../node_modules/vue-material-design-icons/ScaleBalance.vue","../node_modules/@nextcloud/vue/dist/chunks/constants-wIEKSp2G.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTimePickerNative-B8CMOUnH.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextArea-Dxzj4zdb.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputField-5Sg6EUP6.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs","../node_modules/vue-material-design-icons/Send.vue","../src/store.js","../src/components/RequestDialog.vue","../node_modules/@vueuse/components/dist/index.js","../node_modules/@nextcloud/vue/dist/directives/Focus/index.mjs","../node_modules/linkifyjs/dist/linkify.mjs","../node_modules/@nextcloud/vue/dist/directives/Linkify/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcEmptyContent-CGAPqk4S.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-C8YzAzrZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSidebarTab-DOSDDbGA.mjs","../node_modules/@nextcloud/vue/dist/chunks/autolink-DrIurosL.mjs","../node_modules/@nextcloud/vue/dist/functions/contactsMenu/index.mjs","../node_modules/ts-md5/dist/index.es.js","../node_modules/@nextcloud/vue/dist/chunks/colors-Cv9F-jWS.mjs","../node_modules/@nextcloud/vue/dist/functions/usernameToColor/index.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserStatusIcon-BF5OEQFU.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionLink-BFiaYt9A.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionRouter-vYFtIOzD.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionText-CQ9qwJ0p.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAvatar-1KxMUN7V.mjs","../node_modules/vue-material-design-icons/Cancel.vue","../node_modules/vue-material-design-icons/Check.vue","../node_modules/vue-material-design-icons/Close.vue","../node_modules/vue-material-design-icons/CommentOutline.vue","../node_modules/vue-material-design-icons/History.vue","../node_modules/vue-material-design-icons/InformationOutline.vue","../node_modules/vue-material-design-icons/Pencil.vue","../src/components/StatusChip.vue","../src/components/CoveragePanel.vue","../src/components/LeaveTypeChip.vue","../src/components/RequestStepper.vue","../src/components/RequestSidebar.vue","../src/App.vue","../node_modules/vue-material-design-icons/CheckAll.vue","../node_modules/@nextcloud/vue/dist/chunks/NcListItem-BliLJpvU.mjs","../src/components/RequestListItem.vue","../src/components/SkeletonList.vue","../src/views/Approvals.vue","../node_modules/vue-material-design-icons/Magnify.vue","../src/views/hr/HrBalances.vue","../src/views/hr/HrExports.vue","../node_modules/vue-material-design-icons/ChartLine.vue","../src/components/DonutChart.vue","../src/components/LineChart.vue","../src/views/hr/HrStatistics.vue","../node_modules/vue-material-design-icons/CalendarBlank.vue","../node_modules/vue-material-design-icons/ChevronLeft.vue","../node_modules/vue-material-design-icons/ChevronRight.vue","../src/components/TeamTimeline.vue","../src/views/hr/HrWhosOff.vue","../src/components/BalanceRing.vue","../src/components/BalanceCard.vue","../src/components/BarChart.vue","../src/components/PalmIllustration.vue","../src/views/MyLeave.vue","../src/views/Team.vue","../src/router.js","../src/main.js"],"sourcesContent":["import { loadState } from \"@nextcloud/initial-state\";\nfunction getCapabilities() {\n try {\n return loadState(\"core\", \"capabilities\");\n } catch (error) {\n console.debug(\"Could not find capabilities initial state fall back to _oc_capabilities\");\n if (!(\"_oc_capabilities\" in window)) {\n return {};\n }\n return window[\"_oc_capabilities\"];\n }\n}\nexport {\n getCapabilities\n};\n//# sourceMappingURL=index.mjs.map\n","import { computed as e, createBlock as t, createElementBlock as n, getCurrentInstance as r, h as i, inject as a, nextTick as o, normalizeStyle as s, onBeforeUnmount as c, onMounted as l, openBlock as u, provide as d, ref as f, renderSlot as p, resolveDynamicComponent as m, unref as h, useAttrs as g, useSlots as _, watch as v } from \"vue\";\n//#region src/components/splitpanes/splitpanes.vue\nvar y = /* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {\n\t__name: \"splitpanes\",\n\tprops: {\n\t\thorizontal: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tpushOtherPanes: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !0\n\t\t},\n\t\tmaximizePanes: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !0\n\t\t},\n\t\trtl: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tfirstSplitter: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: !1\n\t\t},\n\t\tkeyboardStep: {\n\t\t\ttype: Number,\n\t\t\tdefault: 5\n\t\t}\n\t},\n\temits: [\n\t\t\"ready\",\n\t\t\"resize\",\n\t\t\"resized\",\n\t\t\"pane-click\",\n\t\t\"pane-maximize\",\n\t\t\"pane-add\",\n\t\t\"pane-remove\",\n\t\t\"splitter-click\",\n\t\t\"splitter-dblclick\",\n\t\t\"direction-changed\"\n\t],\n\tsetup(n, { emit: r }) {\n\t\tlet a = r, s = n, p = g(), h = _(), y = f([]), b = e(() => y.value.reduce((e, t) => (e[~~t.id] = t) && e, {})), x = e(() => y.value.length), S = f(null), C = f(!1), w = f({\n\t\t\tmouseDown: !1,\n\t\t\tdragging: !1,\n\t\t\tactiveSplitter: null,\n\t\t\tcursorOffset: 0\n\t\t}), T = f({\n\t\t\tsplitter: null,\n\t\t\ttimeoutId: null\n\t\t}), E = e(() => ({\n\t\t\t[`splitpanes splitpanes--${s.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n\t\t\t\"splitpanes--dragging\": w.value.dragging,\n\t\t\t\"splitpanes--ready\": C.value\n\t\t})), ee = () => {\n\t\t\tdocument.addEventListener(\"mousemove\", k, { passive: !1 }), document.addEventListener(\"mouseup\", A), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", k, { passive: !1 }), document.addEventListener(\"touchend\", A));\n\t\t}, D = () => {\n\t\t\tdocument.removeEventListener(\"mousemove\", k, { passive: !1 }), document.removeEventListener(\"mouseup\", A), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", k, { passive: !1 }), document.removeEventListener(\"touchend\", A));\n\t\t}, O = (e, t) => {\n\t\t\tlet n = e.target.closest(\".splitpanes__splitter\");\n\t\t\tif (n) {\n\t\t\t\tlet { left: t, top: r } = n.getBoundingClientRect(), { clientX: i, clientY: a } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n\t\t\t\tw.value.cursorOffset = s.horizontal ? a - r : i - t;\n\t\t\t}\n\t\t\tee(), w.value.mouseDown = !0, w.value.activeSplitter = t, document.documentElement.style.cursor = s.horizontal ? \"row-resize\" : \"col-resize\";\n\t\t}, k = (e) => {\n\t\t\tw.value.mouseDown && (e.preventDefault(), w.value.dragging || (window.getSelection()?.removeAllRanges(), w.value.dragging = !0), requestAnimationFrame(() => {\n\t\t\t\tL(F(e)), $(\"resize\", { event: e }, !0);\n\t\t\t}));\n\t\t}, A = (e) => {\n\t\t\tw.value.dragging && (window.getSelection()?.removeAllRanges(), $(\"resized\", { event: e }, !0)), w.value.mouseDown = !1, w.value.activeSplitter = null, setTimeout(() => {\n\t\t\t\tw.value.dragging = !1, D(), document.documentElement.style.cursor = \"\";\n\t\t\t}, 100);\n\t\t}, j = (e, t) => {\n\t\t\t\"ontouchstart\" in window && (e.preventDefault(), T.value.splitter === t ? (clearTimeout(T.value.timeoutId), T.value.timeoutId = null, M(e, t), T.value.splitter = null) : (T.value.splitter = t, T.value.timeoutId = setTimeout(() => T.value.splitter = null, 500))), w.value.dragging || $(\"splitter-click\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: t\n\t\t\t}, !0);\n\t\t}, M = (e, t) => {\n\t\t\tif ($(\"splitter-dblclick\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: t\n\t\t\t}, !0), s.maximizePanes) {\n\t\t\t\tlet n = 0;\n\t\t\t\ty.value = y.value.map((e, r) => (e.size = r === t ? e.max : e.min, r !== t && (n += e.min), e)), y.value[t].size -= n, $(\"pane-maximize\", {\n\t\t\t\t\tevent: e,\n\t\t\t\t\tindex: t,\n\t\t\t\t\tpane: y.value[t]\n\t\t\t\t}), $(\"resized\", {\n\t\t\t\t\tevent: e,\n\t\t\t\t\tindex: t\n\t\t\t\t}, !0);\n\t\t\t}\n\t\t}, N = (e, t) => {\n\t\t\tif (!s.keyboardStep) return;\n\t\t\tlet n = s.horizontal ? e.key === \"ArrowDown\" : e.key === \"ArrowRight\", r = s.horizontal ? e.key === \"ArrowUp\" : e.key === \"ArrowLeft\";\n\t\t\tif (!n && !r) return;\n\t\t\te.preventDefault(), w.value.activeSplitter = t;\n\t\t\tlet i = (n ? 1 : -1) * (s.rtl && !s.horizontal ? -1 : 1), a = z(t) + y.value[t].size;\n\t\t\tR(Math.min(Math.max(a + i * s.keyboardStep, 0), 100)), $(\"resize\", { event: e }, !0), $(\"resized\", { event: e }, !0), w.value.activeSplitter = null;\n\t\t}, P = (e, t) => {\n\t\t\tlet n = b.value[t];\n\t\t\tn && $(\"pane-click\", {\n\t\t\t\tevent: e,\n\t\t\t\tindex: n.index,\n\t\t\t\tpane: n\n\t\t\t});\n\t\t}, F = (e) => {\n\t\t\tlet t = S.value.getBoundingClientRect(), { clientX: n, clientY: r } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n\t\t\treturn {\n\t\t\t\tx: n - (s.horizontal ? 0 : w.value.cursorOffset) - t.left,\n\t\t\t\ty: r - (s.horizontal ? w.value.cursorOffset : 0) - t.top\n\t\t\t};\n\t\t}, I = (e) => {\n\t\t\te = e[s.horizontal ? \"y\" : \"x\"];\n\t\t\tlet t = S.value[s.horizontal ? \"clientHeight\" : \"clientWidth\"];\n\t\t\treturn s.rtl && !s.horizontal && (e = t - e), e * 100 / t;\n\t\t}, L = (e) => {\n\t\t\tR(I(e));\n\t\t}, R = (e) => {\n\t\t\tlet t = w.value.activeSplitter;\n\t\t\tif (t === null || t >= y.value.length - 1) return;\n\t\t\tlet n = {\n\t\t\t\tprevPanesSize: z(t),\n\t\t\t\tnextPanesSize: B(t),\n\t\t\t\tprevReachedMinPanes: 0,\n\t\t\t\tnextReachedMinPanes: 0\n\t\t\t}, r = 0 + (s.pushOtherPanes ? 0 : n.prevPanesSize), i = 100 - (s.pushOtherPanes ? 0 : n.nextPanesSize);\n\t\t\te = Math.max(Math.min(e, i), r);\n\t\t\tlet a = [t, t + 1], o = y.value[a[0]] || null, c = y.value[a[1]] || null, l = o !== null && o.max < 100 && e >= o.max + n.prevPanesSize, u = c !== null && c.max < 100 && e <= 100 - (c.max + B(t + 1));\n\t\t\tif (l || u) {\n\t\t\t\tl ? (o.size = o.max, c.size = Math.min(Math.max(100 - o.max - n.prevPanesSize - n.nextPanesSize, c.min), c.max)) : (o.size = Math.min(Math.max(100 - c.max - n.prevPanesSize - B(t + 1), o.min), o.max), c.size = c.max);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (s.pushOtherPanes) {\n\t\t\t\tlet t = te(n, e);\n\t\t\t\tif (!t) return;\n\t\t\t\t({sums: n, panesToResize: a} = t), o = y.value[a[0]] || null, c = y.value[a[1]] || null;\n\t\t\t}\n\t\t\to !== null && (o.size = Math.min(Math.max(e - n.prevPanesSize - n.prevReachedMinPanes, o.min), o.max)), c !== null && (c.size = Math.min(Math.max(100 - e - n.nextPanesSize - n.nextReachedMinPanes, c.min), c.max));\n\t\t}, te = (e, t) => {\n\t\t\tlet n = w.value.activeSplitter, r = [n, n + 1];\n\t\t\tif (t < e.prevPanesSize + y.value[r[0]].min) {\n\t\t\t\tif (r[0] = V(n).index, e.prevReachedMinPanes = 0, r[0] < n && y.value.forEach((t, i) => {\n\t\t\t\t\ti > r[0] && i <= n && (t.size = t.min, e.prevReachedMinPanes += t.min);\n\t\t\t\t}), r[0] === void 0) return e.prevReachedMinPanes = 0, y.value[0].size = y.value[0].min, y.value.forEach((t, r) => {\n\t\t\t\t\tr > 0 && r <= n && (t.size = t.min, e.prevReachedMinPanes += t.min);\n\t\t\t\t}), y.value[r[1]].size = 100 - e.prevReachedMinPanes - y.value[0].min - e.prevPanesSize - e.nextPanesSize, null;\n\t\t\t\te.prevPanesSize = z(r[0]);\n\t\t\t}\n\t\t\treturn t > 100 - e.nextPanesSize - y.value[r[1]].min && (r[1] = H(n).index, e.nextReachedMinPanes = 0, r[1] > n + 1 && y.value.forEach((t, i) => {\n\t\t\t\ti > n && i < r[1] && (t.size = t.min, e.nextReachedMinPanes += t.min);\n\t\t\t}), e.nextPanesSize = r[1] === void 0 ? 0 : B(r[1] - 1), r[1] === void 0) ? (e.nextReachedMinPanes = 0, y.value.forEach((t, r) => {\n\t\t\t\tr >= n + 1 && (t.size = t.min, e.nextReachedMinPanes += t.min);\n\t\t\t}), r[0] !== void 0 && (y.value[r[0]].size = 100 - e.prevPanesSize - B(r[0] - 1)), null) : {\n\t\t\t\tsums: e,\n\t\t\t\tpanesToResize: r\n\t\t\t};\n\t\t}, z = (e) => y.value.reduce((t, n, r) => t + (r < e ? n.size : 0), 0), B = (e) => y.value.reduce((t, n, r) => t + (r > e + 1 ? n.size : 0), 0), V = (e) => [...y.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, H = (e) => y.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, U = () => {\n\t\t\tlet e = Array.from(S.value?.children || []);\n\t\t\tfor (let t of e) {\n\t\t\t\tlet e = t.classList.contains(\"splitpanes__pane\"), n = t.classList.contains(\"splitpanes__splitter\");\n\t\t\t\t!e && !n && (t.remove(), console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\"));\n\t\t\t}\n\t\t}, W = (e, t, n = !1) => {\n\t\t\tlet r = e - 1, i = document.createElement(\"div\");\n\t\t\ti.classList.add(\"splitpanes__splitter\"), n || (i.onmousedown = (e) => O(e, r), typeof window < \"u\" && \"ontouchstart\" in window && (i.ontouchstart = (e) => O(e, r)), i.onclick = (e) => j(e, r + 1), s.keyboardStep && (i.setAttribute(\"tabindex\", \"0\"), i.setAttribute(\"role\", \"separator\"), i.setAttribute(\"aria-orientation\", s.horizontal ? \"horizontal\" : \"vertical\"), i.onkeydown = (e) => N(e, r))), i.ondblclick = (e) => M(e, r + 1), t.parentNode.insertBefore(i, t);\n\t\t}, G = (e) => {\n\t\t\te.onmousedown = null, e.onclick = null, e.ondblclick = null, e.onkeydown = null, e.remove();\n\t\t}, K = () => {\n\t\t\tlet e = Array.from(S.value?.children || []);\n\t\t\tfor (let t of e) t.className.includes(\"splitpanes__splitter\") && G(t);\n\t\t\tlet t = 0;\n\t\t\tfor (let n of e) n.className.includes(\"splitpanes__pane\") && (!t && s.firstSplitter ? W(t, n, !0) : t && W(t, n), t++);\n\t\t}, q = ({ uid: e, ...t }) => {\n\t\t\tlet n = b.value[e];\n\t\t\tfor (let [e, r] of Object.entries(t)) n[e] = r;\n\t\t}, J = !1, Y = (e) => {\n\t\t\tlet t = -1;\n\t\t\tArray.from(S.value?.children || []).some((n) => (n.className.includes(\"splitpanes__pane\") && t++, n.isSameNode(e.el))), y.value.splice(t, 0, {\n\t\t\t\t...e,\n\t\t\t\tindex: t\n\t\t\t}), y.value.forEach((e, t) => e.index = t), C.value && !J && (J = !0, o(() => {\n\t\t\t\tK(), Z({ addedPane: y.value[t] }), $(\"pane-add\", { pane: y.value[t] }), J = !1;\n\t\t\t}));\n\t\t}, X = (e) => {\n\t\t\tlet t = y.value.findIndex((t) => t.id === e);\n\t\t\ty.value[t].el = null;\n\t\t\tlet n = y.value.splice(t, 1)[0];\n\t\t\ty.value.forEach((e, t) => e.index = t), o(() => {\n\t\t\t\tK(), $(\"pane-remove\", { pane: n }), Z({ removedPane: {\n\t\t\t\t\t...n,\n\t\t\t\t\tindex: t\n\t\t\t\t} });\n\t\t\t});\n\t\t}, Z = (e = {}) => {\n\t\t\t!e.addedPane && !e.removedPane ? re() : y.value.some((e) => e.givenSize !== null || e.min || e.max < 100) ? ie(e) : ne(), C.value && $(\"resized\");\n\t\t}, ne = () => {\n\t\t\tlet e = 100 / x.value, t = 100, n = [], r = [];\n\t\t\tfor (let i of y.value) i.size = Math.max(Math.min(e, i.max), i.min), t -= i.size, i.size >= i.max && n.push(i.id), i.size <= i.min && r.push(i.id);\n\t\t\tMath.abs(t) > .1 && Q(t, n, r);\n\t\t}, re = () => {\n\t\t\tlet e = 100, t = [], n = [], r = 0;\n\t\t\tfor (let i of y.value) e -= i.size, i.givenSize !== null && r++, i.size >= i.max && t.push(i.id), i.size <= i.min && n.push(i.id);\n\t\t\tlet i = 100;\n\t\t\tif (e > .1) {\n\t\t\t\tfor (let t of y.value) t.givenSize === null && (t.size = Math.max(Math.min(e / (x.value - r), t.max), t.min)), i -= t.size;\n\t\t\t\ti > .1 && Q(i, t, n);\n\t\t\t}\n\t\t}, ie = ({ addedPane: e, removedPane: t } = {}) => {\n\t\t\tlet n = y.value.reduce((e, t) => e + (t.givenSize === null ? 0 : t.givenSize), 0), r = y.value.filter((e) => e.givenSize === null).length, i = r > 0 ? (100 - n) / r : 0, a = 0, o = [], s = [];\n\t\t\tfor (let e of y.value) a -= e.size, e.size >= e.max && o.push(e.id), e.size <= e.min && s.push(e.id);\n\t\t\tif (!(Math.abs(a) < .1)) {\n\t\t\t\ta = 100;\n\t\t\t\tfor (let e of y.value) e.givenSize === null && (e.size = Math.max(Math.min(i, e.max), e.min)), a -= e.size, e.size >= e.max && o.push(e.id), e.size <= e.min && s.push(e.id);\n\t\t\t\tMath.abs(a) > .1 && Q(a, o, s);\n\t\t\t}\n\t\t}, Q = (e, t, n) => {\n\t\t\tlet r;\n\t\t\tr = e > 0 ? e / (x.value - t.length) : e / (x.value - n.length), y.value.forEach((i, a) => {\n\t\t\t\tif (e > 0 && !t.includes(i.id)) {\n\t\t\t\t\tlet t = Math.max(Math.min(i.size + r, i.max), i.min), n = t - i.size;\n\t\t\t\t\te -= n, i.size = t;\n\t\t\t\t} else if (!n.includes(i.id)) {\n\t\t\t\t\tlet t = Math.max(Math.min(i.size + r, i.max), i.min), n = t - i.size;\n\t\t\t\t\te -= n, i.size = t;\n\t\t\t\t}\n\t\t\t}), Math.abs(e) > .1 && C.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n\t\t}, $ = (e, t = void 0, n = !1) => {\n\t\t\tlet r = t?.index ?? w.value.activeSplitter ?? null;\n\t\t\ta(e, {\n\t\t\t\t...t,\n\t\t\t\t...r !== null && { index: r },\n\t\t\t\t...n && r !== null && {\n\t\t\t\t\tprevPane: y.value[r - +!!s.firstSplitter],\n\t\t\t\t\tnextPane: y.value[r + +!s.firstSplitter]\n\t\t\t\t},\n\t\t\t\tpanes: y.value.map((e) => ({\n\t\t\t\t\tmin: e.min,\n\t\t\t\t\tmax: e.max,\n\t\t\t\t\tsize: e.size\n\t\t\t\t}))\n\t\t\t});\n\t\t};\n\t\tv(() => s.firstSplitter, () => K()), v(() => s.horizontal, (e) => o(() => {\n\t\t\ta(\"direction-changed\", {\n\t\t\t\thorizontal: e,\n\t\t\t\tpanes: y.value.map((e) => ({\n\t\t\t\t\tmin: e.min,\n\t\t\t\t\tmax: e.max,\n\t\t\t\t\tsize: e.size\n\t\t\t\t}))\n\t\t\t});\n\t\t})), l(() => {\n\t\t\tU(), K(), Z(), $(\"ready\"), C.value = !0;\n\t\t}), c(() => C.value = !1);\n\t\tlet ae = () => {\n\t\t\tlet { class: e, ...t } = p;\n\t\t\treturn i(\"div\", {\n\t\t\t\tref: S,\n\t\t\t\tclass: [E.value, e],\n\t\t\t\t...t\n\t\t\t}, h.default?.());\n\t\t};\n\t\treturn d(\"panes\", y), d(\"indexedPanes\", b), d(\"horizontal\", e(() => s.horizontal)), d(\"requestUpdate\", q), d(\"onPaneAdd\", Y), d(\"onPaneRemove\", X), d(\"onPaneClick\", P), (e, n) => (u(), t(m(ae)));\n\t}\n}), b = {\n\t__name: \"pane\",\n\tprops: {\n\t\tsize: { type: [Number, String] },\n\t\tminSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0\n\t\t},\n\t\tmaxSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 100\n\t\t}\n\t},\n\tsetup(t) {\n\t\tlet i = t, o = a(\"requestUpdate\"), d = a(\"onPaneAdd\"), m = a(\"horizontal\"), g = a(\"onPaneRemove\"), _ = a(\"onPaneClick\"), y = r()?.uid, b = a(\"indexedPanes\"), x = e(() => b.value[y]), S = f(null), C = e(() => {\n\t\t\tlet e = isNaN(i.size) || i.size === void 0 ? 0 : parseFloat(i.size);\n\t\t\treturn Math.max(Math.min(e, T.value), w.value);\n\t\t}), w = e(() => {\n\t\t\tlet e = parseFloat(i.minSize);\n\t\t\treturn isNaN(e) ? 0 : e;\n\t\t}), T = e(() => {\n\t\t\tlet e = parseFloat(i.maxSize);\n\t\t\treturn isNaN(e) ? 100 : e;\n\t\t}), E = e(() => {\n\t\t\tlet e = x.value?.size ?? (i.size === void 0 ? void 0 : C.value);\n\t\t\treturn e === void 0 ? \"\" : `${m.value ? \"height\" : \"width\"}: ${e}%`;\n\t\t});\n\t\treturn v(() => C.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tsize: e\n\t\t})), v(() => w.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tmin: e\n\t\t})), v(() => T.value, (e) => o({\n\t\t\tuid: y,\n\t\t\tmax: e\n\t\t})), l(() => {\n\t\t\td({\n\t\t\t\tid: y,\n\t\t\t\tel: S.value,\n\t\t\t\tmin: w.value,\n\t\t\t\tmax: T.value,\n\t\t\t\tgivenSize: i.size === void 0 ? null : C.value,\n\t\t\t\tsize: C.value\n\t\t\t});\n\t\t}), c(() => g(y)), (e, t) => (u(), n(\"div\", {\n\t\t\tref_key: \"paneEl\",\n\t\t\tref: S,\n\t\t\tclass: \"splitpanes__pane\",\n\t\t\tonClick: t[0] ||= (t) => h(_)(t, e._.uid),\n\t\t\tstyle: s(E.value)\n\t\t}, [p(e.$slots, \"default\")], 4));\n\t}\n};\n//#endregion\nexport { b as Pane, y as Splitpanes };\n","/*!\n* vue-router v5.2.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { _ as isRouteComponent, c as diagnostics, g as isESModule, h as isArray, p as assign, r as matchedRouteKey, u as createRouterError } from \"./useApi-CROJJdhE.js\";\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch {\n\t\tprocess.env.NODE_ENV !== \"production\" && diagnostics.VUE_ROUTER_R0080({ text: \"\" + text });\n\t}\n\treturn \"\" + text;\n}\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery, location) {\n\tconst query = location.query ? stringifyQuery(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery(a.query) === stringifyQuery(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf());\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\tdiagnostics.VUE_ROUTER_R0070({\n\t\t\tto,\n\t\t\tfrom\n\t\t});\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n//#endregion\n//#region src/history/common.ts\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0040({ el: position.el });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tdiagnostics.VUE_ROUTER_R0041({ el: position.el });\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && diagnostics.VUE_ROUTER_R0042({ el: position.el });\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value) => {\n\t\t\tif (value !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value != null) search += \"=\" + value;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(activeRecordRef, name, guard) {\n\tconst record = activeRecordRef.value;\n\tif (!record) {\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tconst fnName = name === \"updateGuards\" ? \"onBeforeRouteUpdate\" : \"onBeforeRouteLeave\";\n\t\t\tdiagnostics.VUE_ROUTER_R0020({ fn: fnName });\n\t\t}\n\t\treturn;\n\t}\n\tlet currentRecord = record;\n\tconst removeFromList = () => {\n\t\tcurrentRecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\tconst newRecord = activeRecordRef.value;\n\t\tif (process.env.NODE_ENV !== \"production\" && !newRecord) diagnostics.VUE_ROUTER_R0021();\n\t\tif (newRecord) currentRecord = newRecord;\n\t\tcurrentRecord[name].add(guard);\n\t});\n\tcurrentRecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\tdiagnostics.VUE_ROUTER_R0022({ fn: \"onBeforeRouteLeave\" });\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\tdiagnostics.VUE_ROUTER_R0022({ fn: \"onBeforeRouteUpdate\" });\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(4, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(2, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? withDeprecationWarning(canOnlyBeCalledOnce(next, to, from)) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst guardInfo = {\n\t\t\t\tname: guard.name,\n\t\t\t\tguard: guard.toString()\n\t\t\t};\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0023(guardInfo);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0023(guardInfo);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\n/**\n* Wraps the next callback to warn when it is used. Dev-only: when __DEV__ is\n* false (production builds), this branch is dead code and is stripped from the\n* bundle.\n*\n* @internal\n*/\nfunction withDeprecationWarning(next) {\n\tlet warned = false;\n\treturn function() {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tdiagnostics.VUE_ROUTER_R0025();\n\t\t}\n\t\treturn next.apply(this, arguments);\n\t};\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) diagnostics.VUE_ROUTER_R0024({\n\t\t\tfrom: from.fullPath,\n\t\t\tto: to.fullPath\n\t\t});\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) diagnostics.VUE_ROUTER_R0026({ path: record.path });\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0027({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path,\n\t\t\t\t\t\treceived: String(rawComponent)\n\t\t\t\t\t});\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0028({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path\n\t\t\t\t\t});\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0029({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0030({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath: record.path\n\t\t\t\t\t});\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tapi.on.inspectComponent((payload) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route) => route.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n//#endregion\nexport { PLUS_RE as A, isSameRouteLocation as C, resolveRelativePath as D, parseURL as E, isBrowser as F, encodeHash as M, encodeParam as N, stringifyURL as O, encodePath as P, START_LOCATION_NORMALIZED as S, isSameRouteRecord as T, saveScrollPosition as _, loadRouteLocation as a, normalizeBase as b, useCallbacks as c, stringifyQuery as d, isRouteLocation as f, getScrollKey as g, getSavedScrollPosition as h, guardToPromiseFn as i, decode as j, stripBase as k, normalizeQuery as l, computeScrollPosition as m, extractChangingRecords as n, onBeforeRouteLeave as o, isRouteName as p, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, parseQuery as u, scrollToPosition as v, isSameRouteLocationParams as w, NEW_stringifyURL as x, createHref as y };\n","/*!\n* vue-router v5.2.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { C as isSameRouteLocation, E as parseURL, F as isBrowser, M as encodeHash, N as encodeParam, O as stringifyURL, S as START_LOCATION_NORMALIZED, T as isSameRouteRecord, _ as saveScrollPosition, a as loadRouteLocation, b as normalizeBase, c as useCallbacks, d as stringifyQuery, f as isRouteLocation, g as getScrollKey, h as getSavedScrollPosition, i as guardToPromiseFn, j as decode, k as stripBase, l as normalizeQuery, m as computeScrollPosition, n as extractChangingRecords, o as onBeforeRouteLeave, p as isRouteName, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as parseQuery, v as scrollToPosition, w as isSameRouteLocationParams, y as createHref } from \"./devtools-Bpr7ZAVB.js\";\nimport { a as routerKey, c as diagnostics, d as isNavigationFailure, f as applyToParams, h as isArray, i as routeLocationKey, l as NavigationFailureType, n as useRouter, o as routerViewLocationKey, p as assign, r as matchedRouteKey, s as viewDepthKey, t as useRoute, u as createRouterError, v as mergeOptions, y as noop } from \"./useApi-CROJJdhE.js\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location) {\n\tconst { pathname, search, hash } = location;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: \"pop\",\n\t\t\t\tdirection: delta ? delta > 0 ? \"forward\" : \"back\" : \"\"\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history } = window;\n\t\t\tif (!history.state) return;\n\t\t\thistory.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history, location } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location) };\n\tconst historyState = { value: history.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory[replace ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0120({ cause: err });\n\t\t\telse console.error(err);\n\t\t\tlocation[replace ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history.state) diagnostics.VUE_ROUTER_R0121();\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) diagnostics.VUE_ROUTER_R0110({\n\t\tbase,\n\t\tsuggestion: base.replace(/#.*$/, \"#\")\n\t});\n\treturn createWebHistory(base);\n}\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[\"\", {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: \"pop\"\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: \"\",\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[\"\", {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? \"back\" : \"forward\";\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nconst ROOT_TOKEN = {\n\ttype: 0,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = 0;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === 0) segment.push({\n\t\t\ttype: 0,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === 1 || state === 2 || state === 3) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: 1,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tswitch (state) {\n\t\t\tcase 0:\n\t\t\t\tif (char === \"\\\\\") {\n\t\t\t\t\tpreviousState = state;\n\t\t\t\t\tstate = 4;\n\t\t\t\t} else if (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 1;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tif (char === \"(\") state = 2;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 0;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = 3;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = 0;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === 2) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [90];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = 40 + (options.sensitive ? .25 : 0);\n\t\t\tif (token.type === 0) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += 40;\n\t\t\t} else if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += 10;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnew RegExp(`(${re})`);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += 20;\n\t\t\t\tif (optional) subSegmentScore += -8;\n\t\t\t\tif (repeatable) subSegmentScore += -20;\n\t\t\t\tif (re === \".*\") subSegmentScore += -50;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += .7000000000000001;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === 0) path += token.value;\n\t\t\telse if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === 80 ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === 80 ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) diagnostics.VUE_ROUTER_R0090({\n\t\t\t\tname: key.name,\n\t\t\t\tpath: record.path\n\t\t\t});\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location && location.name) {\n\t\t\tmatcher = matcherMap.get(location.name);\n\t\t\tif (!matcher) throw createRouterError(1, { location });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) {\n\t\t\t\t\tconst isInherited = !matcher.keys.length && invalidParams.some((name) => name in currentLocation.params);\n\t\t\t\t\tdiagnostics.VUE_ROUTER_R0100({\n\t\t\t\t\t\tparams: invalidParams.join(\"\\\", \\\"\"),\n\t\t\t\t\t\tinherited: isInherited ? ` If you are using a catch-all route with a named redirect, pass an empty \\`params\\` object: \\`redirect: { name: '...', params: {} }\\`.` : \"\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location.params && pickParams(location.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location.path != null) {\n\t\t\tpath = location.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) diagnostics.VUE_ROUTER_R0101({ path });\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t\tmatcher.keys.forEach((key) => {\n\t\t\t\t\tif (key.optional && !params[key.name]) delete params[key.name];\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(1, {\n\t\t\t\tlocation,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) {\n\t\tdiagnostics.VUE_ROUTER_R0102({\n\t\t\talias: b.record.path,\n\t\t\toriginal: a.record.path,\n\t\t\tname: key.name\n\t\t});\n\t\treturn;\n\t}\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) {\n\t\tdiagnostics.VUE_ROUTER_R0102({\n\t\t\talias: b.record.path,\n\t\t\toriginal: a.record.path,\n\t\t\tname: key.name\n\t\t});\n\t\treturn;\n\t}\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path && mainNormalizedRecord.children.length === 0) diagnostics.VUE_ROUTER_R0103({ name: String(parent.record.name) });\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) {\n\t\tdiagnostics.VUE_ROUTER_R0104({\n\t\t\tpath: record.record.path,\n\t\t\tname: key.name,\n\t\t\tparent: parent.record.path\n\t\t});\n\t\treturn;\n\t}\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) diagnostics.VUE_ROUTER_R0105({\n\t\t\tancestor: insertionAncestor.record.path,\n\t\t\trecord: matcher.record.path\n\t\t});\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) diagnostics.VUE_ROUTER_R0050({ to });\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, _oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\tdiagnostics.VUE_ROUTER_R0060({ comp });\n\t}\n}\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) diagnostics.VUE_ROUTER_R0001({ name: String(parentOrRoute) });\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0002({ name: String(name) });\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href.startsWith(\"//\")) diagnostics.VUE_ROUTER_R0003({\n\t\t\t\t\tlocation: rawLocation,\n\t\t\t\t\thref\n\t\t\t\t});\n\t\t\t\telse if (!matchedRoute.matched.length) diagnostics.VUE_ROUTER_R0004({ path: rawLocation });\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute, {\n\t\t\t\tparams: decodeParams(matchedRoute.params),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\tdiagnostics.VUE_ROUTER_R0005({ rawLocation });\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) diagnostics.VUE_ROUTER_R0006({ path: rawLocation.path });\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) diagnostics.VUE_ROUTER_R0007({ hash });\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) diagnostics.VUE_ROUTER_R0003({\n\t\t\t\tlocation: rawLocation,\n\t\t\t\thref\n\t\t\t});\n\t\t\telse if (!matchedRoute.matched.length) diagnostics.VUE_ROUTER_R0004({ path: rawLocation.path != null ? rawLocation.path : rawLocation });\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(8, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\tdiagnostics.VUE_ROUTER_R0008({\n\t\t\t\t\ttarget: JSON.stringify(newTargetLocation, null, 2),\n\t\t\t\t\tto: to.fullPath\n\t\t\t\t});\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(16, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, 2) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure) => {\n\t\t\tif (failure) {\n\t\t\t\tif (isNavigationFailure(failure, 2)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\tdiagnostics.VUE_ROUTER_R0009({\n\t\t\t\t\t\t\tfrom: from.fullPath,\n\t\t\t\t\t\t\tto: toLocation.fullPath\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace }, locationAsObject(failure.to), {\n\t\t\t\t\t\tstate: typeof failure.to === \"object\" ? assign({}, data, failure.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure = finalizeNavigation(toLocation, from, true, replace, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\treturn failure;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, 8) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, 12)) return error;\n\t\t\t\tif (isNavigationFailure(error, 2)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, 20) && !info.delta && info.type === \"pop\") routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, 8)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === \"pop\" && isNavigationFailure(failure, 20)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0010();\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadyHandlers.add([resolve, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve, reject]) => err ? reject(err) : resolve());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => to === currentRoute.value && position && scrollToPosition(position)).catch((err) => to === currentRoute.value && triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") diagnostics.VUE_ROUTER_R0011({ cause: err });\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && true) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","import { loadState } from \"@nextcloud/initial-state\";\nimport { inject } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction once(func) {\n let wasCalled = false;\n let result;\n return (...args) => {\n if (!wasCalled) {\n wasCalled = true;\n result = func(...args);\n }\n return result;\n };\n}\nlet realAppName = \"missing-app-name\";\ntry {\n realAppName = appName;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appName`.\");\n}\nconst APP_NAME = realAppName;\nlet realAppVersion = \"\";\ntry {\n realAppVersion = appVersion;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.\");\n}\nconst APP_VERSION = realAppVersion;\nfunction useAppName() {\n return inject(\"appName\", APP_NAME);\n}\nconst useLocalizedAppName = once(() => {\n const apps = loadState(\"core\", \"apps\", []);\n const realAppName2 = useAppName();\n return apps.find(({ id }) => id === realAppName2)?.name ?? realAppName2;\n});\nexport {\n APP_VERSION as A,\n useAppName as a,\n useLocalizedAppName as u\n};\n//# sourceMappingURL=appName-DyNMVZpX.mjs.map\n","import '../assets/NcAppContent-TgcZd4AI.css';\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Splitpanes, Pane } from \"splitpanes\";\nimport { defineComponent, watch, onMounted, onBeforeUnmount, openBlock, createBlock, unref, normalizeClass, withCtx, createVNode, resolveComponent, createElementBlock, toDisplayString, createCommentVNode, Fragment, withModifiers, withDirectives, createElementVNode, renderSlot, vShow } from \"vue\";\nimport { m as mdiArrowRight } from \"./mdi-CpchYUUV.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, G as t27, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as useLocalizedAppName, a as useAppName } from \"./appName-DyNMVZpX.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport \"splitpanes/dist/splitpanes.css\";\nregister(t27);\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppContentDetailsToggle\",\n setup(__props) {\n const isMobile = useIsMobile();\n watch(isMobile, toggleAppNavigationButton);\n onMounted(() => {\n toggleAppNavigationButton(isMobile.value);\n });\n onBeforeUnmount(() => {\n if (isMobile.value) {\n toggleAppNavigationButton(false);\n }\n });\n function toggleAppNavigationButton(hide = true) {\n const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n if (appNavigationToggle) {\n appNavigationToggle.style.display = hide ? \"none\" : \"\";\n if (hide === true) {\n emit(\"toggle-navigation\", { open: false });\n }\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcButton), {\n \"aria-label\": unref(t)(\"Go back to the list\"),\n class: normalizeClass([\"app-details-toggle\", { \"app-details-toggle--mobile\": unref(isMobile) }]),\n title: unref(t)(\"Go back to the list\"),\n variant: \"tertiary\"\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"class\", \"title\"]);\n };\n }\n});\nconst NcAppContentDetailsToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-a28923a1\"]]);\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst instanceName = getCapabilities().theming?.name ?? \"Nextcloud\";\nconst _sfc_main = {\n name: \"NcAppContent\",\n components: {\n NcAppContentDetailsToggle,\n Pane,\n Splitpanes\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state.\n */\n disableSwipe: {\n type: Boolean,\n default: false\n },\n /**\n * Allows you to set the default width of the resizable list in % on vertical-split\n * or respectively the default height on horizontal-split.\n *\n * Must be between `listMinWidth` and `listMaxWidth`.\n */\n listSize: {\n type: Number,\n default: 20\n },\n /**\n * Allows you to set the minimum width of the list column in % on vertical-split\n * or respectively the minimum height on horizontal-split.\n */\n listMinWidth: {\n type: Number,\n default: 15\n },\n /**\n * Allows you to set the maximum width of the list column in % on vertical-split\n * or respectively the maximum height on horizontal-split.\n */\n listMaxWidth: {\n type: Number,\n default: 40\n },\n /**\n * Specify the config key for the pane config sizes\n * Default is the global var appName if you use the webpack-vue-config\n */\n paneConfigKey: {\n type: String,\n default: \"\"\n },\n /**\n * When in mobile view, only the list or the details are shown.\n *\n * If you provide a list, you need to provide a variable\n * that will be set to true by the user when an element of\n * the list gets selected. The details will then show a back\n * arrow to return to the list that will update this prop to false.\n */\n showDetails: {\n type: Boolean,\n default: true\n },\n /**\n * Content layout used when there is a list together with content:\n * - `vertical-split` - a 2-column layout with list and default content separated vertically\n * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.\n * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally\n * On mobile screen `no-split` layout is forced.\n */\n layout: {\n type: String,\n default: \"vertical-split\",\n validator(value) {\n return [\"no-split\", \"vertical-split\", \"horizontal-split\"].includes(value);\n }\n },\n /**\n * Specify the `

` page heading\n */\n pageHeading: {\n type: String,\n default: null\n },\n /**\n * Allow setting the page's ``\n *\n * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.\n * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.\n * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`\n */\n pageTitle: {\n type: String,\n default: null\n }\n },\n emits: [\n \"update:showDetails\",\n \"resizeList\"\n ],\n setup() {\n return {\n appName: useAppName(),\n localizedAppName: useLocalizedAppName(),\n isMobile: useIsMobile(),\n isRtl\n };\n },\n data() {\n return {\n contentHeight: 0,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\") {\n return `pane-list-size-${this.paneConfigKey}`;\n }\n try {\n return `pane-list-size-${this.appName}`;\n } catch {\n logger.info(\"[NcAppContent]: falling back to global nextcloud pane config\");\n return \"pane-list-size-nextcloud\";\n }\n },\n detailsPaneSize() {\n if (this.listPaneSize) {\n return 100 - this.listPaneSize;\n }\n return this.paneDefaults.details.size;\n },\n paneDefaults() {\n return {\n list: {\n size: this.listSize,\n min: this.listMinWidth,\n max: this.listMaxWidth\n },\n // set the inverse values of the details column\n // based on the provided (or default) values of the list column\n details: {\n size: 100 - this.listSize,\n min: 100 - this.listMaxWidth,\n max: 100 - this.listMinWidth\n }\n };\n },\n realPageTitle() {\n const entries = /* @__PURE__ */ new Set();\n if (this.pageTitle) {\n for (const part of this.pageTitle.split(\" - \")) {\n entries.add(part);\n }\n } else if (this.pageHeading) {\n for (const part of this.pageHeading.split(\" - \")) {\n entries.add(part);\n }\n if (entries.size > 0) {\n entries.add(this.localizedAppName);\n }\n } else {\n return null;\n }\n entries.add(instanceName);\n return [...entries.values()].join(\" - \");\n }\n },\n watch: {\n realPageTitle: {\n immediate: true,\n handler() {\n if (this.realPageTitle !== null) {\n document.title = this.realPageTitle;\n }\n }\n },\n paneConfigKey: {\n immediate: true,\n handler() {\n this.restorePaneConfig();\n }\n }\n },\n mounted() {\n if (!this.disableSwipe) {\n this.swiping = useSwipe(this.$el, {\n onSwipeEnd: this.handleSwipe\n });\n }\n this.restorePaneConfig();\n },\n methods: {\n /**\n * handle the swipe event\n *\n * @param {TouchEvent} e The touch event\n * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n */\n handleSwipe(e, direction) {\n const minSwipeX = 70;\n const touchZone = 300;\n if (Math.abs(this.swiping.lengthX) > minSwipeX) {\n if (this.swiping.coordsStart.x < touchZone / 2 && direction === \"right\") {\n emit(\"toggle-navigation\", {\n open: true\n });\n } else if (this.swiping.coordsStart.x < touchZone * 1.5 && direction === \"left\") {\n emit(\"toggle-navigation\", {\n open: false\n });\n }\n }\n },\n handlePaneResize(event) {\n const listPaneSize = parseInt(event.panes[0].size, 10);\n browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n this.listPaneSize = listPaneSize;\n this.$emit(\"resizeList\", { size: listPaneSize });\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n },\n // browserStorage is not reactive, we need to update this manually\n restorePaneConfig() {\n const listPaneSize = parseInt(browserStorage.getItem(this.paneConfigID), 10);\n if (!isNaN(listPaneSize) && listPaneSize !== this.listPaneSize) {\n logger.debug(\"[NcAppContent] pane config\", { listPaneSize });\n this.listPaneSize = listPaneSize;\n return listPaneSize;\n }\n },\n /**\n * The user clicked the back arrow from the details view\n */\n hideDetails() {\n this.$emit(\"update:showDetails\", false);\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"hidden-visually\"\n};\nconst _hoisted_2 = { class: \"app-content-wrapper__list\" };\nconst _hoisted_3 = {\n key: 1,\n class: \"app-content-wrapper\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppContentDetailsToggle = resolveComponent(\"NcAppContentDetailsToggle\");\n const _component_Pane = resolveComponent(\"Pane\");\n const _component_Splitpanes = resolveComponent(\"Splitpanes\");\n return openBlock(), createElementBlock(\"main\", {\n id: \"app-content-vue\",\n class: normalizeClass([\"app-content no-snapper\", { \"app-content--has-list\": !!_ctx.$slots.list }])\n }, [\n $props.pageHeading ? (openBlock(), createElementBlock(\"h1\", _hoisted_1, toDisplayString($props.pageHeading), 1)) : createCommentVNode(\"\", true),\n !!_ctx.$slots.list ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n $setup.isMobile || $props.layout === \"no-split\" ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-content-wrapper app-content-wrapper--no-split\", {\n \"app-content-wrapper--show-details\": $props.showDetails,\n \"app-content-wrapper--show-list\": !$props.showDetails,\n \"app-content-wrapper--mobile\": $setup.isMobile\n }])\n }, [\n $props.showDetails ? (openBlock(), createBlock(_component_NcAppContentDetailsToggle, {\n key: 0,\n onClick: withModifiers($options.hideDetails, [\"stop\", \"prevent\"])\n }, null, 8, [\"onClick\"])) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ], 512), [\n [vShow, !$props.showDetails]\n ]),\n $props.showDetails ? renderSlot(_ctx.$slots, \"default\", { key: 1 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2)) : $props.layout === \"vertical-split\" || $props.layout === \"horizontal-split\" ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_Splitpanes, {\n horizontal: $props.layout === \"horizontal-split\",\n class: normalizeClass([\"default-theme\", {\n \"splitpanes--horizontal\": $props.layout === \"horizontal-split\",\n \"splitpanes--vertical\": $props.layout === \"vertical-split\"\n }]),\n rtl: $setup.isRtl,\n onResized: $options.handlePaneResize\n }, {\n default: withCtx(() => [\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-list\",\n size: $data.listPaneSize || $options.paneDefaults.list.size,\n minSize: $options.paneDefaults.list.min,\n maxSize: $options.paneDefaults.list.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"minSize\", \"maxSize\"]),\n createVNode(_component_Pane, {\n class: \"splitpanes__pane-details\",\n size: $options.detailsPaneSize,\n minSize: $options.paneDefaults.details.min,\n maxSize: $options.paneDefaults.details.max\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"size\", \"minSize\", \"maxSize\"])\n ]),\n _: 3\n }, 8, [\"horizontal\", \"class\", \"rtl\", \"onResized\"])\n ])) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n !_ctx.$slots.list ? renderSlot(_ctx.$slots, \"default\", { key: 2 }, void 0, true) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcAppContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-51427d61\"]]);\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-DavgjaFX.mjs.map\n","import '../assets/NcAppNavigationList--36j6Acm.css';\nimport { openBlock, createElementBlock, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationList\"\n};\nconst _hoisted_1 = { class: \"app-navigation-list\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n}\nconst NcAppNavigationList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-d72957ed\"]]);\nexport {\n NcAppNavigationList as N\n};\n//# sourceMappingURL=NcAppNavigationList-CGSWabRB.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst HAS_APP_NAVIGATION_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:setHasAppNavigation\");\nconst CONTENT_SELECTOR_KEY = /* @__PURE__ */ Symbol.for(\"NcContent:selector\");\nexport {\n CONTENT_SELECTOR_KEY as C,\n HAS_APP_NAVIGATION_KEY as H\n};\n//# sourceMappingURL=constants-Ciwvl5xb.mjs.map\n","import '../assets/NcAppNavigation-OHw55TTZ.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, createVNode, unref, withCtx, inject, warn, useTemplateRef, ref, watchEffect, watch, onMounted, onUnmounted, normalizeClass, createElementVNode, withKeys, renderSlot, createBlock, createCommentVNode } from \"vue\";\nimport { subscribe, emit, unsubscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcAppNavigationList } from \"./NcAppNavigationList-CGSWabRB.mjs\";\nimport { G as mdiMenuOpen, H as mdiMenu } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { r as register, P as t20, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY } from \"./constants-Ciwvl5xb.mjs\";\nregister(t20);\nconst _hoisted_1$1 = { class: \"app-navigation-toggle-wrapper\" };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigationToggle\",\n props: {\n \"open\": { type: Boolean, ...{ required: true } },\n \"openModifiers\": {}\n },\n emits: [\"update:open\"],\n setup(__props) {\n const open = useModel(__props, \"open\");\n const title = computed(() => open.value ? t(\"Close navigation\") : t(\"Open navigation\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createVNode(unref(NcButton), {\n class: \"app-navigation-toggle\",\n \"aria-controls\": \"app-navigation-vue\",\n \"aria-expanded\": open.value ? \"true\" : \"false\",\n \"aria-label\": title.value,\n title: title.value,\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: open.value ? unref(mdiMenuOpen) : unref(mdiMenu)\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-expanded\", \"aria-label\", \"title\"])\n ]);\n };\n }\n});\nconst NcAppNavigationToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-5a15295d\"]]);\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"inert\"];\nconst _hoisted_2 = { class: \"app-navigation__search\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppNavigation\",\n props: {\n ariaLabel: {},\n ariaLabelledby: {}\n },\n setup(__props) {\n const props = __props;\n let focusTrap;\n const setHasAppNavigation = inject(\n HAS_APP_NAVIGATION_KEY,\n () => warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n false\n );\n const appNavigationContainerElement = useTemplateRef(\"appNavigationContainer\");\n const isMobile = useIsMobile();\n const open = ref(!isMobile.value);\n const shouldActivateFocusTrap = computed(() => isMobile.value && open.value);\n watchEffect(() => {\n if (!props.ariaLabel && !props.ariaLabelledby) {\n warn(\"NcAppNavigation requires either `ariaLabel` or `ariaLabelledby` to be set for accessibility.\");\n }\n });\n watch(isMobile, () => {\n open.value = !isMobile.value;\n });\n watch(shouldActivateFocusTrap, () => {\n toggleFocusTrap();\n });\n onMounted(() => {\n setHasAppNavigation(true);\n subscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n emit(\"navigation-toggled\", {\n open: open.value\n });\n focusTrap = createFocusTrap(appNavigationContainerElement.value, {\n allowOutsideClick: true,\n clickOutsideDeactivates: () => {\n if (isMobile.value) {\n focusTrap.deactivate({ returnFocus: false });\n toggleNavigation(false);\n }\n return false;\n },\n fallbackFocus: appNavigationContainerElement.value,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n toggleFocusTrap();\n });\n onUnmounted(() => {\n setHasAppNavigation(false);\n unsubscribe(\"toggle-navigation\", toggleNavigationByEventBus);\n focusTrap.deactivate();\n });\n function toggleNavigation(state) {\n if (open.value === state) {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n return;\n }\n open.value = state === void 0 ? !open.value : state;\n const bodyStyles = getComputedStyle(document.body);\n const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n emit(\"navigation-toggled\", {\n open: open.value\n });\n }, 1.5 * animationLength);\n }\n function toggleNavigationByEventBus({ open: open2 }) {\n return toggleNavigation(open2);\n }\n function toggleFocusTrap() {\n if (shouldActivateFocusTrap.value) {\n focusTrap.activate();\n } else {\n focusTrap.deactivate();\n }\n }\n function handleEsc() {\n if (isMobile.value) {\n toggleNavigation(false);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"appNavigationContainer\",\n class: normalizeClass([\"app-navigation\", {\n \"app-navigation--closed\": !open.value,\n \"app-navigation--legacy\": unref(isLegacy34)\n }])\n }, [\n createElementVNode(\"nav\", {\n id: \"app-navigation-vue\",\n \"aria-hidden\": open.value ? \"false\" : \"true\",\n \"aria-label\": __props.ariaLabel || void 0,\n \"aria-labelledby\": __props.ariaLabelledby || void 0,\n class: \"app-navigation__content\",\n inert: !open.value || void 0,\n onKeydown: withKeys(handleEsc, [\"esc\"])\n }, [\n createElementVNode(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"search\", {}, void 0, true)\n ]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation__body\", { \"app-navigation__body--no-list\": !_ctx.$slots.list }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2),\n _ctx.$slots.list ? (openBlock(), createBlock(NcAppNavigationList, {\n key: 0,\n class: \"app-navigation__list\"\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n ]),\n _: 3\n })) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n ], 40, _hoisted_1),\n createVNode(NcAppNavigationToggle, {\n open: open.value,\n \"onUpdate:open\": toggleNavigation\n }, null, 8, [\"open\"])\n ], 2);\n };\n }\n});\nconst NcAppNavigation = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-1344f70d\"]]);\nexport {\n NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-g57j16pB.mjs.map\n","import '../assets/NcAppNavigationCaption-ggcWspH2.css';\nimport { N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, createTextVNode, toDisplayString, createElementBlock, createVNode, normalizeProps, guardReactiveProps, renderSlot, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationCaption\",\n components: {\n NcActions\n },\n props: {\n /**\n * The text of the caption\n */\n name: {\n type: String,\n required: true\n },\n /**\n * `id` to set on the inner caption\n * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n */\n headingId: {\n type: String,\n default: null\n },\n /**\n * Enable when used as a heading\n * e.g. Before NcAppNavigationList\n */\n isHeading: {\n type: Boolean,\n default: false\n },\n /**\n * If `isHeading` is set, this defines the heading level that should be used\n */\n headingLevel: {\n type: Number,\n default: 2\n },\n /**\n * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n ...NcActions.props\n },\n computed: {\n actionsProps() {\n const actionProps = Object.keys(NcActions.props);\n const props = Object.entries(this.$props).filter(([key, _value]) => actionProps.includes(key));\n return Object.fromEntries(props);\n },\n wrapperTag() {\n return this.isHeading ? \"div\" : \"li\";\n },\n captionTag() {\n const headingLevel = Math.max(2, this.headingLevel);\n return this.isHeading ? `h${headingLevel}` : \"span\";\n }\n }\n};\nconst _hoisted_1 = {\n key: 0,\n class: \"app-navigation-caption__actions\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($options.wrapperTag), {\n class: normalizeClass([\"app-navigation-caption\", { \"app-navigation-caption--heading\": $props.isHeading }])\n }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent($options.captionTag), {\n id: $props.headingId,\n class: \"app-navigation-caption__name\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString($props.name), 1)\n ]),\n _: 1\n }, 8, [\"id\"])),\n !!_ctx.$slots.actions ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcActions, normalizeProps(guardReactiveProps($options.actionsProps)), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"actionsTriggerIcon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 16)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"class\"]);\n}\nconst NcAppNavigationCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-f0e411c2\"]]);\nexport {\n NcAppNavigationCaption as N\n};\n//# sourceMappingURL=NcAppNavigationCaption-VjSWJ8R4.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ChevronUpIcon\",\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 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" };\nconst _hoisted_4 = { 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 chevron-up-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 $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronUp = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronUp as C\n};\n//# sourceMappingURL=ChevronUp-ChH8oB7p.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"ArrowRightIcon\",\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 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" };\nconst _hoisted_4 = { 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 arrow-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, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconArrowRight = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconArrowRight as I\n};\n//# sourceMappingURL=ArrowRight-B1ncAhus.mjs.map\n","import '../assets/NcInputConfirmCancel-DZEDRf0t.css';\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { r as register, k as t14, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, withKeys, withDirectives, vModelText, createVNode, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t14);\nconst _sfc_main = {\n name: \"NcInputConfirmCancel\",\n components: {\n IconArrowRight,\n IconClose,\n NcButton\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: false,\n type: Boolean\n },\n /**\n * Placeholder of the edit field\n */\n placeholder: {\n default: \"\",\n type: String\n },\n /**\n * The current name (model value)\n */\n modelValue: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"cancel\",\n \"confirm\",\n \"update:modelValue\"\n ],\n setup() {\n return { isLegacy34 };\n },\n data() {\n return {\n labelConfirm: t(\"Confirm changes\"),\n labelCancel: t(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.modelValue;\n },\n set(newValue) {\n this.$emit(\"update:modelValue\", newValue);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nconst _hoisted_1 = [\"placeholder\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-navigation-input-confirm\", { \"app-navigation-input-confirm--legacy\": $setup.isLegacy34 }])\n }, [\n createElementVNode(\"form\", {\n onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.confirm && $options.confirm(...args), [\"prevent\"])),\n onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.cancel && $options.cancel(...args), [\"exact\", \"stop\", \"prevent\"]), [\"esc\"])),\n onClick: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\", \"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"input\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $options.valueModel = $event),\n type: \"text\",\n class: \"app-navigation-input-confirm__input\",\n placeholder: $props.placeholder\n }, null, 8, _hoisted_1), [\n [vModelText, $options.valueModel]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelConfirm,\n type: \"submit\",\n variant: \"primary\",\n onClick: withModifiers($options.confirm, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.labelCancel,\n type: \"reset\",\n variant: $props.primary ? \"primary\" : \"tertiary\",\n onClick: withModifiers($options.cancel, [\"stop\", \"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"variant\", \"onClick\"])\n ], 32)\n ], 2);\n}\nconst NcInputConfirmCancel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6926a0b8\"]]);\nexport {\n NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-CGTllrXj.mjs.map\n","const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default?.()[0].children?.trim?.() || \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal-BZFdtdJL.mjs.map\n","import { warn } from \"vue\";\nimport { N as NC_ACTIONS_CLOSE_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-BZFdtdJL.mjs\";\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n }\n },\n inject: {\n closeMenu: {\n from: NC_ACTIONS_CLOSE_MENU\n }\n },\n emits: [\n \"click\"\n ],\n created() {\n if (\"ariaHidden\" in this.$attrs) {\n warn(\"[NcAction*]: Do not set the ariaHidden attribute as the root element will inherit the incorrect aria-hidden.\");\n }\n },\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n this.closeMenu(false);\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText-BXR0sWNu.mjs.map\n","import '../assets/NcActionButton-DLer-aUY.css';\nimport { c as mdiChevronRight, d as mdiCheck } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, normalizeStyle, toDisplayString, createCommentVNode, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\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 `<input type=\"radio\">`\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 emits: [\"update:modelValue\"],\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 <button>\n */\n buttonAttributes() {\n const attributes = {};\n if (this.isInSemanticMenu) {\n attributes.role = \"menuitem\";\n if (this.type === \"radio\") {\n attributes.role = \"menuitemradio\";\n attributes[\"aria-checked\"] = this.isChecked ? \"true\" : \"false\";\n } else if (this.type === \"checkbox\" || this.nativeType === \"button\" && this.modelValue !== null) {\n attributes.role = \"menuitemcheckbox\";\n attributes[\"aria-checked\"] = this.modelValue === null ? \"mixed\" : this.modelValue ? \"true\" : \"false\";\n }\n } else if (this.modelValue !== null && this.nativeType === \"button\") {\n attributes[\"aria-pressed\"] = this.modelValue ? \"true\" : \"false\";\n }\n return attributes;\n }\n },\n methods: {\n /**\n * Forward click event, let mixin handle the close-after-click and emit new modelValue if needed\n *\n * @param {MouseEvent} event - The click event\n */\n handleClick(event) {\n this.onClick(event);\n if (this.modelValue !== null || this.type !== \"button\") {\n if (this.type === \"radio\") {\n if (typeof this.modelValue !== \"boolean\") {\n if (!this.isChecked) {\n this.$emit(\"update:modelValue\", this.value);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n }\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"aria-label\", \"disabled\", \"title\", \"type\"];\nconst _hoisted_3 = { class: \"action-button__longtext-wrapper\" };\nconst _hoisted_4 = {\n key: 0,\n class: \"action-button__name\"\n};\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-button__text\"\n};\nconst _hoisted_7 = [\"textContent\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"action-button__pressed-icon material-design-icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\"action\", { \"action--disabled\": $props.disabled }]),\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"button\", mergeProps({\n \"aria-label\": _ctx.ariaLabel,\n class: [\"action-button button-vue\", {\n \"action-button--active\": $options.isChecked,\n focusable: $options.isFocusable\n }],\n disabled: $props.disabled,\n title: _ctx.title,\n type: $options.nativeType\n }, $options.buttonAttributes, {\n onClick: _cache[0] || (_cache[0] = (...args) => $options.handleClick && $options.handleClick(...args))\n }), [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass([[_ctx.isIconUrl ? \"action-button__icon--url\" : _ctx.icon], \"action-button__icon\"]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null }),\n \"aria-hidden\": \"true\"\n }, null, 6)\n ], true),\n createElementVNode(\"span\", _hoisted_3, [\n _ctx.name ? (openBlock(), createElementBlock(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1)) : createCommentVNode(\"\", true),\n _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-button__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n $props.description ? (openBlock(), createElementBlock(\"span\", {\n key: 3,\n class: \"action-button__description\",\n textContent: toDisplayString($props.description)\n }, null, 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ]),\n $props.isMenu ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"action-button__menu-icon\",\n directional: \"\",\n path: $setup.mdiChevronRight\n }, null, 8, [\"path\"])) : $options.isChecked ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n path: $setup.mdiCheck,\n class: \"action-button__pressed-icon\"\n }, null, 8, [\"path\"])) : $options.isChecked === false ? (openBlock(), createElementBlock(\"span\", _hoisted_8)) : createCommentVNode(\"\", true),\n createCommentVNode(\"\", true)\n ], 16, _hoisted_2)\n ], 10, _hoisted_1);\n}\nconst NcActionButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-6c2daf4e\"]]);\nexport {\n NcActionButton as N\n};\n//# sourceMappingURL=NcActionButton-BO5T5ePT.mjs.map\n","import { defineComponent } from \"vue\";\nconst _sfc_main = defineComponent({\n name: \"NcVNodes\",\n props: {\n /**\n * The vnodes to render\n */\n vnodes: {\n type: [Array, Object],\n default: null\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n return this.vnodes || this.$slots?.default?.({});\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map\n","import '../assets/NcAppNavigationItem-BZ1xj6Xi.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, withKeys, withModifiers, renderSlot, createVNode, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-C6gc637b.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-ChH8oB7p.mjs\";\nimport { r as register, N as t21, a as t, b as t51, O as t23 } from \"./_l10n-wdIzZwir.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-CGTllrXj.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { _ as _sfc_main$4 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nconst _sfc_main$3 = {\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$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { 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$2 = { 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 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$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$2);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\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$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { 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$1 = { 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$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$1);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t21);\nconst _sfc_main$1 = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton,\n ChevronDown,\n ChevronUp\n },\n props: {\n /**\n * Is the list currently open (or collapsed)\n */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Is the navigation item currently active.\n */\n active: {\n type: Boolean,\n required: true\n }\n },\n emits: [\"click\"],\n setup() {\n return { isLegacy34 };\n },\n computed: {\n labelButton() {\n return this.open ? t(\"Collapse menu\") : t(\"Open menu\");\n }\n },\n methods: {\n onClick(e) {\n this.$emit(\"click\", e);\n }\n }\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createBlock(_component_NcButton, {\n class: normalizeClass([\"icon-collapse\", {\n \"icon-collapse--active\": $props.active,\n \"icon-collapse--open\": $props.open\n }]),\n \"aria-label\": $options.labelButton,\n variant: $props.active && $setup.isLegacy34 ? \"tertiary-on-primary\" : \"tertiary\",\n onClick: $options.onClick\n }, {\n icon: withCtx(() => [\n $props.open ? (openBlock(), createBlock(_component_ChevronUp, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(_component_ChevronDown, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"class\", \"aria-label\", \"variant\", \"onClick\"]);\n}\nconst NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-cfbd3794\"]]);\nregister(t23, t51);\nconst _sfc_main = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions,\n NcActionButton,\n NcAppNavigationIconCollapsible,\n NcInputConfirmCancel,\n NcLoadingIcon,\n NcVNodes: _sfc_main$4,\n Pencil,\n Undo\n },\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: false\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Passing in a route will make the root element of this\n * component a `<router-link />` that points to that route.\n * By leaving this blank, the root element will be a `<li>`.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: false\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: false\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: false\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: false\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n setup() {\n return {\n isMobile: useIsMobile(),\n isLegacy34\n };\n },\n data() {\n return {\n actionsBoundariesElement: void 0,\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: false,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: false,\n focused: false\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n if (this.$parent.$options._componentTag === \"AppNavigationItem\") {\n return false;\n } else {\n return true;\n }\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : t(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return t(\"Undo changes\");\n }\n },\n watch: {\n open(newVal) {\n this.opened = newVal;\n }\n },\n mounted() {\n this.actionsBoundariesElement = document.querySelector(\"#content-vue\") || void 0;\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(state) {\n this.$emit(\"update:menuOpen\", state);\n this.menuOpenLocalValue = state;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened;\n this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {(event: PointerEvent) => void} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name;\n this.editingActive = true;\n this.onMenuToggle(false);\n this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = false;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue);\n this.editingValue = \"\";\n this.editingActive = false;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = true;\n },\n handleBlur() {\n this.focused = false;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(e) {\n if (!this.$refs.actions) {\n return;\n }\n if (this.focused) {\n e.preventDefault();\n this.$refs.actions.$refs.triggerButton.$el.focus();\n this.focused = false;\n } else {\n this.$refs.actions.$refs.triggerButton.$el.blur();\n }\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(href) {\n return href && href.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-current\", \"aria-description\", \"aria-expanded\", \"href\", \"target\", \"title\", \"onClick\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"editingContainer\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"app-navigation-entry__deleted\"\n};\nconst _hoisted_5 = { class: \"app-navigation-entry__deleted-description\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"app-navigation-entry__counter-wrapper\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"app-navigation-entry__children\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcInputConfirmCancel = resolveComponent(\"NcInputConfirmCancel\");\n const _component_Pencil = resolveComponent(\"Pencil\");\n const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n const _component_Undo = resolveComponent(\"Undo\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcAppNavigationIconCollapsible = resolveComponent(\"NcAppNavigationIconCollapsible\");\n return openBlock(), createElementBlock(\"li\", {\n id: $props.id,\n class: normalizeClass([{\n \"app-navigation-entry--opened\": $data.opened,\n \"app-navigation-entry--pinned\": $props.pinned,\n \"app-navigation-entry--collapsible\": $props.allowCollapse && !!_ctx.$slots.default\n }, \"app-navigation-entry-wrapper\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry\", {\n \"app-navigation-entry--editing\": $data.editingActive,\n \"app-navigation-entry--deleted\": $props.undo,\n \"app-navigation-entry--legacy\": $setup.isLegacy34,\n active: $props.to && isActive || $props.active\n }])\n }, [\n !$props.undo ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n class: \"app-navigation-entry-link\",\n \"aria-current\": $props.active || $props.to && isActive ? \"page\" : void 0,\n \"aria-description\": $props.ariaDescription,\n \"aria-expanded\": !!_ctx.$slots.default ? $data.opened.toString() : void 0,\n href: $props.href || routerLinkHref || \"#\",\n target: $options.isExternal($props.href) ? \"_blank\" : void 0,\n title: $props.title || $props.name,\n onBlur: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.handleTab && $options.handleTab(...args), [\"exact\"]), [\"tab\"]))\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-navigation-entry-icon\", { [$props.icon]: $props.icon }])\n }, [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : renderSlot(_ctx.$slots, \"icon\", {\n key: 1,\n active: $props.active || $props.to && isActive\n }, void 0, true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass([\"app-navigation-entry__name\", { \"hidden-visually\": $data.editingActive }])\n }, toDisplayString($props.name), 3),\n $data.editingActive ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n createVNode(_component_NcInputConfirmCancel, {\n ref: \"editingInput\",\n modelValue: $data.editingValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.editingValue = $event),\n placeholder: $props.editPlaceholder !== \"\" ? $props.editPlaceholder : $props.name,\n primary: $props.to && isActive || $props.active,\n onCancel: $options.cancelEditing,\n onConfirm: $options.handleEditingDone\n }, null, 8, [\"modelValue\", \"placeholder\", \"primary\", \"onCancel\", \"onConfirm\"])\n ])) : createCommentVNode(\"\", true)\n ], 40, _hoisted_2)) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, toDisplayString($props.name), 1)\n ])) : createCommentVNode(\"\", true),\n (!!_ctx.$slots.actions || !!_ctx.$slots.counter || $props.editable || $props.undo) && !$data.editingActive ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"app-navigation-entry__utils\", { \"app-navigation-entry__utils--display-actions\": $props.forceDisplayActions || $data.menuOpenLocalValue || $props.menuOpen }])\n }, [\n !!_ctx.$slots.counter ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"counter\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n !!_ctx.$slots.actions || $props.editable && !$data.editingActive || $props.undo ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n ref: \"actions\",\n class: \"app-navigation-entry__actions\",\n container: \"#app-navigation-vue\",\n boundariesElement: $data.actionsBoundariesElement,\n inline: $props.inlineActions,\n placement: $props.menuPlacement,\n open: $props.menuOpen,\n forceMenu: $props.forceMenu,\n defaultIcon: $props.menuIcon,\n variant: \"tertiary\",\n \"onUpdate:open\": $options.onMenuToggle\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n $props.editable && !$data.editingActive ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 0,\n \"aria-label\": $options.editButtonAriaLabel,\n onClick: $options.handleEdit\n }, {\n icon: withCtx(() => [\n createVNode(_component_Pencil, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.editLabel), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n $props.undo ? (openBlock(), createBlock(_component_NcActionButton, {\n key: 1,\n \"aria-label\": $options.undoButtonAriaLabel,\n onClick: $options.handleUndo\n }, {\n icon: withCtx(() => [\n createVNode(_component_Undo, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"boundariesElement\", \"inline\", \"placement\", \"open\", \"forceMenu\", \"defaultIcon\", \"onUpdate:open\"])) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true),\n $props.allowCollapse && !!_ctx.$slots.default ? (openBlock(), createBlock(_component_NcAppNavigationIconCollapsible, {\n key: 3,\n active: $props.to && isActive || $props.active,\n open: $data.opened,\n onClick: withModifiers($options.toggleCollapse, [\"prevent\", \"stop\"])\n }, null, 8, [\"active\", \"open\", \"onClick\"])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ], 2)\n ]),\n _: 3\n }, 16)),\n $options.canHaveChildren && !!_ctx.$slots.default ? (openBlock(), createElementBlock(\"ul\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_1);\n}\nconst NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-fcab058b\"]]);\nexport {\n NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-CDeYtA3E.mjs.map\n","import '../assets/NcAppNavigationNew-Bn8zj5lM.css';\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, createTextVNode, toDisplayString, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n components: {\n NcButton\n },\n props: {\n /**\n * Id of the button\n */\n buttonId: {\n type: String,\n required: false,\n default: \"\"\n },\n /**\n * Disabled state of the button\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Main text of the button\n */\n text: {\n type: String,\n required: true\n },\n /**\n * The color variant to use.\n *\n * @default 'primary'\n */\n variant: {\n type: String,\n default: \"primary\",\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\"].indexOf(value) !== -1;\n }\n }\n },\n emits: [\"click\"]\n};\nconst _hoisted_1 = { class: \"app-navigation-new\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcButton = resolveComponent(\"NcButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createVNode(_component_NcButton, {\n id: $props.buttonId,\n disabled: $props.disabled,\n variant: $props.variant,\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\"))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString($props.text), 1)\n ]),\n _: 3\n }, 8, [\"id\", \"disabled\", \"variant\"])\n ]);\n}\nconst NcAppNavigationNew = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0ba6c9df\"]]);\nexport {\n NcAppNavigationNew as N\n};\n//# sourceMappingURL=NcAppNavigationNew-CBNppM7Q.mjs.map\n","import '../assets/NcContent-DX4Rs6Pc.css';\nimport { defineComponent, provide, computed, ref, onBeforeMount, openBlock, createElementBlock, normalizeClass, unref, createBlock, Teleport, createElementVNode, toDisplayString, withDirectives, createVNode, withModifiers, withCtx, createTextVNode, vShow, renderSlot, nextTick } from \"vue\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, H as t30, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { H as HAS_APP_NAVIGATION_KEY, C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t30);\nconst contentSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst navigationSvg = '<!--\\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst _hoisted_1 = { class: \"vue-skip-actions__container\" };\nconst _hoisted_2 = { class: \"vue-skip-actions__headline\" };\nconst _hoisted_3 = { class: \"vue-skip-actions__buttons\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcContent\",\n props: {\n appName: {}\n },\n setup(__props) {\n const props = __props;\n provide(HAS_APP_NAVIGATION_KEY, setAppNavigation);\n provide(CONTENT_SELECTOR_KEY, \"#content-vue\");\n provide(\"appName\", computed(() => props.appName));\n const isMobile = useIsMobile();\n const hasAppNavigation = ref(false);\n const currentFocus = ref();\n const currentImage = computed(() => currentFocus.value === \"navigation\" ? navigationSvg : contentSvg);\n onBeforeMount(() => {\n const container = document.getElementById(\"skip-actions\");\n if (container) {\n container.innerHTML = \"\";\n container.classList.add(\"vue-skip-actions\");\n }\n });\n function openAppNavigation() {\n emit(\"toggle-navigation\", { open: true });\n nextTick(() => {\n window.location.hash = \"app-navigation-vue\";\n document.getElementById(\"app-navigation-vue\").focus();\n });\n }\n function setAppNavigation(value) {\n hasAppNavigation.value = value;\n if (!currentFocus.value) {\n currentFocus.value = \"navigation\";\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: \"content-vue\",\n class: normalizeClass([\"content\", [`app-${__props.appName.toLowerCase()}`, { \"content--legacy\": unref(isLegacy34) }]])\n }, [\n (openBlock(), createBlock(Teleport, { to: \"#skip-actions\" }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"div\", _hoisted_2, toDisplayString(unref(t)(\"Keyboard navigation help\")), 1),\n createElementVNode(\"div\", _hoisted_3, [\n withDirectives(createVNode(NcButton, {\n href: \"#app-navigation-vue\",\n variant: \"tertiary\",\n onClick: withModifiers(openAppNavigation, [\"prevent\"]),\n onFocusin: _cache[0] || (_cache[0] = ($event) => currentFocus.value = \"navigation\"),\n onMouseover: _cache[1] || (_cache[1] = ($event) => currentFocus.value = \"navigation\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to app navigation\")), 1)\n ]),\n _: 1\n }, 512), [\n [vShow, hasAppNavigation.value]\n ]),\n createVNode(NcButton, {\n href: \"#app-content-vue\",\n variant: \"tertiary\",\n onFocusin: _cache[2] || (_cache[2] = ($event) => currentFocus.value = \"content\"),\n onMouseover: _cache[3] || (_cache[3] = ($event) => currentFocus.value = \"content\")\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Skip to main content\")), 1)\n ]),\n _: 1\n })\n ]),\n withDirectives(createVNode(NcIconSvgWrapper, {\n class: \"vue-skip-actions__image\",\n svg: currentImage.value,\n size: \"auto\"\n }, null, 8, [\"svg\"]), [\n [vShow, !unref(isMobile)]\n ])\n ])\n ])),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2);\n };\n }\n});\nconst NcContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d13dcb98\"]]);\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-BYh5hWDN.mjs.map\n","import '../assets/NcCounterBubble-ZnteskDR.css';\nimport { defineComponent, computed, openBlock, createElementBlock, normalizeClass, toDisplayString } from \"vue\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcCounterBubble\",\n props: {\n count: {},\n active: { type: Boolean },\n type: { default: \"\" },\n raw: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const humanizedCount = computed(() => {\n if (props.raw) {\n return props.count.toString();\n }\n const formatter = new Intl.NumberFormat(getCanonicalLocale(), {\n notation: \"compact\",\n compactDisplay: \"short\"\n });\n return formatter.format(props.count);\n });\n const originalCountAsTitleIfNeeded = computed(() => {\n if (props.raw) {\n return;\n }\n const countAsString = props.count.toString();\n if (countAsString === humanizedCount.value) {\n return;\n }\n return countAsString;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"counter-bubble__counter\", {\n active: __props.active,\n \"counter-bubble__counter--highlighted\": __props.type === \"highlighted\",\n \"counter-bubble__counter--outlined\": __props.type === \"outlined\"\n }]),\n title: originalCountAsTitleIfNeeded.value\n }, toDisplayString(humanizedCount.value), 11, _hoisted_1);\n };\n }\n});\nconst NcCounterBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-36ffc13f\"]]);\nexport {\n NcCounterBubble as N\n};\n//# sourceMappingURL=NcCounterBubble-CV0YMrXW.mjs.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\">\n <title v-if=\"title\">{{ title }}\n \n \n \n\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INJECTION_KEY_THEME = /* @__PURE__ */ Symbol.for(\"nc:theme:enforced\");\nexport {\n INJECTION_KEY_THEME as I\n};\n//# sourceMappingURL=constants-wIEKSp2G.mjs.map\n","import { createSharedComposable, usePreferredDark, useMutationObserver } from \"@vueuse/core\";\nimport { computed, toValue, ref, watch, readonly, inject } from \"vue\";\nimport { checkIfDarkTheme } from \"../../functions/isDarkTheme/index.mjs\";\nimport { I as INJECTION_KEY_THEME } from \"../../chunks/constants-wIEKSp2G.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useIsDarkThemeElement(el) {\n const element = computed(() => toValue(el) ?? document.body);\n const isDarkTheme = ref(checkIfDarkTheme(element.value));\n const isDarkSystemTheme = usePreferredDark();\n function updateIsDarkTheme() {\n isDarkTheme.value = checkIfDarkTheme(element.value);\n }\n useMutationObserver(element, updateIsDarkTheme, { attributes: true });\n watch(element, updateIsDarkTheme);\n watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });\n return readonly(isDarkTheme);\n}\nconst useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());\nfunction useIsDarkTheme() {\n const isDarkTheme = useInternalIsDarkTheme();\n const enforcedTheme = inject(INJECTION_KEY_THEME, void 0);\n return computed(() => {\n if (enforcedTheme?.value) {\n return enforcedTheme.value === \"dark\";\n }\n return isDarkTheme.value;\n });\n}\nexport {\n useIsDarkTheme,\n useIsDarkThemeElement\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcDateTimePickerNative-BP6eg8aU.css';\nimport { defineComponent, useModel, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps, mergeModels } from \"vue\";\nimport { r as register, x as t40, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t40);\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\", \"type\", \"value\", \"min\", \"max\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"native-datetime-picker\", _ctx.$props.class])\n }, [\n createElementVNode(\"label\", {\n class: normalizeClass([\"native-datetime-picker__label\", { \"hidden-visually\": __props.hideLabel }]),\n for: __props.id\n }, toDisplayString(__props.label), 11, _hoisted_1),\n createElementVNode(\"input\", mergeProps({\n id: __props.id,\n class: [\"native-datetime-picker__input\", __props.inputClass],\n type: __props.type,\n value: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value\n }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)\n ], 2);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b97e1f7a\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative-B8CMOUnH.mjs.map\n","import '../assets/NcTextArea-BxGe3Lqn.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, createBlock, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"textarea__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcTextArea\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n placeholder: { default: void 0 },\n resize: { default: \"both\" },\n success: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const textAreaElement = useTemplateRef(\"input\");\n const internalPlaceholder = computed(() => props.placeholder || (isLegacy ? props.label : void 0));\n watch(() => props.labelOutside, () => {\n if (!props.labelOutside && !props.label) {\n logger.warn(\"[NcTextArea] You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (typeof attrs[\"aria-describedby\"] === \"string\") {\n ariaDescribedby2.push(attrs[\"aria-describedby\"]);\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function handleInput(event) {\n const { value } = event.target;\n modelValue.value = value;\n }\n function focus(options) {\n textAreaElement.value.focus(options);\n }\n function select() {\n textAreaElement.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"textarea\", [\n _ctx.$attrs.class,\n {\n \"textarea--disabled\": __props.disabled,\n \"textarea--legacy\": unref(isLegacy)\n }\n ]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"textarea\", mergeProps({ ..._ctx.$attrs, class: void 0 }, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"textarea__input\", [\n __props.inputClass,\n {\n \"textarea__input--label-outside\": __props.labelOutside,\n \"textarea__input--legacy\": unref(isLegacy),\n \"textarea__input--success\": __props.success,\n \"textarea__input--error\": __props.error\n }\n ]],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n style: { resize: __props.resize },\n value: modelValue.value,\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"textarea__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: normalizeClass([\"textarea__helper-text-message\", {\n \"textarea__helper-text-message--error\": __props.error,\n \"textarea__helper-text-message--success\": __props.success\n }])\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcTextArea = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d327fb49\"]]);\nexport {\n NcTextArea as N\n};\n//# sourceMappingURL=NcTextArea-Dxzj4zdb.mjs.map\n","import '../assets/NcInputField-DpyFJ1xw.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, warn, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, withDirectives, renderSlot, vShow, createBlock, withCtx, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": __props.disabled,\n \"input-field--error\": __props.error,\n \"input-field--label-outside\": __props.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": __props.pill,\n \"input-field--success\": __props.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", __props.inputClass],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n type: __props.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n __props.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": __props.trailingButtonLabel,\n disabled: __props.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : __props.success || __props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-8e16cbb5\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField-5Sg6EUP6.mjs.map\n","import { defineComponent, useModel, useTemplateRef, computed, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot, mergeModels } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi-CpchYUUV.mjs\";\nimport { r as register, b as t51, c as t18, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { N as NcInputField } from \"./NcInputField-5Sg6EUP6.mjs\";\nregister(t18, t51);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n type: {},\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n __props.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n __props.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: __props.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2.mjs.map\n","\n\n","import { showError, showSuccess } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\n/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n *\n * Lightweight reactive store shared across views (no Vuex/Pinia dependency).\n */\nimport { reactive } from 'vue'\nimport api from './api.js'\n\n/**\n *\n */\nfunction initialSession() {\n\ttry {\n\t\treturn loadState('absence', 'session')\n\t} catch {\n\t\treturn { uid: null }\n\t}\n}\n\n/**\n *\n */\nfunction initialLeaveTypes() {\n\ttry {\n\t\treturn loadState('absence', 'leaveTypes') || []\n\t} catch {\n\t\treturn []\n\t}\n}\n\nexport const store = reactive({\n\tsession: initialSession(),\n\tleaveTypes: initialLeaveTypes(),\n\trequests: [],\n\tbalance: { balances: [] },\n\tloading: false,\n\tselectedId: null,\n\n\t// ---- getters ----\n\tleaveType(id) {\n\t\t// A null/undefined id means the server withheld the leave type (neutral\n\t\t// shared-calendar visibility): show a generic \"Absent\" marker, not \"Unknown\".\n\t\tif (id === null || id === undefined) {\n\t\t\treturn { label: t('absence', 'Absent'), color: '#888', icon: '🌴' }\n\t\t}\n\t\treturn this.leaveTypes.find((t) => t.id === id) || { label: t('absence', 'Unknown'), color: '#888', icon: '❔' }\n\t},\n\t/**\n\t * True when the type is recorded by HR (e.g. sick leave), not self-requested.\n\t *\n\t * @param request\n\t */\n\tisHrRecorded(request) {\n\t\tconst type = this.leaveType(request.typeId)\n\t\treturn type && type.employeeRequestable === false\n\t},\n\t/**\n\t * Whether to show a status chip. HR-recorded leave (sick) that is approved has no\n\t * approval concept, so the \"Approved\" label is hidden as noise.\n\t *\n\t * @param request\n\t */\n\tstatusVisible(request) {\n\t\treturn !(this.isHrRecorded(request) && request.status === 'APPROVED')\n\t},\n\tget enabledLeaveTypes() {\n\t\treturn this.leaveTypes.filter((t) => t.enabled)\n\t},\n\t/** Types an employee may self-request (excludes HR-recorded types like sick leave). */\n\tget requestableLeaveTypes() {\n\t\treturn this.leaveTypes.filter((t) => t.enabled && t.employeeRequestable)\n\t},\n\n\t// ---- actions ----\n\tasync refreshSession() {\n\t\ttry {\n\t\t\tthis.session = await api.getSession()\n\t\t} catch (e) {\n\t\t\tconsole.error('Absence: failed to refresh session', e)\n\t\t}\n\t},\n\n\tasync loadLeaveTypes() {\n\t\tthis.leaveTypes = await api.listLeaveTypes(false)\n\t},\n\n\tasync loadRequests(params) {\n\t\tthis.loading = true\n\t\ttry {\n\t\t\tthis.requests = await api.listRequests(params)\n\t\t} catch {\n\t\t\tshowError(t('absence', 'Could not load requests'))\n\t\t} finally {\n\t\t\tthis.loading = false\n\t\t}\n\t},\n\n\tasync loadMyBalance(year) {\n\t\tthis.balance = await api.getMyBalance(year)\n\t},\n\n\tasync createRequest(data) {\n\t\tconst created = await api.createRequest(data)\n\t\tshowSuccess(t('absence', 'On its way ✈️'))\n\t\tawait this.refreshSession()\n\t\treturn created\n\t},\n\n\tasync updateRequest(id, data) {\n\t\tconst updated = await api.updateRequest(id, data)\n\t\tshowSuccess(t('absence', 'Request updated'))\n\t\treturn updated\n\t},\n\n\tasync cancelRequest(id) {\n\t\tconst res = await api.cancelRequest(id)\n\t\tshowSuccess(t('absence', 'Request cancelled'))\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tasync approveRequest(id, comment) {\n\t\tconst res = await api.approveRequest(id, comment)\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tasync rejectRequest(id, comment) {\n\t\tconst res = await api.rejectRequest(id, comment)\n\t\tshowSuccess(t('absence', 'Request declined'))\n\t\tawait this.refreshSession()\n\t\treturn res\n\t},\n\n\tselect(id) {\n\t\tthis.selectedId = id\n\t},\n})\n\n/**\n * Visual metadata for a request status (spec §15.4).\n * `text` uses Nextcloud's contrast-optimised *-text variables so labels stay\n * readable; `tint` is the base semantic colour used for the chip background.\n *\n * @param status\n */\nexport function statusMeta(status) {\n\tswitch (status) {\n\t\tcase 'PENDING':\n\t\t\treturn { label: t('absence', 'Pending'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '⏳' }\n\t\tcase 'ESCALATED':\n\t\t\treturn { label: t('absence', 'With HR'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '⏫' }\n\t\tcase 'APPROVED':\n\t\t\treturn { label: t('absence', 'Approved'), text: 'var(--color-success-text)', tint: 'var(--color-success)', icon: '✅' }\n\t\tcase 'REJECTED':\n\t\t\treturn { label: t('absence', 'Declined'), text: 'var(--color-error-text)', tint: 'var(--color-error)', icon: '✋' }\n\t\tcase 'CANCELLED':\n\t\t\treturn { label: t('absence', 'Cancelled'), text: 'var(--color-text-maxcontrast)', tint: 'var(--color-text-maxcontrast)', icon: '🚫' }\n\t\tcase 'WITHDRAWAL_PENDING':\n\t\t\treturn { label: t('absence', 'Withdrawal pending'), text: 'var(--color-warning-text)', tint: 'var(--color-warning)', icon: '↩️' }\n\t\tdefault:\n\t\t\treturn { label: status, text: 'var(--color-main-text)', tint: 'var(--color-text-maxcontrast)', icon: '•' }\n\t}\n}\n","\n\n\n\n\n\n","import { defaultWindow, isClient, onClickOutside, onKeyStroke, onLongPress, useActiveElement, useBattery, useBrowserLocation, useClipboard, useColorMode, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useDraggable, useElementBounding, useElementHover, useElementSize, useElementVisibility, useEyeDropper, useFullscreen, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, useResizeObserver, useScreenSafeArea, useScroll, useScrollLock, useStorage, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from \"@vueuse/core\";\nimport { computed, defineComponent, h, reactive, shallowRef, toRefs, toValue, watch } from \"vue\";\nimport { createDisposableDirective, reactiveOmit, toRefs as toRefs$1, useToggle } from \"@vueuse/shared\";\n//#region ../core/onClickOutside/component.ts\nconst OnClickOutside = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tonClickOutside(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default());\n\t};\n}, {\n\tname: \"OnClickOutside\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n//#endregion\n//#region ../core/onClickOutside/directive.ts\nconst stopClickOutsideMap = /* @__PURE__ */ new WeakMap();\nconst vOnClickOutside = {\n\tmounted(el, binding) {\n\t\tconst capture = !binding.modifiers.bubble;\n\t\tlet stop;\n\t\tif (typeof binding.value === \"function\") stop = onClickOutside(el, binding.value, { capture });\n\t\telse {\n\t\t\tconst [handler, options] = binding.value;\n\t\t\tstop = onClickOutside(el, handler, Object.assign({ capture }, options));\n\t\t}\n\t\tstopClickOutsideMap.set(el, stop);\n\t},\n\tunmounted(el) {\n\t\tconst stop = stopClickOutsideMap.get(el);\n\t\tif (stop && typeof stop === \"function\") stop();\n\t\telse stop === null || stop === void 0 || stop.stop();\n\t\tstopClickOutsideMap.delete(el);\n\t}\n};\n/** @deprecated use `vOnClickOutside` instead */\nconst VOnClickOutside = vOnClickOutside;\n//#endregion\n//#region ../core/onKeyStroke/directive.ts\nconst vOnKeyStroke = createDisposableDirective({ mounted(el, binding) {\n\tvar _binding$arg$split, _binding$arg;\n\tconst keys = (_binding$arg$split = (_binding$arg = binding.arg) === null || _binding$arg === void 0 ? void 0 : _binding$arg.split(\",\")) !== null && _binding$arg$split !== void 0 ? _binding$arg$split : true;\n\tif (typeof binding.value === \"function\") onKeyStroke(keys, binding.value, { target: el });\n\telse {\n\t\tconst [handler, options] = binding.value;\n\t\tonKeyStroke(keys, handler, {\n\t\t\ttarget: el,\n\t\t\t...options\n\t\t});\n\t}\n} });\n//#endregion\n//#region ../core/onLongPress/component.ts\nconst OnLongPress = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tconst data = onLongPress(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"OnLongPress\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n//#endregion\n//#region ../core/onLongPress/directive.ts\nconst vOnLongPress = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") onLongPress(el, binding.value, { modifiers: binding.modifiers });\n\telse onLongPress(el, ...binding.value);\n} });\n/** @deprecated use `vOnLongPress` instead */\nconst VOnLongPress = vOnLongPress;\n//#endregion\n//#region ../core/useActiveElement/component.ts\nconst UseActiveElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ element: useActiveElement(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseActiveElement\",\n\tprops: [\n\t\t\"deep\",\n\t\t\"triggerOnRemoval\",\n\t\t\"window\",\n\t\t\"document\"\n\t]\n});\n//#endregion\n//#region ../core/useBattery/component.ts\nconst UseBattery = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBattery(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBattery\",\n\tprops: [\"navigator\"]\n});\n//#endregion\n//#region ../core/useBrowserLocation/component.ts\nconst UseBrowserLocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBrowserLocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBrowserLocation\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useClipboard/component.ts\nconst UseClipboard = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useClipboard(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseClipboard\",\n\tprops: [\n\t\t\"source\",\n\t\t\"read\",\n\t\t\"navigator\",\n\t\t\"copiedDuring\",\n\t\t\"legacy\"\n\t]\n});\n//#endregion\n//#region ../core/useColorMode/component.ts\nconst UseColorMode = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst mode = useColorMode(props);\n\tconst data = reactive({\n\t\tmode,\n\t\tsystem: mode.system,\n\t\tstore: mode.store\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseColorMode\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"modes\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n//#endregion\n//#region ../core/useDark/component.ts\nconst UseDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst isDark = useDark(props);\n\tconst data = reactive({\n\t\tisDark,\n\t\ttoggleDark: useToggle(isDark)\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDark\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"valueDark\",\n\t\t\"valueLight\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n//#endregion\n//#region ../core/useDeviceMotion/component.ts\nconst UseDeviceMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = useDeviceMotion(props);\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceMotion\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"requestPermissions\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useDeviceOrientation/component.ts\nconst UseDeviceOrientation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDeviceOrientation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceOrientation\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useDevicePixelRatio/component.ts\nconst UseDevicePixelRatio = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicePixelRatio(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicePixelRatio\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useDevicesList/component.ts\nconst UseDevicesList = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicesList(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicesList\",\n\tprops: [\n\t\t\"constraints\",\n\t\t\"navigator\",\n\t\t\"onUpdated\",\n\t\t\"requestPermissions\"\n\t]\n});\n//#endregion\n//#region ../core/useDocumentVisibility/component.ts\nconst UseDocumentVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ visibility: useDocumentVisibility(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDocumentVisibility\",\n\tprops: [\"document\"]\n});\n//#endregion\n//#region ../core/useDraggable/component.ts\nconst UseDraggable = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst handle = computed(() => {\n\t\tvar _toValue;\n\t\treturn (_toValue = toValue(props.handle)) !== null && _toValue !== void 0 ? _toValue : target.value;\n\t});\n\tconst containerElement = computed(() => {\n\t\tvar _ref;\n\t\treturn (_ref = props.containerElement) !== null && _ref !== void 0 ? _ref : void 0;\n\t});\n\tconst disabled = computed(() => !!props.disabled);\n\tconst storageValue = props.storageKey && useStorage(props.storageKey, toValue(props.initialValue) || {\n\t\tx: 0,\n\t\ty: 0\n\t}, isClient ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0);\n\tconst initialValue = storageValue || props.initialValue || {\n\t\tx: 0,\n\t\ty: 0\n\t};\n\tconst onEnd = (position, event) => {\n\t\tvar _props$onEnd;\n\t\t(_props$onEnd = props.onEnd) === null || _props$onEnd === void 0 || _props$onEnd.call(props, position, event);\n\t\tif (!storageValue) return;\n\t\tstorageValue.value.x = position.x;\n\t\tstorageValue.value.y = position.y;\n\t};\n\tconst data = reactive(useDraggable(target, {\n\t\t...props,\n\t\thandle,\n\t\tinitialValue,\n\t\tonEnd,\n\t\tdisabled,\n\t\tcontainerElement\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", {\n\t\t\tref: target,\n\t\t\tstyle: `touch-action:none;${data.style}`\n\t\t}, slots.default(data));\n\t};\n}, {\n\tname: \"UseDraggable\",\n\tprops: [\n\t\t\"storageKey\",\n\t\t\"storageType\",\n\t\t\"initialValue\",\n\t\t\"exact\",\n\t\t\"preventDefault\",\n\t\t\"stopPropagation\",\n\t\t\"pointerTypes\",\n\t\t\"as\",\n\t\t\"handle\",\n\t\t\"axis\",\n\t\t\"onStart\",\n\t\t\"onMove\",\n\t\t\"onEnd\",\n\t\t\"disabled\",\n\t\t\"buttons\",\n\t\t\"containerElement\",\n\t\t\"capture\",\n\t\t\"draggingElement\"\n\t]\n});\n//#endregion\n//#region ../core/useElementBounding/component.ts\nconst UseElementBounding = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementBounding(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementBounding\",\n\tprops: [\n\t\t\"as\",\n\t\t\"immediate\",\n\t\t\"reset\",\n\t\t\"updateTiming\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n//#endregion\n//#region ../core/useElementBounding/directive.ts\nconst vElementBounding = createDisposableDirective({ mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\tconst { height, bottom, left, right, top, width, x, y } = useElementBounding(el, options);\n\twatch([\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t], () => handler({\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t}));\n} });\n//#endregion\n//#region ../core/useElementHover/directive.ts\nconst vElementHover = createDisposableDirective({ mounted(el, binding) {\n\tconst value = binding.value;\n\tif (typeof value === \"function\") watch(useElementHover(el), (v) => value(v));\n\telse {\n\t\tconst [handler, options] = value;\n\t\twatch(useElementHover(el, options), (v) => handler(v));\n\t}\n} });\n//#endregion\n//#region ../core/useElementSize/component.ts\nconst UseElementSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tvar _toValue, _toValue2;\n\tconst target = shallowRef();\n\tconst { width, height } = toRefs(props);\n\tconst data = reactive(useElementSize(target, {\n\t\twidth: (_toValue = toValue(width)) !== null && _toValue !== void 0 ? _toValue : 0,\n\t\theight: (_toValue2 = toValue(height)) !== null && _toValue2 !== void 0 ? _toValue2 : 0\n\t}, {\n\t\tbox: props.box,\n\t\twindow: props.window\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementSize\",\n\tprops: [\n\t\t\"as\",\n\t\t\"box\",\n\t\t\"height\",\n\t\t\"width\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useElementSize/directive.ts\nconst vElementSize = createDisposableDirective({ mounted(el, binding) {\n\tvar _binding$value;\n\tconst handler = typeof binding.value === \"function\" ? binding.value : (_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value[0];\n\tconst { width, height } = useElementSize(el, ...typeof binding.value === \"function\" ? [] : binding.value.slice(1));\n\twatch([width, height], ([width, height]) => handler({\n\t\twidth,\n\t\theight\n\t}));\n} });\n//#endregion\n//#region ../core/useElementVisibility/component.ts\nconst UseElementVisibility = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementVisibility(target, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementVisibility\",\n\tprops: [\n\t\t\"as\",\n\t\t\"once\",\n\t\t\"rootMargin\",\n\t\t\"scrollTarget\",\n\t\t\"threshold\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useElementVisibility/directive.ts\nconst vElementVisibility = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\twatch(useElementVisibility(el), (v) => handler(v), { immediate: true });\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tif (options === null || options === void 0 ? void 0 : options.controls) {\n\t\t\tconst state = useElementVisibility(el, options);\n\t\t\twatch(state.isVisible, () => handler(state), { immediate: true });\n\t\t} else watch(useElementVisibility(el, options), (v) => handler(v), { immediate: true });\n\t}\n} });\n//#endregion\n//#region ../core/useEyeDropper/component.ts\nconst UseEyeDropper = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useEyeDropper(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseEyeDropper\",\n\tprops: [\"initialValue\"]\n});\n//#endregion\n//#region ../core/useFullscreen/component.ts\nconst UseFullscreen = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useFullscreen(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseFullscreen\",\n\tprops: [\n\t\t\"as\",\n\t\t\"autoExit\",\n\t\t\"document\"\n\t]\n});\n//#endregion\n//#region ../core/useGeolocation/component.ts\nconst UseGeolocation = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useGeolocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseGeolocation\",\n\tprops: [\n\t\t\"enableHighAccuracy\",\n\t\t\"immediate\",\n\t\t\"maximumAge\",\n\t\t\"navigator\",\n\t\t\"timeout\"\n\t]\n});\n//#endregion\n//#region ../core/useIdle/component.ts\nconst UseIdle = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useIdle(props.timeout, props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseIdle\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"events\",\n\t\t\"initialState\",\n\t\t\"listenForVisibilityChange\",\n\t\t\"timeout\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useImage/component.ts\nconst UseImage = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useImage(props));\n\treturn () => {\n\t\tif (data.isLoading && slots.loading) return slots.loading(data);\n\t\telse if (data.error && slots.error) return slots.error(data.error);\n\t\tif (slots.default) return slots.default(data);\n\t\treturn h(props.as || \"img\", props);\n\t};\n}, {\n\tname: \"UseImage\",\n\tprops: [\n\t\t\"alt\",\n\t\t\"as\",\n\t\t\"class\",\n\t\t\"crossorigin\",\n\t\t\"decoding\",\n\t\t\"fetchPriority\",\n\t\t\"height\",\n\t\t\"ismap\",\n\t\t\"loading\",\n\t\t\"referrerPolicy\",\n\t\t\"sizes\",\n\t\t\"src\",\n\t\t\"srcset\",\n\t\t\"usemap\",\n\t\t\"width\"\n\t]\n});\n//#endregion\n//#region ../core/useInfiniteScroll/directive.ts\nconst vInfiniteScroll = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useInfiniteScroll(el, binding.value);\n\telse useInfiniteScroll(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useIntersectionObserver/directive.ts\nconst vIntersectionObserver = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useIntersectionObserver(el, binding.value);\n\telse useIntersectionObserver(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useMouse/component.ts\nconst UseMouse = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useMouse(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseMouse\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useMouseInElement/component.ts\nconst UseMouseInElement = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMouseInElement(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMouseInElement\",\n\tprops: [\n\t\t\"as\",\n\t\t\"eventFilter\",\n\t\t\"handleOutside\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n//#endregion\n//#region ../core/useMouseInElement/directive.ts\nconst vMouseInElement = createDisposableDirective({ mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\twatch(reactiveOmit(reactive(useMouseInElement(el, options)), \"stop\"), (val) => handler(val));\n} });\n//#endregion\n//#region ../core/useMousePressed/component.ts\nconst UseMousePressed = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMousePressed({\n\t\t...props,\n\t\ttarget\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMousePressed\",\n\tprops: [\n\t\t\"as\",\n\t\t\"capture\",\n\t\t\"drag\",\n\t\t\"initialValue\",\n\t\t\"onPressed\",\n\t\t\"onReleased\",\n\t\t\"touch\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useNetwork/component.ts\nconst UseNetwork = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNetwork(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNetwork\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useNow/component.ts\nconst UseNow = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNow({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNow\",\n\tprops: [\n\t\t\"scheduler\",\n\t\t\"immediate\",\n\t\t\"interval\"\n\t]\n});\n//#endregion\n//#region ../core/useObjectUrl/component.ts\nconst UseObjectUrl = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst { object } = toRefs$1(props);\n\tconst url = useObjectUrl(object);\n\treturn () => {\n\t\tif (slots.default && url.value) return slots.default(url.value);\n\t};\n}, {\n\tname: \"UseObjectUrl\",\n\tprops: [\"object\"]\n});\n//#endregion\n//#region ../core/useOffsetPagination/component.ts\nconst UseOffsetPagination = /* @__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst data = reactive(useOffsetPagination({\n\t\t...props,\n\t\ttotal: toValue(props.total) || void 0,\n\t\tonPageChange(...args) {\n\t\t\tvar _props$onPageChange;\n\t\t\t(_props$onPageChange = props.onPageChange) === null || _props$onPageChange === void 0 || _props$onPageChange.call(props, ...args);\n\t\t\temit(\"page-change\", ...args);\n\t\t},\n\t\tonPageSizeChange(...args) {\n\t\t\tvar _props$onPageSizeChan;\n\t\t\t(_props$onPageSizeChan = props.onPageSizeChange) === null || _props$onPageSizeChan === void 0 || _props$onPageSizeChan.call(props, ...args);\n\t\t\temit(\"page-size-change\", ...args);\n\t\t},\n\t\tonPageCountChange(...args) {\n\t\t\tvar _props$onPageCountCha;\n\t\t\t(_props$onPageCountCha = props.onPageCountChange) === null || _props$onPageCountCha === void 0 || _props$onPageCountCha.call(props, ...args);\n\t\t\temit(\"page-count-change\", ...args);\n\t\t}\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOffsetPagination\",\n\tprops: [\n\t\t\"onPageChange\",\n\t\t\"onPageCountChange\",\n\t\t\"onPageSizeChange\",\n\t\t\"page\",\n\t\t\"pageSize\",\n\t\t\"total\"\n\t]\n});\n//#endregion\n//#region ../core/useOnline/component.ts\nconst UseOnline = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isOnline: useOnline(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOnline\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePageLeave/component.ts\nconst UsePageLeave = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isLeft: usePageLeave(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePageLeave\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePointer/component.ts\nconst UsePointer = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst el = shallowRef(null);\n\tconst data = reactive(usePointer({\n\t\t...props,\n\t\ttarget: props.target === \"self\" ? el : defaultWindow\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePointer\",\n\tprops: [\n\t\t\"initialValue\",\n\t\t\"pointerTypes\",\n\t\t\"target\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/usePointerLock/component.ts\nconst UsePointerLock = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(usePointerLock(target));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UsePointerLock\",\n\tprops: [\"as\", \"document\"]\n});\n//#endregion\n//#region ../core/usePreferredColorScheme/component.ts\nconst UsePreferredColorScheme = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ colorScheme: usePreferredColorScheme(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredColorScheme\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredContrast/component.ts\nconst UsePreferredContrast = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ contrast: usePreferredContrast(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredContrast\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredDark/component.ts\nconst UsePreferredDark = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ prefersDark: usePreferredDark(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredDark\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredLanguages/component.ts\nconst UsePreferredLanguages = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ languages: usePreferredLanguages(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredLanguages\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredReducedMotion/component.ts\nconst UsePreferredReducedMotion = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ motion: usePreferredReducedMotion(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredReducedMotion\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredReducedTransparency/component.ts\nconst UsePreferredReducedTransparency = /* @__PURE__ */ defineComponent({\n\tname: \"UsePreferredReducedTransparency\",\n\tsetup(props, { slots }) {\n\t\tconst data = reactive({ transparency: usePreferredReducedTransparency() });\n\t\treturn () => {\n\t\t\tif (slots.default) return slots.default(data);\n\t\t};\n\t}\n});\n//#endregion\n//#region ../core/useResizeObserver/directive.ts\nconst vResizeObserver = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useResizeObserver(el, binding.value);\n\telse useResizeObserver(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useScreenSafeArea/component.ts\nconst UseScreenSafeArea = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useScreenSafeArea());\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { style: {\n\t\t\tpaddingTop: props.top ? data.top : \"\",\n\t\t\tpaddingRight: props.right ? data.right : \"\",\n\t\t\tpaddingBottom: props.bottom ? data.bottom : \"\",\n\t\t\tpaddingLeft: props.left ? data.left : \"\",\n\t\t\tboxSizing: \"border-box\",\n\t\t\tmaxHeight: \"100vh\",\n\t\t\tmaxWidth: \"100vw\",\n\t\t\toverflow: \"auto\"\n\t\t} }, slots.default(data));\n\t};\n}, {\n\tname: \"UseScreenSafeArea\",\n\tprops: [\n\t\t\"top\",\n\t\t\"right\",\n\t\t\"bottom\",\n\t\t\"left\"\n\t]\n});\n//#endregion\n//#region ../core/useScroll/directive.ts\nconst vScroll = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\tonScroll() {\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop() {\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\t...options,\n\t\t\tonScroll(e) {\n\t\t\t\tvar _options$onScroll;\n\t\t\t\t(_options$onScroll = options.onScroll) === null || _options$onScroll === void 0 || _options$onScroll.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop(e) {\n\t\t\t\tvar _options$onStop;\n\t\t\t\t(_options$onStop = options.onStop) === null || _options$onStop === void 0 || _options$onStop.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t}\n} });\n//#endregion\n//#region ../core/useScrollLock/directive.ts\nfunction onScrollLock() {\n\tlet isMounted = false;\n\tconst state = shallowRef(false);\n\treturn createDisposableDirective((el, binding) => {\n\t\tstate.value = binding.value;\n\t\tif (isMounted) return;\n\t\tisMounted = true;\n\t\tconst isLocked = useScrollLock(el, binding.value);\n\t\twatch(state, (v) => isLocked.value = v);\n\t});\n}\nconst vScrollLock = onScrollLock();\n//#endregion\n//#region ../core/useTimeAgo/component.ts\nconst UseTimeAgo = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimeAgo(() => props.time, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimeAgo\",\n\tprops: [\n\t\t\"fullDateFormatter\",\n\t\t\"max\",\n\t\t\"messages\",\n\t\t\"rounding\",\n\t\t\"showSecond\",\n\t\t\"time\",\n\t\t\"units\",\n\t\t\"updateInterval\"\n\t]\n});\n//#endregion\n//#region ../core/useTimestamp/component.ts\nconst UseTimestamp = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimestamp({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimestamp\",\n\tprops: [\n\t\t\"scheduler\",\n\t\t\"callback\",\n\t\t\"immediate\",\n\t\t\"interval\",\n\t\t\"offset\"\n\t]\n});\n//#endregion\n//#region ../core/useVirtualList/component.ts\nconst UseVirtualList = /* @__PURE__ */ defineComponent((props, { slots, expose }) => {\n\tconst { list: listRef } = toRefs(props);\n\tconst { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n\texpose({ scrollTo });\n\tif (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style)) containerProps.style.height = props.height || \"300px\";\n\treturn () => h(\"div\", { ...containerProps }, [h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: {\n\t\toverflow: \"hidden\",\n\t\theight: item.height\n\t} }, slots.default ? slots.default(item) : \"Please set content!\")))]);\n}, {\n\tname: \"UseVirtualList\",\n\tprops: [\n\t\t\"height\",\n\t\t\"list\",\n\t\t\"options\"\n\t]\n});\n//#endregion\n//#region ../core/useWindowFocus/component.ts\nconst UseWindowFocus = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ focused: useWindowFocus(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowFocus\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useWindowSize/component.ts\nconst UseWindowSize = /* @__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useWindowSize(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowSize\",\n\tprops: [\n\t\t\"includeScrollbar\",\n\t\t\"initialHeight\",\n\t\t\"initialWidth\",\n\t\t\"listenOrientation\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n//#endregion\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UsePreferredReducedTransparency, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, VOnClickOutside, VOnLongPress, vElementBounding, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vMouseInElement, vOnClickOutside, vOnKeyStroke, vOnLongPress, vResizeObserver, vScroll, vScrollLock };\n","const directive = {\n mounted(el) {\n el.focus();\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token = null) {\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State][]} jr */\n this.jr = [];\n /** @type {?State} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly = false) {\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n Object.assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // (\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // )\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // <\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // >\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes = []) {\n // Frequently used states (name argument removed during minification)\n /** @type Collections */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, '(', FULLWIDTHLEFTPAREN);\n tt(Start, ')', FULLWIDTHRIGHTPAREN);\n tt(Start, '「', LEFTCORNERBRACKET);\n tt(Start, '」', RIGHTCORNERBRACKET);\n tt(Start, '『', LEFTWHITECORNERBRACKET);\n tt(Start, '』', RIGHTWHITECORNERBRACKET);\n tt(Start, '<', FULLWIDTHLESSTHAN);\n tt(Start, '>', FULLWIDTHGREATERTHAN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n tt(Start, '・', FULLWIDTHMIDDLEDOT);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n [asciinumeric]: true\n });\n const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n [alphanumeric]: true\n });\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, DIGIT, Asciinumeric);\n tr(Word, ASCII_LETTER, Word);\n tr(Asciinumeric, DIGIT, Asciinumeric);\n tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, DIGIT, Alphanumeric);\n tr(UWord, LETTER, UWord);\n tr(Alphanumeric, DIGIT, Alphanumeric);\n tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Nl = tt(Start, LF, NL, {\n [whitespace]: true\n });\n const Cr = tt(Start, CR, WS, {\n [whitespace]: true\n });\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, OBJECT_REPLACEMENT, Ws);\n tt(Cr, LF, Nl); // \\r\\n\n tt(Cr, OBJECT_REPLACEMENT, Ws);\n tr(Cr, SPACE, Ws);\n tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tt(Emoji, '#'); // no transition, emoji regex seems to match #\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tt(EmojiJoiner, '#');\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: Object.assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender = null) {\n let o = Object.assign({}, defaults);\n if (opts) {\n o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol = defaults.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n Object.assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme = defaults.defaultProtocol) {\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\nfunction init$1({\n groups\n}) {\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n tt(DomainHyphen, HYPHEN, DomainHyphen);\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n tt(SchemeColon, QUERY, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n // {}\n [OPENBRACKET, CLOSEBRACKET],\n // []\n [OPENPAREN, CLOSEPAREN],\n // ()\n [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n // <>\n [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n // ()\n [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n // 「」\n [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n // 『』\n [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // <>\n ];\n for (let i = 0; i < bracketPairs.length; i++) {\n const [OPEN, CLOSE] = bracketPairs[i];\n const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n // Continue not accepting for open brackets\n tt(UrlNonaccept, OPEN, UrlOpen);\n\n // URL that begins with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpen` (if the URL has a\n // single opening bracket for some reason).\n const UrlOpenQ = makeState(Url);\n ta(UrlOpen, qsAccepting, UrlOpenQ);\n const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n ta(UrlOpen, qsNonAccepting, UrlOpenSyms);\n\n // Closing bracket component. This character WILL be included in the URL.\n // Must come after qsNonAccepting (which includes all close-bracket tokens)\n // so that CLOSE -> Url wins over CLOSE -> UrlOpenSyms.\n tt(UrlOpen, CLOSE, Url$1);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenQ, CLOSE, Url$1);\n tt(UrlOpenSyms, CLOSE, Url$1);\n }\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n return INIT;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n return INIT;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n */\nfunction find(str, type = null, opts = null) {\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type) && options.check(token)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type = null) {\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, multi as text, tokenize };\n","import escapeHTML from \"escape-html\";\nimport { Options, tokenize } from \"linkifyjs\";\nfunction linkifyString(str) {\n const options = new Options({\n defaultProtocol: \"https\",\n target: \"_blank\",\n className: \"external linkified\",\n attributes: {\n rel: \"nofollow noopener noreferrer\"\n }\n }, defaultRender);\n const tokens = tokenize(str);\n const result = [];\n for (const token of tokens) {\n if (token.t === \"nl\" && options.get(\"nl2br\")) {\n result.push(\"
\\n\");\n } else if (!token.isLink || !options.check(token)) {\n result.push(escapeHTML(token.toString()));\n } else {\n result.push(options.render(token));\n }\n }\n return result.join(\"\");\n}\nfunction escapeAttr(href) {\n return href.replace(/\"/g, \""\");\n}\nfunction attributesToString(attributes) {\n const result = [];\n for (const attr in attributes) {\n const val = attributes[attr] + \"\";\n result.push(`${attr}=\"${escapeAttr(val)}\"`);\n }\n return result.join(\" \");\n}\nfunction defaultRender({ tagName, attributes, content }) {\n return `<${tagName} ${attributesToString(attributes)}>${escapeHTML(content)}`;\n}\nconst directive = function(el, { value }) {\n if (value?.linkify === true) {\n el.innerHTML = linkifyString(value.text);\n }\n};\nexport {\n directive as default\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, inject, withDirectives, openBlock, createElementBlock, createTextVNode, toDisplayString, unref } from \"vue\";\nimport directive from \"../directives/Linkify/index.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarHeader\",\n props: {\n name: {},\n title: {},\n linkify: { type: Boolean }\n },\n setup(__props) {\n const headerRef = inject(\"NcAppSidebar:header:ref\");\n return (_ctx, _cache) => {\n return withDirectives((openBlock(), createElementBlock(\"h2\", {\n ref_key: \"headerRef\",\n ref: headerRef,\n tabindex: \"-1\",\n title: __props.title\n }, [\n createTextVNode(toDisplayString(__props.name), 1)\n ], 8, _hoisted_1)), [\n [unref(directive), { text: __props.name, linkify: __props.linkify }]\n ]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs.map\n","import '../assets/NcEmptyContent-DJMDuGVz.css';\nimport { defineComponent, openBlock, createElementBlock, unref, renderSlot, createCommentVNode, createTextVNode, toDisplayString } from \"vue\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"empty-content__icon\",\n \"aria-hidden\": \"true\"\n};\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = {\n key: 2,\n class: \"empty-content__description\"\n};\nconst _hoisted_5 = {\n key: 3,\n class: \"empty-content__action\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcEmptyContent\",\n props: {\n description: { default: \"\" },\n name: { default: \"\" }\n },\n setup(__props) {\n const nameId = createElementId();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n \"aria-labelledby\": unref(nameId),\n class: \"empty-content\",\n role: \"note\"\n }, [\n _ctx.$slots.icon ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n __props.name !== \"\" || _ctx.$slots.name ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n id: unref(nameId),\n class: \"empty-content__name\"\n }, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString(__props.name), 1)\n ], true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true),\n __props.description !== \"\" || _ctx.$slots.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n _ctx.$slots.action ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"action\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1);\n };\n }\n});\nconst NcEmptyContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-8609a4c1\"]]);\nexport {\n NcEmptyContent as N\n};\n//# sourceMappingURL=NcEmptyContent-CGAPqk4S.mjs.map\n","import '../assets/NcAppSidebar-oJQ8kUb0.css';\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, useModel, normalizeClass, unref, createVNode, withCtx, mergeModels, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from \"vue\";\nimport { I as IconArrowRight } from \"./ArrowRight-B1ncAhus.mjs\";\nimport { I as IconClose } from \"./Close-CuhcJnX2.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _sfc_main$6 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { useIsSmallMobile } from \"../composables/useIsMobile/index.mjs\";\nimport directive from \"../directives/Focus/index.mjs\";\nimport { r as register, V as t15, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { i as isSlotPopulated, N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _sfc_main$7 } from \"./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-C-QhdyiN.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { C as CONTENT_SELECTOR_KEY } from \"./constants-Ciwvl5xb.mjs\";\nimport { N as NcEmptyContent } from \"./NcEmptyContent-CGAPqk4S.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nconst _sfc_main$5 = {\n name: \"DockRightIcon\",\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$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" };\nconst _hoisted_4$3 = { 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 dock-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$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$5);\n}\nconst IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$4 = {\n name: \"StarIcon\",\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$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z\" };\nconst _hoisted_4$2 = { 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 star-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$4);\n}\nconst IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$3 = {\n name: \"StarOutlineIcon\",\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$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z\" };\nconst _hoisted_4$1 = { 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 star-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$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$3);\n}\nconst IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$2 = [\"aria-selected\", \"tabindex\"];\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSidebarTabsButton\",\n props: /* @__PURE__ */ mergeModels({\n tab: {}\n }, {\n \"selected\": { type: Boolean, ...{ required: true } },\n \"selectedModifiers\": {}\n }),\n emits: [\"update:selected\"],\n setup(__props) {\n const selected = useModel(__props, \"selected\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"button\", {\n class: normalizeClass([\"button-vue\", [_ctx.$style.sidebarTabsButton, {\n [_ctx.$style.sidebarTabsButton_selected]: selected.value,\n [_ctx.$style.sidebarTabsButton_legacy]: unref(isLegacy34)\n }]]),\n role: \"tab\",\n \"aria-selected\": selected.value,\n tabindex: selected.value ? 0 : -1,\n onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)\n }, [\n createVNode(_sfc_main$6, {\n vnodes: __props.tab.renderIcon()\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", {\n class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, __props.tab.icon])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"vnodes\"])\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.sidebarTabsButton__name)\n }, toDisplayString(__props.tab.name), 3)\n ], 10, _hoisted_1$2);\n };\n }\n});\nconst sidebarTabsButton = \"_sidebarTabsButton_OCROY\";\nconst sidebarTabsButton_legacy = \"_sidebarTabsButton_legacy_e9-y9\";\nconst sidebarTabsButton_selected = \"_sidebarTabsButton_selected_S48M1\";\nconst sidebarTabsButton__name = \"_sidebarTabsButton__name_GZRY8\";\nconst sidebarTabsButton__icon = \"_sidebarTabsButton__icon_ZDmkU\";\nconst sidebarTabsButton__legacyIcon = \"_sidebarTabsButton__legacyIcon_y6cLW\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_v9SPG\",\n sidebarTabsButton,\n sidebarTabsButton_legacy,\n sidebarTabsButton_selected,\n sidebarTabsButton__name,\n sidebarTabsButton__icon,\n sidebarTabsButton__legacyIcon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcAppSidebarTabsButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__cssModules\", cssModules]]);\nconst _sfc_main$1 = {\n name: \"NcAppSidebarTabs\",\n components: {\n NcAppSidebarTabsButton\n },\n provide() {\n return {\n registerTab: this.registerTab,\n unregisterTab: this.unregisterTab,\n // Getter as an alternative to Vue 2.7 computed(() => this.activeTab)\n getActiveTab: () => this.activeTab,\n // Used to check whether the tab header is shown so the tabs can reference the tab header for `aria-labelledby` or not\n isTablistShown: () => this.hasMultipleTabs\n };\n },\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n }\n },\n emits: [\"update:active\"],\n data(props) {\n return {\n /**\n * Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.\n */\n tabs: [],\n /**\n * Local active (open) tab's ID. It allows to use component without v-model:active\n */\n activeTab: props.active,\n isLegacy34\n };\n },\n computed: {\n /**\n * Has multiple tabs. If only one tab - its content is shown without navigation\n *\n * @return {boolean}\n */\n hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n showForSingleTab() {\n return this.forceTabs && this.tabs.length === 1;\n },\n currentTabIndex() {\n return this.tabs.findIndex((tab) => tab.id === this.activeTab);\n }\n },\n watch: {\n tabs() {\n if (this.active) {\n this.updateActive();\n }\n },\n active(active) {\n if (active !== this.activeTab) {\n this.updateActive();\n }\n }\n },\n methods: {\n /**\n * Set the current active tab\n *\n * @param {string} id the id of the tab\n */\n setActive(id) {\n this.activeTab = id;\n this.$emit(\"update:active\", this.activeTab);\n },\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n this.focusActiveTab();\n },\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab();\n },\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab();\n },\n /**\n * Focus the current active tab\n */\n focusActiveTab() {\n this.$el.querySelector(`#tab-button-${this.activeTab}`).focus();\n },\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent() {\n this.$el.querySelector(\"#tab-\" + this.activeTab).focus();\n },\n /**\n * Update the current active tab\n */\n updateActive() {\n this.activeTab = this.active && this.tabs.some(({ id }) => id === this.active) ? this.active : this.tabs[0]?.id ?? \"\";\n },\n /**\n * Register child tab in the tabs\n *\n * @param {object} tab child tab passed to slot\n */\n registerTab(tab) {\n this.tabs.push(tab);\n this.tabs.sort((a, b) => {\n if (a.order === b.order) {\n return a.name.localeCompare(b.name, [getCanonicalLocale()]);\n }\n return a.order - b.order;\n });\n this.updateActive();\n },\n /**\n * Unregister child tab from the tabs\n *\n * @param {string} id tab's id\n */\n unregisterTab(id) {\n const tabIndex = this.tabs.findIndex((tab) => tab.id === id);\n if (tabIndex !== -1) {\n this.tabs.splice(tabIndex, 1);\n }\n if (this.activeTab === id) {\n this.updateActive();\n }\n }\n }\n};\nconst _hoisted_1$1 = { class: \"app-sidebar-tabs\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAppSidebarTabsButton = resolveComponent(\"NcAppSidebarTabsButton\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n $options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n role: \"tablist\",\n class: normalizeClass([\"app-sidebar-tabs__nav\", { \"app-sidebar-tabs__nav--legacy\": $data.isLegacy34 }]),\n onKeydown: [\n _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => $options.focusPreviousTab && $options.focusPreviousTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"left\"])),\n _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => $options.focusNextTab && $options.focusNextTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"right\"])),\n _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.focusActiveTabContent && $options.focusActiveTabContent(...args), [\"exact\", \"prevent\", \"stop\"]), [\"tab\"])),\n _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"home\"])),\n _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"end\"])),\n _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => $options.focusFirstTab && $options.focusFirstTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-up\"])),\n _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => $options.focusLastTab && $options.focusLastTab(...args), [\"exact\", \"prevent\", \"stop\"]), [\"page-down\"]))\n ]\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {\n return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {\n id: `tab-button-${tab.id}`,\n key: tab.id,\n class: \"app-sidebar-tabs__tab\",\n \"aria-controls\": `tab-${tab.id}`,\n selected: $data.activeTab === tab.id,\n tab,\n \"onUpdate:selected\": ($event) => $options.setActive(tab.id)\n }, null, 8, [\"id\", \"aria-controls\", \"selected\", \"tab\", \"onUpdate:selected\"]);\n }), 128))\n ], 34)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-tabs__content\", { \"app-sidebar-tabs__content--multiple\": $options.hasMultipleTabs }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 2)\n ]);\n}\nconst NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-e74d1502\"]]);\nregister(t15);\nconst _sfc_main = {\n name: \"NcAppSidebar\",\n components: {\n NcActions,\n NcAppSidebarHeader: _sfc_main$7,\n NcAppSidebarTabs,\n NcButton,\n NcLoadingIcon,\n NcEmptyContent,\n IconArrowRight,\n IconClose,\n IconDockRight,\n IconStar,\n IconStarOutline\n },\n directives: {\n Focus: directive,\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n inject: {\n ncContentSelector: {\n from: CONTENT_SELECTOR_KEY,\n default: void 0\n }\n },\n props: {\n /**\n * The active tab\n */\n active: {\n type: String,\n default: \"\"\n },\n /**\n * Main text of the sidebar\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Allow to edit the sidebar name.\n */\n nameEditable: {\n type: Boolean,\n default: false\n },\n /**\n * Placeholder in the edit field if the name is editable.\n */\n namePlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Secondary name of the sidebar (subline)\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Title to display for the subname.\n */\n subtitle: {\n type: String,\n default: \"\"\n },\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: \"\"\n },\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the tab navigation to display even if there is only one tab\n */\n forceTabs: {\n type: Boolean,\n default: false\n },\n /**\n * Linkify the name\n */\n linkifyName: {\n type: Boolean,\n default: false\n },\n /**\n * Title to display for the name.\n * Can be set to the same text in case it's too long.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Allow to conditionally show the sidebar\n * You can also use `v-if` on the sidebar, but using the open prop allow to keep\n * the sidebar inside the DOM for performance if it is opened and closed multiple times.\n *\n * When using the `open` property to close the sidebar a built-in toggle button will be shown to reopen it,\n * similar to the app navigation. You can remove this button with the `no-toggle` prop.\n */\n open: {\n type: Boolean,\n default: true\n },\n /**\n * Custom classes to assign to the sidebar toggle button.\n * If needed this can be used to assign styles to the button using `:deep()` selector.\n */\n toggleClasses: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Custom attrs to assign to the sidebar toggle button.\n */\n toggleAttrs: {\n type: Object,\n default: void 0\n },\n /**\n * Do not add the built-in toggle button with `open` prop.\n */\n noToggle: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"close\",\n \"closed\",\n \"opened\",\n // 'figureClick', not emitted on purpose to make \"hasFigureClickListener\" work\n \"update:active\",\n \"update:name\",\n \"update:nameEditable\",\n \"update:open\",\n \"update:starred\",\n \"submitName\",\n \"dismissEditing\"\n ],\n setup() {\n const headerRef = ref(null);\n provide(\"NcAppSidebar:header:ref\", headerRef);\n return {\n uid: createElementId(),\n isMobile: useIsSmallMobile(),\n headerRef\n };\n },\n data() {\n return {\n changeNameTranslated: t(\"Change name\"),\n closeTranslated: t(\"Close sidebar\"),\n favoriteTranslated: t(\"Favorite\"),\n isStarred: this.starred,\n focusTrap: null,\n elementToReturnFocus: null\n };\n },\n computed: {\n canStar() {\n return this.isStarred !== null;\n },\n hasFigureClickListener() {\n return !!this.$attrs.onFigureClick;\n }\n },\n watch: {\n starred() {\n this.isStarred = this.starred;\n },\n isMobile() {\n this.toggleFocusTrap();\n },\n open() {\n this.checkToggleButtonContainerAvailability();\n }\n },\n created() {\n this.preserveElementToReturnFocus();\n this.checkToggleButtonContainerAvailability();\n },\n beforeUnmount() {\n this.$emit(\"closed\");\n this.focusTrap?.deactivate();\n },\n methods: {\n isSlotPopulated,\n t,\n preserveElementToReturnFocus() {\n if (document.activeElement && document.activeElement !== document.body) {\n this.elementToReturnFocus = document.activeElement;\n if (this.elementToReturnFocus.getAttribute(\"role\") === \"menuitem\") {\n const menu = this.elementToReturnFocus.closest('[role=\"menu\"]');\n if (menu) {\n const menuTrigger = document.querySelector(`[aria-controls=\"${menu.id}\"]`);\n this.elementToReturnFocus = menuTrigger;\n }\n }\n }\n },\n initFocusTrap() {\n if (this.focusTrap) {\n return;\n }\n this.focusTrap = createFocusTrap([\n // The sidebar itself\n this.$refs.sidebar,\n // Nextcloud Server header navigation\n document.querySelector(\"#header\")\n ], {\n allowOutsideClick: true,\n fallbackFocus: this.$refs.closeButton.$el,\n trapStack: getTrapStack(),\n escapeDeactivates: false\n });\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n if (this.open && this.isMobile) {\n this.initFocusTrap();\n this.focusTrap.activate();\n } else {\n this.focusTrap?.deactivate();\n }\n },\n /**\n * Close the sidebar on pressing the escape key on mobile\n *\n * @param {KeyboardEvent} event key down event\n */\n onKeydownEsc(event) {\n if (this.isMobile) {\n event.stopPropagation();\n this.closeSidebar();\n }\n },\n onAfterEnter(element) {\n if (this.elementToReturnFocus) {\n this.focus();\n }\n this.toggleFocusTrap();\n this.$emit(\"opened\", element);\n },\n onAfterLeave(element) {\n this.$emit(\"closed\", element);\n this.toggleFocusTrap();\n this.elementToReturnFocus?.focus({ focusVisible: true });\n this.elementToReturnFocus = null;\n },\n /**\n * Used to tell parent component the user asked to close the sidebar\n *\n * @param {Event} e close icon click event\n */\n closeSidebar(e) {\n this.$emit(\"close\", e);\n this.$emit(\"update:open\", false);\n },\n /**\n * Emit figure click event to parent component\n *\n * @param {Event} e click event\n */\n onFigureClick(e) {\n this.$emit(\"figureClick\", e);\n },\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred() {\n this.isStarred = !this.isStarred;\n this.$emit(\"update:starred\", this.isStarred);\n },\n async editName() {\n this.$emit(\"update:nameEditable\", true);\n if (this.nameEditable) {\n await this.$nextTick();\n this.$refs.nameInput.focus();\n }\n },\n /**\n * Focus the sidebar\n *\n * @public\n */\n focus() {\n if (!this.open && !this.noToggle) {\n this.$refs.toggle.$el.focus();\n return;\n }\n try {\n this.headerRef.focus();\n } catch {\n warn(\"NcAppSidebar should have focusable header for accessibility reasons. Use NcAppSidebarHeader component.\");\n }\n },\n /**\n * Focus the active tab\n *\n * @public\n */\n focusActiveTabContent() {\n this.preserveElementToReturnFocus();\n this.$refs.tabs.focusActiveTabContent();\n },\n /**\n * Check if the toggle button container is available\n */\n checkToggleButtonContainerAvailability() {\n if (this.open === false && !this.noToggle && !this.ncContentSelector) {\n logger.warn(\"[NcAppSidebar] It looks like you want to use NcAppSidebar with the built-in toggle button. This feature is only available when NcAppSidebar is used in NcContent.\");\n }\n },\n /**\n * Emit name change event to parent component\n *\n * @param {Event} event input event\n */\n onNameInput(event) {\n this.$emit(\"update:name\", event.target.value);\n },\n /**\n * Emit when the name form edit confirm button is pressed in order\n * to change the name.\n *\n * @param {Event} event submit event\n */\n onSubmitName(event) {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"submitName\", event);\n },\n onDismissEditing() {\n this.$emit(\"update:nameEditable\", false);\n this.$emit(\"dismissEditing\");\n },\n onUpdateActive(activeTab) {\n this.$emit(\"update:active\", activeTab);\n }\n }\n};\nconst _hoisted_1 = [\"aria-labelledby\"];\nconst _hoisted_2 = { class: \"app-sidebar-header__info\" };\nconst _hoisted_3 = {\n key: 0,\n class: \"app-sidebar-header__tertiary-actions\"\n};\nconst _hoisted_4 = { class: \"app-sidebar-header__name-container\" };\nconst _hoisted_5 = { class: \"app-sidebar-header__mainname-container\" };\nconst _hoisted_6 = [\"placeholder\", \"value\"];\nconst _hoisted_7 = [\"title\"];\nconst _hoisted_8 = {\n key: 2,\n class: \"app-sidebar-header__description\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_IconDockRight = resolveComponent(\"IconDockRight\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconStar = resolveComponent(\"IconStar\");\n const _component_IconStarOutline = resolveComponent(\"IconStarOutline\");\n const _component_NcAppSidebarHeader = resolveComponent(\"NcAppSidebarHeader\");\n const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_IconClose = resolveComponent(\"IconClose\");\n const _component_NcAppSidebarTabs = resolveComponent(\"NcAppSidebarTabs\");\n const _component_NcEmptyContent = resolveComponent(\"NcEmptyContent\");\n const _directive_focus = resolveDirective(\"focus\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createBlock(Transition, {\n appear: \"\",\n name: \"slide-right\",\n onAfterEnter: $options.onAfterEnter,\n onAfterLeave: $options.onAfterLeave\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"aside\", {\n id: \"app-sidebar-vue\",\n ref: \"sidebar\",\n class: \"app-sidebar\",\n \"aria-labelledby\": `app-sidebar-vue-${$setup.uid}__header`,\n onKeydown: _cache[6] || (_cache[6] = withKeys((...args) => $options.onKeydownEsc && $options.onKeydownEsc(...args), [\"esc\"]))\n }, [\n $options.ncContentSelector && !$props.open && !$props.noToggle ? (openBlock(), createBlock(Teleport, {\n key: 0,\n to: $options.ncContentSelector\n }, [\n createVNode(_component_NcButton, mergeProps({\n ref: \"toggle\",\n \"aria-label\": $options.t(\"Open sidebar\"),\n class: [\"app-sidebar__toggle\", $props.toggleClasses],\n variant: \"tertiary\"\n }, $props.toggleAttrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:open\", true))\n }), {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_IconDockRight, { size: 20 })\n ], true)\n ]),\n _: 3\n }, 16, [\"aria-label\", \"class\"])\n ], 8, [\"to\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"header\", {\n class: normalizeClass([\"app-sidebar-header\", {\n \"app-sidebar-header--with-figure\": $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background,\n \"app-sidebar-header--compact\": $props.compact\n }])\n }, [\n !$props.empty ? renderSlot(_ctx.$slots, \"info\", { key: 0 }, () => [\n createElementVNode(\"div\", _hoisted_2, [\n $options.isSlotPopulated(_ctx.$slots.header?.()) || $props.background ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"app-sidebar-header__figure\", {\n \"app-sidebar-header__figure--with-action\": $options.hasFigureClickListener\n }]),\n style: normalizeStyle({\n backgroundImage: `url(${$props.background})`\n }),\n tabindex: \"0\",\n onClick: _cache[1] || (_cache[1] = (...args) => $options.onFigureClick && $options.onFigureClick(...args)),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.onFigureClick && $options.onFigureClick(...args), [\"enter\"]))\n }, [\n renderSlot(_ctx.$slots, \"header\", { class: \"app-sidebar-header__background\" }, void 0, true)\n ], 38)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"app-sidebar-header__desc\", {\n \"app-sidebar-header__desc--with-tertiary-action\": $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()),\n \"app-sidebar-header__desc--editable\": $props.nameEditable && !$props.subname,\n \"app-sidebar-header__desc--with-subname--editable\": $props.nameEditable && $props.subname,\n \"app-sidebar-header__desc--without-actions\": !$options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.())\n }])\n }, [\n $options.canStar || $options.isSlotPopulated(_ctx.$slots[\"tertiary-actions\"]?.()) ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n renderSlot(_ctx.$slots, \"tertiary-actions\", {}, () => [\n $options.canStar ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $data.favoriteTranslated,\n pressed: $data.isStarred,\n class: \"app-sidebar-header__star\",\n variant: \"secondary\",\n onClick: withModifiers($options.toggleStarred, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n $props.starLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $data.isStarred ? (openBlock(), createBlock(_component_IconStar, {\n key: 1,\n size: 20\n })) : (openBlock(), createBlock(_component_IconStarOutline, {\n key: 2,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"pressed\", \"onClick\"])) : createCommentVNode(\"\", true)\n ], true)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n createElementVNode(\"div\", _hoisted_5, [\n withDirectives(createVNode(_component_NcAppSidebarHeader, {\n class: \"app-sidebar-header__mainname\",\n name: $props.name,\n linkify: $props.linkifyName,\n title: $props.title,\n tabindex: $props.nameEditable ? 0 : -1,\n onClick: withModifiers($options.editName, [\"self\"])\n }, null, 8, [\"name\", \"linkify\", \"title\", \"tabindex\", \"onClick\"]), [\n [vShow, !$props.nameEditable]\n ]),\n $props.nameEditable ? withDirectives((openBlock(), createElementBlock(\"form\", {\n key: 0,\n class: \"app-sidebar-header__mainname-form\",\n onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.onSubmitName && $options.onSubmitName(...args), [\"prevent\"]))\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref: \"nameInput\",\n class: \"app-sidebar-header__mainname-input\",\n type: \"text\",\n placeholder: $props.namePlaceholder,\n value: $props.name,\n onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.onDismissEditing && $options.onDismissEditing(...args), [\"stop\"]), [\"esc\"])),\n onInput: _cache[4] || (_cache[4] = (...args) => $options.onNameInput && $options.onNameInput(...args))\n }, null, 40, _hoisted_6), [\n [_directive_focus]\n ]),\n createVNode(_component_NcButton, {\n \"aria-label\": $data.changeNameTranslated,\n type: \"submit\",\n variant: \"tertiary-no-background\"\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconArrowRight, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\"])\n ], 32)), [\n [_directive_click_outside, () => $options.onSubmitName()]\n ]) : createCommentVNode(\"\", true),\n $options.isSlotPopulated(_ctx.$slots[\"secondary-actions\"]?.()) ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n class: \"app-sidebar-header__menu\",\n forceMenu: $props.forceMenu\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"secondary-actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"forceMenu\"])) : createCommentVNode(\"\", true)\n ]),\n $props.subname.trim() !== \"\" || _ctx.$slots[\"subname\"] ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n title: $props.subtitle || void 0,\n class: \"app-sidebar-header__subname\"\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, () => [\n createTextVNode(toDisplayString($props.subname), 1)\n ], true)\n ], 8, _hoisted_7)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ], true) : (openBlock(), createBlock(_component_NcAppSidebarHeader, {\n key: 1,\n class: \"app-sidebar-header__mainname--hidden\",\n name: $props.name,\n tabindex: \"-1\"\n }, null, 8, [\"name\"])),\n createVNode(_component_NcButton, {\n ref: \"closeButton\",\n \"aria-label\": $data.closeTranslated,\n title: $data.closeTranslated,\n class: \"app-sidebar__close\",\n variant: \"tertiary\",\n onClick: withModifiers($options.closeSidebar, [\"prevent\"])\n }, {\n icon: withCtx(() => [\n createVNode(_component_IconClose, { size: 20 })\n ]),\n _: 1\n }, 8, [\"aria-label\", \"title\", \"onClick\"]),\n $options.isSlotPopulated(_ctx.$slots.description?.()) && !$props.empty ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 2),\n withDirectives(createVNode(_component_NcAppSidebarTabs, {\n ref: \"tabs\",\n active: $props.active,\n forceTabs: $props.forceTabs,\n \"onUpdate:active\": $options.onUpdateActive\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"active\", \"forceTabs\", \"onUpdate:active\"]), [\n [vShow, !$props.loading]\n ]),\n $props.loading ? (openBlock(), createBlock(_component_NcEmptyContent, { key: 1 }, {\n icon: withCtx(() => [\n createVNode(_component_NcLoadingIcon, { size: 64 })\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ], 40, _hoisted_1), [\n [vShow, $props.open]\n ])\n ]),\n _: 3\n }, 8, [\"onAfterEnter\", \"onAfterLeave\"]);\n}\nconst NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e8979b7f\"]]);\nexport {\n NcAppSidebar as N\n};\n//# sourceMappingURL=NcAppSidebar-C8YzAzrZ.mjs.map\n","import '../assets/NcAppSidebarTab-Xd3HTDbw.css';\nimport { openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppSidebarTab\",\n inject: [\"registerTab\", \"unregisterTab\", \"getActiveTab\", \"isTablistShown\"],\n props: {\n /**\n * Unique id of the sidebar tab\n */\n id: {\n type: String,\n required: true\n },\n /**\n * Tab name in navigation\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Tab icon's html class in navigation. Used if #icon slot is not provided\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Tab order in navigation. If not provided, name is used.\n */\n order: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"bottomReached\",\n \"scroll\"\n ],\n expose: [\"id\", \"name\", \"icon\", \"order\", \"renderIcon\"],\n computed: {\n /**\n * Is the current tab an active tab, that should be shown?\n *\n * @return {boolean}\n */\n isActive() {\n return this.getActiveTab() === this.id;\n }\n },\n created() {\n this.registerTab(this);\n },\n beforeUnmount() {\n this.unregisterTab(this.id);\n },\n methods: {\n onScroll(event) {\n if (this.$el.scrollHeight - this.$el.scrollTop === this.$el.clientHeight) {\n this.$emit(\"bottomReached\", event);\n }\n this.$emit(\"scroll\", event);\n },\n /**\n * Render tab's icon slot if any\n *\n * @return {import('vue').VNode[]}\n */\n renderIcon() {\n return this.$slots.icon?.();\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"role\", \"tabindex\"];\nconst _hoisted_2 = { class: \"hidden-visually\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"section\", {\n id: `tab-${$props.id}`,\n \"aria-hidden\": !$options.isActive,\n \"aria-label\": $options.isTablistShown() ? void 0 : $props.name,\n \"aria-labelledby\": $options.isTablistShown() ? `tab-button-${$props.id}` : void 0,\n class: normalizeClass([\"app-sidebar__tab\", { \"app-sidebar__tab--active\": $options.isActive }]),\n role: $options.isTablistShown() ? \"tabpanel\" : void 0,\n tabindex: $options.isTablistShown() ? 0 : -1,\n onScroll: _cache[0] || (_cache[0] = (...args) => $options.onScroll && $options.onScroll(...args))\n }, [\n createElementVNode(\"h3\", _hoisted_2, toDisplayString($props.name), 1),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 42, _hoisted_1);\n}\nconst NcAppSidebarTab = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-dba10798\"]]);\nexport {\n NcAppSidebarTab as N\n};\n//# sourceMappingURL=NcAppSidebarTab-DOSDDbGA.mjs.map\n","import '../assets/autolink-XS-VDSVB.css';\nimport { getBaseUrl, getRootUrl } from \"@nextcloud/router\";\nimport { u } from \"unist-builder\";\nimport { visitParents, SKIP } from \"unist-util-visit-parents\";\nimport { defineComponent, openBlock, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nconst _hoisted_1 = [\"href\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcRichTextExternalLink\",\n props: {\n href: {},\n decorateExternal: { type: Boolean, default: false }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"a\", {\n href: __props.href,\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n class: normalizeClass([_ctx.$style.externalLink, {\n [_ctx.$style.externalLink_decorated]: __props.decorateExternal\n }])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.href), 1)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst externalLink = \"_externalLink_d-mCx\";\nconst externalLink_decorated = \"_externalLink_decorated_W3wuz\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_ZJnaR\",\n externalLink,\n externalLink_decorated\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcRichTextExternalLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst URL_PATTERN = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig;\nconst URL_PATTERN_AUTOLINK = /(\\s|\\(|^)((https?:\\/\\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig;\nfunction remarkAutolink({ autolink, useMarkdown, useExtendedMarkdown }) {\n return function(tree) {\n if (useExtendedMarkdown || !useMarkdown || !autolink) {\n return;\n }\n visitParents(tree, (node) => node.type === \"text\", (node, ancestors) => {\n if (ancestors.some((ancestor) => ancestor.type === \"link\" || ancestor.type === \"linkReference\")) {\n return;\n }\n const parent = ancestors.at(-1);\n const index = parent.children.indexOf(node) ?? 0;\n const parsed = parseUrl(node.value);\n const parsedNodes = typeof parsed === \"string\" ? [u(\"text\", parsed)] : parsed.map((n) => {\n if (typeof n === \"string\") {\n return u(\"text\", n);\n }\n return u(\"link\", {\n url: n.props.href\n }, [u(\"text\", n.props.href)]);\n }).filter((x) => x).flat();\n parent.children.splice(index, 1, ...parsedNodes);\n return [SKIP, index + parsedNodes.length];\n });\n };\n}\nfunction parseUrl(text) {\n let match = URL_PATTERN_AUTOLINK.exec(text);\n const list = [];\n let start = 0;\n while (match !== null) {\n let href = match[2];\n let textAfter;\n let textBefore = text.substring(start, match.index + match[1].length);\n if (href[0] === \" \") {\n textBefore += href[0];\n href = href.substring(1).trim();\n }\n const lastChar = href[href.length - 1];\n if (lastChar === \".\" || lastChar === \",\" || lastChar === \";\" || match[0][0] === \"(\" && lastChar === \")\") {\n href = href.substring(0, href.length - 1);\n textAfter = lastChar;\n }\n list.push(textBefore);\n list.push({ component: NcRichTextExternalLink, props: { href: href.trim(), decorateExternal: true } });\n if (textAfter) {\n list.push(textAfter);\n }\n start = match.index + match[0].length;\n match = URL_PATTERN_AUTOLINK.exec(text);\n }\n list.push(text.substring(start));\n const joinedText = list.map((item) => typeof item === \"string\" ? item : item.props.href).join(\"\");\n if (text === joinedText) {\n return list;\n }\n logger.error(\"[NcRichText] Failed to reassemble the chunked text: \" + text);\n return text;\n}\nfunction getRoute(router, url) {\n const removePrefix = (str, prefix) => str.startsWith(prefix) ? str.slice(prefix.length) : str;\n const removePrefixes = (str, ...prefixes) => prefixes.reduce((acc, prefix) => removePrefix(acc, prefix), str);\n if (!router) {\n return null;\n }\n const isAbsoluteURL = /^https?:\\/\\//.test(url);\n const isNonHttpLink = /^[a-z][a-z0-9+.-]*:.+/.test(url);\n if (!isAbsoluteURL && isNonHttpLink) {\n return null;\n }\n if (isAbsoluteURL && !url.startsWith(getBaseUrl())) {\n return null;\n }\n if (!isAbsoluteURL && !url.startsWith(\"/\")) {\n return null;\n }\n const relativeUrl = isAbsoluteURL ? removePrefixes(url, getBaseUrl(), \"/index.php\") : url;\n const relativeRouterBase = removePrefixes(router.options.history.base, getRootUrl(), \"/index.php\");\n const potentialRouterPath = removePrefixes(relativeUrl, relativeRouterBase) || \"/\";\n const route = router.resolve(potentialRouterPath);\n if (!route.matched.length) {\n return null;\n }\n return route.fullPath;\n}\nexport {\n NcRichTextExternalLink as N,\n URL_PATTERN as U,\n getRoute as g,\n parseUrl as p,\n remarkAutolink as r\n};\n//# sourceMappingURL=autolink-DrIurosL.mjs.map\n","import { l as logger } from \"../../chunks/logger-D3RVzcfQ.mjs\";\nfunction registerContactsMenuAction(action) {\n window._nc_contacts_menu_hooks ??= {};\n if (window._nc_contacts_menu_hooks[action.id]) {\n logger.error(`ContactsMenu action for id ${action.id} has already been registered`, {\n action\n });\n return;\n }\n window._nc_contacts_menu_hooks[action.id] = action;\n}\nfunction getEnabledContactsMenuActions(entry) {\n if (!window._nc_contacts_menu_hooks) {\n return [];\n }\n return Object.values(window._nc_contacts_menu_hooks).filter((action) => action.enabled(entry));\n}\nexport {\n getEnabledContactsMenuActions,\n registerContactsMenuAction\n};\n//# sourceMappingURL=index.mjs.map\n","const c = new Int32Array(4);\nclass h {\n static hashStr(i, a = !1) {\n return this.onePassHasher.start().appendStr(i).end(a);\n }\n static hashAsciiStr(i, a = !1) {\n return this.onePassHasher.start().appendAsciiStr(i).end(a);\n }\n // Private Static Variables\n static stateIdentity = new Int32Array([\n 1732584193,\n -271733879,\n -1732584194,\n 271733878\n ]);\n static buffer32Identity = new Int32Array([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]);\n static hexChars = \"0123456789abcdef\";\n static hexOut = [];\n // Permanent instance is to use for one-call hashing\n static onePassHasher = new h();\n static _hex(i) {\n const a = h.hexChars, t = h.hexOut;\n let e, s, r, n;\n for (n = 0; n < 4; n += 1)\n for (s = n * 8, e = i[n], r = 0; r < 8; r += 2)\n t[s + 1 + r] = a.charAt(e & 15), e >>>= 4, t[s + 0 + r] = a.charAt(e & 15), e >>>= 4;\n return t.join(\"\");\n }\n static _md5cycle(i, a) {\n let t = i[0], e = i[1], s = i[2], r = i[3];\n t += (e & s | ~e & r) + a[0] - 680876936 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[1] - 389564586 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[2] + 606105819 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[3] - 1044525330 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[4] - 176418897 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[5] + 1200080426 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[6] - 1473231341 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[7] - 45705983 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[8] + 1770035416 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[9] - 1958414417 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[10] - 42063 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[11] - 1990404162 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[12] + 1804603682 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[13] - 40341101 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[14] - 1502002290 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[15] + 1236535329 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & r | s & ~r) + a[1] - 165796510 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[6] - 1069501632 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[11] + 643717713 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[0] - 373897302 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[5] - 701558691 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[10] + 38016083 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[15] - 660478335 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[4] - 405537848 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[9] + 568446438 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[14] - 1019803690 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[3] - 187363961 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[8] + 1163531501 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[13] - 1444681467 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[2] - 51403784 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[7] + 1735328473 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[12] - 1926607734 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e ^ s ^ r) + a[5] - 378558 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[8] - 2022574463 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[11] + 1839030562 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[14] - 35309556 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[1] - 1530992060 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[4] + 1272893353 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[7] - 155497632 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[10] - 1094730640 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[13] + 681279174 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[0] - 358537222 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[3] - 722521979 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[6] + 76029189 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[9] - 640364487 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[12] - 421815835 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[15] + 530742520 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[2] - 995338651 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (s ^ (e | ~r)) + a[0] - 198630844 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[7] + 1126891415 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[14] - 1416354905 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[5] - 57434055 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[12] + 1700485571 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[3] - 1894986606 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[10] - 1051523 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[1] - 2054922799 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[8] + 1873313359 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[15] - 30611744 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[6] - 1560198380 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[13] + 1309151649 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[4] - 145523070 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[11] - 1120210379 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[2] + 718787259 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[9] - 343485551 | 0, e = (e << 21 | e >>> 11) + s | 0, i[0] = t + i[0] | 0, i[1] = e + i[1] | 0, i[2] = s + i[2] | 0, i[3] = r + i[3] | 0;\n }\n _dataLength = 0;\n _bufferLength = 0;\n _state = new Int32Array(4);\n _buffer = new ArrayBuffer(68);\n _buffer8;\n _buffer32;\n constructor() {\n this._buffer8 = new Uint8Array(this._buffer, 0, 68), this._buffer32 = new Uint32Array(this._buffer, 0, 17), this.start();\n }\n /**\n * Initialise buffer to be hashed\n */\n start() {\n return this._dataLength = 0, this._bufferLength = 0, this._state.set(h.stateIdentity), this;\n }\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n appendStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r;\n for (r = 0; r < i.length; r += 1) {\n if (s = i.charCodeAt(r), s < 128)\n a[e++] = s;\n else if (s < 2048)\n a[e++] = (s >>> 6) + 192, a[e++] = s & 63 | 128;\n else if (s < 55296 || s > 56319)\n a[e++] = (s >>> 12) + 224, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n else {\n if (s = (s - 55296) * 1024 + (i.charCodeAt(++r) - 56320) + 65536, s > 1114111)\n throw new Error(\n \"Unicode standard supports code points up to U+10FFFF\"\n );\n a[e++] = (s >>> 18) + 240, a[e++] = s >>> 12 & 63 | 128, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n }\n e >= 64 && (this._dataLength += 64, h._md5cycle(this._state, t), e -= 64, t[0] = t[16]);\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n appendAsciiStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i.charCodeAt(r++);\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n appendByteArray(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i[r++];\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Get the state of the hash buffer\n */\n getState() {\n const i = this._state;\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [i[0], i[1], i[2], i[3]]\n };\n }\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n setState(i) {\n const a = i.buffer, t = i.state, e = this._state;\n let s;\n for (this._dataLength = i.length, this._bufferLength = i.buflen, e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], s = 0; s < a.length; s += 1)\n this._buffer8[s] = a.charCodeAt(s);\n }\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n end(i = !1) {\n const a = this._bufferLength, t = this._buffer8, e = this._buffer32, s = (a >> 2) + 1;\n this._dataLength += a;\n const r = this._dataLength * 8;\n if (t[a] = 128, t[a + 1] = t[a + 2] = t[a + 3] = 0, e.set(h.buffer32Identity.subarray(s), s), a > 55 && (h._md5cycle(this._state, e), e.set(h.buffer32Identity)), r <= 4294967295)\n e[14] = r;\n else {\n const n = r.toString(16).match(/(.*?)(.{0,8})$/);\n if (n === null) return i ? c : \"\";\n const o = parseInt(n[2], 16), _ = parseInt(n[1], 16) || 0;\n e[14] = o, e[15] = _;\n }\n return h._md5cycle(this._state, e), i ? this._state : h._hex(this._state);\n }\n}\nif (h.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\")\n throw new Error(\"Md5 self test failed.\");\nclass l {\n constructor(i, a = !0, t = 1048576) {\n this._callback = i, this._async = a, this._partSize = t, this._configureReader();\n }\n _reader;\n _md5;\n _part;\n // private _length!: number;\n _blob;\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n */\n hash(i) {\n const a = this;\n a._blob = i, a._part = 0, a._md5 = new h(), a._processPart();\n }\n _fail() {\n this._callback({\n success: !1,\n result: \"data read failed\"\n });\n }\n _hashData(i) {\n let a = this;\n a._md5.appendByteArray(new Uint8Array(i.target.result)), a._part * a._partSize >= a._blob.size ? a._callback({\n success: !0,\n result: a._md5.end()\n }) : a._processPart();\n }\n _processPart() {\n const i = this;\n let a = 0, t;\n i._part += 1, i._blob.size > i._partSize ? (a = i._part * i._partSize, a > i._blob.size && (a = i._blob.size), t = i._blob.slice(\n (i._part - 1) * i._partSize,\n a\n )) : t = i._blob, i._async ? i._reader.readAsArrayBuffer(t) : setTimeout(() => {\n try {\n i._hashData({\n target: {\n result: i._reader.readAsArrayBuffer(\n t\n )\n }\n });\n } catch {\n i._fail();\n }\n }, 0);\n }\n _configureReader() {\n const i = this;\n i._async ? (i._reader = new FileReader(), i._reader.onload = i._hashData.bind(i), i._reader.onerror = i._fail.bind(i), i._reader.onabort = i._fail.bind(i)) : i._reader = new FileReaderSync();\n }\n}\nclass u {\n _queue = [];\n _hashWorker;\n _processing;\n _ready = !0;\n constructor(i, a) {\n const t = this;\n Worker ? (t._hashWorker = new Worker(i, a), t._hashWorker.onmessage = t._recievedMessage.bind(t), t._hashWorker.onerror = (e) => {\n t._ready = !1, console.error(\"Hash worker failure\", e);\n }) : (t._ready = !1, console.error(\"Web Workers are not supported in this browser\"));\n }\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n * @returns Promise of the Hashed result\n */\n hash(i) {\n const a = this;\n let t;\n return t = new Promise((e, s) => {\n a._queue.push({\n blob: i,\n resolve: e,\n reject: s\n }), a._processNext();\n }), t;\n }\n /** Terminate any existing hash requests */\n terminate() {\n this._ready = !1, this._hashWorker.terminate();\n }\n // Processes the next item in the queue\n _processNext() {\n this._ready && !this._processing && this._queue.length > 0 && (this._processing = this._queue.pop(), this._hashWorker.postMessage(this._processing.blob));\n }\n // Hash result is returned from the worker\n _recievedMessage(i) {\n const a = i.data;\n a.success ? this._processing?.resolve(a.result) : this._processing?.reject(a.result), this._processing = void 0, this._processNext();\n }\n}\nexport {\n h as Md5,\n l as Md5FileHasher,\n u as ParallelHasher\n};\n//# sourceMappingURL=index.es.js.map\n","import { r as register, t as t3, a as t } from \"./_l10n-wdIzZwir.mjs\";\nregister(t3);\nclass Color {\n /**\n * @param r - The red value\n * @param g - The green value\n * @param b - The blue value\n * @param name - The name of the color\n */\n constructor(r, g, b, name) {\n this.r = r;\n this.g = g;\n this.b = b;\n this.name = name;\n this.r = Math.min(r, 255);\n this.g = Math.min(g, 255);\n this.b = Math.min(b, 255);\n this.name = name;\n }\n r;\n g;\n b;\n name;\n /**\n * The hexadecimal color string.\n */\n get color() {\n const toHex = (int) => `00${int.toString(16)}`.slice(-2);\n return `#${toHex(this.r)}${toHex(this.g)}${toHex(this.b)}`;\n }\n}\nfunction calculateStepIncrement(steps, color1, color2) {\n return {\n r: (color2.r - color1.r) / steps,\n g: (color2.g - color1.g) / steps,\n b: (color2.b - color1.b) / steps\n };\n}\nfunction mixPalette(steps, color1, color2) {\n const palette = [];\n palette.push(color1);\n const increment = calculateStepIncrement(steps, color1, color2);\n for (let i = 1; i < steps; i++) {\n const r = Math.floor(color1.r + increment.r * i);\n const g = Math.floor(color1.g + increment.g * i);\n const b = Math.floor(color1.b + increment.b * i);\n palette.push(new Color(r, g, b));\n }\n return palette;\n}\nconst COLOR_RED = new Color(182, 70, 157, t(\"Purple\"));\nconst COLOR_YELLOW = new Color(221, 203, 85, t(\"Gold\"));\nconst COLOR_BLUE = new Color(0, 130, 201, t(\"Nextcloud blue\"));\nconst COLOR_BLACK = new Color(0, 0, 0, t(\"Black\"));\nconst COLOR_WHITE = new Color(255, 255, 255, t(\"White\"));\nconst defaultPalette = [\n COLOR_RED,\n new Color(\n ...[191, 103, 139],\n t(\"Rosy brown\")\n // TRANSLATORS: A color name for RGB(191, 103, 139)\n ),\n new Color(\n ...[201, 136, 121],\n t(\"Feldspar\")\n // TRANSLATORS: A color name for RGB(201, 136, 121)\n ),\n new Color(\n ...[211, 169, 103],\n t(\"Whiskey\")\n // TRANSLATORS: A color name for RGB(211, 169, 103)\n ),\n COLOR_YELLOW,\n new Color(\n ...[165, 184, 114],\n t(\"Olivine\")\n // TRANSLATORS: A color name for RGB(165, 184, 114)\n ),\n new Color(\n ...[110, 166, 143],\n t(\"Acapulco\")\n // TRANSLATORS: A color name for RGB(110, 166, 143)\n ),\n new Color(\n ...[55, 148, 172],\n t(\"Boston Blue\")\n // TRANSLATORS: A color name for RGB(55, 148, 172)\n ),\n COLOR_BLUE,\n new Color(\n ...[45, 115, 190],\n t(\"Mariner\")\n // TRANSLATORS: A color name for RGB(45, 115, 190)\n ),\n new Color(\n ...[91, 100, 179],\n t(\"Blue Violet\")\n // TRANSLATORS: A color name for RGB(91, 100, 179)\n ),\n new Color(\n ...[136, 85, 168],\n t(\"Deluge\")\n // TRANSLATORS: A color name for RGB(136, 85, 168)\n )\n];\nfunction generatePalette(steps) {\n const palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW);\n const palette2 = mixPalette(steps, COLOR_YELLOW, COLOR_BLUE);\n const palette3 = mixPalette(steps, COLOR_BLUE, COLOR_RED);\n return palette1.concat(palette2).concat(palette3);\n}\nexport {\n Color as C,\n COLOR_BLACK as a,\n COLOR_WHITE as b,\n defaultPalette as d,\n generatePalette as g\n};\n//# sourceMappingURL=colors-Cv9F-jWS.mjs.map\n","import { Md5 } from \"ts-md5\";\nimport { g as generatePalette } from \"../../chunks/colors-Cv9F-jWS.mjs\";\nfunction hashCode(str) {\n let hash = str;\n if (str.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n hash = Md5.hashStr(str);\n }\n hash = hash.replace(/[^0-9a-f]/g, \"\");\n let finalInt = 0;\n for (let i = 0; i < hash.length; i++) {\n finalInt += parseInt(hash.charAt(i), 16);\n }\n return finalInt;\n}\nfunction usernameToColor(username) {\n const steps = 6;\n const finalPalette = generatePalette(steps);\n const hash = hashCode(username.toLocaleLowerCase());\n return finalPalette[hash % finalPalette.length];\n}\nexport {\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n if (typeof html != \"string\") {\n throw new TypeError(\"'html' parameter must be a string\");\n }\n\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","import '../assets/NcMentionBubble-BeGb2xGc.css';\nimport { generateUrl } from \"@nextcloud/router\";\nimport { checkIfDarkTheme } from \"../functions/isDarkTheme/index.mjs\";\nfunction getAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuest ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ?? checkIfDarkTheme(document.body) ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}?guestFallback=true`, {\n user,\n size\n });\n}\nexport {\n getAvatarUrl as g\n};\n//# sourceMappingURL=NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs.map\n","import '../assets/NcUserStatusIcon-B3aHoBAd.css';\nimport { defineComponent, useModel, computed, watch, openBlock, createElementBlock, normalizeClass, createCommentVNode, mergeModels } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { r as register, Q as t52, R as t11, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst awaySvg = '\\n\\n\t\\n\\n';\nconst busySvg = '\\n\\n\t\\n\\n';\nconst dndSvg = '\\n\\n\t\\n\\n';\nconst invisibleSvg = '\\n\\n\t\\n\\n';\nconst onlineSvg = '\\n\\n\t\\n\\n';\nregister(t52);\nregister(t11);\nfunction getUserStatusText(status) {\n switch (status) {\n case \"away\":\n return t(\"away\");\n // TRANSLATORS: User status if the user is currently away from keyboard\n case \"busy\":\n return t(\"busy\");\n case \"dnd\":\n return t(\"do not disturb\");\n case \"online\":\n return t(\"online\");\n case \"invisible\":\n return t(\"invisible\");\n case \"offline\":\n return t(\"offline\");\n default:\n return status;\n }\n}\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserStatusIcon\",\n props: /* @__PURE__ */ mergeModels({\n user: { default: void 0 },\n ariaHidden: { type: [Boolean, String], default: false }\n }, {\n \"status\": {},\n \"statusModifiers\": {}\n }),\n emits: [\"update:status\"],\n setup(__props) {\n const status = useModel(__props, \"status\");\n const props = __props;\n const isInvisible = computed(() => status.value && [\"invisible\", \"offline\"].includes(status.value));\n const ariaLabel = computed(() => status.value && (!props.ariaHidden || props.ariaHidden === \"false\") ? t(\"User status: {status}\", { status: getUserStatusText(status.value) }) : void 0);\n watch(() => props.user, async (user) => {\n if (!status.value && user && getCapabilities()?.user_status?.enabled) {\n try {\n const { data } = await axios.get(generateOcsUrl(\"/apps/user_status/api/v1/statuses/{user}\", { user }));\n status.value = data.ocs?.data?.status;\n } catch (error) {\n logger.debug(\"Error while fetching user status\", { error });\n }\n }\n }, { immediate: true });\n const matchSvg = {\n online: onlineSvg,\n away: awaySvg,\n busy: busySvg,\n dnd: dndSvg,\n invisible: invisibleSvg,\n offline: invisibleSvg\n };\n const activeSvg = computed(() => status.value && matchSvg[status.value]);\n return (_ctx, _cache) => {\n return status.value ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([\"user-status-icon\", {\n \"user-status-icon--invisible\": isInvisible.value\n }]),\n \"aria-hidden\": !ariaLabel.value || void 0,\n \"aria-label\": ariaLabel.value,\n role: \"img\",\n innerHTML: activeSvg.value\n }, null, 10, _hoisted_1)) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcUserStatusIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-881a79fb\"]]);\nexport {\n NcUserStatusIcon as N,\n getUserStatusText as g\n};\n//# sourceMappingURL=NcUserStatusIcon-BF5OEQFU.mjs.map\n","import '../assets/NcActionLink-b4Ph5q10.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { openBlock, createElementBlock, createElementVNode, renderSlot, normalizeStyle, normalizeClass, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionLink\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * destionation to link to\n */\n href: {\n type: String,\n required: true,\n validator: (value) => {\n try {\n return new URL(value);\n } catch {\n return value.startsWith(\"#\") || value.startsWith(\"/\");\n }\n }\n },\n /**\n * download the link instead of opening\n */\n download: {\n type: String,\n default: null\n },\n /**\n * target to open the link\n */\n target: {\n type: String,\n default: \"_self\",\n validator: (value) => {\n return value && (!value.startsWith(\"_\") || [\"_blank\", \"_self\", \"_parent\", \"_top\"].indexOf(value) > -1);\n }\n },\n /**\n * Declares a native tooltip when not null\n */\n title: {\n type: String,\n default: null\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = [\"download\", \"href\", \"aria-label\", \"target\", \"title\", \"role\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"action-link__longtext-wrapper\"\n};\nconst _hoisted_4 = { class: \"action-link__name\" };\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = [\"textContent\"];\nconst _hoisted_7 = {\n key: 2,\n class: \"action-link__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"a\", {\n download: $props.download,\n href: $props.href,\n \"aria-label\": _ctx.ariaLabel,\n target: $props.target,\n title: $props.title,\n class: \"action-link focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-link__icon\", [_ctx.isIconUrl ? \"action-link__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"strong\", _hoisted_4, toDisplayString(_ctx.name), 1),\n _cache[1] || (_cache[1] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-link__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_6)) : (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ], 8, _hoisted_2)\n ], 8, _hoisted_1);\n}\nconst NcActionLink = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-32f01b7a\"]]);\nexport {\n NcActionLink as N\n};\n//# sourceMappingURL=NcActionLink-BFiaYt9A.mjs.map\n","import '../assets/NcActionRouter-BWXfCfxM.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, withCtx, renderSlot, createElementVNode, normalizeStyle, normalizeClass, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionRouter\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * router-link to prop [https://router.vuejs.org/api/#to](https://router.vuejs.org/api/#to)\n */\n to: {\n type: [String, Object],\n required: true\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-router__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-router__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-router__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_RouterLink = resolveComponent(\"RouterLink\");\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createVNode(_component_RouterLink, {\n \"aria-label\": _ctx.ariaLabel,\n class: \"action-router focusable\",\n rel: \"nofollow noreferrer noopener\",\n role: $options.isInSemanticMenu && \"menuitem\",\n title: _ctx.title,\n to: $props.to,\n onClick: _ctx.onClick\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-router__icon\", [_ctx.isIconUrl ? \"action-router__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n _cache[0] || (_cache[0] = createElementVNode(\"br\", null, null, -1)),\n createElementVNode(\"span\", {\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-router__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"role\", \"title\", \"to\", \"onClick\"])\n ], 8, _hoisted_1);\n}\nconst NcActionRouter = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-87267750\"]]);\nexport {\n NcActionRouter as N\n};\n//# sourceMappingURL=NcActionRouter-vYFtIOzD.mjs.map\n","import '../assets/NcActionText-Dzegj6AY.css';\nimport { A as ActionTextMixin } from \"./actionText-BXR0sWNu.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions-BzPO2c4h.mjs\";\nimport { openBlock, createElementBlock, createElementVNode, renderSlot, normalizeStyle, normalizeClass, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionText\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-text__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-text__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-text__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"span\", {\n class: \"action-text\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n _ctx.icon !== \"\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-text__icon\", [_ctx.isIconUrl ? \"action-text__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)) : createCommentVNode(\"\", true)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n createElementVNode(\"span\", {\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_1);\n}\nconst NcActionText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-fa684b48\"]]);\nexport {\n NcActionText as N\n};\n//# sourceMappingURL=NcActionText-CQ9qwJ0p.mjs.map\n","import '../assets/NcAvatar-Bs7qEhkA.css';\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport { generateOcsUrl, generateUrl } from \"@nextcloud/router\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport { N as NcActions, I as IconDotsHorizontal } from \"./NcActions-C-wDqSrv.mjs\";\nimport { g as getRoute } from \"./autolink-DrIurosL.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { getEnabledContactsMenuActions } from \"../functions/contactsMenu/index.mjs\";\nimport { usernameToColor } from \"../functions/usernameToColor/index.mjs\";\nimport { r as register, m as t10, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, normalizeStyle, normalizeClass, renderSlot, createCommentVNode, createBlock, withCtx, createSlots, Fragment, renderList, resolveDynamicComponent, mergeProps, createTextVNode, toDisplayString, createVNode, createElementVNode } from \"vue\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang-DyqakLm5.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcUserStatusIcon, g as getUserStatusText } from \"./NcUserStatusIcon-BF5OEQFU.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-BO5T5ePT.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink-BFiaYt9A.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter-vYFtIOzD.mjs\";\nimport { N as NcActionText } from \"./NcActionText-CQ9qwJ0p.mjs\";\nimport { N as NcButton } from \"./NcButton-jvoYS2my.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nregister(t10);\nconst userStatus = {\n data() {\n return {\n hasStatus: false,\n userStatus: {\n status: null,\n message: null,\n icon: null\n }\n };\n },\n methods: {\n /**\n * Fetches the user-status from the server\n *\n * @param {string} userId UserId of the user to fetch the status for\n *\n * @return {Promise}\n */\n async fetchUserStatus(userId) {\n if (!userId) {\n return;\n }\n const capabilities = getCapabilities();\n if (!Object.hasOwn(capabilities, \"user_status\") || !capabilities.user_status.enabled) {\n return;\n }\n if (!getCurrentUser()) {\n return;\n }\n try {\n const { data } = await axios.get(generateOcsUrl(\"apps/user_status/api/v1/statuses/{userId}\", { userId }));\n this.setUserStatus(data.ocs.data);\n } catch (e) {\n if (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n return;\n }\n logger.error(\"Failed to fetch user status\", { error: e });\n }\n },\n /**\n * Sets the user status\n *\n * @param {Record} options - Options for setting the user status\n * @param {string} options.status user's status\n * @param {string} options.message user's message\n * @param {string} options.icon user's icon\n */\n setUserStatus({ status, message, icon }) {\n this.userStatus.status = status || \"\";\n this.userStatus.message = message || \"\";\n this.userStatus.icon = icon || \"\";\n this.hasStatus = !!status;\n }\n }\n};\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nfunction getUserHasAvatar(userId) {\n const flag = browserStorage.getItem(\"user-has-avatar.\" + userId);\n if (typeof flag === \"string\") {\n return Boolean(flag);\n }\n return null;\n}\nfunction setUserHasAvatar(userId, flag) {\n if (userId) {\n browserStorage.setItem(\"user-has-avatar.\" + userId, flag);\n }\n}\nconst _sfc_main = {\n name: \"NcAvatar\",\n directives: {\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n components: {\n IconDotsHorizontal,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcUserStatusIcon\n },\n mixins: [userStatus],\n props: {\n /**\n * Set a custom url to the avatar image\n * either the url, user or displayName property must be defined\n */\n url: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class for an icon to be used instead of the avatar.\n */\n iconClass: {\n type: String,\n default: void 0\n },\n /**\n * Set the user id to fetch the avatar\n * either the url, user or displayName property must be defined\n */\n user: {\n type: String,\n default: void 0\n },\n /**\n * Do not show the user status on the avatar.\n */\n hideStatus: {\n type: Boolean,\n default: false\n },\n /**\n * Show the verbose user status (e.g. \"online\" / \"away\") instead of just the status icon.\n */\n verboseStatus: {\n type: Boolean,\n default: false\n },\n /**\n * When the user status was preloaded via another source it can be handed in with this property to save the request.\n * If this property is not set the status will be fetched automatically.\n * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n */\n preloadedUserStatus: {\n type: Object,\n default: void 0\n },\n /**\n * Is the user a guest user (then we have to user a different endpoint)\n */\n isGuest: {\n type: Boolean,\n default: false\n },\n /**\n * Set a display name that will be rendered as a tooltip\n * either the url, user or displayName property must be defined\n * specify just the displayname to generate a placeholder avatar without\n * trying to fetch the avatar based on the user id\n */\n displayName: {\n type: String,\n default: void 0\n },\n /**\n * Set a size in px for the rendered avatar\n */\n size: {\n type: Number,\n default: 32\n },\n /**\n * Do not automatically generate a placeholder avatars if there is no real avatar is available.\n */\n noPlaceholder: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the tooltip\n */\n disableTooltip: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the menu\n */\n disableMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Declares a custom tooltip when not null\n * Fallback will be the displayName\n *\n * requires disableTooltip not to be set to true\n */\n tooltipMessage: {\n type: String,\n default: null\n },\n /**\n * Declares username is not a user's name, when true.\n * Prevents loading user's avatar from server and forces generating colored initials,\n * i.e. if the user is a group\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Selector for the popover menu container\n */\n menuContainer: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme\n };\n },\n data() {\n return {\n avatarUrlLoaded: null,\n avatarSrcSetLoaded: null,\n userDoesNotExist: false,\n isAvatarLoaded: false,\n isMenuLoaded: false,\n contactsMenuLoading: false,\n contactsMenuData: {},\n contactsMenuActions: [],\n contactsMenuOpenState: false\n };\n },\n computed: {\n avatarAriaLabel() {\n if (!this.hasMenu) {\n return;\n }\n if (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n return t(\"Avatar of {displayName}, {status}\", { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) });\n }\n return t(\"Avatar of {displayName}\", { displayName: this.displayName ?? this.user });\n },\n canDisplayUserStatus() {\n return !this.hideStatus && this.hasStatus && [\"online\", \"away\", \"busy\", \"dnd\"].includes(this.userStatus.status);\n },\n showUserStatusIconOnAvatar() {\n return !this.hideStatus && !this.verboseStatus && this.hasStatus && this.userStatus.status !== \"dnd\" && this.userStatus.icon;\n },\n /**\n * The user identifier, either the display name if set or the user property\n * If both properties are not set an empty string is returned\n */\n userIdentifier() {\n if (this.isDisplayNameDefined) {\n return this.displayName;\n }\n if (this.isUserDefined) {\n return this.user;\n }\n return \"\";\n },\n isUserDefined() {\n return typeof this.user !== \"undefined\";\n },\n isDisplayNameDefined() {\n return typeof this.displayName !== \"undefined\";\n },\n isUrlDefined() {\n return typeof this.url !== \"undefined\";\n },\n hasMenu() {\n if (this.disableMenu) {\n return false;\n }\n if (this.isMenuLoaded) {\n return this.menu.length > 0;\n }\n return !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url);\n },\n /**\n * True if initials should be shown as the user icon fallback\n */\n showInitials() {\n return !this.noPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon);\n },\n avatarStyle() {\n return {\n \"--avatar-size\": this.size + \"px\",\n lineHeight: this.showInitials ? this.size + \"px\" : 0,\n fontSize: Math.round(this.size * 0.45) + \"px\"\n };\n },\n initialsWrapperStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n backgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`\n };\n },\n initialsStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n color: `rgb(${r}, ${g}, ${b})`\n };\n },\n tooltip() {\n if (this.disableTooltip) {\n return null;\n }\n if (this.tooltipMessage) {\n return this.tooltipMessage;\n }\n return this.displayName;\n },\n /**\n * Get the (max. two) initials of the user as uppcase string\n */\n initials() {\n let initials = \"?\";\n if (this.showInitials) {\n const user = this.userIdentifier.trim();\n if (user === \"\") {\n return initials;\n }\n const filteredChars = user.match(/[\\p{L}\\p{N}\\s]/gu);\n if (!filteredChars) {\n return initials;\n }\n const filtered = filteredChars.join(\"\");\n const idx = filtered.lastIndexOf(\" \");\n initials = String.fromCodePoint(filtered.codePointAt(0));\n if (idx !== -1) {\n initials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)));\n }\n }\n return initials.toLocaleUpperCase();\n },\n menu() {\n const actions = this.contactsMenuActions.map((item) => {\n const route = getRoute(this.$router, item.hyperlink);\n return {\n ncActionComponent: route ? NcActionRouter : NcActionLink,\n ncActionComponentProps: route ? {\n to: route,\n icon: item.icon\n } : {\n href: item.hyperlink,\n icon: item.icon\n },\n text: item.title\n };\n });\n for (const action of getEnabledContactsMenuActions(this.contactsMenuData)) {\n try {\n actions.push({\n ncActionComponent: NcActionButton,\n ncActionComponentProps: {\n onClick: () => action.callback(this.contactsMenuData)\n },\n text: action.displayName(this.contactsMenuData),\n iconSvg: action.iconSvg(this.contactsMenuData)\n });\n } catch (error) {\n logger.error(`Failed to render ContactsMenu action ${action.id}`, {\n error,\n action\n });\n }\n }\n function escape(html) {\n const text = document.createTextNode(html);\n const p = document.createElement(\"p\");\n p.appendChild(text);\n return p.innerHTML;\n }\n if (!this.hideStatus && (this.userStatus.icon || this.userStatus.message)) {\n const emojiIcon = `\n\t\t\t\t\t${escape(this.userStatus.icon)}\n\t\t\t\t`;\n return [{\n ncActionComponent: NcActionText,\n ncActionComponentProps: {},\n iconSvg: this.userStatus.icon ? emojiIcon : void 0,\n text: `${this.userStatus.message}`\n }].concat(actions);\n }\n return actions;\n }\n },\n watch: {\n url() {\n this.userDoesNotExist = false;\n this.loadAvatarUrl();\n },\n user() {\n this.userDoesNotExist = false;\n this.isMenuLoaded = false;\n this.loadAvatarUrl();\n }\n },\n mounted() {\n this.loadAvatarUrl();\n subscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n subscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n if (!this.hideStatus && this.user && !this.isNoUser) {\n if (!this.preloadedUserStatus) {\n this.fetchUserStatus(this.user);\n } else {\n this.setUserStatus(this.preloadedUserStatus);\n }\n subscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n } else if (!this.hideStatus && this.preloadedUserStatus) {\n this.setUserStatus(this.preloadedUserStatus);\n }\n },\n beforeUnmount() {\n unsubscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n unsubscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n unsubscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n },\n methods: {\n t,\n handleUserStatusUpdated(state) {\n if (this.user === state.userId) {\n this.userStatus = {\n status: state.status,\n icon: state.icon,\n message: state.message\n };\n this.hasStatus = state.status !== null;\n }\n },\n /**\n * Toggle the popover menu on click or enter\n *\n * @param {KeyboardEvent|MouseEvent} event the UI event\n */\n async toggleMenu(event) {\n if (event.type === \"keydown\" && event.key !== \"Enter\") {\n return;\n }\n if (!this.contactsMenuOpenState) {\n await this.fetchContactsMenu();\n }\n this.contactsMenuOpenState = !this.contactsMenuOpenState;\n },\n closeMenu() {\n this.contactsMenuOpenState = false;\n },\n async fetchContactsMenu() {\n this.contactsMenuLoading = true;\n try {\n const user = encodeURIComponent(this.user);\n const { data } = await axios.post(generateUrl(\"contactsmenu/findOne\"), `shareType=0&shareWith=${user}`);\n this.contactsMenuData = data;\n this.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions;\n } catch {\n this.contactsMenuOpenState = false;\n }\n this.contactsMenuLoading = false;\n this.isMenuLoaded = true;\n },\n /**\n * Handle avatar loading if user or url defined\n */\n loadAvatarUrl() {\n this.isAvatarLoaded = false;\n if (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser || this.iconClass || this.$slots.icon)) {\n this.isAvatarLoaded = true;\n this.userDoesNotExist = true;\n return;\n }\n if (this.isUrlDefined) {\n this.updateImageIfValid(this.url);\n return;\n }\n if (this.size <= 64) {\n const avatarUrl = this.avatarUrlGenerator(this.user, 64);\n const srcset = [\n avatarUrl + \" 1x\",\n this.avatarUrlGenerator(this.user, 512) + \" 8x\"\n ].join(\", \");\n this.updateImageIfValid(avatarUrl, srcset);\n } else {\n const avatarUrl = this.avatarUrlGenerator(this.user, 512);\n this.updateImageIfValid(avatarUrl);\n }\n },\n /**\n * Generate an avatar url from the server's avatar endpoint\n *\n * @param {string} user the user id\n * @param {number} size the desired size\n * @return {string}\n */\n avatarUrlGenerator(user, size) {\n let avatarUrl = getAvatarUrl(user, {\n size,\n isDarkTheme: this.isDarkTheme,\n isGuest: this.isGuest\n });\n if (user === getCurrentUser()?.uid && typeof oc_userconfig !== \"undefined\") {\n avatarUrl += \"?v=\" + window.oc_userconfig.avatar.version;\n }\n return avatarUrl;\n },\n /**\n * Check if the provided url is valid and update Avatar if so\n *\n * @param {string} url the avatar url\n * @param {Array} srcset the avatar srcset\n */\n updateImageIfValid(url, srcset = null) {\n const userHasAvatar = getUserHasAvatar(this.user);\n if (this.isUserDefined && typeof userHasAvatar === \"boolean\") {\n this.isAvatarLoaded = true;\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n if (userHasAvatar === false) {\n this.userDoesNotExist = true;\n }\n return;\n }\n const img = new Image();\n img.onload = () => {\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n this.isAvatarLoaded = true;\n setUserHasAvatar(this.user, true);\n };\n img.onerror = (error) => {\n logger.debug(\"[NcAvatar] Invalid avatar url\", { error, url });\n this.avatarUrlLoaded = null;\n this.avatarSrcSetLoaded = null;\n this.userDoesNotExist = true;\n this.isAvatarLoaded = false;\n setUserHasAvatar(this.user, false);\n };\n if (srcset) {\n img.srcset = srcset;\n }\n img.src = url;\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nconst _hoisted_2 = [\"src\", \"srcset\"];\nconst _hoisted_3 = {\n key: 2,\n class: \"avatardiv__user-status avatardiv__user-status--icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconDotsHorizontal = resolveComponent(\"IconDotsHorizontal\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"avatardiv popovermenu-wrapper\", {\n \"avatardiv--unknown\": $data.userDoesNotExist,\n \"avatardiv--with-menu\": $options.hasMenu,\n \"avatardiv--with-menu-loading\": $data.contactsMenuLoading\n }]),\n style: normalizeStyle($options.avatarStyle),\n title: $options.tooltip\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n $props.iconClass ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([$props.iconClass, \"avatar-class-icon\"])\n }, null, 2)) : $data.isAvatarLoaded && !$data.userDoesNotExist ? (openBlock(), createElementBlock(\"img\", {\n key: 1,\n src: $data.avatarUrlLoaded,\n srcset: $data.avatarSrcSetLoaded,\n alt: \"\"\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true)\n ], true),\n $options.hasMenu && $options.menu.length === 0 ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $options.avatarAriaLabel,\n class: \"action-item action-item__menutoggle\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, {\n icon: withCtx(() => [\n $data.contactsMenuLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : (openBlock(), createBlock(_component_IconDotsHorizontal, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : $options.hasMenu ? (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n open: $data.contactsMenuOpenState,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => $data.contactsMenuOpenState = $event),\n \"aria-label\": $options.avatarAriaLabel,\n container: $props.menuContainer,\n forceMenu: \"\",\n manualOpen: \"\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, createSlots({\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.menu, (item, key) => {\n return openBlock(), createBlock(resolveDynamicComponent(item.ncActionComponent), mergeProps({ key }, { ref_for: true }, item.ncActionComponentProps), createSlots({\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(item.text), 1)\n ]),\n _: 2\n }, [\n item.iconSvg ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcIconSvgWrapper, {\n svg: item.iconSvg\n }, null, 8, [\"svg\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040);\n }), 128))\n ]),\n _: 2\n }, [\n $data.contactsMenuLoading ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcLoadingIcon)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"open\", \"aria-label\", \"container\", \"onClick\"])) : createCommentVNode(\"\", true),\n $options.showUserStatusIconOnAvatar ? (openBlock(), createElementBlock(\"span\", _hoisted_3, toDisplayString(_ctx.userStatus.icon), 1)) : $options.canDisplayUserStatus ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 3,\n class: \"avatardiv__user-status\",\n status: _ctx.userStatus.status,\n \"aria-hidden\": String($options.hasMenu)\n }, null, 8, [\"status\", \"aria-hidden\"])) : createCommentVNode(\"\", true),\n $options.showInitials ? (openBlock(), createElementBlock(\"span\", {\n key: 4,\n style: normalizeStyle($options.initialsWrapperStyle),\n class: \"avatardiv__initials-wrapper\"\n }, [\n createElementVNode(\"span\", {\n style: normalizeStyle($options.initialsStyle),\n class: \"avatardiv__initials\"\n }, toDisplayString($options.initials), 5)\n ], 4)) : createCommentVNode(\"\", true)\n ], 14, _hoisted_1)), [\n [_directive_click_outside, $options.closeMenu]\n ]);\n}\nconst NcAvatar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e0ae1174\"]]);\nexport {\n NcAvatar as N,\n userStatus as u\n};\n//# sourceMappingURL=NcAvatar-1KxMUN7V.mjs.map\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n\n","\n\n","import '../assets/NcListItem-BjeejGlB.css';\nimport { i as isLegacy34 } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcActions } from \"./NcActions-C-wDqSrv.mjs\";\nimport { N as NcCounterBubble } from \"./NcCounterBubble-CV0YMrXW.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { resolveComponent, openBlock, createBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, withCtx, createElementVNode, mergeProps, normalizeClass, withKeys, renderSlot, createTextVNode, toDisplayString, createElementBlock, createCommentVNode, withDirectives, vShow, createVNode, createSlots } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcListItem\",\n components: {\n NcActions,\n NcCounterBubble,\n NcVNodes: _sfc_main$1\n },\n inheritAttrs: false,\n props: {\n /**\n * The details text displayed in the upper right part of the component\n */\n details: {\n type: String,\n default: \"\"\n },\n /**\n * Name (first line of text)\n */\n name: {\n type: String,\n default: void 0\n },\n /**\n * The route for the router link.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * The value for the external link\n */\n href: {\n type: String,\n default: \"#\"\n },\n /**\n * The HTML target attribute used for the link\n */\n target: {\n type: String,\n default: \"\"\n },\n /**\n * Id for the `
` element\n */\n anchorId: {\n type: String,\n default: \"\"\n },\n /**\n * Make subname bold\n */\n bold: {\n type: Boolean,\n default: false\n },\n /**\n * Show the NcListItem in compact design\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the active state of the component\n */\n active: {\n type: Boolean,\n default: void 0\n },\n /**\n * Aria label for the wrapper element\n */\n linkAriaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions toggle\n */\n actionsAriaLabel: {\n type: String,\n default: void 0\n },\n /**\n * If different from 0 this component will display the\n * NcCounterBubble component\n */\n counterNumber: {\n type: [Number, String],\n default: 0\n },\n /**\n * Outlined or highlighted state of the counter\n */\n counterType: {\n type: String,\n default: \"\",\n validator(value) {\n return [\"highlighted\", \"outlined\", \"\"].indexOf(value) !== -1;\n }\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Show the list component layout\n */\n oneLine: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"click\",\n \"dragstart\",\n \"update:menuOpen\"\n ],\n setup() {\n return { isLegacy34 };\n },\n data() {\n return {\n hovered: false,\n hasActions: false,\n hasSubname: false,\n displayActionsOnHoverFocus: false,\n menuOpen: false,\n hasIndicator: false,\n hasDetails: false\n };\n },\n computed: {\n showAdditionalElements() {\n return !this.displayActionsOnHoverFocus || this.forceDisplayActions;\n },\n showDetails() {\n return (this.details !== \"\" || this.hasDetails) && (!this.displayActionsOnHoverFocus || this.forceDisplayActions);\n }\n },\n watch: {\n menuOpen(newValue) {\n if (!newValue && !this.hovered) {\n this.displayActionsOnHoverFocus = false;\n }\n }\n },\n mounted() {\n this.checkSlots();\n },\n updated() {\n this.checkSlots();\n },\n methods: {\n /**\n * Handle link click\n *\n * @param {MouseEvent|KeyboardEvent} event - Native click or keydown event\n * @param {(event: Event) => void} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n showActions() {\n if (this.hasActions) {\n this.displayActionsOnHoverFocus = true;\n }\n this.hovered = false;\n },\n hideActions() {\n this.displayActionsOnHoverFocus = false;\n },\n /**\n * @param {FocusEvent} event UI event\n */\n handleBlur(event) {\n if (this.menuOpen) {\n return;\n }\n if (this.$refs[\"list-item\"]?.contains(event.relatedTarget)) {\n return;\n }\n this.hideActions();\n },\n /**\n * Hide the actions on mouseleave unless the menu is open\n */\n handleMouseleave() {\n if (!this.menuOpen) {\n this.displayActionsOnHoverFocus = false;\n }\n this.hovered = false;\n },\n handleMouseover() {\n this.showActions();\n this.hovered = true;\n },\n handleActionsUpdateOpen(e) {\n this.menuOpen = e;\n this.$emit(\"update:menuOpen\", e);\n },\n // Check if subname and actions slots are populated\n checkSlots() {\n if (this.hasActions !== !!this.$slots.actions) {\n this.hasActions = !!this.$slots.actions;\n }\n if (this.hasSubname !== !!this.$slots.subname) {\n this.hasSubname = !!this.$slots.subname;\n }\n if (this.hasIndicator !== !!this.$slots.indicator) {\n this.hasIndicator = !!this.$slots.indicator;\n }\n if (this.hasDetails !== !!this.$slots.details) {\n this.hasDetails = !!this.$slots.details;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-label\", \"href\", \"target\", \"rel\", \"onClick\"];\nconst _hoisted_2 = { class: \"list-item-content\" };\nconst _hoisted_3 = { class: \"list-item-content__main\" };\nconst _hoisted_4 = { class: \"list-item-content__name\" };\nconst _hoisted_5 = { class: \"list-item-content__details\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"list-item-details__details\"\n};\nconst _hoisted_7 = {\n key: 1,\n class: \"list-item-details__extra\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"list-item-details__indicator\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"list-item-content__extra-actions\"\n};\nconst _hoisted_10 = {\n key: 2,\n class: \"list-item__extra\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCounterBubble = resolveComponent(\"NcCounterBubble\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($props.to ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$props.to && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"li\", mergeProps({\n class: [\"list-item__wrapper\", {\n \"list-item__wrapper--active\": $props.active ?? isActive,\n \"list-item__wrapper--legacy\": $setup.isLegacy34\n }]\n }, _ctx.$attrs), [\n createElementVNode(\"div\", {\n ref: \"list-item\",\n class: normalizeClass([\"list-item\", {\n \"list-item--compact\": $props.compact,\n \"list-item--one-line\": $props.oneLine\n }]),\n onMouseover: _cache[5] || (_cache[5] = (...args) => $options.handleMouseover && $options.handleMouseover(...args)),\n onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args))\n }, [\n createElementVNode(\"a\", {\n id: $props.anchorId || void 0,\n \"aria-label\": $props.linkAriaLabel,\n class: \"list-item__anchor\",\n href: routerLinkHref || $props.href,\n target: $props.target || ($props.href === \"#\" ? void 0 : \"_blank\"),\n rel: $props.href === \"#\" ? void 0 : \"noopener noreferrer\",\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.showActions && $options.showActions(...args)),\n onFocusout: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onDragstart: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"dragstart\", $event)),\n onKeydown: _cache[3] || (_cache[3] = withKeys((...args) => $options.hideActions && $options.hideActions(...args), [\"esc\"]))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString($props.name), 1)\n ], true)\n ]),\n $data.hasSubname ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"list-item-content__subname\", { \"list-item-content__subname--bold\": $props.bold }])\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"div\", _hoisted_5, [\n $options.showDetails ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"details\", {}, () => [\n createTextVNode(toDisplayString($props.details), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n $props.counterNumber !== 0 || $data.hasIndicator ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_7, [\n $props.counterNumber !== 0 ? (openBlock(), createBlock(_component_NcCounterBubble, {\n key: 0,\n count: $props.counterNumber,\n active: $setup.isLegacy34 ? $props.active ?? isActive : false,\n class: \"list-item-details__counter\",\n type: $props.counterType\n }, null, 8, [\"count\", \"active\", \"type\"])) : createCommentVNode(\"\", true),\n $data.hasIndicator ? (openBlock(), createElementBlock(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"indicator\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 512)), [\n [vShow, $options.showAdditionalElements]\n ]) : createCommentVNode(\"\", true)\n ])\n ])\n ], 40, _hoisted_1),\n _ctx.$slots[\"extra-actions\"] ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"extra-actions\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n $props.forceDisplayActions || $data.displayActionsOnHoverFocus ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"list-item-content__actions\",\n onFocusout: _cache[4] || (_cache[4] = (...args) => $options.handleBlur && $options.handleBlur(...args))\n }, [\n createVNode(_component_NcActions, {\n ref: \"actions\",\n primary: $setup.isLegacy34 ? $props.active ?? isActive : false,\n forceMenu: $props.forceMenu,\n \"aria-label\": $props.actionsAriaLabel,\n \"onUpdate:open\": $options.handleActionsUpdateOpen\n }, createSlots({\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"actions-icon\"] ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions-icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"primary\", \"forceMenu\", \"aria-label\", \"onUpdate:open\"])\n ], 32)) : createCommentVNode(\"\", true),\n _ctx.$slots.extra ? (openBlock(), createElementBlock(\"div\", _hoisted_10, [\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 34)\n ], 16)\n ]),\n _: 3\n }, 16);\n}\nconst NcListItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0e705f5a\"]]);\nexport {\n NcListItem as N\n};\n//# sourceMappingURL=NcListItem-BliLJpvU.mjs.map\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createRouter, createWebHashHistory } from 'vue-router'\nimport Approvals from './views/Approvals.vue'\nimport HrBalances from './views/hr/HrBalances.vue'\nimport HrExports from './views/hr/HrExports.vue'\nimport HrStatistics from './views/hr/HrStatistics.vue'\nimport HrWhosOff from './views/hr/HrWhosOff.vue'\nimport MyLeave from './views/MyLeave.vue'\nimport Team from './views/Team.vue'\n\nconst routes = [\n\t{ path: '/', redirect: '/my' },\n\t{ path: '/my', name: 'my', component: MyLeave },\n\t{ path: '/approvals', name: 'approvals', component: Approvals },\n\t{ path: '/team', name: 'team', component: Team },\n\t{ path: '/hr/balances', name: 'hr-balances', component: HrBalances },\n\t{ path: '/hr/statistics', name: 'hr-statistics', component: HrStatistics },\n\t{ path: '/hr/whos-off', name: 'hr-whos-off', component: HrWhosOff },\n\t{ path: '/hr/exports', name: 'hr-exports', component: HrExports },\n\t// Deep link from notifications/activity: open My leave with the request selected.\n\t{ path: '/requests/:id', name: 'request', component: MyLeave, props: true },\n]\n\nexport default createRouter({\n\thistory: createWebHashHistory(),\n\troutes,\n})\n","import { translatePlural as n, translate as t } from '@nextcloud/l10n'\n/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createApp } from 'vue'\nimport App from './App.vue'\nimport router from './router.js'\n\nconst app = createApp(App)\napp.config.globalProperties.t = t\napp.config.globalProperties.n = n\napp.use(router)\napp.mount('#absence-app')\n"],"names":["getCapabilities","loadState","y","n","r","a","s","p","g","h","_","f","b","e","t","x","S","C","w","T","E","ee","k","A","D","O","i","L","F","$","j","M","N","z","R","P","I","B","o","c","l","u","te","V","H","U","W","G","K","q","J","Y","Z","X","re","ie","ne","Q","v","ae","d","m","isBrowser","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","text","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","path","parseURL","parseQuery","location","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","base","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","key","isSameRouteLocationParamsValue","isArray","isEquivalentArray","value","to","from","fromSegments","toSegments","lastToSegment","position","toPosition","segment","START_LOCATION_NORMALIZED","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","el","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","isRouteLocation","route","isRouteName","name","search","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","useCallbacks","handlers","add","handler","reset","guardToPromiseFn","guard","record","runWithContext","fn","enterCallbackArray","resolve","reject","next","valid","createRouterError","guardReturn","guardCall","err","extractComponentsGuards","matched","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolved","resolvedComponent","isESModule","extractChangingRecords","leavingRecords","updatingRecords","enteringRecords","len","recordFrom","recordTo","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","state","fromState","listener","pauseListeners","listen","callback","teardown","index","beforeUnloadListener","history","assign","destroy","buildState","back","current","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","data","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","createWebHashHistory","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","options","score","pattern","keys","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","subPattern","parse","match","params","stringify","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","isLastScoreNegative","last","PATH_PARSER_OPTIONS_DEFAULTS","createRouteRecordMatcher","parent","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","mergeOptions","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","isMatchable","insertMatcher","children","noop","matcherRef","getRoutes","findInsertionIndex","pickParams","parentMatcher","mergeMetaFields","clearRoutes","newParams","normalized","normalizeRecordProps","propsObject","props","meta","lower","upper","mid","insertionAncestor","getInsertionAncestor","ancestor","useLink","router","inject","routerKey","currentRoute","routeLocationKey","computed","unref","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","preferSingleVNode","vnodes","RouterLink","defineComponent","slots","link","reactive","elClass","getLinkClass","target","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","attrs","injectedRoute","routerViewLocationKey","routeToDisplay","injectedDepth","viewDepthKey","depth","initialDepth","matchedRoute","matchedRouteRef","provide","matchedRouteKey","viewRef","ref","watch","instance","oldInstance","_oldName","currentName","ViewComponent","normalizeSlot","routePropsOption","routeProps","component","vnode","slot","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","shallowRef","pendingLocation","normalizeParams","applyToParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","href","matcherLocation","targetParams","fullPath","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","error","isNavigationFailure","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","app","installedApps","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","scrollBehavior","nextTick","started","reactiveRoute","shallowReactive","unmountApp","promise","once","func","wasCalled","result","args","realAppName","appName","logger","APP_NAME","realAppVersion","appVersion","useAppName","useLocalizedAppName","apps","realAppName2","id","register","t27","_sfc_main$1","__props","isMobile","useIsMobile","toggleAppNavigationButton","onMounted","onBeforeUnmount","hide","appNavigationToggle","emit","_ctx","_cache","openBlock","createBlock","NcButton","normalizeClass","withCtx","createVNode","NcIconSvgWrapper","mdiArrowRight","NcAppContentDetailsToggle","_export_sfc","browserStorage","getBuilder","instanceName","_sfc_main","Pane","Splitpanes","isRtl","entries","part","useSwipe","direction","event","listPaneSize","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","$props","$setup","$data","$options","_component_NcAppContentDetailsToggle","resolveComponent","_component_Pane","_component_Splitpanes","createElementBlock","toDisplayString","createCommentVNode","Fragment","withModifiers","withDirectives","createElementVNode","renderSlot","vShow","NcAppContent","NcAppNavigationList","HAS_APP_NAVIGATION_KEY","CONTENT_SELECTOR_KEY","t20","_hoisted_1$1","open","useModel","title","$event","mdiMenuOpen","mdiMenu","NcAppNavigationToggle","focusTrap","setHasAppNavigation","warn","appNavigationContainerElement","useTemplateRef","shouldActivateFocusTrap","watchEffect","toggleFocusTrap","subscribe","toggleNavigationByEventBus","createFocusTrap","toggleNavigation","getTrapStack","onUnmounted","unsubscribe","bodyStyles","animationLength","open2","handleEsc","isLegacy34","withKeys","NcAppNavigation","NcActions","actionProps","_value","headingLevel","_component_NcActions","resolveDynamicComponent","createTextVNode","normalizeProps","guardReactiveProps","NcAppNavigationCaption","_hoisted_4","mergeProps","ChevronUp","IconArrowRight","t14","IconClose","newValue","_component_IconArrowRight","_component_NcButton","_component_IconClose","vModelText","NcInputConfirmCancel","ActionGlobalMixin","ActionTextMixin","NC_ACTIONS_CLOSE_MENU","NC_ACTIONS_IS_SEMANTIC_MENU","behavior","mdiCheck","mdiChevronRight","attributes","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_component_NcIconSvgWrapper","normalizeStyle","NcActionButton","_sfc_main$3","_hoisted_1$2","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_sfc_render$3","Pencil","_sfc_main$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","Undo","t21","ChevronDown","_sfc_render$1","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","t23","t51","NcLoadingIcon","_sfc_main$4","createElementId","newVal","routerLinkHref","_component_NcLoadingIcon","_component_NcInputConfirmCancel","_component_Pencil","_component_NcActionButton","_component_Undo","_component_NcAppNavigationIconCollapsible","NcAppNavigationItem","NcAppNavigationNew","t30","contentSvg","navigationSvg","setAppNavigation","hasAppNavigation","currentFocus","currentImage","onBeforeMount","container","openAppNavigation","Teleport","NcContent","humanizedCount","getCanonicalLocale","originalCountAsTitleIfNeeded","countAsString","NcCounterBubble","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","INJECTION_KEY_THEME","useIsDarkThemeElement","element","toValue","isDarkTheme","checkIfDarkTheme","isDarkSystemTheme","usePreferredDark","updateIsDarkTheme","useMutationObserver","readonly","useInternalIsDarkTheme","createSharedComposable","useIsDarkTheme","enforcedTheme","t40","mergeModels","modelValue","formattedValue","formatValue","formattedMax","formattedMin","getReadableDate","yyyy","MM","dd","hh","mm","startDate","daysSinceBeginningOfYear","weekNumber","onInput","input","time","timezoneOffsetSeconds","inputDateWithTimezone","NcDateTimePickerNative","__expose","focus","select","useAttrs","textAreaElement","internalPlaceholder","isLegacy","ariaDescribedby","ariaDescribedby2","handleInput","mdiAlertCircleOutline","NcTextArea","__emit","inputElement","hasTrailingIcon","isValidLabel","NcInputField","t18","inputFieldInstance","defaultTrailingButtonLabels","NcInputFieldPropNames","propsToForward","sharedProps","createSlots","mdiUndo","mdiClose","initialSession","initialLeaveTypes","store","request","type","api","showError","year","created","showSuccess","updated","res","comment","statusMeta","status","NcModal","NcSelect","NcTextField","NcNoteCard","Send","toIso","generateUrl","makeHolidayChecker","weekdays","parseWeekdays","countWorkingDays","types","today","seen","own","users","payload","_hoisted_9","_hoisted_10","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_23","_hoisted_25","_hoisted_26","_hoisted_29","_createBlock","_component_NcModal","_toDisplayString","_component_NcNoteCard","_createVNode","_component_NcSelect","_withCtx","icon","label","_hoisted_11","_component_NcDateTimePickerNative","_component_NcTextField","_Fragment","_createTextVNode","_hoisted_22","_hoisted_24","_hoisted_27","_hoisted_28","_component_NcTextArea","_component_Send","stopClickOutsideMap","vOnClickOutside","binding","capture","stop","onClickOutside","directive","encodedTlds","encodedUtlds","numeric","ascii","alpha","asciinumeric","alphanumeric","domain","emoji","scheme","slashscheme","whitespace","registerGroup","groups","addToGroups","flags","group","flagsForToken","State","nextState","regex","exactOnly","inputs","templateState","allFlags","ta","tr","ts","tt","WORD","UWORD","ASCIINUMERICAL","ALPHANUMERICAL","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL","OPENBRACE","CLOSEBRACE","OPENBRACKET","CLOSEBRACKET","OPENPAREN","CLOSEPAREN","OPENANGLEBRACKET","CLOSEANGLEBRACKET","FULLWIDTHLEFTPAREN","FULLWIDTHRIGHTPAREN","LEFTCORNERBRACKET","RIGHTCORNERBRACKET","LEFTWHITECORNERBRACKET","RIGHTWHITECORNERBRACKET","FULLWIDTHLESSTHAN","FULLWIDTHGREATERTHAN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","FULLWIDTHMIDDLEDOT","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","CR","LF","EMOJI_VARIATION","EMOJI_JOINER","OBJECT_REPLACEMENT","tlds","utlds","init$2","customSchemes","Start","decodeTlds","Num","Asciinumeric","Alphanumeric","Word","UWord","Nl","Cr","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","sch","run$1","start","str","iterable","stringToArray","charCount","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","first","second","defaultt","jr","encoded","words","stack","digits","popDigitCount","popCount","defaults","Options","opts","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","operator","isCallable","option","obj","val","MultiToken","truncate","formatted","protocol","formattedHref","tagName","content","className","rel","eventListeners","createTokenClass","Token","Email","Text","Url","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","SchemeColon","SlashSchemeColon","SlashSchemeColonSlash","UriPrefix","bracketPairs","OPEN","CLOSE","UrlOpen","UrlOpenQ","UrlOpenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","init","tokenize","linkifyString","escapeHTML","escapeAttr","attributesToString","attr","headerRef","nameId","NcEmptyContent","_sfc_main$5","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$4","IconDockRight","_hoisted_1$4","IconStar","_hoisted_1$3","IconStarOutline","selected","_sfc_main$6","sidebarTabsButton","sidebarTabsButton_legacy","sidebarTabsButton_selected","sidebarTabsButton__name","sidebarTabsButton__icon","sidebarTabsButton__legacyIcon","style0","cssModules","NcAppSidebarTabsButton","tab","active","tabIndex","_component_NcAppSidebarTabsButton","renderList","NcAppSidebarTabs","t15","_sfc_main$7","useIsSmallMobile","isSlotPopulated","menu","menuTrigger","activeTab","_component_IconDockRight","_component_IconStar","_component_IconStarOutline","_component_NcAppSidebarHeader","_component_NcAppSidebarTabs","_component_NcEmptyContent","_directive_focus","resolveDirective","_directive_click_outside","Transition","NcAppSidebar","NcAppSidebarTab","getRoute","removePrefix","prefix","removePrefixes","prefixes","acc","isAbsoluteURL","isNonHttpLink","getBaseUrl","relativeUrl","relativeRouterBase","getRootUrl","potentialRouterPath","getEnabledContactsMenuActions","entry","action","t3","Color","toHex","int","calculateStepIncrement","steps","color1","color2","mixPalette","palette","increment","COLOR_RED","COLOR_YELLOW","COLOR_BLUE","generatePalette","palette1","palette2","palette3","hashCode","Md5","finalInt","usernameToColor","username","finalPalette","global","Symbol","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","html","allowable_tags","tag_replacement","context","init_context","striptags_internal","init_striptags_stream","parse_allowable_tags","tag_buffer","in_quote_char","output","idx","normalize_tag","tag_set","module","this","getAvatarUrl","user","size","guestUrl","themeUrl","awaySvg","busySvg","dndSvg","invisibleSvg","onlineSvg","t52","t11","getUserStatusText","isInvisible","ariaLabel","axios","generateOcsUrl","matchSvg","activeSvg","NcUserStatusIcon","NcActionLink","_component_RouterLink","NcActionRouter","NcActionText","t10","userStatus","userId","capabilities","getCurrentUser","getUserHasAvatar","flag","setUserHasAvatar","IconDotsHorizontal","initials","filteredChars","filtered","actions","item","escape","emojiIcon","avatarUrl","srcset","userHasAvatar","img","_component_IconDotsHorizontal","_component_NcUserStatusIcon","NcAvatar","AccountGroup","StatusChip","_renderList","ev","_component_NcAvatar","_component_StatusChip","_component_AccountGroup","_normalizeStyle","requested","review","outcome","step","_normalizeClass","LeaveTypeChip","CoveragePanel","RequestStepper","InformationOutline","CommentOutline","History","Check","Close","CancelIcon","formatRange","iso","_component_NcAppSidebar","_component_NcAppSidebarTab","_component_InformationOutline","_component_RequestStepper","_component_LeaveTypeChip","_component_Check","_component_Close","_component_CancelIcon","_component_CoveragePanel","_component_CommentOutline","_component_History","RequestDialog","RequestSidebar","Plus","CalendarAccountOutline","ClipboardCheck","ScaleBalance","ChartBar","CalendarMonth","Download","ClipboardPlusOutline","_component_NcContent","_component_NcAppNavigation","_component_NcAppNavigationNew","_component_Plus","_component_NcAppNavigationItem","_component_CalendarAccountOutline","_component_ClipboardCheck","_component_NcCounterBubble","_component_NcAppNavigationCaption","_component_ClipboardPlusOutline","_component_ScaleBalance","_component_ChartBar","_component_CalendarMonth","_component_Download","_component_NcAppContent","_component_router_view","_component_RequestSidebar","_component_RequestDialog","NcListItem","range","days","_component_NcListItem","ACTIONABLE","CheckAll","RequestListItem","SkeletonList","reports","_component_SkeletonList","_TransitionGroup","_component_RequestListItem","_component_CheckAll","Magnify","row","ent","_component_Magnify","now","total","pct","seg","usableW","usableH","ChartLine","LineChart","DonutChart","month","months","_component_ChartLine","_component_LineChart","_component_DonutChart","DAY_MS","ChevronLeft","ChevronRight","CalendarBlank","arr","dt","dow","byUid","monthStart","lastIndex","ids","lt","_component_ChevronLeft","_component_ChevronRight","_component_CalendarBlank","TeamTimeline","_component_TeamTimeline","duration","eased","BalanceRing","_component_BalanceRing","bar","BalanceCard","BarChart","PalmIllustration","sickType","approved","typeMatches","color","buckets","addWorkingDaysByMonth","_component_BalanceCard","_component_BarChart","_component_PalmIllustration","MyLeave","Approvals","Team","HrBalances","HrStatistics","HrWhosOff","HrExports","createApp","App"],"mappings":"6zCACA,SAASA,IAAkB,CACzB,GAAI,CACF,OAAOC,GAAU,OAAQ,cAAc,CACzC,MAAgB,CAEd,OADA,QAAQ,MAAM,yEAAyE,EACjF,qBAAsB,OAGrB,OAAO,iBAFL,CAAA,CAGX,CACF,CCTA,IAAIC,GAAoB,OAAO,OAAO,CAAE,aAAc,EAAE,EAAI,CAC3D,OAAQ,aACR,MAAO,CACN,WAAY,CACX,KAAM,QACN,QAAS,EACZ,EACE,eAAgB,CACf,KAAM,QACN,QAAS,EACZ,EACE,cAAe,CACd,KAAM,QACN,QAAS,EACZ,EACE,IAAK,CACJ,KAAM,QACN,QAAS,EACZ,EACE,cAAe,CACd,KAAM,QACN,QAAS,EACZ,EACE,aAAc,CACb,KAAM,OACN,QAAS,CACZ,CACA,EACC,MAAO,CACN,QACA,SACA,UACA,aACA,gBACA,WACA,cACA,iBACA,oBACA,mBACF,EACC,MAAMC,EAAG,CAAE,KAAMC,CAAC,EAAI,CACrB,IAAIC,EAAID,EAAGE,EAAIH,EAAGI,EAAIC,KAAKC,EAAIC,GAAC,EAAIR,EAAIS,GAAE,EAAE,EAAGC,EAAIC,EAAE,IAAMX,EAAE,MAAM,OAAO,CAACW,EAAGC,KAAOD,EAAE,CAAC,CAACC,EAAE,EAAE,EAAIA,IAAMD,EAAG,CAAA,CAAE,CAAC,EAAGE,EAAIF,EAAE,IAAMX,EAAE,MAAM,MAAM,EAAGc,EAAIL,GAAE,IAAI,EAAGM,EAAIN,GAAE,EAAE,EAAGO,EAAIP,GAAE,CAC1K,UAAW,GACX,SAAU,GACV,eAAgB,KAChB,aAAc,CACjB,CAAG,EAAGQ,EAAIR,GAAE,CACT,SAAU,KACV,UAAW,IACd,CAAG,EAAGS,EAAIP,EAAE,KAAO,CAChB,CAAC,0BAA0BP,EAAE,WAAa,aAAe,UAAU,EAAE,EAAG,GACxE,uBAAwBY,EAAE,MAAM,SAChC,oBAAqBD,EAAE,KAC1B,EAAI,EAAGI,EAAK,IAAM,CACf,SAAS,iBAAiB,YAAaC,EAAG,CAAE,QAAS,EAAE,CAAE,EAAG,SAAS,iBAAiB,UAAWC,CAAC,EAAG,iBAAkB,SAAW,SAAS,iBAAiB,YAAaD,EAAG,CAAE,QAAS,EAAE,CAAE,EAAG,SAAS,iBAAiB,WAAYC,CAAC,EACtO,EAAGC,EAAI,IAAM,CACZ,SAAS,oBAAoB,YAAaF,EAAG,CAAE,QAAS,EAAE,CAAE,EAAG,SAAS,oBAAoB,UAAWC,CAAC,EAAG,iBAAkB,SAAW,SAAS,oBAAoB,YAAaD,EAAG,CAAE,QAAS,EAAE,CAAE,EAAG,SAAS,oBAAoB,WAAYC,CAAC,EAClP,EAAGE,EAAI,CAACZ,EAAGC,IAAM,CAChB,IAAIX,EAAIU,EAAE,OAAO,QAAQ,uBAAuB,EAChD,GAAIV,EAAG,CACN,GAAI,CAAE,KAAMW,EAAG,IAAKV,CAAC,EAAKD,EAAE,wBAAyB,CAAE,QAASuB,EAAG,QAASrB,CAAC,EAAK,iBAAkB,QAAUQ,EAAE,QAAUA,EAAE,QAAQ,CAAC,EAAIA,EACzIK,EAAE,MAAM,aAAeZ,EAAE,WAAaD,EAAID,EAAIsB,EAAIZ,CACnD,CACAO,EAAE,EAAIH,EAAE,MAAM,UAAY,GAAIA,EAAE,MAAM,eAAiBJ,EAAG,SAAS,gBAAgB,MAAM,OAASR,EAAE,WAAa,aAAe,YACjI,EAAGgB,EAAKT,GAAM,CACbK,EAAE,MAAM,YAAcL,EAAE,eAAc,EAAIK,EAAE,MAAM,WAAa,OAAO,gBAAgB,gBAAe,EAAIA,EAAE,MAAM,SAAW,IAAK,sBAAsB,IAAM,CAC5JS,GAAEC,GAAEf,CAAC,CAAC,EAAGgB,EAAE,SAAU,CAAE,MAAOhB,CAAC,EAAI,EAAE,CACtC,CAAC,EACF,EAAGU,EAAKV,GAAM,CACbK,EAAE,MAAM,WAAa,OAAO,aAAY,GAAI,gBAAe,EAAIW,EAAE,UAAW,CAAE,MAAOhB,CAAC,EAAI,EAAE,GAAIK,EAAE,MAAM,UAAY,GAAIA,EAAE,MAAM,eAAiB,KAAM,WAAW,IAAM,CACvKA,EAAE,MAAM,SAAW,GAAIM,IAAK,SAAS,gBAAgB,MAAM,OAAS,EACrE,EAAG,GAAG,CACP,EAAGM,EAAI,CAACjB,EAAGC,IAAM,CAChB,iBAAkB,SAAWD,EAAE,eAAc,EAAIM,EAAE,MAAM,WAAaL,GAAK,aAAaK,EAAE,MAAM,SAAS,EAAGA,EAAE,MAAM,UAAY,KAAMY,EAAElB,EAAGC,CAAC,EAAGK,EAAE,MAAM,SAAW,OAASA,EAAE,MAAM,SAAWL,EAAGK,EAAE,MAAM,UAAY,WAAW,IAAMA,EAAE,MAAM,SAAW,KAAM,GAAG,IAAKD,EAAE,MAAM,UAAYW,EAAE,iBAAkB,CAC9S,MAAOhB,EACP,MAAOC,CACX,EAAM,EAAE,CACN,EAAGiB,EAAI,CAAClB,EAAGC,IAAM,CAChB,GAAIe,EAAE,oBAAqB,CAC1B,MAAOhB,EACP,MAAOC,CACX,EAAM,EAAE,EAAGR,EAAE,cAAe,CACxB,IAAIH,EAAI,EACRD,EAAE,MAAQA,EAAE,MAAM,IAAI,CAACW,EAAGT,KAAOS,EAAE,KAAOT,IAAMU,EAAID,EAAE,IAAMA,EAAE,IAAKT,IAAMU,IAAMX,GAAKU,EAAE,KAAMA,EAAE,EAAGX,EAAE,MAAMY,CAAC,EAAE,MAAQX,EAAG0B,EAAE,gBAAiB,CACzI,MAAOhB,EACP,MAAOC,EACP,KAAMZ,EAAE,MAAMY,CAAC,CACpB,CAAK,EAAGe,EAAE,UAAW,CAChB,MAAOhB,EACP,MAAOC,CACZ,EAAO,EAAE,CACN,CACD,EAAGkB,GAAI,CAACnB,EAAGC,IAAM,CAChB,GAAI,CAACR,EAAE,aAAc,OACrB,IAAIH,EAAIG,EAAE,WAAaO,EAAE,MAAQ,YAAcA,EAAE,MAAQ,aAAcT,EAAIE,EAAE,WAAaO,EAAE,MAAQ,UAAYA,EAAE,MAAQ,YAC1H,GAAI,CAACV,GAAK,CAACC,EAAG,OACdS,EAAE,eAAc,EAAIK,EAAE,MAAM,eAAiBJ,EAC7C,IAAIY,GAAKvB,EAAI,EAAI,KAAOG,EAAE,KAAO,CAACA,EAAE,WAAa,GAAK,GAAID,EAAI4B,GAAEnB,CAAC,EAAIZ,EAAE,MAAMY,CAAC,EAAE,KAChFoB,GAAE,KAAK,IAAI,KAAK,IAAI7B,EAAIqB,EAAIpB,EAAE,aAAc,CAAC,EAAG,GAAG,CAAC,EAAGuB,EAAE,SAAU,CAAE,MAAOhB,CAAC,EAAI,EAAE,EAAGgB,EAAE,UAAW,CAAE,MAAOhB,CAAC,EAAI,EAAE,EAAGK,EAAE,MAAM,eAAiB,IAChJ,EAAGiB,GAAI,CAACtB,EAAGC,IAAM,CAChB,IAAIX,EAAIS,EAAE,MAAME,CAAC,EACjBX,GAAK0B,EAAE,aAAc,CACpB,MAAOhB,EACP,MAAOV,EAAE,MACT,KAAMA,CACV,CAAI,CACF,EAAGyB,GAAKf,GAAM,CACb,IAAIC,EAAIE,EAAE,MAAM,sBAAqB,EAAI,CAAE,QAASb,EAAG,QAASC,CAAC,EAAK,iBAAkB,QAAUS,EAAE,QAAUA,EAAE,QAAQ,CAAC,EAAIA,EAC7H,MAAO,CACN,EAAGV,GAAKG,EAAE,WAAa,EAAIY,EAAE,MAAM,cAAgBJ,EAAE,KACrD,EAAGV,GAAKE,EAAE,WAAaY,EAAE,MAAM,aAAe,GAAKJ,EAAE,GACzD,CACE,EAAGsB,GAAKvB,GAAM,CACbA,EAAIA,EAAEP,EAAE,WAAa,IAAM,GAAG,EAC9B,IAAIQ,EAAIE,EAAE,MAAMV,EAAE,WAAa,eAAiB,aAAa,EAC7D,OAAOA,EAAE,KAAO,CAACA,EAAE,aAAeO,EAAIC,EAAID,GAAIA,EAAI,IAAMC,CACzD,EAAGa,GAAKd,GAAM,CACbqB,GAAEE,GAAEvB,CAAC,CAAC,CACP,EAAGqB,GAAKrB,GAAM,CACb,IAAIC,EAAII,EAAE,MAAM,eAChB,GAAIJ,IAAM,MAAQA,GAAKZ,EAAE,MAAM,OAAS,EAAG,OAC3C,IAAIC,EAAI,CACP,cAAe8B,GAAEnB,CAAC,EAClB,cAAeuB,GAAEvB,CAAC,EAClB,oBAAqB,EACrB,oBAAqB,CACzB,EAAMV,EAAI,GAAKE,EAAE,eAAiB,EAAIH,EAAE,eAAgBuB,EAAI,KAAOpB,EAAE,eAAiB,EAAIH,EAAE,eACzFU,EAAI,KAAK,IAAI,KAAK,IAAIA,EAAGa,CAAC,EAAGtB,CAAC,EAC9B,IAAIC,EAAI,CAACS,EAAGA,EAAI,CAAC,EAAGwB,EAAIpC,EAAE,MAAMG,EAAE,CAAC,CAAC,GAAK,KAAMkC,GAAIrC,EAAE,MAAMG,EAAE,CAAC,CAAC,GAAK,KAAMmC,GAAIF,IAAM,MAAQA,EAAE,IAAM,KAAOzB,GAAKyB,EAAE,IAAMnC,EAAE,cAAesC,GAAIF,KAAM,MAAQA,GAAE,IAAM,KAAO1B,GAAK,KAAO0B,GAAE,IAAMF,GAAEvB,EAAI,CAAC,GACrM,GAAI0B,IAAKC,GAAG,CACXD,IAAKF,EAAE,KAAOA,EAAE,IAAKC,GAAE,KAAO,KAAK,IAAI,KAAK,IAAI,IAAMD,EAAE,IAAMnC,EAAE,cAAgBA,EAAE,cAAeoC,GAAE,GAAG,EAAGA,GAAE,GAAG,IAAMD,EAAE,KAAO,KAAK,IAAI,KAAK,IAAI,IAAMC,GAAE,IAAMpC,EAAE,cAAgBkC,GAAEvB,EAAI,CAAC,EAAGwB,EAAE,GAAG,EAAGA,EAAE,GAAG,EAAGC,GAAE,KAAOA,GAAE,KACpN,MACD,CACA,GAAIjC,EAAE,eAAgB,CACrB,IAAIQ,GAAI4B,GAAGvC,EAAGU,CAAC,EACf,GAAI,CAACC,GAAG,QACP,CAAC,KAAMX,EAAG,cAAeE,CAAC,EAAIS,IAAIwB,EAAIpC,EAAE,MAAMG,EAAE,CAAC,CAAC,GAAK,KAAMkC,GAAIrC,EAAE,MAAMG,EAAE,CAAC,CAAC,GAAK,IACpF,CACAiC,IAAM,OAASA,EAAE,KAAO,KAAK,IAAI,KAAK,IAAIzB,EAAIV,EAAE,cAAgBA,EAAE,oBAAqBmC,EAAE,GAAG,EAAGA,EAAE,GAAG,GAAIC,KAAM,OAASA,GAAE,KAAO,KAAK,IAAI,KAAK,IAAI,IAAM1B,EAAIV,EAAE,cAAgBA,EAAE,oBAAqBoC,GAAE,GAAG,EAAGA,GAAE,GAAG,EACnN,EAAGG,GAAK,CAAC7B,EAAGC,IAAM,CACjB,IAAIX,EAAIe,EAAE,MAAM,eAAgBd,EAAI,CAACD,EAAGA,EAAI,CAAC,EAC7C,GAAIW,EAAID,EAAE,cAAgBX,EAAE,MAAME,EAAE,CAAC,CAAC,EAAE,IAAK,CAC5C,GAAIA,EAAE,CAAC,EAAIuC,GAAExC,CAAC,EAAE,MAAOU,EAAE,oBAAsB,EAAGT,EAAE,CAAC,EAAID,GAAKD,EAAE,MAAM,QAAQ,CAACY,EAAGY,IAAM,CACvFA,EAAItB,EAAE,CAAC,GAAKsB,GAAKvB,IAAMW,EAAE,KAAOA,EAAE,IAAKD,EAAE,qBAAuBC,EAAE,IACnE,CAAC,EAAGV,EAAE,CAAC,IAAM,OAAQ,OAAOS,EAAE,oBAAsB,EAAGX,EAAE,MAAM,CAAC,EAAE,KAAOA,EAAE,MAAM,CAAC,EAAE,IAAKA,EAAE,MAAM,QAAQ,CAACY,EAAGV,IAAM,CAClHA,EAAI,GAAKA,GAAKD,IAAMW,EAAE,KAAOA,EAAE,IAAKD,EAAE,qBAAuBC,EAAE,IAChE,CAAC,EAAGZ,EAAE,MAAME,EAAE,CAAC,CAAC,EAAE,KAAO,IAAMS,EAAE,oBAAsBX,EAAE,MAAM,CAAC,EAAE,IAAMW,EAAE,cAAgBA,EAAE,cAAe,KAC3GA,EAAE,cAAgBoB,GAAE7B,EAAE,CAAC,CAAC,CACzB,CACA,OAAOU,EAAI,IAAMD,EAAE,cAAgBX,EAAE,MAAME,EAAE,CAAC,CAAC,EAAE,MAAQA,EAAE,CAAC,EAAIwC,GAAEzC,CAAC,EAAE,MAAOU,EAAE,oBAAsB,EAAGT,EAAE,CAAC,EAAID,EAAI,GAAKD,EAAE,MAAM,QAAQ,CAACY,EAAGY,IAAM,CAChJA,EAAIvB,GAAKuB,EAAItB,EAAE,CAAC,IAAMU,EAAE,KAAOA,EAAE,IAAKD,EAAE,qBAAuBC,EAAE,IAClE,CAAC,EAAGD,EAAE,cAAgBT,EAAE,CAAC,IAAM,OAAS,EAAIiC,GAAEjC,EAAE,CAAC,EAAI,CAAC,EAAGA,EAAE,CAAC,IAAM,SAAWS,EAAE,oBAAsB,EAAGX,EAAE,MAAM,QAAQ,CAACY,EAAGV,IAAM,CACjIA,GAAKD,EAAI,IAAMW,EAAE,KAAOA,EAAE,IAAKD,EAAE,qBAAuBC,EAAE,IAC3D,CAAC,EAAGV,EAAE,CAAC,IAAM,SAAWF,EAAE,MAAME,EAAE,CAAC,CAAC,EAAE,KAAO,IAAMS,EAAE,cAAgBwB,GAAEjC,EAAE,CAAC,EAAI,CAAC,GAAI,MAAQ,CAC1F,KAAMS,EACN,cAAeT,CACnB,CACE,EAAG6B,GAAKpB,GAAMX,EAAE,MAAM,OAAO,CAACY,EAAGX,EAAGC,IAAMU,GAAKV,EAAIS,EAAIV,EAAE,KAAO,GAAI,CAAC,EAAGkC,GAAKxB,GAAMX,EAAE,MAAM,OAAO,CAACY,EAAGX,EAAGC,IAAMU,GAAKV,EAAIS,EAAI,EAAIV,EAAE,KAAO,GAAI,CAAC,EAAGwC,GAAK9B,GAAM,CAAC,GAAGX,EAAE,KAAK,EAAE,QAAO,EAAG,KAAMY,GAAMA,EAAE,MAAQD,GAAKC,EAAE,KAAOA,EAAE,GAAG,GAAK,CAAA,EAAI8B,GAAK/B,GAAMX,EAAE,MAAM,KAAMY,GAAMA,EAAE,MAAQD,EAAI,GAAKC,EAAE,KAAOA,EAAE,GAAG,GAAK,CAAA,EAAI+B,GAAI,IAAM,CACvT,IAAIhC,EAAI,MAAM,KAAKG,EAAE,OAAO,UAAY,EAAE,EAC1C,QAASF,KAAKD,EAAG,CAChB,IAAIA,EAAIC,EAAE,UAAU,SAAS,kBAAkB,EAAGX,EAAIW,EAAE,UAAU,SAAS,sBAAsB,EACjG,CAACD,GAAK,CAACV,IAAMW,EAAE,OAAM,EAAI,QAAQ,KAAK,8GAA8G,EACrJ,CACD,EAAGgC,GAAI,CAACjC,EAAGC,EAAGX,EAAI,KAAO,CACxB,IAAIC,EAAIS,EAAI,EAAGa,EAAI,SAAS,cAAc,KAAK,EAC/CA,EAAE,UAAU,IAAI,sBAAsB,EAAGvB,IAAMuB,EAAE,YAAeb,GAAMY,EAAEZ,EAAGT,CAAC,EAAG,OAAO,OAAS,KAAO,iBAAkB,SAAWsB,EAAE,aAAgBb,GAAMY,EAAEZ,EAAGT,CAAC,GAAIsB,EAAE,QAAWb,GAAMiB,EAAEjB,EAAGT,EAAI,CAAC,EAAGE,EAAE,eAAiBoB,EAAE,aAAa,WAAY,GAAG,EAAGA,EAAE,aAAa,OAAQ,WAAW,EAAGA,EAAE,aAAa,mBAAoBpB,EAAE,WAAa,aAAe,UAAU,EAAGoB,EAAE,UAAab,GAAMmB,GAAEnB,EAAGT,CAAC,IAAKsB,EAAE,WAAcb,GAAMkB,EAAElB,EAAGT,EAAI,CAAC,EAAGU,EAAE,WAAW,aAAaY,EAAGZ,CAAC,CAC9c,EAAGiC,GAAKlC,GAAM,CACbA,EAAE,YAAc,KAAMA,EAAE,QAAU,KAAMA,EAAE,WAAa,KAAMA,EAAE,UAAY,KAAMA,EAAE,OAAM,CAC1F,EAAGmC,GAAI,IAAM,CACZ,IAAInC,EAAI,MAAM,KAAKG,EAAE,OAAO,UAAY,EAAE,EAC1C,QAASF,KAAKD,EAAGC,EAAE,UAAU,SAAS,sBAAsB,GAAKiC,GAAEjC,CAAC,EACpE,IAAIA,EAAI,EACR,QAASX,KAAKU,EAAGV,EAAE,UAAU,SAAS,kBAAkB,IAAM,CAACW,GAAKR,EAAE,cAAgBwC,GAAEhC,EAAGX,EAAG,EAAE,EAAIW,GAAKgC,GAAEhC,EAAGX,CAAC,EAAGW,IACnH,EAAGmC,GAAI,CAAC,CAAE,IAAKpC,EAAG,GAAGC,KAAQ,CAC5B,IAAIX,EAAIS,EAAE,MAAMC,CAAC,EACjB,OAAS,CAACA,EAAGT,CAAC,IAAK,OAAO,QAAQU,CAAC,EAAGX,EAAEU,CAAC,EAAIT,CAC9C,EAAG8C,GAAI,GAAIC,GAAKtC,GAAM,CACrB,IAAIC,EAAI,GACR,MAAM,KAAKE,EAAE,OAAO,UAAY,CAAA,CAAE,EAAE,KAAMb,IAAOA,EAAE,UAAU,SAAS,kBAAkB,GAAKW,IAAKX,EAAE,WAAWU,EAAE,EAAE,EAAE,EAAGX,EAAE,MAAM,OAAOY,EAAG,EAAG,CAC5I,GAAGD,EACH,MAAOC,CACX,CAAI,EAAGZ,EAAE,MAAM,QAAQ,CAACW,EAAGC,IAAMD,EAAE,MAAQC,CAAC,EAAGG,EAAE,OAAS,CAACiC,KAAMA,GAAI,GAAIZ,GAAE,IAAM,CAC7EU,GAAC,EAAII,GAAE,CAAE,UAAWlD,EAAE,MAAMY,CAAC,EAAG,EAAGe,EAAE,WAAY,CAAE,KAAM3B,EAAE,MAAMY,CAAC,CAAC,CAAE,EAAGoC,GAAI,EAC7E,CAAC,EACF,EAAGG,GAAKxC,GAAM,CACb,IAAIC,EAAIZ,EAAE,MAAM,UAAWY,GAAMA,EAAE,KAAOD,CAAC,EAC3CX,EAAE,MAAMY,CAAC,EAAE,GAAK,KAChB,IAAIX,EAAID,EAAE,MAAM,OAAOY,EAAG,CAAC,EAAE,CAAC,EAC9BZ,EAAE,MAAM,QAAQ,CAACW,EAAGC,IAAMD,EAAE,MAAQC,CAAC,EAAGwB,GAAE,IAAM,CAC/CU,GAAC,EAAInB,EAAE,cAAe,CAAE,KAAM1B,EAAG,EAAGiD,GAAE,CAAE,YAAa,CACpD,GAAGjD,CAEJ,CAAC,CAAE,CACJ,CAAC,CACF,EAAGiD,GAAI,CAACvC,EAAI,KAAO,CAClB,CAACA,EAAE,WAAa,CAACA,EAAE,YAAcyC,GAAE,EAAKpD,EAAE,MAAM,KAAMW,GAAMA,EAAE,YAAc,MAAQA,EAAE,KAAOA,EAAE,IAAM,GAAG,EAAI0C,EAAG1C,CAAC,EAAI2C,GAAE,EAAIvC,EAAE,OAASY,EAAE,SAAS,CACjJ,EAAG2B,GAAK,IAAM,CACb,IAAI3C,EAAI,IAAME,EAAE,MAAOD,EAAI,IAAKX,EAAI,GAAIC,EAAI,CAAA,EAC5C,QAASsB,KAAKxB,EAAE,MAAOwB,EAAE,KAAO,KAAK,IAAI,KAAK,IAAIb,EAAGa,EAAE,GAAG,EAAGA,EAAE,GAAG,EAAGZ,GAAKY,EAAE,KAAMA,EAAE,MAAQA,EAAE,KAAOvB,EAAE,KAAKuB,EAAE,EAAE,EAAGA,EAAE,MAAQA,EAAE,KAAOtB,EAAE,KAAKsB,EAAE,EAAE,EACjJ,KAAK,IAAIZ,CAAC,EAAI,IAAM2C,EAAE3C,EAAGX,EAAGC,CAAC,CAC9B,EAAGkD,GAAK,IAAM,CACb,IAAIzC,EAAI,IAAKC,EAAI,CAAA,EAAIX,EAAI,CAAA,EAAIC,EAAI,EACjC,QAASsB,KAAKxB,EAAE,MAAOW,GAAKa,EAAE,KAAMA,EAAE,YAAc,MAAQtB,IAAKsB,EAAE,MAAQA,EAAE,KAAOZ,EAAE,KAAKY,EAAE,EAAE,EAAGA,EAAE,MAAQA,EAAE,KAAOvB,EAAE,KAAKuB,EAAE,EAAE,EAChI,IAAIA,EAAI,IACR,GAAIb,EAAI,GAAI,CACX,QAASC,KAAKZ,EAAE,MAAOY,EAAE,YAAc,OAASA,EAAE,KAAO,KAAK,IAAI,KAAK,IAAID,GAAKE,EAAE,MAAQX,GAAIU,EAAE,GAAG,EAAGA,EAAE,GAAG,GAAIY,GAAKZ,EAAE,KACtHY,EAAI,IAAM+B,EAAE/B,EAAGZ,EAAGX,CAAC,CACpB,CACD,EAAGoD,EAAK,CAAC,CAAE,UAAW1C,EAAG,YAAaC,CAAC,EAAK,KAAO,CAClD,IAAIX,EAAID,EAAE,MAAM,OAAO,CAACW,GAAGC,KAAMD,IAAKC,GAAE,YAAc,KAAO,EAAIA,GAAE,WAAY,CAAC,EAAGV,EAAIF,EAAE,MAAM,OAAQW,IAAMA,GAAE,YAAc,IAAI,EAAE,OAAQa,EAAItB,EAAI,GAAK,IAAMD,GAAKC,EAAI,EAAGC,EAAI,EAAGiC,EAAI,GAAIhC,GAAI,CAAA,EAC7L,QAASO,MAAKX,EAAE,MAAOG,GAAKQ,GAAE,KAAMA,GAAE,MAAQA,GAAE,KAAOyB,EAAE,KAAKzB,GAAE,EAAE,EAAGA,GAAE,MAAQA,GAAE,KAAOP,GAAE,KAAKO,GAAE,EAAE,EACnG,GAAI,EAAE,KAAK,IAAIR,CAAC,EAAI,IAAK,CACxBA,EAAI,IACJ,QAASQ,MAAKX,EAAE,MAAOW,GAAE,YAAc,OAASA,GAAE,KAAO,KAAK,IAAI,KAAK,IAAIa,EAAGb,GAAE,GAAG,EAAGA,GAAE,GAAG,GAAIR,GAAKQ,GAAE,KAAMA,GAAE,MAAQA,GAAE,KAAOyB,EAAE,KAAKzB,GAAE,EAAE,EAAGA,GAAE,MAAQA,GAAE,KAAOP,GAAE,KAAKO,GAAE,EAAE,EAC3K,KAAK,IAAIR,CAAC,EAAI,IAAMoD,EAAEpD,EAAGiC,EAAGhC,EAAC,CAC9B,CACD,EAAGmD,EAAI,CAAC5C,EAAGC,EAAGX,IAAM,CACnB,IAAIC,EACJA,EAAIS,EAAI,EAAIA,GAAKE,EAAE,MAAQD,EAAE,QAAUD,GAAKE,EAAE,MAAQZ,EAAE,QAASD,EAAE,MAAM,QAAQ,CAACwB,EAAGrB,IAAM,CAC1F,GAAIQ,EAAI,GAAK,CAACC,EAAE,SAASY,EAAE,EAAE,EAAG,CAC/B,IAAIZ,EAAI,KAAK,IAAI,KAAK,IAAIY,EAAE,KAAOtB,EAAGsB,EAAE,GAAG,EAAGA,EAAE,GAAG,EAAGvB,GAAIW,EAAIY,EAAE,KAChEb,GAAKV,GAAGuB,EAAE,KAAOZ,CAClB,SAAW,CAACX,EAAE,SAASuB,EAAE,EAAE,EAAG,CAC7B,IAAIZ,EAAI,KAAK,IAAI,KAAK,IAAIY,EAAE,KAAOtB,EAAGsB,EAAE,GAAG,EAAGA,EAAE,GAAG,EAAGvB,GAAIW,EAAIY,EAAE,KAChEb,GAAKV,GAAGuB,EAAE,KAAOZ,CAClB,CACD,CAAC,EAAG,KAAK,IAAID,CAAC,EAAI,IAAMI,EAAE,OAAS,QAAQ,KAAK,wEAAwE,CACzH,EAAGY,EAAI,CAAChB,EAAGC,EAAI,OAAQX,EAAI,KAAO,CACjC,IAAIC,EAAIU,GAAG,OAASI,EAAE,MAAM,gBAAkB,KAC9Cb,EAAEQ,EAAG,CACJ,GAAGC,EACH,GAAGV,IAAM,MAAQ,CAAE,MAAOA,CAAC,EAC3B,GAAGD,GAAKC,IAAM,MAAQ,CACrB,SAAUF,EAAE,MAAME,EAAI,CAAC,CAAC,CAACE,EAAE,aAAa,EACxC,SAAUJ,EAAE,MAAME,GAAI,CAAC,CAACE,EAAE,aAAa,CAC5C,EACI,MAAOJ,EAAE,MAAM,IAAKW,IAAO,CAC1B,IAAKA,EAAE,IACP,IAAKA,EAAE,IACP,KAAMA,EAAE,IACb,EAAM,CACN,CAAI,CACF,EACA6C,GAAE,IAAMpD,EAAE,cAAe,IAAM0C,GAAC,CAAE,EAAGU,GAAE,IAAMpD,EAAE,WAAaO,GAAMyB,GAAE,IAAM,CACzEjC,EAAE,oBAAqB,CACtB,WAAYQ,EACZ,MAAOX,EAAE,MAAM,IAAKW,IAAO,CAC1B,IAAKA,EAAE,IACP,IAAKA,EAAE,IACP,KAAMA,EAAE,IACb,EAAM,CACN,CAAI,CACF,CAAC,CAAC,EAAG2B,GAAE,IAAM,CACZK,GAAC,EAAIG,GAAC,EAAII,GAAC,EAAIvB,EAAE,OAAO,EAAGZ,EAAE,MAAQ,EACtC,CAAC,EAAGsB,GAAE,IAAMtB,EAAE,MAAQ,EAAE,EACxB,IAAI0C,EAAK,IAAM,CACd,GAAI,CAAE,MAAO9C,EAAG,GAAGC,CAAC,EAAKP,EACzB,OAAOmB,GAAE,MAAO,CACf,IAAKV,EACL,MAAO,CAACI,EAAE,MAAOP,CAAC,EAClB,GAAGC,CACP,EAAML,EAAE,WAAW,CACjB,EACA,OAAOmD,GAAE,QAAS1D,CAAC,EAAG0D,GAAE,eAAgBhD,CAAC,EAAGgD,GAAE,aAAc/C,EAAE,IAAMP,EAAE,UAAU,CAAC,EAAGsD,GAAE,gBAAiBX,EAAC,EAAGW,GAAE,YAAaT,EAAC,EAAGS,GAAE,eAAgBP,EAAC,EAAGO,GAAE,cAAezB,EAAC,EAAG,CAACtB,EAAGV,KAAOsC,EAAC,EAAI3B,EAAE+C,GAAEF,CAAE,CAAC,EACjM,CACD,CAAC,EAAG/C,GAAI,CACP,OAAQ,OACR,MAAO,CACN,KAAM,CAAE,KAAM,CAAC,OAAQ,MAAM,CAAC,EAC9B,QAAS,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,CACZ,EACE,QAAS,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,GACZ,CACA,EACC,MAAME,EAAG,CACR,IAAIY,EAAIZ,EAAGwB,EAAIjC,GAAE,eAAe,EAAGuD,EAAIvD,GAAE,WAAW,EAAGwD,EAAIxD,GAAE,YAAY,EAAGG,EAAIH,GAAE,cAAc,EAAGK,EAAIL,GAAE,aAAa,EAAGH,EAAIE,GAAC,GAAI,IAAKQ,EAAIP,GAAE,cAAc,EAAGU,EAAIF,EAAE,IAAMD,EAAE,MAAMV,CAAC,CAAC,EAAGc,EAAIL,GAAE,IAAI,EAAGM,EAAIJ,EAAE,IAAM,CAC/M,IAAIA,EAAI,MAAMa,EAAE,IAAI,GAAKA,EAAE,OAAS,OAAS,EAAI,WAAWA,EAAE,IAAI,EAClE,OAAO,KAAK,IAAI,KAAK,IAAIb,EAAGM,EAAE,KAAK,EAAGD,EAAE,KAAK,CAC9C,CAAC,EAAGA,EAAIL,EAAE,IAAM,CACf,IAAIA,EAAI,WAAWa,EAAE,OAAO,EAC5B,OAAO,MAAMb,CAAC,EAAI,EAAIA,CACvB,CAAC,EAAGM,EAAIN,EAAE,IAAM,CACf,IAAIA,EAAI,WAAWa,EAAE,OAAO,EAC5B,OAAO,MAAMb,CAAC,EAAI,IAAMA,CACzB,CAAC,EAAGO,EAAIP,EAAE,IAAM,CACf,IAAIA,EAAIE,EAAE,OAAO,OAASW,EAAE,OAAS,OAAS,OAAST,EAAE,OACzD,OAAOJ,IAAM,OAAS,GAAK,GAAGgD,EAAE,MAAQ,SAAW,OAAO,KAAKhD,CAAC,GACjE,CAAC,EACD,OAAO6C,GAAE,IAAMzC,EAAE,MAAQJ,GAAMyB,EAAE,CAChC,IAAKpC,EACL,KAAMW,CACT,CAAG,CAAC,EAAG6C,GAAE,IAAMxC,EAAE,MAAQL,GAAMyB,EAAE,CAC9B,IAAKpC,EACL,IAAKW,CACR,CAAG,CAAC,EAAG6C,GAAE,IAAMvC,EAAE,MAAQN,GAAMyB,EAAE,CAC9B,IAAKpC,EACL,IAAKW,CACR,CAAG,CAAC,EAAG2B,GAAE,IAAM,CACZoB,EAAE,CACD,GAAI1D,EACJ,GAAIc,EAAE,MACN,IAAKE,EAAE,MACP,IAAKC,EAAE,MACP,UAAWO,EAAE,OAAS,OAAS,KAAOT,EAAE,MACxC,KAAMA,EAAE,KACZ,CAAI,CACF,CAAC,EAAGsB,GAAE,IAAM/B,EAAEN,CAAC,CAAC,EAAG,CAACW,EAAGC,KAAO2B,IAAKtC,EAAE,MAAO,CAC3C,QAAS,SACT,IAAKa,EACL,MAAO,mBACP,QAASF,EAAE,CAAC,IAAOA,GAAML,EAAEC,CAAC,EAAEI,EAAGD,EAAE,EAAE,GAAG,EACxC,MAAOP,GAAEc,EAAE,KAAK,CACnB,EAAK,CAACb,EAAEM,EAAE,OAAQ,SAAS,CAAC,EAAG,CAAC,EAC/B,CACD,ECvTA,MAAMiD,GAAY,OAAO,SAAa,IAoBhCC,GAAU,KACVC,GAAe,KACfC,GAAW,MACXC,GAAW,KACXC,GAAQ,MACRC,GAAU,MAeVC,GAAsB,OACtBC,GAAuB,OACvBC,GAAe,OACfC,GAAkB,OAClBC,GAAoB,OACpBC,GAAc,OACdC,GAAqB,OACrBC,GAAe,OASrB,SAASC,GAAaC,EAAM,CAC3B,OAAOA,GAAQ,KAAO,GAAK,UAAU,GAAKA,CAAI,EAAE,QAAQJ,GAAa,GAAG,EAAE,QAAQL,GAAqB,GAAG,EAAE,QAAQC,GAAsB,GAAG,CAC9I,CAOA,SAASS,GAAWD,EAAM,CACzB,OAAOD,GAAaC,CAAI,EAAE,QAAQL,GAAmB,GAAG,EAAE,QAAQE,GAAoB,GAAG,EAAE,QAAQJ,GAAc,GAAG,CACrH,CAQA,SAASS,GAAiBF,EAAM,CAC/B,OAAOD,GAAaC,CAAI,EAAE,QAAQV,GAAS,KAAK,EAAE,QAAQQ,GAAc,GAAG,EAAE,QAAQb,GAAS,KAAK,EAAE,QAAQC,GAAc,KAAK,EAAE,QAAQQ,GAAiB,GAAG,EAAE,QAAQC,GAAmB,GAAG,EAAE,QAAQE,GAAoB,GAAG,EAAE,QAAQJ,GAAc,GAAG,CAC3P,CAMA,SAASU,GAAeH,EAAM,CAC7B,OAAOE,GAAiBF,CAAI,EAAE,QAAQZ,GAAU,KAAK,CACtD,CAOA,SAASgB,GAAWJ,EAAM,CACzB,OAAOD,GAAaC,CAAI,EAAE,QAAQf,GAAS,KAAK,EAAE,QAAQI,GAAO,KAAK,CACvE,CAUA,SAASgB,GAAYL,EAAM,CAC1B,OAAOI,GAAWJ,CAAI,EAAE,QAAQb,GAAU,KAAK,CAChD,CACA,SAASmB,GAAON,EAAM,CACrB,GAAIA,GAAQ,KAAM,OAAO,KACzB,GAAI,CACH,OAAO,mBAAmB,GAAKA,CAAI,CACpC,MAAQ,CAER,CACA,MAAO,GAAKA,CACb,CAGA,MAAMO,GAAoB,MACpBC,GAAuBC,GAASA,EAAK,QAAQF,GAAmB,EAAE,EAUxE,SAASG,GAASC,EAAYC,EAAUC,EAAkB,IAAK,CAC9D,IAAIJ,EAAMK,EAAQ,CAAA,EAAIC,EAAe,GAAIC,EAAO,GAChD,MAAMC,EAAUL,EAAS,QAAQ,GAAG,EACpC,IAAIM,EAAYN,EAAS,QAAQ,GAAG,EACpC,OAAAM,EAAYD,GAAW,GAAKC,EAAYD,EAAU,GAAKC,EACnDA,GAAa,IAChBT,EAAOG,EAAS,MAAM,EAAGM,CAAS,EAClCH,EAAeH,EAAS,MAAMM,EAAWD,EAAU,EAAIA,EAAUL,EAAS,MAAM,EAChFE,EAAQH,EAAWI,EAAa,MAAM,CAAC,CAAC,GAErCE,GAAW,IACdR,EAAOA,GAAQG,EAAS,MAAM,EAAGK,CAAO,EACxCD,EAAOJ,EAAS,MAAMK,EAASL,EAAS,MAAM,GAE/CH,EAAOU,GAAoBV,GAAsBG,EAAUC,CAAe,EACnE,CACN,SAAUJ,EAAOM,EAAeC,EAChC,KAAAP,EACA,MAAAK,EACA,KAAMR,GAAOU,CAAI,CAAA,CAEnB,CAWA,SAASI,GAAaC,EAAgBT,EAAU,CAC/C,MAAME,EAAQF,EAAS,MAAQS,EAAeT,EAAS,KAAK,EAAI,GAChE,OAAOA,EAAS,MAAQE,GAAS,KAAOA,GAASF,EAAS,MAAQ,GACnE,CAOA,SAASU,GAAUC,EAAUC,EAAM,CAClC,MAAI,CAACA,GAAQ,CAACD,EAAS,YAAA,EAAc,WAAWC,EAAK,aAAa,EAAUD,EACrEA,EAAS,MAAMC,EAAK,MAAM,GAAK,GACvC,CAUA,SAASC,GAAoBJ,EAAgB9F,EAAGO,EAAG,CAClD,MAAM4F,EAAanG,EAAE,QAAQ,OAAS,EAChCoG,EAAa7F,EAAE,QAAQ,OAAS,EACtC,OAAO4F,EAAa,IAAMA,IAAeC,GAAcC,GAAkBrG,EAAE,QAAQmG,CAAU,EAAG5F,EAAE,QAAQ6F,CAAU,CAAC,GAAKE,GAA0BtG,EAAE,OAAQO,EAAE,MAAM,GAAKuF,EAAe9F,EAAE,KAAK,IAAM8F,EAAevF,EAAE,KAAK,GAAKP,EAAE,OAASO,EAAE,IAChP,CAQA,SAAS8F,GAAkBrG,EAAGO,EAAG,CAChC,OAAQP,EAAE,SAAWA,MAAQO,EAAE,SAAWA,EAC3C,CACA,SAAS+F,GAA0BtG,EAAGO,EAAG,CACxC,GAAI,OAAO,KAAKP,CAAC,EAAE,SAAW,OAAO,KAAKO,CAAC,EAAE,OAAQ,MAAO,GAC5D,QAASgG,KAAOvG,EAAG,GAAI,CAACwG,GAA+BxG,EAAEuG,CAAG,EAAGhG,EAAEgG,CAAG,CAAC,EAAG,MAAO,GAC/E,MAAO,EACR,CACA,SAASC,GAA+BxG,EAAGO,EAAG,CAC7C,OAAOkG,GAAQzG,CAAC,EAAI0G,GAAkB1G,EAAGO,CAAC,EAAIkG,GAAQlG,CAAC,EAAImG,GAAkBnG,EAAGP,CAAC,GAAKA,GAAKA,EAAE,cAAgBO,GAAKA,EAAE,UACrH,CAQA,SAASmG,GAAkB1G,EAAGO,EAAG,CAChC,OAAOkG,GAAQlG,CAAC,EAAIP,EAAE,SAAWO,EAAE,QAAUP,EAAE,MAAM,CAAC2G,EAAOtF,IAAMsF,IAAUpG,EAAEc,CAAC,CAAC,EAAIrB,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAMO,CACjH,CAOA,SAASqF,GAAoBgB,EAAIC,EAAM,CACtC,GAAID,EAAG,WAAW,GAAG,EAAG,OAAOA,EAQ/B,GAAI,CAACA,EAAI,OAAOC,EAChB,MAAMC,EAAeD,EAAK,MAAM,GAAG,EAC7BE,EAAaH,EAAG,MAAM,GAAG,EACzBI,EAAgBD,EAAWA,EAAW,OAAS,CAAC,GAClDC,IAAkB,MAAQA,IAAkB,MAAKD,EAAW,KAAK,EAAE,EACvE,IAAIE,EAAWH,EAAa,OAAS,EACjCI,EACAC,EACJ,IAAKD,EAAa,EAAGA,EAAaH,EAAW,OAAQG,IAEpD,GADAC,EAAUJ,EAAWG,CAAU,EAC3BC,IAAY,IAChB,GAAIA,IAAY,KACXF,EAAW,GAAGA,QACZ,OAER,OAAOH,EAAa,MAAM,EAAGG,CAAQ,EAAE,KAAK,GAAG,EAAI,IAAMF,EAAW,MAAMG,CAAU,EAAE,KAAK,GAAG,CAC/F,CAgBA,MAAME,GAA4B,CACjC,KAAM,IACN,KAAM,OACN,OAAQ,CAAA,EACR,MAAO,CAAA,EACP,KAAM,GACN,SAAU,IACV,QAAS,CAAA,EACT,KAAM,CAAA,EACN,eAAgB,MACjB,EASA,SAASC,GAAcpB,EAAM,CAC5B,GAAI,CAACA,EAAM,GAAIxC,GAAW,CACzB,MAAM6D,EAAS,SAAS,cAAc,MAAM,EAC5CrB,EAAOqB,GAAUA,EAAO,aAAa,MAAM,GAAK,IAChDrB,EAAOA,EAAK,QAAQ,iBAAkB,EAAE,CACzC,MAAOA,EAAO,IACd,OAAIA,EAAK,CAAC,IAAM,KAAOA,EAAK,CAAC,IAAM,MAAKA,EAAO,IAAMA,GAC9ChB,GAAoBgB,CAAI,CAChC,CACA,MAAMsB,GAAiB,UACvB,SAASC,GAAWvB,EAAMZ,EAAU,CACnC,OAAOY,EAAK,QAAQsB,GAAgB,GAAG,EAAIlC,CAC5C,CAGA,SAASoC,GAAmBC,EAAIC,EAAQ,CACvC,MAAMC,EAAU,SAAS,gBAAgB,sBAAA,EACnCC,EAASH,EAAG,sBAAA,EAClB,MAAO,CACN,SAAUC,EAAO,SACjB,KAAME,EAAO,KAAOD,EAAQ,MAAQD,EAAO,MAAQ,GACnD,IAAKE,EAAO,IAAMD,EAAQ,KAAOD,EAAO,KAAO,EAAA,CAEjD,CACA,MAAMG,GAAwB,KAAO,CACpC,KAAM,OAAO,QACb,IAAK,OAAO,OACb,GACA,SAASC,GAAiBd,EAAU,CACnC,IAAIe,EACJ,GAAI,OAAQf,EAAU,CACrB,MAAMgB,EAAahB,EAAS,GACtBiB,EAAe,OAAOD,GAAe,UAAYA,EAAW,WAAW,GAAG,EAkC1EP,EAAK,OAAOO,GAAe,SAAWC,EAAe,SAAS,eAAeD,EAAW,MAAM,CAAC,CAAC,EAAI,SAAS,cAAcA,CAAU,EAAIA,EAC/I,GAAI,CAACP,EAEJ,OAEDM,EAAkBP,GAAmBC,EAAIT,CAAQ,CAClD,MAAOe,EAAkBf,EACrB,mBAAoB,SAAS,gBAAgB,MAAO,OAAO,SAASe,CAAe,EAClF,OAAO,SAASA,EAAgB,MAAQ,KAAOA,EAAgB,KAAO,OAAO,QAASA,EAAgB,KAAO,KAAOA,EAAgB,IAAM,OAAO,OAAO,CAC9J,CACA,SAASG,GAAajD,EAAMkD,EAAO,CAClC,OAAQ,QAAQ,MAAQ,QAAQ,MAAM,SAAWA,EAAQ,IAAMlD,CAChE,CACA,MAAMmD,OAAsC,IAC5C,SAASC,GAAmB/B,EAAKgC,EAAgB,CAChDF,GAAgB,IAAI9B,EAAKgC,CAAc,CACxC,CACA,SAASC,GAAuBjC,EAAK,CACpC,MAAMkC,EAASJ,GAAgB,IAAI9B,CAAG,EACtC,OAAA8B,GAAgB,OAAO9B,CAAG,EACnBkC,CACR,CAOA,SAASC,GAAgBC,EAAO,CAC/B,OAAO,OAAOA,GAAU,UAAYA,GAAS,OAAOA,GAAU,QAC/D,CACA,SAASC,GAAYC,EAAM,CAC1B,OAAO,OAAOA,GAAS,UAAY,OAAOA,GAAS,QACpD,CAYA,SAASzD,GAAW0D,EAAQ,CAC3B,MAAMvD,EAAQ,CAAA,EACd,GAAIuD,IAAW,IAAMA,IAAW,IAAK,OAAOvD,EAC5C,MAAMwD,GAAgBD,EAAO,CAAC,IAAM,IAAMA,EAAO,MAAM,CAAC,EAAIA,GAAQ,MAAM,GAAG,EAC7E,QAASzH,EAAI,EAAGA,EAAI0H,EAAa,OAAQ,EAAE1H,EAAG,CAC7C,MAAM2H,EAAcD,EAAa1H,CAAC,EAAE,QAAQ0C,GAAS,GAAG,EAClDkF,EAAQD,EAAY,QAAQ,GAAG,EAC/BzC,EAAMxB,GAAOkE,EAAQ,EAAID,EAAcA,EAAY,MAAM,EAAGC,CAAK,CAAC,EAClEtC,EAAQsC,EAAQ,EAAI,KAAOlE,GAAOiE,EAAY,MAAMC,EAAQ,CAAC,CAAC,EACpE,GAAI1C,KAAOhB,EAAO,CACjB,IAAI2D,EAAe3D,EAAMgB,CAAG,EACvBE,GAAQyC,CAAY,MAAkB3D,EAAMgB,CAAG,EAAI,CAAC2C,CAAY,GACrEA,EAAa,KAAKvC,CAAK,CACxB,MAAOpB,EAAMgB,CAAG,EAAII,CACrB,CACA,OAAOpB,CACR,CAUA,SAASO,GAAeP,EAAO,CAC9B,IAAIuD,EAAS,GACb,QAASvC,KAAOhB,EAAO,CACtB,MAAMoB,EAAQpB,EAAMgB,CAAG,EAEvB,GADAA,EAAM3B,GAAe2B,CAAG,EACpBI,GAAS,KAAM,CACdA,IAAU,SAAQmC,IAAWA,EAAO,OAAS,IAAM,IAAMvC,GAC7D,QACD,EACCE,GAAQE,CAAK,EAAIA,EAAM,IAAKtD,GAAMA,GAAKsB,GAAiBtB,CAAC,CAAC,EAAI,CAACsD,GAAShC,GAAiBgC,CAAK,CAAC,GAAG,QAASA,GAAU,CACjHA,IAAU,SACbmC,IAAWA,EAAO,OAAS,IAAM,IAAMvC,EACnCI,GAAS,OAAMmC,GAAU,IAAMnC,GAErC,CAAC,CACF,CACA,OAAOmC,CACR,CASA,SAASK,GAAe5D,EAAO,CAC9B,MAAM6D,EAAkB,CAAA,EACxB,UAAW7C,KAAOhB,EAAO,CACxB,MAAMoB,EAAQpB,EAAMgB,CAAG,EACnBI,IAAU,SAAQyC,EAAgB7C,CAAG,EAAIE,GAAQE,CAAK,EAAIA,EAAM,IAAKtD,GAAMA,GAAK,KAAO,KAAO,GAAKA,CAAC,EAAIsD,GAAS,KAAOA,EAAQ,GAAKA,EAC1I,CACA,OAAOyC,CACR,CAMA,SAASC,IAAe,CACvB,IAAIC,EAAW,CAAA,EACf,SAASC,EAAIC,EAAS,CACrB,OAAAF,EAAS,KAAKE,CAAO,EACd,IAAM,CACZ,MAAMnI,EAAIiI,EAAS,QAAQE,CAAO,EAC9BnI,EAAI,IAAIiI,EAAS,OAAOjI,EAAG,CAAC,CACjC,CACD,CACA,SAASoI,GAAQ,CAChBH,EAAW,CAAA,CACZ,CACA,MAAO,CACN,IAAAC,EACA,KAAM,IAAMD,EAAS,MAAA,EACrB,MAAAG,CAAA,CAEF,CAsDA,SAASC,GAAiBC,EAAO/C,EAAIC,EAAM+C,EAAQf,EAAMgB,EAAkBC,GAAOA,IAAM,CACvF,MAAMC,EAAqBH,IAAWA,EAAO,eAAef,CAAI,EAAIe,EAAO,eAAef,CAAI,GAAK,IACnG,MAAO,IAAM,IAAI,QAAQ,CAACmB,EAASC,IAAW,CAC7C,MAAMC,EAAQC,GAAU,CACnBA,IAAU,GAAOF,EAAOG,GAAkB,EAAG,CAChD,KAAAvD,EACA,GAAAD,CAAA,CACA,CAAC,EACOuD,aAAiB,MAAOF,EAAOE,CAAK,EACpCzB,GAAgByB,CAAK,EAAGF,EAAOG,GAAkB,EAAG,CAC5D,KAAMxD,EACN,GAAIuD,CAAA,CACJ,CAAC,GAEGJ,GAAsBH,EAAO,eAAef,CAAI,IAAMkB,GAAsB,OAAOI,GAAU,YAAYJ,EAAmB,KAAKI,CAAK,EAC1IH,EAAA,EAEF,EACMK,EAAcR,EAAe,IAAMF,EAAM,KAAKC,GAAUA,EAAO,UAAUf,CAAI,EAAGjC,EAAIC,EAA4GqD,CAAI,CAAC,EAC3M,IAAII,EAAY,QAAQ,QAAQD,CAAW,EACvCV,EAAM,OAAS,IAAGW,EAAYA,EAAU,KAAKJ,CAAI,GAqBrDI,EAAU,MAAOC,GAAQN,EAAOM,CAAG,CAAC,CACrC,CAAC,CACF,CA6BA,SAASC,GAAwBC,EAASC,EAAW9D,EAAIC,EAAMgD,EAAkBC,GAAOA,IAAM,CAC7F,MAAMa,EAAS,CAAA,EACf,UAAWf,KAAUa,EAEpB,UAAW5B,KAAQe,EAAO,WAAY,CACrC,IAAIgB,EAAehB,EAAO,WAAWf,CAAI,EAwBzC,GAAI,EAAA6B,IAAc,oBAAsB,CAACd,EAAO,UAAUf,CAAI,GAC9D,GAAIgC,GAAiBD,CAAY,EAAG,CACnC,MAAMjB,GAASiB,EAAa,WAAaA,GAAcF,CAAS,EAChEf,GAASgB,EAAO,KAAKjB,GAAiBC,EAAO/C,EAAIC,EAAM+C,EAAQf,EAAMgB,CAAc,CAAC,CACrF,KAAO,CACN,IAAIiB,EAAmBF,EAAA,EAQvBD,EAAO,KAAK,IAAMG,EAAiB,KAAMC,GAAa,CACrD,GAAI,CAACA,EAAU,MAAM,IAAI,MAAM,+BAA+BlC,CAAI,SAASe,EAAO,IAAI,GAAG,EACzF,MAAMoB,EAAoBC,GAAWF,CAAQ,EAAIA,EAAS,QAAUA,EACpEnB,EAAO,KAAKf,CAAI,EAAIkC,EACpBnB,EAAO,WAAWf,CAAI,EAAImC,EAC1B,MAAMrB,GAASqB,EAAkB,WAAaA,GAAmBN,CAAS,EAC1E,OAAOf,GAASD,GAAiBC,EAAO/C,EAAIC,EAAM+C,EAAQf,EAAMgB,CAAc,EAAA,CAC/E,CAAC,CAAC,CACH,CACD,CAED,OAAOc,CACR,CAyBA,SAASO,GAAuBtE,EAAIC,EAAM,CACzC,MAAMsE,EAAiB,CAAA,EACjBC,EAAkB,CAAA,EAClBC,EAAkB,CAAA,EAClBC,EAAM,KAAK,IAAIzE,EAAK,QAAQ,OAAQD,EAAG,QAAQ,MAAM,EAC3D,QAASvF,EAAI,EAAGA,EAAIiK,EAAKjK,IAAK,CAC7B,MAAMkK,EAAa1E,EAAK,QAAQxF,CAAC,EAC7BkK,IAAgB3E,EAAG,QAAQ,KAAMgD,GAAWvD,GAAkBuD,EAAQ2B,CAAU,CAAC,EAAGH,EAAgB,KAAKG,CAAU,EAClHJ,EAAe,KAAKI,CAAU,GACnC,MAAMC,EAAW5E,EAAG,QAAQvF,CAAC,EACzBmK,IACE3E,EAAK,QAAQ,KAAM+C,GAAWvD,GAAkBuD,EAAQ4B,CAAQ,CAAC,GAAGH,EAAgB,KAAKG,CAAQ,EAExG,CACA,MAAO,CACNL,EACAC,EACAC,CAAA,CAEF,CC5rBA,IAAII,GAAqB,IAAM,SAAS,SAAW,KAAO,SAAS,KAMnE,SAASC,GAAsBzF,EAAMZ,EAAU,CAC9C,KAAM,CAAE,SAAAW,EAAU,OAAA8C,EAAQ,KAAArD,CAAA,EAASJ,EAC7BK,EAAUO,EAAK,QAAQ,GAAG,EAChC,GAAIP,EAAU,GAAI,CACjB,IAAIiG,EAAWlG,EAAK,SAASQ,EAAK,MAAMP,CAAO,CAAC,EAAIO,EAAK,MAAMP,CAAO,EAAE,OAAS,EAC7EkG,EAAenG,EAAK,MAAMkG,CAAQ,EACtC,OAAIC,EAAa,CAAC,IAAM,QAAoB,IAAMA,GAC3C7F,GAAU6F,EAAc,EAAE,CAClC,CACA,OAAO7F,GAAUC,EAAUC,CAAI,EAAI6C,EAASrD,CAC7C,CACA,SAASoG,GAAoB5F,EAAM6F,EAAcxG,EAAiByG,EAAS,CAC1E,IAAIC,EAAY,CAAA,EACZC,EAAY,CAAA,EACZC,EAAa,KACjB,MAAMC,EAAkB,CAAC,CAAE,MAAAC,KAAY,CACtC,MAAMxF,EAAK8E,GAAsBzF,EAAM,QAAQ,EACzCY,EAAOvB,EAAgB,MACvB+G,EAAYP,EAAa,MAC/B,IAAI1D,EAAQ,EACZ,GAAIgE,EAAO,CAGV,GAFA9G,EAAgB,MAAQsB,EACxBkF,EAAa,MAAQM,EACjBF,GAAcA,IAAerF,EAAM,CACtCqF,EAAa,KACb,MACD,CACA9D,EAAQiE,EAAYD,EAAM,SAAWC,EAAU,SAAW,CAC3D,QAAezF,CAAE,EACjBoF,EAAU,QAASM,GAAa,CAC/BA,EAAShH,EAAgB,MAAOuB,EAAM,CACrC,MAAAuB,EACA,KAAM,MACN,UAAWA,EAAQA,EAAQ,EAAI,UAAY,OAAS,EAAA,CACpD,CACF,CAAC,CACF,EACA,SAASmE,GAAiB,CACzBL,EAAa5G,EAAgB,KAC9B,CACA,SAASkH,EAAOC,EAAU,CACzBT,EAAU,KAAKS,CAAQ,EACvB,MAAMC,EAAW,IAAM,CACtB,MAAMC,EAAQX,EAAU,QAAQS,CAAQ,EACpCE,EAAQ,IAAIX,EAAU,OAAOW,EAAO,CAAC,CAC1C,EACA,OAAAV,EAAU,KAAKS,CAAQ,EAChBA,CACR,CACA,SAASE,GAAuB,CAC/B,GAAI,SAAS,kBAAoB,SAAU,CAC1C,KAAM,CAAE,QAAAC,CAAAA,EAAY,OACpB,GAAI,CAACA,EAAQ,MAAO,OACpBA,EAAQ,aAAaC,GAAO,CAAA,EAAID,EAAQ,MAAO,CAAE,OAAQ/E,IAAsB,CAAG,EAAG,EAAE,CACxF,CACD,CACA,SAASiF,GAAU,CAClB,UAAWL,KAAYT,EAAWS,EAAA,EAClCT,EAAY,CAAA,EACZ,OAAO,oBAAoB,WAAYE,CAAe,EACtD,OAAO,oBAAoB,WAAYS,CAAoB,EAC3D,SAAS,oBAAoB,mBAAoBA,CAAoB,CACtE,CACA,OAAA,OAAO,iBAAiB,WAAYT,CAAe,EACnD,OAAO,iBAAiB,WAAYS,CAAoB,EACxD,SAAS,iBAAiB,mBAAoBA,CAAoB,EAC3D,CACN,eAAAL,EACA,OAAAC,EACA,QAAAO,CAAA,CAEF,CAIA,SAASC,GAAWC,EAAMC,EAASC,EAASC,EAAW,GAAOC,EAAgB,GAAO,CACpF,MAAO,CACN,KAAAJ,EACA,QAAAC,EACA,QAAAC,EACA,SAAAC,EACA,SAAU,OAAO,QAAQ,OACzB,OAAQC,EAAgBvF,KAA0B,IAAA,CAEpD,CACA,SAASwF,GAA0BrH,EAAM,CACxC,KAAM,CAAE,QAAA4G,EAAS,SAAAxH,GAAa,OACxBC,EAAkB,CAAE,MAAOoG,GAAsBzF,EAAMZ,CAAQ,CAAA,EAC/DyG,EAAe,CAAE,MAAOe,EAAQ,KAAA,EACjCf,EAAa,OAAOyB,EAAejI,EAAgB,MAAO,CAC9D,KAAM,KACN,QAASA,EAAgB,MACzB,QAAS,KACT,SAAUuH,EAAQ,OAAS,EAC3B,SAAU,GACV,OAAQ,IAAA,EACN,EAAI,EACP,SAASU,EAAe3G,EAAIwF,EAAOL,EAAS,CAU3C,MAAMyB,EAAYvH,EAAK,QAAQ,GAAG,EAC5BwH,EAAMD,EAAY,IAAMnI,EAAS,MAAQ,SAAS,cAAc,MAAM,EAAIY,EAAOA,EAAK,MAAMuH,CAAS,GAAK5G,EAAK6E,GAAA,EAAuBxF,EAAOW,EACnJ,GAAI,CACHiG,EAAQd,EAAU,eAAiB,WAAW,EAAEK,EAAO,GAAIqB,CAAG,EAC9D3B,EAAa,MAAQM,CACtB,OAAS7B,EAAK,CAER,QAAQ,MAAMA,CAAG,EACtBlF,EAAS0G,EAAU,UAAY,QAAQ,EAAE0B,CAAG,CAC7C,CACD,CACA,SAAS1B,EAAQnF,EAAI8G,EAAM,CAC1BH,EAAe3G,EAAIkG,GAAO,CAAA,EAAID,EAAQ,MAAOG,GAAWlB,EAAa,MAAM,KAAMlF,EAAIkF,EAAa,MAAM,QAAS,EAAI,EAAG4B,EAAM,CAAE,SAAU5B,EAAa,MAAM,QAAA,CAAU,EAAG,EAAI,EAC9KxG,EAAgB,MAAQsB,CACzB,CACA,SAAS+G,EAAK/G,EAAI8G,EAAM,CACvB,MAAME,EAAed,GAAO,CAAA,EAAIhB,EAAa,MAAOe,EAAQ,MAAO,CAClE,QAASjG,EACT,OAAQkB,GAAA,CAAsB,CAC9B,EAEDyF,EAAeK,EAAa,QAASA,EAAc,EAAI,EACvDL,EAAe3G,EAAIkG,GAAO,CAAA,EAAIE,GAAW1H,EAAgB,MAAOsB,EAAI,IAAI,EAAG,CAAE,SAAUgH,EAAa,SAAW,GAAKF,CAAI,EAAG,EAAK,EAChIpI,EAAgB,MAAQsB,CACzB,CACA,MAAO,CACN,SAAUtB,EACV,MAAOwG,EACP,KAAA6B,EACA,QAAA5B,CAAA,CAEF,CAMA,SAAS8B,GAAiB5H,EAAM,CAC/BA,EAAOoB,GAAcpB,CAAI,EACzB,MAAM6H,EAAoBR,GAA0BrH,CAAI,EAClD8H,EAAmBlC,GAAoB5F,EAAM6H,EAAkB,MAAOA,EAAkB,SAAUA,EAAkB,OAAO,EACjI,SAASE,EAAG5F,EAAO6F,EAAmB,GAAM,CACtCA,GAAkBF,EAAiB,eAAA,EACxC,QAAQ,GAAG3F,CAAK,CACjB,CACA,MAAM8F,EAAgBpB,GAAO,CAC5B,SAAU,GACV,KAAA7G,EACA,GAAA+H,EACA,WAAYxG,GAAW,KAAK,KAAMvB,CAAI,CAAA,EACpC6H,EAAmBC,CAAgB,EACtC,OAAA,OAAO,eAAeG,EAAe,WAAY,CAChD,WAAY,GACZ,IAAK,IAAMJ,EAAkB,SAAS,KAAA,CACtC,EACD,OAAO,eAAeI,EAAe,QAAS,CAC7C,WAAY,GACZ,IAAK,IAAMJ,EAAkB,MAAM,KAAA,CACnC,EACMI,CACR,CA2BA,SAASC,GAAqBlI,EAAM,CACnC,OAAAA,EAAO,SAAS,KAAOA,GAAQ,SAAS,SAAW,SAAS,OAAS,GAChEA,EAAK,SAAS,GAAG,IAAGA,GAAQ,KAK1B4H,GAAiB5H,CAAI,CAC7B,CA0EA,MAAMmI,GAAa,CAClB,KAAM,EACN,MAAO,EACR,EACMC,GAAiB,eACvB,SAASC,GAAapJ,EAAM,CAC3B,GAAI,CAACA,EAAM,MAAO,CAAC,EAAE,EACrB,GAAIA,IAAS,IAAK,MAAO,CAAC,CAACkJ,EAAU,CAAC,EACtC,GAAI,CAAClJ,EAAK,WAAW,GAAG,QAAS,IAAI,MAAuH,iBAAiBA,CAAI,GAAG,EACpL,SAASqJ,EAAMC,EAAS,CACvB,MAAM,IAAI,MAAM,QAAQpC,CAAK,MAAMqC,CAAM,MAAMD,CAAO,EAAE,CACzD,CACA,IAAIpC,EAAQ,EACRsC,EAAgBtC,EACpB,MAAMuC,EAAS,CAAA,EACf,IAAIxH,EACJ,SAASyH,GAAkB,CACtBzH,GAASwH,EAAO,KAAKxH,CAAO,EAChCA,EAAU,CAAA,CACX,CACA,IAAI9F,EAAI,EACJwN,EACAJ,EAAS,GACTK,EAAW,GACf,SAASC,GAAgB,CACnBN,IACDrC,IAAU,EAAGjF,EAAQ,KAAK,CAC7B,KAAM,EACN,MAAOsH,CAAA,CACP,EACQrC,IAAU,GAAKA,IAAU,GAAKA,IAAU,GAC5CjF,EAAQ,OAAS,IAAM0H,IAAS,KAAOA,IAAS,MAAMN,EAAM,uBAAuBE,CAAM,8CAA8C,EAC3ItH,EAAQ,KAAK,CACZ,KAAM,EACN,MAAOsH,EACP,OAAQK,EACR,WAAYD,IAAS,KAAOA,IAAS,IACrC,SAAUA,IAAS,KAAOA,IAAS,GAAA,CACnC,KACW,iCAAiC,EAC9CJ,EAAS,GACV,CACA,SAASO,GAAkB,CAC1BP,GAAUI,CACX,CACA,KAAOxN,EAAI6D,EAAK,QAEf,OADA2J,EAAO3J,EAAK7D,GAAG,EACP+K,EAAA,CACP,IAAK,GACAyC,IAAS,MACZH,EAAgBtC,EAChBA,EAAQ,GACEyC,IAAS,KACfJ,GAAQM,EAAA,EACZH,EAAA,GACUC,IAAS,KACnBE,EAAA,EACA3C,EAAQ,GACF4C,EAAA,EACP,MACD,OACCA,EAAA,EACA5C,EAAQsC,EACR,MACD,IAAK,GACAG,IAAS,IAAKzC,EAAQ,EACjBiC,GAAe,KAAKQ,CAAI,EAAGG,EAAA,GAEnCD,EAAA,EACA3C,EAAQ,EACJyC,IAAS,KAAOA,IAAS,KAAOA,IAAS,KAAKxN,KAEnD,MACD,IAAK,GACAwN,IAAS,IAASC,EAASA,EAAS,OAAS,CAAC,GAAK,KAAMA,EAAWA,EAAS,MAAM,EAAG,EAAE,EAAID,EAC3FzC,EAAQ,EACR0C,GAAYD,EACjB,MACD,IAAK,GACJE,EAAA,EACA3C,EAAQ,EACJyC,IAAS,KAAOA,IAAS,KAAOA,IAAS,KAAKxN,IAClDyN,EAAW,GACX,MACD,QACCP,EAAM,eAAe,EACrB,KAAA,CAGH,OAAInC,IAAU,GAAGmC,EAAM,uCAAuCE,CAAM,GAAG,EACvEM,EAAA,EACAH,EAAA,EACOD,CACR,CAGA,MAAMM,GAAqB,SACrBC,GAA2B,CAChC,UAAW,GACX,OAAQ,GACR,MAAO,GACP,IAAK,EACN,EACMC,GAAiB,sBAQvB,SAASC,GAAeC,EAAUC,EAAc,CAC/C,MAAMC,EAAUzC,GAAO,GAAIoC,GAA0BI,CAAY,EAC3DE,EAAQ,CAAA,EACd,IAAIC,EAAUF,EAAQ,MAAQ,IAAM,GACpC,MAAMG,EAAO,CAAA,EACb,UAAWvI,KAAWkI,EAAU,CAC/B,MAAMM,EAAgBxI,EAAQ,OAAS,CAAA,EAAK,CAAC,EAAE,EAC3CoI,EAAQ,QAAU,CAACpI,EAAQ,SAAQsI,GAAW,KAClD,QAASG,EAAa,EAAGA,EAAazI,EAAQ,OAAQyI,IAAc,CACnE,MAAMC,EAAQ1I,EAAQyI,CAAU,EAChC,IAAIE,EAAkB,IAAMP,EAAQ,UAAY,IAAM,GACtD,GAAIM,EAAM,OAAS,EACbD,IAAYH,GAAW,KAC5BA,GAAWI,EAAM,MAAM,QAAQV,GAAgB,MAAM,EACrDW,GAAmB,WACTD,EAAM,OAAS,EAAG,CAC5B,KAAM,CAAE,MAAAlJ,EAAO,WAAAoJ,EAAY,SAAAC,EAAU,OAAAC,GAAWJ,EAChDH,EAAK,KAAK,CACT,KAAM/I,EACN,WAAAoJ,EACA,SAAAC,CAAA,CACA,EACD,MAAM/M,EAAKgN,GAAkBhB,GAC7B,GAAIhM,IAAOgM,GAAoB,CAC9Ba,GAAmB,GACnB,GAAI,CACH,IAAI,OAAO,IAAI7M,CAAE,GAAG,CACrB,OAASsH,EAAK,CACb,MAAM,IAAI,MAAM,oCAAoC5D,CAAK,MAAM1D,CAAE,MAAQsH,EAAI,OAAO,CACrF,CACD,CACA,IAAI2F,EAAaH,EAAa,OAAO9M,CAAE,WAAWA,CAAE,OAAS,IAAIA,CAAE,IAC9D2M,IAAYM,EAAaF,GAAY7I,EAAQ,OAAS,EAAI,OAAO+I,CAAU,IAAM,IAAMA,GACxFF,IAAUE,GAAc,KAC5BT,GAAWS,EACXJ,GAAmB,GACfE,IAAUF,GAAmB,IAC7BC,IAAYD,GAAmB,KAC/B7M,IAAO,OAAM6M,GAAmB,IACrC,CACAH,EAAc,KAAKG,CAAe,CACnC,CACAN,EAAM,KAAKG,CAAa,CACzB,CACA,GAAIJ,EAAQ,QAAUA,EAAQ,IAAK,CAClC,MAAMlO,EAAImO,EAAM,OAAS,EACzBA,EAAMnO,CAAC,EAAEmO,EAAMnO,CAAC,EAAE,OAAS,CAAC,GAAK,iBAClC,CACKkO,EAAQ,SAAQE,GAAW,MAC5BF,EAAQ,IAAKE,GAAW,IACnBF,EAAQ,QAAU,CAACE,EAAQ,SAAS,GAAG,IAAGA,GAAW,WAC9D,MAAMxM,EAAK,IAAI,OAAOwM,EAASF,EAAQ,UAAY,GAAK,GAAG,EAC3D,SAASY,EAAMjL,EAAM,CACpB,MAAMkL,EAAQlL,EAAK,MAAMjC,CAAE,EACrBoN,EAAS,CAAA,EACf,GAAI,CAACD,EAAO,OAAO,KACnB,QAAS/O,EAAI,EAAGA,EAAI+O,EAAM,OAAQ/O,IAAK,CACtC,MAAMsF,EAAQyJ,EAAM/O,CAAC,GAAK,GACpBkF,EAAMmJ,EAAKrO,EAAI,CAAC,EACtBgP,EAAO9J,EAAI,IAAI,EAAII,GAASJ,EAAI,WAAaI,EAAM,MAAM,GAAG,EAAIA,CACjE,CACA,OAAO0J,CACR,CACA,SAASC,EAAUD,EAAQ,CAC1B,IAAInL,EAAO,GACPqL,EAAuB,GAC3B,UAAWpJ,KAAWkI,EAAU,EAC3B,CAACkB,GAAwB,CAACrL,EAAK,SAAS,GAAG,KAAGA,GAAQ,KAC1DqL,EAAuB,GACvB,UAAWV,KAAS1I,EAAS,GAAI0I,EAAM,OAAS,KAAWA,EAAM,cACxDA,EAAM,OAAS,EAAG,CAC1B,KAAM,CAAE,MAAAlJ,EAAO,WAAAoJ,EAAY,SAAAC,CAAA,EAAaH,EAClCW,EAAQ7J,KAAS0J,EAASA,EAAO1J,CAAK,EAAI,GAChD,GAAIF,GAAQ+J,CAAK,GAAK,CAACT,QAAkB,IAAI,MAAM,mBAAmBpJ,CAAK,2DAA2D,EACtI,MAAMlC,EAAOgC,GAAQ+J,CAAK,EAAIA,EAAM,KAAK,GAAG,EAAIA,EAChD,GAAI,CAAC/L,EAAM,GAAIuL,EACV7I,EAAQ,OAAS,IAAOjC,EAAK,SAAS,GAAG,EAAGA,EAAOA,EAAK,MAAM,EAAG,EAAE,EAClEqL,EAAuB,QACtB,OAAM,IAAI,MAAM,2BAA2B5J,CAAK,GAAG,EAC1DzB,GAAQT,CACT,CACD,CACA,OAAOS,GAAQ,GAChB,CACA,MAAO,CACN,GAAAjC,EACA,MAAAuM,EACA,KAAAE,EACA,MAAAS,EACA,UAAAG,CAAA,CAEF,CAUA,SAASG,GAAkBzQ,EAAGO,EAAG,CAChC,IAAIc,EAAI,EACR,KAAOA,EAAIrB,EAAE,QAAUqB,EAAId,EAAE,QAAQ,CACpC,MAAMmQ,EAAOnQ,EAAEc,CAAC,EAAIrB,EAAEqB,CAAC,EACvB,GAAIqP,EAAM,OAAOA,EACjBrP,GACD,CACA,OAAIrB,EAAE,OAASO,EAAE,OAAeP,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAM,GAAK,GAAK,EAC5DA,EAAE,OAASO,EAAE,OAAeA,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAM,GAAK,EAAI,GAClE,CACR,CAQA,SAASoQ,GAAuB3Q,EAAGO,EAAG,CACrC,IAAIc,EAAI,EACR,MAAMuP,EAAS5Q,EAAE,MACX6Q,EAAStQ,EAAE,MACjB,KAAOc,EAAIuP,EAAO,QAAUvP,EAAIwP,EAAO,QAAQ,CAC9C,MAAMC,EAAOL,GAAkBG,EAAOvP,CAAC,EAAGwP,EAAOxP,CAAC,CAAC,EACnD,GAAIyP,EAAM,OAAOA,EACjBzP,GACD,CACA,GAAI,KAAK,IAAIwP,EAAO,OAASD,EAAO,MAAM,IAAM,EAAG,CAClD,GAAIG,GAAoBH,CAAM,EAAG,MAAO,GACxC,GAAIG,GAAoBF,CAAM,EAAG,MAAO,EACzC,CACA,OAAOA,EAAO,OAASD,EAAO,MAC/B,CAOA,SAASG,GAAoBvB,EAAO,CACnC,MAAMwB,EAAOxB,EAAMA,EAAM,OAAS,CAAC,EACnC,OAAOA,EAAM,OAAS,GAAKwB,EAAKA,EAAK,OAAS,CAAC,EAAI,CACpD,CACA,MAAMC,GAA+B,CACpC,OAAQ,GACR,IAAK,GACL,UAAW,EACZ,EAGA,SAASC,GAAyBtH,EAAQuH,EAAQ5B,EAAS,CAC1D,MAAM6B,EAAShC,GAAed,GAAa1E,EAAO,IAAI,EAAG2F,CAAO,EAW1D8B,EAAUvE,GAAOsE,EAAQ,CAC9B,OAAAxH,EACA,OAAAuH,EACA,SAAU,CAAA,EACV,MAAO,CAAA,CAAC,CACR,EACD,OAAIA,GACC,CAACE,EAAQ,OAAO,SAAY,CAACF,EAAO,OAAO,SAASA,EAAO,SAAS,KAAKE,CAAO,EAE9EA,CACR,CAUA,SAASC,GAAoBC,EAAQC,EAAe,CACnD,MAAMC,EAAW,CAAA,EACXC,MAAiC,IACvCF,EAAgBG,GAAaV,GAA8BO,CAAa,EACxE,SAASI,EAAiB/I,EAAM,CAC/B,OAAO6I,EAAW,IAAI7I,CAAI,CAC3B,CACA,SAASgJ,EAASjI,EAAQuH,EAAQW,EAAgB,CACjD,MAAMC,EAAY,CAACD,EACbE,EAAuBC,GAAqBrI,CAAM,EAExDoI,EAAqB,QAAUF,GAAkBA,EAAe,OAChE,MAAMvC,EAAUoC,GAAaH,EAAe5H,CAAM,EAC5CsI,EAAoB,CAACF,CAAoB,EAC/C,GAAI,UAAWpI,EAAQ,CACtB,MAAMuI,EAAU,OAAOvI,EAAO,OAAU,SAAW,CAACA,EAAO,KAAK,EAAIA,EAAO,MAC3E,UAAWwI,MAASD,EAASD,EAAkB,KAAKD,GAAqBnF,GAAO,CAAA,EAAIkF,EAAsB,CACzG,WAAYF,EAAiBA,EAAe,OAAO,WAAaE,EAAqB,WACrF,KAAMI,GACN,QAASN,EAAiBA,EAAe,OAASE,CAAA,CAClD,CAAC,CAAC,CACJ,CACA,IAAIX,EACAgB,EACJ,UAAWC,KAAoBJ,EAAmB,CACjD,KAAM,CAAE,KAAAhN,IAASoN,EACjB,GAAInB,GAAUjM,GAAK,CAAC,IAAM,IAAK,CAC9B,MAAMqN,GAAapB,EAAO,OAAO,KAC3BqB,GAAkBD,GAAWA,GAAW,OAAS,CAAC,IAAM,IAAM,GAAK,IACzED,EAAiB,KAAOnB,EAAO,OAAO,MAAQjM,IAAQsN,GAAkBtN,GACzE,CAgBA,GAdAmM,EAAUH,GAAyBoB,EAAkBnB,EAAQ5B,CAAO,EAEhEuC,EACHA,EAAe,MAAM,KAAKT,CAAO,GAGjCgB,EAAkBA,GAAmBhB,EACjCgB,IAAoBhB,GAASgB,EAAgB,MAAM,KAAKhB,CAAO,EAC/DU,GAAanI,EAAO,MAAQ,CAAC6I,GAAcpB,CAAO,GAErDqB,EAAY9I,EAAO,IAAI,GAGrB+I,GAAYtB,CAAO,GAAGuB,EAAcvB,CAAO,EAC3CW,EAAqB,SAAU,CAClC,MAAMa,GAAWb,EAAqB,SACtC,QAAS3Q,GAAI,EAAGA,GAAIwR,GAAS,OAAQxR,KAAKwQ,EAASgB,GAASxR,EAAC,EAAGgQ,EAASS,GAAkBA,EAAe,SAASzQ,EAAC,CAAC,CACtH,CACAyQ,EAAiBA,GAAkBT,CACpC,CACA,OAAOgB,EAAkB,IAAM,CAC9BK,EAAYL,CAAe,CAC5B,EAAIS,EACL,CACA,SAASJ,EAAYK,EAAY,CAChC,GAAInK,GAAYmK,CAAU,EAAG,CAC5B,MAAM1B,EAAUK,EAAW,IAAIqB,CAAU,EACrC1B,IACHK,EAAW,OAAOqB,CAAU,EAC5BtB,EAAS,OAAOA,EAAS,QAAQJ,CAAO,EAAG,CAAC,EAC5CA,EAAQ,SAAS,QAAQqB,CAAW,EACpCrB,EAAQ,MAAM,QAAQqB,CAAW,EAEnC,KAAO,CACN,MAAM/F,EAAQ8E,EAAS,QAAQsB,CAAU,EACrCpG,EAAQ,KACX8E,EAAS,OAAO9E,EAAO,CAAC,EACpBoG,EAAW,OAAO,QAAiB,OAAOA,EAAW,OAAO,IAAI,EACpEA,EAAW,SAAS,QAAQL,CAAW,EACvCK,EAAW,MAAM,QAAQL,CAAW,EAEtC,CACD,CACA,SAASM,GAAY,CACpB,OAAOvB,CACR,CACA,SAASmB,EAAcvB,EAAS,CAC/B,MAAM1E,EAAQsG,GAAmB5B,EAASI,CAAQ,EAClDA,EAAS,OAAO9E,EAAO,EAAG0E,CAAO,EAC7BA,EAAQ,OAAO,MAAQ,CAACoB,GAAcpB,CAAO,GAAGK,EAAW,IAAIL,EAAQ,OAAO,KAAMA,CAAO,CAChG,CACA,SAASrH,EAAQ3E,EAAUC,EAAiB,CAC3C,IAAI+L,EACAhB,EAAS,CAAA,EACTnL,EACA2D,EACJ,GAAI,SAAUxD,GAAYA,EAAS,KAAM,CAExC,GADAgM,EAAUK,EAAW,IAAIrM,EAAS,IAAI,EAClC,CAACgM,EAAS,MAAMjH,GAAkB,EAAG,CAAE,SAAA/E,EAAU,EAWrDwD,EAAOwI,EAAQ,OAAO,KACtBhB,EAASvD,GAAOoG,GAAW5N,EAAgB,OAAQ+L,EAAQ,KAAK,OAAQpQ,GAAM,CAACA,EAAE,QAAQ,EAAE,OAAOoQ,EAAQ,OAASA,EAAQ,OAAO,KAAK,OAAQpQ,GAAMA,EAAE,QAAQ,EAAI,EAAE,EAAE,IAAKA,GAAMA,EAAE,IAAI,CAAC,EAAGoE,EAAS,QAAU6N,GAAW7N,EAAS,OAAQgM,EAAQ,KAAK,IAAKpQ,GAAMA,EAAE,IAAI,CAAC,CAAC,EAC3QiE,EAAOmM,EAAQ,UAAUhB,CAAM,CAChC,SAAWhL,EAAS,MAAQ,KAC3BH,EAAOG,EAAS,KAEhBgM,EAAUI,EAAS,KAAMjO,GAAMA,EAAE,GAAG,KAAK0B,CAAI,CAAC,EAC1CmM,IACHhB,EAASgB,EAAQ,MAAMnM,CAAI,EAC3B2D,EAAOwI,EAAQ,OAAO,KACtBA,EAAQ,KAAK,QAAS9K,GAAQ,CACzBA,EAAI,UAAY,CAAC8J,EAAO9J,EAAI,IAAI,GAAG,OAAO8J,EAAO9J,EAAI,IAAI,CAC9D,CAAC,OAEI,CAEN,GADA8K,EAAU/L,EAAgB,KAAOoM,EAAW,IAAIpM,EAAgB,IAAI,EAAImM,EAAS,KAAMjO,GAAMA,EAAE,GAAG,KAAK8B,EAAgB,IAAI,CAAC,EACxH,CAAC+L,EAAS,MAAMjH,GAAkB,EAAG,CACxC,SAAA/E,EACA,gBAAAC,CAAA,CACA,EACDuD,EAAOwI,EAAQ,OAAO,KACtBhB,EAASvD,GAAO,CAAA,EAAIxH,EAAgB,OAAQD,EAAS,MAAM,EAC3DH,EAAOmM,EAAQ,UAAUhB,CAAM,CAChC,CACA,MAAM5F,EAAU,CAAA,EAChB,IAAI0I,EAAgB9B,EACpB,KAAO8B,GACN1I,EAAQ,QAAQ0I,EAAc,MAAM,EACpCA,EAAgBA,EAAc,OAE/B,MAAO,CACN,KAAAtK,EACA,KAAA3D,EACA,OAAAmL,EACA,QAAA5F,EACA,KAAM2I,GAAgB3I,CAAO,CAAA,CAE/B,CACA8G,EAAO,QAAS5I,GAAUkJ,EAASlJ,CAAK,CAAC,EACzC,SAAS0K,GAAc,CACtB5B,EAAS,OAAS,EAClBC,EAAW,MAAA,CACZ,CACA,MAAO,CACN,SAAAG,EACA,QAAA7H,EACA,YAAA0I,EACA,YAAAW,EACA,UAAAL,EACA,iBAAApB,CAAA,CAEF,CAOA,SAASsB,GAAW7C,EAAQX,EAAM,CACjC,MAAM4D,EAAY,CAAA,EAClB,UAAW/M,KAAOmJ,EAAUnJ,KAAO8J,IAAQiD,EAAU/M,CAAG,EAAI8J,EAAO9J,CAAG,GACtE,OAAO+M,CACR,CAOA,SAASrB,GAAqBrI,EAAQ,CACrC,MAAM2J,EAAa,CAClB,KAAM3J,EAAO,KACb,SAAUA,EAAO,SACjB,KAAMA,EAAO,KACb,KAAMA,EAAO,MAAQ,CAAA,EACrB,QAASA,EAAO,QAChB,YAAaA,EAAO,YACpB,MAAO4J,GAAqB5J,CAAM,EAClC,SAAUA,EAAO,UAAY,CAAA,EAC7B,UAAW,CAAA,EACX,gBAAiC,IACjC,iBAAkC,IAClC,eAAgB,CAAA,EAChB,WAAY,eAAgBA,EAASA,EAAO,YAAc,KAAOA,EAAO,WAAa,CAAE,QAASA,EAAO,SAAA,CAAU,EAElH,OAAA,OAAO,eAAe2J,EAAY,OAAQ,CAAE,MAAO,CAAA,EAAI,EAChDA,CACR,CAMA,SAASC,GAAqB5J,EAAQ,CACrC,MAAM6J,EAAc,CAAA,EACdC,EAAQ9J,EAAO,OAAS,GAC9B,GAAI,cAAeA,EAAQ6J,EAAY,QAAUC,MAC5C,WAAW7K,KAAQe,EAAO,WAAY6J,EAAY5K,CAAI,EAAI,OAAO6K,GAAU,SAAWA,EAAM7K,CAAI,EAAI6K,EACzG,OAAOD,CACR,CAKA,SAAShB,GAAc7I,EAAQ,CAC9B,KAAOA,GAAQ,CACd,GAAIA,EAAO,OAAO,QAAS,MAAO,GAClCA,EAASA,EAAO,MACjB,CACA,MAAO,EACR,CAMA,SAASwJ,GAAgB3I,EAAS,CACjC,OAAOA,EAAQ,OAAO,CAACkJ,EAAM/J,IAAWkD,GAAO6G,EAAM/J,EAAO,IAAI,EAAG,EAAE,CACtE,CA2DA,SAASqJ,GAAmB5B,EAASI,EAAU,CAC9C,IAAImC,EAAQ,EACRC,EAAQpC,EAAS,OACrB,KAAOmC,IAAUC,GAAO,CACvB,MAAMC,EAAMF,EAAQC,GAAS,EACzBlD,GAAuBU,EAASI,EAASqC,CAAG,CAAC,EAAI,EAAGD,EAAQC,IACnDA,EAAM,CACpB,CACA,MAAMC,EAAoBC,GAAqB3C,CAAO,EACtD,OAAI0C,IACHF,EAAQpC,EAAS,YAAYsC,EAAmBF,EAAQ,CAAC,GAMnDA,CACR,CACA,SAASG,GAAqB3C,EAAS,CACtC,IAAI4C,EAAW5C,EACf,KAAO4C,EAAWA,EAAS,QAAQ,GAAItB,GAAYsB,CAAQ,GAAKtD,GAAuBU,EAAS4C,CAAQ,IAAM,EAAG,OAAOA,CACzH,CAQA,SAAStB,GAAY,CAAE,OAAA/I,GAAU,CAChC,MAAO,CAAC,EAAEA,EAAO,MAAQA,EAAO,YAAc,OAAO,KAAKA,EAAO,UAAU,EAAE,QAAUA,EAAO,SAC/F,CAQA,SAASsK,GAAQR,EAAO,CACvB,MAAMS,EAASC,GAAOC,EAAS,EACzBC,EAAeF,GAAOG,EAAgB,EAGtC5L,EAAQ6L,EAAS,IAAM,CAC5B,MAAM5N,EAAK6N,EAAMf,EAAM,EAAE,EAMzB,OAAOS,EAAO,QAAQvN,CAAE,CACzB,CAAC,EACK8N,EAAoBF,EAAS,IAAM,CACxC,KAAM,CAAE,QAAA/J,GAAY9B,EAAM,MACpB,CAAE,OAAAgM,GAAWlK,EACbmK,EAAenK,EAAQkK,EAAS,CAAC,EACjCE,EAAiBP,EAAa,QACpC,GAAI,CAACM,GAAgB,CAACC,EAAe,OAAQ,MAAO,GACpD,MAAMlI,EAAQkI,EAAe,UAAUxO,GAAkB,KAAK,KAAMuO,CAAY,CAAC,EACjF,GAAIjI,EAAQ,GAAI,OAAOA,EACvB,MAAMmI,EAAmBC,GAAgBtK,EAAQkK,EAAS,CAAC,CAAC,EAC5D,OAAOA,EAAS,GAAKI,GAAgBH,CAAY,IAAME,GAAoBD,EAAeA,EAAe,OAAS,CAAC,EAAE,OAASC,EAAmBD,EAAe,UAAUxO,GAAkB,KAAK,KAAMoE,EAAQkK,EAAS,CAAC,CAAC,CAAC,EAAIhI,CAChO,CAAC,EACKqI,EAAWR,EAAS,IAAME,EAAkB,MAAQ,IAAMO,GAAeX,EAAa,OAAQ3L,EAAM,MAAM,MAAM,CAAC,EACjHuM,EAAgBV,EAAS,IAAME,EAAkB,MAAQ,IAAMA,EAAkB,QAAUJ,EAAa,QAAQ,OAAS,GAAKhO,GAA0BgO,EAAa,OAAQ3L,EAAM,MAAM,MAAM,CAAC,EACtM,SAASwM,EAAS3U,EAAI,GAAI,CACzB,GAAI4U,GAAW5U,CAAC,EAAG,CAClB,MAAMN,EAAIiU,EAAOM,EAAMf,EAAM,OAAO,EAAI,UAAY,MAAM,EAAEe,EAAMf,EAAM,EAAE,CAAC,EAAE,MAAMZ,EAAI,EACvF,OAAIY,EAAM,gBAAkB,OAAO,SAAa,KAAe,wBAAyB,UAAU,SAAS,oBAAoB,IAAMxT,CAAC,EAC/HA,CACR,CACA,OAAO,QAAQ,QAAA,CAChB,CAuBA,MAAO,CACN,MAAAyI,EACA,KAAM6L,EAAS,IAAM7L,EAAM,MAAM,IAAI,EACrC,SAAAqM,EACA,cAAAE,EACA,SAAAC,CAAA,CAEF,CACA,SAASE,GAAkBC,EAAQ,CAClC,OAAOA,EAAO,SAAW,EAAIA,EAAO,CAAC,EAAIA,CAC1C,CAIA,MAAMC,GAA6BC,GAAgB,CAClD,KAAM,aACN,aAAc,CAAE,KAAM,CAAA,EACtB,MAAO,CACN,GAAI,CACH,KAAM,CAAC,OAAQ,MAAM,EACrB,SAAU,EAAA,EAEX,QAAS,QACT,YAAa,OACb,iBAAkB,OAClB,OAAQ,QACR,iBAAkB,CACjB,KAAM,OACN,QAAS,MAAA,EAEV,eAAgB,OAAA,EAEjB,QAAAtB,GACA,MAAMR,EAAO,CAAE,MAAA+B,GAAS,CACvB,MAAMC,EAAOC,GAASzB,GAAQR,CAAK,CAAC,EAC9B,CAAE,QAAAnE,CAAA,EAAY6E,GAAOC,EAAS,EAC9BuB,EAAUpB,EAAS,KAAO,CAC/B,CAACqB,GAAanC,EAAM,YAAanE,EAAQ,gBAAiB,oBAAoB,CAAC,EAAGmG,EAAK,SACvF,CAACG,GAAanC,EAAM,iBAAkBnE,EAAQ,qBAAsB,0BAA0B,CAAC,EAAGmG,EAAK,aAAA,EACtG,EACF,MAAO,IAAM,CACZ,MAAM7C,EAAW4C,EAAM,SAAWJ,GAAkBI,EAAM,QAAQC,CAAI,CAAC,EACvE,OAAOhC,EAAM,OAASb,EAAWzS,GAAE,IAAK,CACvC,eAAgBsV,EAAK,cAAgBhC,EAAM,iBAAmB,KAC9D,KAAMgC,EAAK,KACX,QAASA,EAAK,SACd,MAAOE,EAAQ,KAAA,EACb/C,CAAQ,CACZ,CACD,CACD,CAAC,EACD,SAASuC,GAAW,EAAG,CACtB,GAAI,EAAA,EAAE,SAAW,EAAE,QAAU,EAAE,SAAW,EAAE,WACxC,CAAA,EAAE,kBACF,EAAA,EAAE,SAAW,QAAU,EAAE,SAAW,GACxC,CAAA,GAAI,EAAE,eAAiB,EAAE,cAAc,aAAc,CACpD,MAAMU,EAAS,EAAE,cAAc,aAAa,QAAQ,EACpD,GAAI,cAAc,KAAKA,CAAM,EAAG,MACjC,CACA,OAAI,EAAE,gBAAgB,EAAE,eAAA,EACjB,EAAA,CACR,CACA,SAASb,GAAec,EAAOC,EAAO,CACrC,UAAWzP,KAAOyP,EAAO,CACxB,MAAMC,EAAaD,EAAMzP,CAAG,EACtB2P,EAAaH,EAAMxP,CAAG,EAC5B,GAAI,OAAO0P,GAAe,UACzB,GAAIA,IAAeC,EAAY,MAAO,WAC5B,CAACzP,GAAQyP,CAAU,GAAKA,EAAW,SAAWD,EAAW,QAAUA,EAAW,KAAK,CAACtP,EAAOtF,IAAMsF,EAAM,QAAA,IAAcuP,EAAW7U,CAAC,EAAE,SAAS,EAAG,MAAO,EAClK,CACA,MAAO,EACR,CAKA,SAAS0T,GAAgBnL,EAAQ,CAChC,OAAOA,EAASA,EAAO,QAAUA,EAAO,QAAQ,KAAOA,EAAO,KAAO,EACtE,CAOA,MAAMiM,GAAe,CAACM,EAAWC,EAAaC,IAAiBF,GAAgCC,GAAoCC,EAG7HC,GAA+Bd,GAAgB,CACpD,KAAM,aACN,aAAc,GACd,MAAO,CACN,KAAM,CACL,KAAM,OACN,QAAS,SAAA,EAEV,MAAO,MAAA,EAER,aAAc,CAAE,KAAM,CAAA,EACtB,MAAM9B,EAAO,CAAE,MAAA6C,EAAO,MAAAd,GAAS,CAE9B,MAAMe,EAAgBpC,GAAOqC,EAAqB,EAC5CC,EAAiBlC,EAAS,IAAMd,EAAM,OAAS8C,EAAc,KAAK,EAClEG,EAAgBvC,GAAOwC,GAAc,CAAC,EACtCC,EAAQrC,EAAS,IAAM,CAC5B,IAAIsC,EAAerC,EAAMkC,CAAa,EACtC,KAAM,CAAE,QAAAlM,GAAYiM,EAAe,MACnC,IAAIK,EACJ,MAAQA,EAAetM,EAAQqM,CAAY,IAAM,CAACC,EAAa,YAAYD,IAC3E,OAAOA,CACR,CAAC,EACKE,EAAkBxC,EAAS,IAAMkC,EAAe,MAAM,QAAQG,EAAM,KAAK,CAAC,EAChFI,GAAQL,GAAcpC,EAAS,IAAMqC,EAAM,MAAQ,CAAC,CAAC,EACrDI,GAAQC,GAAiBF,CAAe,EACxCC,GAAQR,GAAuBC,CAAc,EAC7C,MAAMS,EAAUC,GAAA,EAChB,OAAAC,GAAM,IAAM,CACXF,EAAQ,MACRH,EAAgB,MAChBtD,EAAM,IAAA,EACJ,CAAC,CAAC4D,EAAU1Q,EAAIiC,CAAI,EAAG,CAAC0O,EAAa1Q,EAAM2Q,CAAQ,IAAM,CACvD5Q,IACHA,EAAG,UAAUiC,CAAI,EAAIyO,EACjBzQ,GAAQA,IAASD,GAAM0Q,GAAYA,IAAaC,IAC9C3Q,EAAG,YAAY,OAAMA,EAAG,YAAcC,EAAK,aAC3CD,EAAG,aAAa,OAAMA,EAAG,aAAeC,EAAK,gBAGhDyQ,GAAY1Q,IAAO,CAACC,GAAQ,CAACR,GAAkBO,EAAIC,CAAI,GAAK,CAAC0Q,KAAe3Q,EAAG,eAAeiC,CAAI,GAAK,CAAA,GAAI,QAAS4D,GAAaA,EAAS6K,CAAQ,CAAC,CACxJ,EAAG,CAAE,MAAO,OAAQ,EACb,IAAM,CACZ,MAAM3O,EAAQ+N,EAAe,MACvBe,EAAc/D,EAAM,KACpBqD,EAAeC,EAAgB,MAC/BU,EAAgBX,GAAgBA,EAAa,WAAWU,CAAW,EACzE,GAAI,CAACC,EAAe,OAAOC,GAAclC,EAAM,QAAS,CACvD,UAAWiC,EACX,MAAA/O,CAAA,CACA,EACD,MAAMiP,EAAmBb,EAAa,MAAMU,CAAW,EACjDI,EAAaD,EAAmBA,IAAqB,GAAOjP,EAAM,OAAS,OAAOiP,GAAqB,WAAaA,EAAiBjP,CAAK,EAAIiP,EAAmB,KAIjKE,EAAY1X,GAAEsX,EAAe5K,GAAO,CAAA,EAAI+K,EAAYtB,EAAO,CAChE,iBAJyBwB,GAAU,CAC/BA,EAAM,UAAU,cAAahB,EAAa,UAAUU,CAAW,EAAI,KACxE,EAGC,IAAKN,CAAA,CACL,CAAC,EAYF,OAAOQ,GAAclC,EAAM,QAAS,CACnC,UAAWqC,EACX,MAAAnP,CAAA,CACA,GAAKmP,CACP,CACD,CACD,CAAC,EACD,SAASH,GAAcK,EAAMtK,EAAM,CAClC,GAAI,CAACsK,EAAM,OAAO,KAClB,MAAMC,EAAcD,EAAKtK,CAAI,EAC7B,OAAOuK,EAAY,SAAW,EAAIA,EAAY,CAAC,EAAIA,CACpD,CAIA,MAAMC,GAAa5B,GAiBnB,SAAS6B,GAAa5I,EAAS,CAC9B,MAAM8B,EAAUC,GAAoB/B,EAAQ,OAAQA,CAAO,EACrD6I,EAAe7I,EAAQ,YAAcnK,GACrCiT,EAAmB9I,EAAQ,gBAAkBzJ,GAC7CoI,EAAgBqB,EAAQ,QAExB+I,EAAejP,GAAA,EACfkP,EAAsBlP,GAAA,EACtBmP,EAAcnP,GAAA,EACdiL,EAAemE,GAAWrR,EAAyB,EACzD,IAAIsR,EAAkBtR,GAClB3D,IAAa8L,EAAQ,gBAAkB,sBAAuB,kBAAiB,kBAAoB,UACvG,MAAMoJ,EAAkBC,GAAc,KAAK,KAAOC,GAAe,GAAKA,CAAU,EAC1EC,EAAeF,GAAc,KAAK,KAAM9T,EAAW,EACnDiU,EAAeH,GAAc,KAAK,KAAM7T,EAAM,EACpD,SAAS8M,EAASmH,EAAerQ,EAAO,CACvC,IAAIwI,EACAvH,EACJ,OAAIhB,GAAYoQ,CAAa,GAC5B7H,EAASE,EAAQ,iBAAiB2H,CAAa,EAE/CpP,EAASjB,GACHiB,EAASoP,EACT3H,EAAQ,SAASzH,EAAQuH,CAAM,CACvC,CACA,SAASuB,EAAY7J,EAAM,CAC1B,MAAMoQ,EAAgB5H,EAAQ,iBAAiBxI,CAAI,EAC/CoQ,GAAe5H,EAAQ,YAAY4H,CAAa,CAErD,CACA,SAASjG,GAAY,CACpB,OAAO3B,EAAQ,YAAY,IAAK6H,GAAiBA,EAAa,MAAM,CACrE,CACA,SAASC,EAAStQ,EAAM,CACvB,MAAO,CAAC,CAACwI,EAAQ,iBAAiBxI,CAAI,CACvC,CACA,SAASmB,EAAQoP,EAAa9T,EAAiB,CAE9C,GADAA,EAAkBwH,GAAO,CAAA,EAAIxH,GAAmBgP,EAAa,KAAK,EAC9D,OAAO8E,GAAgB,SAAU,CACpC,MAAMC,EAAqBlU,GAASiT,EAAcgB,EAAa9T,EAAgB,IAAI,EAC7EyR,EAAe1F,EAAQ,QAAQ,CAAE,KAAMgI,EAAmB,IAAA,EAAQ/T,CAAe,EACjFgU,EAAOpL,EAAc,WAAWmL,EAAmB,QAAQ,EAQjE,OAAOvM,GAAOuM,EAAoBtC,EAAc,CAC/C,OAAQgC,EAAahC,EAAa,MAAM,EACxC,eAAgB,OAChB,KAAAuC,CAAA,CACA,CACF,CAKA,IAAIC,EACJ,GAAIH,EAAY,MAAQ,KAEvBG,EAAkBzM,GAAO,CAAA,EAAIsM,EAAa,CAAE,KAAMjU,GAASiT,EAAcgB,EAAY,KAAM9T,EAAgB,IAAI,EAAE,KAAM,MACjH,CACN,MAAMkU,EAAe1M,GAAO,GAAIsM,EAAY,MAAM,EAClD,UAAW7S,KAAOiT,EAAkBA,EAAajT,CAAG,GAAK,MAAM,OAAOiT,EAAajT,CAAG,EACtFgT,EAAkBzM,GAAO,CAAA,EAAIsM,EAAa,CAAE,OAAQN,EAAaU,CAAY,EAAG,EAChFlU,EAAgB,OAASwT,EAAaxT,EAAgB,MAAM,CAC7D,CACA,MAAMyR,EAAe1F,EAAQ,QAAQkI,EAAiBjU,CAAe,EAC/DG,EAAO2T,EAAY,MAAQ,GAEjCrC,EAAa,OAAS4B,EAAgBI,EAAahC,EAAa,MAAM,CAAC,EACvE,MAAM0C,EAAW5T,GAAawS,EAAkBvL,GAAO,CAAA,EAAIsM,EAAa,CACvE,KAAM1U,GAAWe,CAAI,EACrB,KAAMsR,EAAa,IAAA,CACnB,CAAC,EACIuC,EAAOpL,EAAc,WAAWuL,CAAQ,EAQ9C,OAAO3M,GAAO,CACb,SAAA2M,EACA,KAAAhU,EACA,MAAO4S,IAAqBvS,GAAiBqD,GAAeiQ,EAAY,KAAK,EAAIA,EAAY,OAAS,CAAA,CAAC,EACrGrC,EAAc,CAChB,eAAgB,OAChB,KAAAuC,CAAA,CACA,CACF,CACA,SAASI,EAAiB9S,EAAI,CAC7B,OAAO,OAAOA,GAAO,SAAWzB,GAASiT,EAAcxR,EAAI0N,EAAa,MAAM,IAAI,EAAIxH,GAAO,CAAA,EAAIlG,CAAE,CACpG,CACA,SAAS+S,EAAwB/S,EAAIC,EAAM,CAC1C,GAAI6R,IAAoB9R,EAAI,OAAOwD,GAAkB,EAAG,CACvD,KAAAvD,EACA,GAAAD,CAAA,CACA,CACF,CACA,SAAS+G,EAAK/G,EAAI,CACjB,OAAOgT,GAAiBhT,CAAE,CAC3B,CACA,SAASmF,GAAQnF,EAAI,CACpB,OAAO+G,EAAKb,GAAO4M,EAAiB9S,CAAE,EAAG,CAAE,QAAS,EAAA,CAAM,CAAC,CAC5D,CACA,SAASiT,GAAqBjT,EAAIC,EAAM,CACvC,MAAMiT,EAAclT,EAAG,QAAQA,EAAG,QAAQ,OAAS,CAAC,EACpD,GAAIkT,GAAeA,EAAY,SAAU,CACxC,KAAM,CAAE,SAAAC,GAAaD,EACrB,IAAIE,EAAoB,OAAOD,GAAa,WAAaA,EAASnT,EAAIC,CAAI,EAAIkT,EAC9E,OAAI,OAAOC,GAAsB,WAChCA,EAAoBA,EAAkB,SAAS,GAAG,GAAKA,EAAkB,SAAS,GAAG,EAAIA,EAAoBN,EAAiBM,CAAiB,EAAI,CAAE,KAAMA,CAAA,EAC3JA,EAAkB,OAAS,CAAA,GASrBlN,GAAO,CACb,MAAOlG,EAAG,MACV,KAAMA,EAAG,KACT,OAAQoT,EAAkB,MAAQ,KAAO,CAAA,EAAKpT,EAAG,MAAA,EAC/CoT,CAAiB,CACrB,CACD,CACA,SAASJ,GAAiBhT,EAAIqT,EAAgB,CAC7C,MAAMC,EAAiBxB,EAAkB1O,EAAQpD,CAAE,EAC7CC,EAAOyN,EAAa,MACpB5G,EAAO9G,EAAG,MACVuT,EAAQvT,EAAG,MACXmF,EAAUnF,EAAG,UAAY,GACzBwT,EAAiBP,GAAqBK,EAAgBrT,CAAI,EAChE,GAAIuT,EAAgB,OAAOR,GAAiB9M,GAAO4M,EAAiBU,CAAc,EAAG,CACpF,MAAO,OAAOA,GAAmB,SAAWtN,GAAO,CAAA,EAAIY,EAAM0M,EAAe,KAAK,EAAI1M,EACrF,MAAAyM,EACA,QAAApO,CAAA,CACA,EAAGkO,GAAkBC,CAAc,EACpC,MAAMG,EAAaH,EACnBG,EAAW,eAAiBJ,EAC5B,IAAIK,EACJ,MAAI,CAACH,GAASjU,GAAoBmS,EAAkBxR,EAAMqT,CAAc,IACvEI,EAAUlQ,GAAkB,GAAI,CAC/B,GAAIiQ,EACJ,KAAAxT,CAAA,CACA,EACD0T,GAAa1T,EAAMA,EAAM,GAAM,EAAK,IAE7ByT,EAAU,QAAQ,QAAQA,CAAO,EAAInF,GAASkF,EAAYxT,CAAI,GAAG,MAAO2T,GAAUC,GAAoBD,CAAK,EAAIC,GAAoBD,EAAO,CAAC,EAAIA,EAAQE,GAAYF,CAAK,EAAIG,GAAaH,EAAOH,EAAYxT,CAAI,CAAC,EAAE,KAAMyT,GAAY,CAC5O,GAAIA,GACH,GAAIG,GAAoBH,EAAS,CAAC,EAQjC,OAAOV,GAAiB9M,GAAO,CAAE,QAAAf,GAAW2N,EAAiBY,EAAQ,EAAE,EAAG,CACzE,MAAO,OAAOA,EAAQ,IAAO,SAAWxN,GAAO,GAAIY,EAAM4M,EAAQ,GAAG,KAAK,EAAI5M,EAC7E,MAAAyM,CAAA,CACA,EAAGF,GAAkBI,CAAU,OAE3BC,EAAUM,GAAmBP,EAAYxT,EAAM,GAAMkF,EAAS2B,CAAI,EACzE,OAAAmN,GAAiBR,EAAYxT,EAAMyT,CAAO,EACnCA,CACR,CAAC,CACF,CAMA,SAASQ,GAAiClU,EAAIC,EAAM,CACnD,MAAM2T,EAAQb,EAAwB/S,EAAIC,CAAI,EAC9C,OAAO2T,EAAQ,QAAQ,OAAOA,CAAK,EAAI,QAAQ,QAAA,CAChD,CACA,SAAS3Q,GAAeC,EAAI,CAC3B,MAAMiR,EAAMC,GAAc,OAAA,EAAS,OAAO,MAC1C,OAAOD,GAAO,OAAOA,EAAI,gBAAmB,WAAaA,EAAI,eAAejR,CAAE,EAAIA,EAAA,CACnF,CACA,SAASqL,GAASvO,EAAIC,EAAM,CAC3B,IAAI8D,EACJ,KAAM,CAACQ,EAAgBC,EAAiBC,CAAe,EAAIH,GAAuBtE,EAAIC,CAAI,EAC1F8D,EAASH,GAAwBW,EAAe,QAAA,EAAW,mBAAoBvE,EAAIC,CAAI,EACvF,UAAW+C,KAAUuB,EAAgBvB,EAAO,YAAY,QAASD,GAAU,CAC1EgB,EAAO,KAAKjB,GAAiBC,EAAO/C,EAAIC,CAAI,CAAC,CAC9C,CAAC,EACD,MAAMoU,EAA0BH,GAAiC,KAAK,KAAMlU,EAAIC,CAAI,EACpF,OAAA8D,EAAO,KAAKsQ,CAAuB,EAC5BC,GAAcvQ,CAAM,EAAE,KAAK,IAAM,CACvCA,EAAS,CAAA,EACT,UAAWhB,KAAS2O,EAAa,OAAQ3N,EAAO,KAAKjB,GAAiBC,EAAO/C,EAAIC,CAAI,CAAC,EACtF,OAAA8D,EAAO,KAAKsQ,CAAuB,EAC5BC,GAAcvQ,CAAM,CAC5B,CAAC,EAAE,KAAK,IAAM,CACbA,EAASH,GAAwBY,EAAiB,oBAAqBxE,EAAIC,CAAI,EAC/E,UAAW+C,KAAUwB,EAAiBxB,EAAO,aAAa,QAASD,GAAU,CAC5EgB,EAAO,KAAKjB,GAAiBC,EAAO/C,EAAIC,CAAI,CAAC,CAC9C,CAAC,EACD,OAAA8D,EAAO,KAAKsQ,CAAuB,EAC5BC,GAAcvQ,CAAM,CAC5B,CAAC,EAAE,KAAK,IAAM,CACbA,EAAS,CAAA,EACT,UAAWf,KAAUyB,EAAiB,GAAIzB,EAAO,YAAa,GAAInD,GAAQmD,EAAO,WAAW,YAAcuR,KAAevR,EAAO,YAAae,EAAO,KAAKjB,GAAiByR,EAAavU,EAAIC,CAAI,CAAC,SACpL,KAAK6C,GAAiBE,EAAO,YAAahD,EAAIC,CAAI,CAAC,EAC/D,OAAA8D,EAAO,KAAKsQ,CAAuB,EAC5BC,GAAcvQ,CAAM,CAC5B,CAAC,EAAE,KAAK,KACP/D,EAAG,QAAQ,QAASgD,GAAWA,EAAO,eAAiB,EAAE,EACzDe,EAASH,GAAwBa,EAAiB,mBAAoBzE,EAAIC,EAAMgD,EAAc,EAC9Fc,EAAO,KAAKsQ,CAAuB,EAC5BC,GAAcvQ,CAAM,EAC3B,EAAE,KAAK,IAAM,CACbA,EAAS,CAAA,EACT,UAAWhB,KAAS4O,EAAoB,OAAQ5N,EAAO,KAAKjB,GAAiBC,EAAO/C,EAAIC,CAAI,CAAC,EAC7F,OAAA8D,EAAO,KAAKsQ,CAAuB,EAC5BC,GAAcvQ,CAAM,CAC5B,CAAC,EAAE,MAAOJ,GAAQkQ,GAAoBlQ,EAAK,CAAC,EAAIA,EAAM,QAAQ,OAAOA,CAAG,CAAC,CAC1E,CACA,SAASsQ,GAAiBjU,EAAIC,EAAMyT,EAAS,CAC5C9B,EAAY,KAAA,EAAO,QAAS7O,GAAUE,GAAe,IAAMF,EAAM/C,EAAIC,EAAMyT,CAAO,CAAC,CAAC,CACrF,CAMA,SAASM,GAAmBP,EAAYxT,EAAMuU,EAAQrP,EAAS2B,EAAM,CACpE,MAAM8M,EAAQb,EAAwBU,EAAYxT,CAAI,EACtD,GAAI2T,EAAO,OAAOA,EAClB,MAAMa,EAAoBxU,IAASO,GAC7BgF,EAAS3I,GAAiB,QAAQ,MAAb,CAAA,EACvB2X,IAAYrP,GAAWsP,EAAmBnN,EAAc,QAAQmM,EAAW,SAAUvN,GAAO,CAAE,OAAQuO,GAAqBjP,GAASA,EAAM,MAAA,EAAUsB,CAAI,CAAC,EACxJQ,EAAc,KAAKmM,EAAW,SAAU3M,CAAI,GACjD4G,EAAa,MAAQ+F,EACrBE,GAAaF,EAAYxT,EAAMuU,EAAQC,CAAiB,EACxDX,GAAA,CACD,CACA,IAAIY,GACJ,SAASC,IAAiB,CACrBD,KACJA,GAAwBpN,EAAc,OAAO,CAACtH,EAAI4U,EAAOC,IAAS,CACjE,GAAI,CAACtH,GAAO,UAAW,OACvB,MAAMkG,EAAarQ,EAAQpD,CAAE,EACvBwT,EAAiBP,GAAqBQ,EAAYlG,GAAO,aAAa,KAAK,EACjF,GAAIiG,EAAgB,CACnBR,GAAiB9M,GAAOsN,EAAgB,CACvC,QAAS,GACT,MAAO,EAAA,CACP,EAAGC,CAAU,EAAE,MAAMvH,EAAI,EAC1B,MACD,CACA4F,EAAkB2B,EAClB,MAAMxT,EAAOyN,EAAa,MACtB7Q,OAA8B0E,GAAatB,EAAK,SAAU4U,EAAK,KAAK,EAAG3T,IAAuB,EAClGqN,GAASkF,EAAYxT,CAAI,EAAE,MAAO2T,GAC7BC,GAAoBD,EAAO,EAAE,EAAUA,EACvCC,GAAoBD,EAAO,CAAC,GAC/BZ,GAAiB9M,GAAO4M,EAAiBc,EAAM,EAAE,EAAG,CAAE,MAAO,EAAA,CAAM,EAAGH,CAAU,EAAE,KAAMC,GAAY,CAC/FG,GAAoBH,EAAS,EAAE,GAAK,CAACmB,EAAK,OAASA,EAAK,OAAS,OAAOvN,EAAc,GAAG,GAAI,EAAK,CACvG,CAAC,EAAE,MAAM4E,EAAI,EACN,QAAQ,OAAA,IAEZ2I,EAAK,OAAOvN,EAAc,GAAG,CAACuN,EAAK,MAAO,EAAK,EAC5Cd,GAAaH,EAAOH,EAAYxT,CAAI,EAC3C,EAAE,KAAMyT,GAAY,CACpBA,EAAUA,GAAWM,GAAmBP,EAAYxT,EAAM,EAAK,EAC3DyT,IACCmB,EAAK,OAAS,CAAChB,GAAoBH,EAAS,CAAC,EAAGpM,EAAc,GAAG,CAACuN,EAAK,MAAO,EAAK,EAC9EA,EAAK,OAAS,OAAShB,GAAoBH,EAAS,EAAE,GAAGpM,EAAc,GAAG,GAAI,EAAK,GAE7F2M,GAAiBR,EAAYxT,EAAMyT,CAAO,CAC3C,CAAC,EAAE,MAAMxH,EAAI,CACd,CAAC,EACF,CACA,IAAI4I,GAAgBrS,GAAA,EAChBsS,GAAiBtS,GAAA,EACjBuS,GASJ,SAASjB,GAAaH,EAAO5T,EAAIC,EAAM,CACtC6T,GAAYF,CAAK,EACjB,MAAMqB,EAAOF,GAAe,KAAA,EAC5B,OAAIE,EAAK,OAAQA,EAAK,QAASrS,GAAYA,EAAQgR,EAAO5T,EAAIC,CAAI,CAAC,EAGlE,QAAQ,MAAM2T,CAAK,EAEb,QAAQ,OAAOA,CAAK,CAC5B,CACA,SAASsB,IAAU,CAClB,OAAIF,IAAStH,EAAa,QAAUlN,GAAkC,QAAQ,QAAA,EACvE,IAAI,QAAQ,CAAC4C,EAASC,IAAW,CACvCyR,GAAc,IAAI,CAAC1R,EAASC,CAAM,CAAC,CACpC,CAAC,CACF,CACA,SAASyQ,GAAYnQ,EAAK,CACzB,OAAKqR,KACJA,GAAQ,CAACrR,EACTgR,GAAA,EACAG,GAAc,KAAA,EAAO,QAAQ,CAAC,CAAC1R,EAASC,CAAM,IAAMM,EAAMN,EAAOM,CAAG,EAAIP,GAAS,EACjF0R,GAAc,MAAA,GAERnR,CACR,CACA,SAASgQ,GAAa3T,EAAIC,EAAMuU,EAAQC,EAAmB,CAC1D,KAAM,CAAE,eAAAU,GAAmBxM,EAC3B,GAAI,CAAC9L,IAAa,CAACsY,EAAgB,OAAO,QAAQ,QAAA,EAClD,MAAMxT,EAAiB,CAAC6S,GAAU5S,GAAuBL,GAAavB,EAAG,SAAU,CAAC,CAAC,IAAMyU,GAAqB,CAACD,IAAW,QAAQ,OAAS,QAAQ,MAAM,QAAU,KACrK,OAAOY,GAAA,EAAW,KAAK,IAAMD,EAAenV,EAAIC,EAAM0B,CAAc,CAAC,EAAE,KAAMtB,GAAaL,IAAO0N,EAAa,OAASrN,GAAYc,GAAiBd,CAAQ,CAAC,EAAE,MAAOsD,GAAQ3D,IAAO0N,EAAa,OAASqG,GAAapQ,EAAK3D,EAAIC,CAAI,CAAC,CACvO,CACA,MAAMmH,GAAM5F,GAAU8F,EAAc,GAAG9F,CAAK,EAC5C,IAAI6T,GACJ,MAAMjB,OAAoC,IACpC7G,GAAS,CACd,aAAAG,EACA,UAAW,GACX,SAAAzC,EACA,YAAAa,EACA,YAAarB,EAAQ,YACrB,SAAA8H,EACA,UAAAnG,EACA,QAAAhJ,EACA,QAAAuF,EACA,KAAA5B,EACA,QAAA5B,GACA,GAAAiC,GACA,KAAM,IAAMA,GAAG,EAAE,EACjB,QAAS,IAAMA,GAAG,CAAC,EACnB,WAAYsK,EAAa,IACzB,cAAeC,EAAoB,IACnC,UAAWC,EAAY,IACvB,QAASmD,GAAe,IACxB,QAAAG,GACA,QAAQf,EAAK,CACZA,EAAI,UAAU,aAAcxF,EAAU,EACtCwF,EAAI,UAAU,aAAc7C,EAAU,EACtC6C,EAAI,OAAO,iBAAiB,QAAU5G,GACtC,OAAO,eAAe4G,EAAI,OAAO,iBAAkB,SAAU,CAC5D,WAAY,GACZ,IAAK,IAAMtG,EAAMH,CAAY,CAAA,CAC7B,EACG7Q,IAAa,CAACwY,IAAW3H,EAAa,QAAUlN,KACnD6U,GAAU,GACVtO,EAAKO,EAAc,QAAQ,EAAE,MAAO3D,GAAQ,CAE5C,CAAC,GAEF,MAAM2R,EAAgB,CAAA,EACtB,UAAW3V,KAAOa,GAA2B,OAAO,eAAe8U,EAAe3V,EAAK,CACtF,IAAK,IAAM+N,EAAa,MAAM/N,CAAG,EACjC,WAAY,EAAA,CACZ,EACDwU,EAAI,QAAQ1G,GAAWF,EAAM,EAC7B4G,EAAI,QAAQxG,GAAkB4H,GAAgBD,CAAa,CAAC,EAC5DnB,EAAI,QAAQtE,GAAuBnC,CAAY,EAC/C,MAAM8H,EAAarB,EAAI,QACvBC,GAAc,IAAID,CAAG,EACrBA,EAAI,QAAU,UAAW,CACxBC,GAAc,OAAOD,CAAG,EACpBC,GAAc,KAAO,IACxBtC,EAAkBtR,GAClBkU,IAAyBA,GAAA,EACzBA,GAAwB,KACxBhH,EAAa,MAAQlN,GACrB6U,GAAU,GACVL,GAAQ,IAETQ,EAAA,CACD,CAED,CAAA,EAED,SAASlB,GAAcvQ,EAAQ,CAC9B,OAAOA,EAAO,OAAO,CAAC0R,EAAS1S,IAAU0S,EAAQ,KAAK,IAAMxS,GAAeF,CAAK,CAAC,EAAG,QAAQ,SAAS,CACtG,CACA,OAAOwK,EACR,CC7/CA,SAASmI,GAAKC,EAAM,CAClB,IAAIC,EAAY,GACZC,EACJ,MAAO,IAAIC,KACJF,IACHA,EAAY,GACZC,EAASF,EAAK,GAAGG,CAAI,GAEhBD,EAEX,CACA,IAAIE,GAAc,mBAClB,GAAI,CACFA,GAAcC,EAChB,MAAQ,CACNC,GAAO,MAAM,kFAAkF,CACjG,CACA,MAAMC,GAAWH,GACjB,IAAII,GAAiB,GACrB,GAAI,CACFA,GAAiBC,EACnB,MAAQ,CACNH,GAAO,MAAM,qFAAqF,CACpG,CAEA,SAASI,IAAa,CACpB,OAAO7I,GAAO,UAAW0I,EAAQ,CACnC,CACA,MAAMI,GAAsBZ,GAAK,IAAM,CACrC,MAAMa,EAAOvd,GAAU,OAAQ,OAAQ,CAAA,CAAE,EACnCwd,EAAeH,GAAU,EAC/B,OAAOE,EAAK,KAAK,CAAC,CAAE,GAAAE,CAAE,IAAOA,IAAOD,CAAY,GAAG,MAAQA,CAC7D,CAAC,ECtBDE,GAASC,EAAG,EACZ,MAAMC,GAA8BhI,GAAgB,CAClD,OAAQ,4BACR,MAAMiI,EAAS,CACb,MAAMC,EAAWC,GAAW,EAC5BtG,GAAMqG,EAAUE,CAAyB,EACzCC,GAAU,IAAM,CACdD,EAA0BF,EAAS,KAAK,CAC1C,CAAC,EACDI,GAAgB,IAAM,CAChBJ,EAAS,OACXE,EAA0B,EAAK,CAEnC,CAAC,EACD,SAASA,EAA0BG,EAAO,GAAM,CAC9C,MAAMC,EAAsB,SAAS,cAAc,wCAAwC,EACvFA,IACFA,EAAoB,MAAM,QAAUD,EAAO,OAAS,GAChDA,IAAS,IACXE,GAAK,oBAAqB,CAAE,KAAM,EAAK,CAAE,EAG/C,CACA,MAAO,CAACC,EAAMC,KACLC,EAAS,EAAIC,EAAY5J,EAAM6J,EAAQ,EAAG,CAC/C,aAAc7J,EAAMhU,CAAC,EAAE,qBAAqB,EAC5C,MAAO8d,EAAe,CAAC,qBAAsB,CAAE,6BAA8B9J,EAAMiJ,CAAQ,CAAC,CAAE,CAAC,EAC/F,MAAOjJ,EAAMhU,CAAC,EAAE,qBAAqB,EACrC,QAAS,UACjB,EAAS,CACD,KAAM+d,EAAQ,IAAM,CAClBC,EAAYhK,EAAMiK,EAAgB,EAAG,CACnC,YAAa,GACb,KAAMjK,EAAMkK,EAAa,CACrC,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,CAC9B,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,aAAc,QAAS,OAAO,CAAC,EAE1C,CACF,CAAC,EACKC,GAA4CC,GAAYrB,GAAa,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EACvGsB,GAAiBC,GAAW,WAAW,EAAE,QAAO,EAAG,MAAK,EACxDC,GAAerf,GAAe,EAAG,SAAS,MAAQ,YAClDsf,GAAY,CAChB,KAAM,eACN,WAAY,CACV,0BAAAL,GACJ,KAAIM,GACJ,WAAIC,EACJ,EACE,MAAO,CAIL,aAAc,CACZ,KAAM,QACN,QAAS,EACf,EAOI,SAAU,CACR,KAAM,OACN,QAAS,EACf,EAKI,aAAc,CACZ,KAAM,OACN,QAAS,EACf,EAKI,aAAc,CACZ,KAAM,OACN,QAAS,EACf,EAKI,cAAe,CACb,KAAM,OACN,QAAS,EACf,EASI,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAQI,OAAQ,CACN,KAAM,OACN,QAAS,iBACT,UAAUxY,EAAO,CACf,MAAO,CAAC,WAAY,iBAAkB,kBAAkB,EAAE,SAASA,CAAK,CAC1E,CACN,EAII,YAAa,CACX,KAAM,OACN,QAAS,IACf,EAQI,UAAW,CACT,KAAM,OACN,QAAS,IACf,CACA,EACE,MAAO,CACL,qBACA,YACJ,EACE,OAAQ,CACN,MAAO,CACL,QAASsW,GAAU,EACnB,iBAAkBC,GAAmB,EACrC,SAAUS,GAAW,EACrB,MAAAyB,EACN,CACE,EACA,MAAO,CACL,MAAO,CACL,cAAe,EACf,QAAS,CAAA,EACT,aAAc,KAAK,kBAAiB,CAC1C,CACE,EACA,SAAU,CACR,cAAe,CACb,GAAI,KAAK,gBAAkB,GACzB,MAAO,kBAAkB,KAAK,aAAa,GAE7C,GAAI,CACF,MAAO,kBAAkB,KAAK,OAAO,EACvC,MAAQ,CACN,OAAAvC,GAAO,KAAK,8DAA8D,EACnE,0BACT,CACF,EACA,iBAAkB,CAChB,OAAI,KAAK,aACA,IAAM,KAAK,aAEb,KAAK,aAAa,QAAQ,IACnC,EACA,cAAe,CACb,MAAO,CACL,KAAM,CACJ,KAAM,KAAK,SACX,IAAK,KAAK,aACV,IAAK,KAAK,YACpB,EAGQ,QAAS,CACP,KAAM,IAAM,KAAK,SACjB,IAAK,IAAM,KAAK,aAChB,IAAK,IAAM,KAAK,YAC1B,CACA,CACI,EACA,eAAgB,CACd,MAAMwC,EAA0B,IAAI,IACpC,GAAI,KAAK,UACP,UAAWC,KAAQ,KAAK,UAAU,MAAM,KAAK,EAC3CD,EAAQ,IAAIC,CAAI,UAET,KAAK,YAAa,CAC3B,UAAWA,KAAQ,KAAK,YAAY,MAAM,KAAK,EAC7CD,EAAQ,IAAIC,CAAI,EAEdD,EAAQ,KAAO,GACjBA,EAAQ,IAAI,KAAK,gBAAgB,CAErC,KACE,QAAO,KAET,OAAAA,EAAQ,IAAIL,EAAY,EACjB,CAAC,GAAGK,EAAQ,OAAM,CAAE,EAAE,KAAK,KAAK,CACzC,CACJ,EACE,MAAO,CACL,cAAe,CACb,UAAW,GACX,SAAU,CACJ,KAAK,gBAAkB,OACzB,SAAS,MAAQ,KAAK,cAE1B,CACN,EACI,cAAe,CACb,UAAW,GACX,SAAU,CACR,KAAK,kBAAiB,CACxB,CACN,CACA,EACE,SAAU,CACH,KAAK,eACR,KAAK,QAAUE,GAAS,KAAK,IAAK,CAChC,WAAY,KAAK,WACzB,CAAO,GAEH,KAAK,kBAAiB,CACxB,EACA,QAAS,CAOP,YAAY,EAAGC,EAAW,CAGpB,KAAK,IAAI,KAAK,QAAQ,OAAO,EAAI,KAC/B,KAAK,QAAQ,YAAY,EAAI,IAAY,GAAKA,IAAc,QAC9DvB,GAAK,oBAAqB,CACxB,KAAM,EAClB,CAAW,EACQ,KAAK,QAAQ,YAAY,EAAI,IAAY,KAAOuB,IAAc,QACvEvB,GAAK,oBAAqB,CACxB,KAAM,EAClB,CAAW,EAGP,EACA,iBAAiBwB,EAAO,CACtB,MAAMC,EAAe,SAASD,EAAM,MAAM,CAAC,EAAE,KAAM,EAAE,EACrDX,GAAe,QAAQ,KAAK,aAAc,KAAK,UAAUY,CAAY,CAAC,EACtE,KAAK,aAAeA,EACpB,KAAK,MAAM,aAAc,CAAE,KAAMA,CAAY,CAAE,EAC/C7C,GAAO,MAAM,6BAA8B,CAAE,aAAA6C,CAAY,CAAE,CAC7D,EAEA,mBAAoB,CAClB,MAAMA,EAAe,SAASZ,GAAe,QAAQ,KAAK,YAAY,EAAG,EAAE,EAC3E,GAAI,CAAC,MAAMY,CAAY,GAAKA,IAAiB,KAAK,aAChD,OAAA7C,GAAO,MAAM,6BAA8B,CAAE,aAAA6C,CAAY,CAAE,EAC3D,KAAK,aAAeA,EACbA,CAEX,EAIA,aAAc,CACZ,KAAK,MAAM,qBAAsB,EAAK,CACxC,CACJ,CACA,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,iBACT,EACMC,GAAa,CAAE,MAAO,2BAA2B,EACjDC,GAAa,CACjB,IAAK,EACL,MAAO,qBACT,EACA,SAASC,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMC,EAAuCC,EAAiB,2BAA2B,EACnFC,EAAkBD,EAAiB,MAAM,EACzCE,EAAwBF,EAAiB,YAAY,EAC3D,OAAOhC,EAAS,EAAImC,EAAmB,OAAQ,CAC7C,GAAI,kBACJ,MAAOhC,EAAe,CAAC,yBAA0B,CAAE,wBAAyB,CAAC,CAACL,EAAK,OAAO,KAAM,CAAC,CACrG,EAAK,CACD6B,EAAO,aAAe3B,EAAS,EAAImC,EAAmB,KAAMZ,GAAYa,EAAgBT,EAAO,WAAW,EAAG,CAAC,GAAKU,EAAmB,GAAI,EAAI,EAC5IvC,EAAK,OAAO,MAAQE,EAAS,EAAImC,EAAmBG,EAAU,CAAE,IAAK,GAAK,CAC1EV,EAAO,UAAYD,EAAO,SAAW,YAAc3B,EAAS,EAAImC,EAAmB,MAAO,CACxF,IAAK,EACL,MAAOhC,EAAe,CAAC,oDAAqD,CAC1E,oCAAqCwB,EAAO,YAC5C,iCAAkC,CAACA,EAAO,YAC1C,8BAA+BC,EAAO,QAChD,CAAS,CAAC,CACV,EAAS,CACDD,EAAO,aAAe3B,IAAaC,EAAY8B,EAAsC,CACnF,IAAK,EACL,QAASQ,GAAcT,EAAS,YAAa,CAAC,OAAQ,SAAS,CAAC,CAC1E,EAAW,KAAM,EAAG,CAAC,SAAS,CAAC,GAAKO,EAAmB,GAAI,EAAI,EACvDG,GAAeC,EAAmB,MAAOjB,GAAY,CACnDkB,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CAC1D,EAAW,GAAG,EAAG,CACP,CAAC6C,GAAO,CAAChB,EAAO,WAAW,CACrC,CAAS,EACDA,EAAO,YAAce,EAAW5C,EAAK,OAAQ,UAAW,CAAE,IAAK,CAAC,EAAI,OAAQ,EAAI,EAAIuC,EAAmB,GAAI,EAAI,CACvH,EAAS,CAAC,GAAKV,EAAO,SAAW,kBAAoBA,EAAO,SAAW,oBAAsB3B,EAAS,EAAImC,EAAmB,MAAOV,GAAY,CACxIpB,EAAY6B,EAAuB,CACjC,WAAYP,EAAO,SAAW,mBAC9B,MAAOxB,EAAe,CAAC,gBAAiB,CACtC,yBAA0BwB,EAAO,SAAW,mBAC5C,uBAAwBA,EAAO,SAAW,gBACtD,CAAW,CAAC,EACF,IAAKC,EAAO,MACZ,UAAWE,EAAS,gBAC9B,EAAW,CACD,QAAS1B,EAAQ,IAAM,CACrBC,EAAY4B,EAAiB,CAC3B,MAAO,wBACP,KAAMJ,EAAM,cAAgBC,EAAS,aAAa,KAAK,KACvD,QAASA,EAAS,aAAa,KAAK,IACpC,QAASA,EAAS,aAAa,KAAK,GAClD,EAAe,CACD,QAAS1B,EAAQ,IAAM,CACrBsC,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CAChE,CAAe,EACD,EAAG,CACjB,EAAe,EAAG,CAAC,OAAQ,UAAW,SAAS,CAAC,EACpCO,EAAY4B,EAAiB,CAC3B,MAAO,2BACP,KAAMH,EAAS,gBACf,QAASA,EAAS,aAAa,QAAQ,IACvC,QAASA,EAAS,aAAa,QAAQ,GACrD,EAAe,CACD,QAAS1B,EAAQ,IAAM,CACrBsC,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACnE,CAAe,EACD,EAAG,CACjB,EAAe,EAAG,CAAC,OAAQ,UAAW,SAAS,CAAC,CAChD,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,aAAc,QAAS,MAAO,WAAW,CAAC,CACzD,CAAO,GAAKuC,EAAmB,GAAI,EAAI,CACvC,EAAO,EAAE,GAAKA,EAAmB,GAAI,EAAI,EACpCvC,EAAK,OAAO,KAAsEuC,EAAmB,GAAI,EAAI,EAA1FK,EAAW5C,EAAK,OAAQ,UAAW,CAAE,IAAK,CAAC,EAAI,OAAQ,EAAI,CACnF,EAAK,CAAC,CACN,CACA,MAAM8C,GAA+BnC,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECrXjHb,GAAY,CAChB,KAAM,qBACR,EACMU,GAAa,CAAE,MAAO,qBAAqB,EACjD,SAASG,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAO9B,EAAS,EAAImC,EAAmB,KAAMZ,GAAY,CACvDmB,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACvD,CAAG,CACH,CACA,MAAM+C,GAAsCpC,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECRxHoB,GAAyC,OAAO,IAAI,+BAA+B,EACnFC,GAAuC,OAAO,IAAI,oBAAoB,ECS5E7D,GAAS8D,EAAG,EACZ,MAAMC,GAAe,CAAE,MAAO,+BAA+B,EACvD7D,GAA8BhI,GAAgB,CAClD,OAAQ,wBACR,MAAO,CACL,KAAQ,CAAE,KAAM,QAAc,SAAU,EAAM,EAC9C,cAAiB,CAAA,CACrB,EACE,MAAO,CAAC,aAAa,EACrB,MAAMiI,EAAS,CACb,MAAM6D,EAAOC,GAAS9D,EAAS,MAAM,EAC/B+D,EAAQhN,EAAS,IAAM8M,EAAK,MAAQ7gB,EAAE,kBAAkB,EAAIA,EAAE,iBAAiB,CAAC,EACtF,MAAO,CAACyd,EAAMC,KACLC,EAAS,EAAImC,EAAmB,MAAOc,GAAc,CAC1D5C,EAAYhK,EAAM6J,EAAQ,EAAG,CAC3B,MAAO,wBACP,gBAAiB,qBACjB,gBAAiBgD,EAAK,MAAQ,OAAS,QACvC,aAAcE,EAAM,MACpB,MAAOA,EAAM,MACb,QAAS,WACT,QAASrD,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWH,EAAK,MAAQ,CAACA,EAAK,MAC5E,EAAW,CACD,KAAM9C,EAAQ,IAAM,CAClBC,EAAYC,GAAkB,CAC5B,KAAM4C,EAAK,MAAQ7M,EAAMiN,EAAW,EAAIjN,EAAMkN,EAAO,CACnE,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,CAChC,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,gBAAiB,aAAc,OAAO,CAAC,CACtD,CAAO,EAEL,CACF,CAAC,EACKC,GAAwC/C,GAAYrB,GAAa,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EACnGmC,GAAa,CAAC,cAAe,aAAc,kBAAmB,OAAO,EACrEC,GAAa,CAAE,MAAO,wBAAwB,EAC9CX,GAA4BzJ,GAAgB,CAChD,OAAQ,kBACR,MAAO,CACL,UAAW,CAAA,EACX,eAAgB,CAAA,CACpB,EACE,MAAMiI,EAAS,CACb,MAAM/J,EAAQ+J,EACd,IAAIoE,EACJ,MAAMC,EAAsB1N,GAC1B8M,GACA,IAAMa,GAAkF,EACxF,EACN,EACUC,EAAgCC,GAAe,wBAAwB,EACvEvE,EAAWC,GAAW,EACtB2D,EAAOlK,GAAI,CAACsG,EAAS,KAAK,EAC1BwE,EAA0B1N,EAAS,IAAMkJ,EAAS,OAAS4D,EAAK,KAAK,EAC3Ea,GAAY,IAAM,CACZ,CAACzO,EAAM,WAAcA,EAAM,cAGjC,CAAC,EACD2D,GAAMqG,EAAU,IAAM,CACpB4D,EAAK,MAAQ,CAAC5D,EAAS,KACzB,CAAC,EACDrG,GAAM6K,EAAyB,IAAM,CACnCE,EAAe,CACjB,CAAC,EACDvE,GAAU,IAAM,CACdiE,EAAoB,EAAI,EACxBO,GAAU,oBAAqBC,CAA0B,EACzDrE,GAAK,qBAAsB,CACzB,KAAMqD,EAAK,KACnB,CAAO,EACDO,EAAYU,GAAgBP,EAA8B,MAAO,CAC/D,kBAAmB,GACnB,wBAAyB,KACnBtE,EAAS,QACXmE,EAAU,WAAW,CAAE,YAAa,EAAK,CAAE,EAC3CW,EAAiB,EAAK,GAEjB,IAET,cAAeR,EAA8B,MAC7C,UAAWS,GAAY,EACvB,kBAAmB,EAC3B,CAAO,EACDL,EAAe,CACjB,CAAC,EACDM,GAAY,IAAM,CAChBZ,EAAoB,EAAK,EACzBa,GAAY,oBAAqBL,CAA0B,EAC3DT,EAAU,WAAU,CACtB,CAAC,EACD,SAASW,EAAiBpW,EAAO,CAC/B,GAAIkV,EAAK,QAAUlV,EAAO,CACxB6R,GAAK,qBAAsB,CACzB,KAAMqD,EAAK,KACrB,CAAS,EACD,MACF,CACAA,EAAK,MAAQlV,IAAU,OAAS,CAACkV,EAAK,MAAQlV,EAC9C,MAAMwW,EAAa,iBAAiB,SAAS,IAAI,EAC3CC,EAAkB,SAASD,EAAW,iBAAiB,mBAAmB,CAAC,GAAK,IACtF,WAAW,IAAM,CACf3E,GAAK,qBAAsB,CACzB,KAAMqD,EAAK,KACrB,CAAS,CACH,EAAG,IAAMuB,CAAe,CAC1B,CACA,SAASP,EAA2B,CAAE,KAAMQ,GAAS,CACnD,OAAON,EAAiBM,CAAK,CAC/B,CACA,SAASV,GAAkB,CACrBF,EAAwB,MAC1BL,EAAU,SAAQ,EAElBA,EAAU,WAAU,CAExB,CACA,SAASkB,GAAY,CACfrF,EAAS,OACX8E,EAAiB,EAAK,CAE1B,CACA,MAAO,CAACtE,EAAMC,KACLC,EAAS,EAAImC,EAAmB,MAAO,CAC5C,IAAK,yBACL,MAAOhC,EAAe,CAAC,iBAAkB,CACvC,yBAA0B,CAAC+C,EAAK,MAChC,yBAA0B7M,EAAMuO,EAAU,CACpD,CAAS,CAAC,CACV,EAAS,CACDnC,EAAmB,MAAO,CACxB,GAAI,qBACJ,cAAeS,EAAK,MAAQ,QAAU,OACtC,aAAc7D,EAAQ,WAAa,OACnC,kBAAmBA,EAAQ,gBAAkB,OAC7C,MAAO,0BACP,MAAO,CAAC6D,EAAK,OAAS,OACtB,UAAW2B,GAASF,EAAW,CAAC,KAAK,CAAC,CAChD,EAAW,CACDlC,EAAmB,MAAOjB,GAAY,CACpCkB,EAAW5C,EAAK,OAAQ,SAAU,CAAA,EAAI,OAAQ,EAAI,CAC9D,CAAW,EACD2C,EAAmB,MAAO,CACxB,MAAOtC,EAAe,CAAC,uBAAwB,CAAE,gCAAiC,CAACL,EAAK,OAAO,KAAM,CAAC,CAClH,EAAa,CACD4C,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CAC/D,EAAa,CAAC,EACJA,EAAK,OAAO,MAAQE,EAAS,EAAIC,EAAY4C,GAAqB,CAChE,IAAK,EACL,MAAO,sBACnB,EAAa,CACD,QAASzC,EAAQ,IAAM,CACrBsC,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CAC9D,CAAa,EACD,EAAG,CACf,CAAW,GAAKuC,EAAmB,GAAI,EAAI,EACjCK,EAAW5C,EAAK,OAAQ,SAAU,CAAA,EAAI,OAAQ,EAAI,CAC5D,EAAW,GAAIyB,EAAU,EACjBlB,EAAYmD,GAAuB,CACjC,KAAMN,EAAK,MACX,gBAAiBkB,CAC3B,EAAW,KAAM,EAAG,CAAC,MAAM,CAAC,CAC5B,EAAS,CAAC,EAER,CACF,CAAC,EACKU,GAAkCrE,GAAYI,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECjL3FA,GAAY,CAChB,KAAM,yBACN,WAAY,CACV,UAAAkE,EACJ,EACE,MAAO,CAIL,KAAM,CACJ,KAAM,OACN,SAAU,EAChB,EAKI,UAAW,CACT,KAAM,OACN,QAAS,IACf,EAKI,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAII,aAAc,CACZ,KAAM,OACN,QAAS,CACf,EAKI,GAAGA,GAAU,KACjB,EACE,SAAU,CACR,cAAe,CACb,MAAMC,EAAc,OAAO,KAAKD,GAAU,KAAK,EACzCzP,EAAQ,OAAO,QAAQ,KAAK,MAAM,EAAE,OAAO,CAAC,CAACnN,EAAK8c,CAAM,IAAMD,EAAY,SAAS7c,CAAG,CAAC,EAC7F,OAAO,OAAO,YAAYmN,CAAK,CACjC,EACA,YAAa,CACX,OAAO,KAAK,UAAY,MAAQ,IAClC,EACA,YAAa,CACX,MAAM4P,EAAe,KAAK,IAAI,EAAG,KAAK,YAAY,EAClD,OAAO,KAAK,UAAY,IAAIA,CAAY,GAAK,MAC/C,CACJ,CACA,EACM3D,GAAa,CACjB,IAAK,EACL,MAAO,iCACT,EACA,SAASG,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMqD,EAAuBnD,EAAiB,WAAW,EACzD,OAAOhC,EAAS,EAAIC,EAAYmF,GAAwBtD,EAAS,UAAU,EAAG,CAC5E,MAAO3B,EAAe,CAAC,yBAA0B,CAAE,kCAAmCwB,EAAO,UAAW,CAAC,CAC7G,EAAK,CACD,QAASvB,EAAQ,IAAM,EACpBJ,EAAS,EAAIC,EAAYmF,GAAwBtD,EAAS,UAAU,EAAG,CACtE,GAAIH,EAAO,UACX,MAAO,8BACf,EAAS,CACD,QAASvB,EAAQ,IAAM,CACrBiF,EAAgBjD,EAAgBT,EAAO,IAAI,EAAG,CAAC,CACzD,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,IAAI,CAAC,GACV7B,EAAK,OAAO,SAAWE,EAAS,EAAImC,EAAmB,MAAOZ,GAAY,CAC1ElB,EAAY8E,EAAsBG,GAAeC,GAAmBzD,EAAS,YAAY,CAAC,EAAG,CAC3F,KAAM1B,EAAQ,IAAM,CAClBsC,EAAW5C,EAAK,OAAQ,qBAAsB,CAAA,EAAI,OAAQ,EAAI,CAC1E,CAAW,EACD,QAASM,EAAQ,IAAM,CACrBsC,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CAC/D,CAAW,EACD,EAAG,CACb,EAAW,EAAE,CACb,CAAO,GAAKuC,EAAmB,GAAI,EAAI,CACvC,CAAK,EACD,EAAG,CACP,EAAK,EAAG,CAAC,OAAO,CAAC,CACjB,CACA,MAAMmD,GAAyC/E,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC7F3Hb,GAAY,CAChB,KAAM,gBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMU,GAAa,CAAC,cAAe,YAAY,EACzCC,GAAa,CAAC,OAAQ,QAAS,QAAQ,EACvCC,GAAa,CAAE,EAAG,8DAA8D,EAChFgE,GAAa,CAAE,IAAK,CAAC,EAC3B,SAAS/D,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAO9B,EAAS,EAAImC,EAAmB,OAAQuD,EAAW5F,EAAK,OAAQ,CACrE,cAAe6B,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,uCACP,KAAM,MACN,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,QAASuD,CAAM,EAC7E,CAAG,EAAG,EACDrD,EAAS,EAAImC,EAAmB,MAAO,CACtC,KAAMR,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDc,EAAmB,OAAQhB,GAAY,CACrCE,EAAO,OAAS3B,EAAS,EAAImC,EAAmB,QAASsD,GAAYrD,EAAgBT,EAAO,KAAK,EAAG,CAAC,GAAKU,EAAmB,GAAI,EAAI,CAC7I,CAAO,CACP,EAAO,EAAGb,EAAU,EACpB,EAAK,GAAID,EAAU,CACnB,CACA,MAAMoE,GAA4BlF,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,CAAC,CAAC,EC1C5Eb,GAAY,CAChB,KAAM,iBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMU,GAAa,CAAC,cAAe,YAAY,EACzCC,GAAa,CAAC,OAAQ,QAAS,QAAQ,EACvCC,GAAa,CAAE,EAAG,yEAAyE,EAC3FgE,GAAa,CAAE,IAAK,CAAC,EAC3B,SAAS/D,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAO9B,EAAS,EAAImC,EAAmB,OAAQuD,EAAW5F,EAAK,OAAQ,CACrE,cAAe6B,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,wCACP,KAAM,MACN,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,QAASuD,CAAM,EAC7E,CAAG,EAAG,EACDrD,EAAS,EAAImC,EAAmB,MAAO,CACtC,KAAMR,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDc,EAAmB,OAAQhB,GAAY,CACrCE,EAAO,OAAS3B,EAAS,EAAImC,EAAmB,QAASsD,GAAYrD,EAAgBT,EAAO,KAAK,EAAG,CAAC,GAAKU,EAAmB,GAAI,EAAI,CAC7I,CAAO,CACP,EAAO,EAAGb,EAAU,EACpB,EAAK,GAAID,EAAU,CACnB,CACA,MAAMqE,GAAiCnF,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,CAAC,CAAC,ECpCvFxC,GAAS2G,EAAG,EACZ,MAAMhF,GAAY,CAChB,KAAM,uBACN,WAAY,CACV,eAAA+E,GACA,UAAAE,GACA,SAAA5F,EACJ,EACE,MAAO,CAIL,QAAS,CACP,QAAS,GACT,KAAM,OACZ,EAII,YAAa,CACX,QAAS,GACT,KAAM,MACZ,EAII,WAAY,CACV,QAAS,GACT,KAAM,MACZ,CACA,EACE,MAAO,CACL,SACA,UACA,mBACJ,EACE,OAAQ,CACN,MAAO,CAAE,WAAA0E,EAAU,CACrB,EACA,MAAO,CACL,MAAO,CACL,aAAcviB,EAAE,iBAAiB,EACjC,YAAaA,EAAE,gBAAgB,CACrC,CACE,EACA,SAAU,CACR,WAAY,CACV,KAAM,CACJ,OAAO,KAAK,UACd,EACA,IAAI0jB,EAAU,CACZ,KAAK,MAAM,oBAAqBA,CAAQ,CAC1C,CACN,CACA,EACE,QAAS,CACP,SAAU,CACR,KAAK,MAAM,SAAS,CACtB,EACA,QAAS,CACP,KAAK,MAAM,QAAQ,CACrB,EACA,YAAa,CACX,KAAK,MAAM,MAAM,MAAK,CACxB,CACJ,CACA,EACMxE,GAAa,CAAC,aAAa,EACjC,SAASG,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMkE,EAA4BhE,EAAiB,gBAAgB,EAC7DiE,EAAsBjE,EAAiB,UAAU,EACjDkE,EAAuBlE,EAAiB,WAAW,EACzD,OAAOhC,EAAS,EAAImC,EAAmB,MAAO,CAC5C,MAAOhC,EAAe,CAAC,+BAAgC,CAAE,uCAAwCyB,EAAO,WAAY,CAAC,CACzH,EAAK,CACDa,EAAmB,OAAQ,CACzB,SAAU1C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIwC,GAAc,IAAIjE,IAASwD,EAAS,SAAWA,EAAS,QAAQ,GAAGxD,CAAI,EAAG,CAAC,SAAS,CAAC,GACzH,UAAWyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,QAAUA,EAAS,OAAO,GAAGxD,CAAI,EAAG,CAAC,QAAS,OAAQ,SAAS,CAAC,EAAG,CAAC,KAAK,CAAC,GAC5J,QAASyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIwC,GAAc,IAAM,CACvD,EAAG,CAAC,OAAQ,SAAS,CAAC,EAC5B,EAAO,CACDC,GAAeC,EAAmB,QAAS,CACzC,IAAK,QACL,sBAAuB1C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvB,EAAS,WAAauB,GACnF,KAAM,OACN,MAAO,sCACP,YAAa1B,EAAO,WAC5B,EAAS,KAAM,EAAGJ,EAAU,EAAG,CACvB,CAAC4E,GAAYrE,EAAS,UAAU,CACxC,CAAO,EACDzB,EAAY4F,EAAqB,CAC/B,aAAcpE,EAAM,aACpB,KAAM,SACN,QAAS,UACT,QAASU,GAAcT,EAAS,QAAS,CAAC,OAAQ,SAAS,CAAC,CACpE,EAAS,CACD,KAAM1B,EAAQ,IAAM,CAClBC,EAAY2F,EAA2B,CAAE,KAAM,EAAE,CAAE,CAC7D,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,aAAc,SAAS,CAAC,EAC/B3F,EAAY4F,EAAqB,CAC/B,aAAcpE,EAAM,YACpB,KAAM,QACN,QAASF,EAAO,QAAU,UAAY,WACtC,QAASY,GAAcT,EAAS,OAAQ,CAAC,OAAQ,SAAS,CAAC,CACnE,EAAS,CACD,KAAM1B,EAAQ,IAAM,CAClBC,EAAY6F,EAAsB,CAAE,KAAM,EAAE,CAAE,CACxD,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,aAAc,UAAW,SAAS,CAAC,CAChD,EAAO,EAAE,CACT,EAAK,CAAC,CACN,CACA,MAAME,GAAuC3F,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC3HzH2E,GAAoB,CACxB,cAAe,CACb,KAAK,KAAO,KAAK,QAAO,CAC1B,EACA,MAAO,CACL,MAAO,CAGL,KAAM,KAAK,QAAO,CACxB,CACE,EACA,SAAU,CACR,YAAa,CACX,OAAO,KAAK,MAAQ,KAAK,KAAK,KAAI,EAAG,OAAS,EAChD,CACJ,EACE,QAAS,CACP,SAAU,CACR,OAAO,KAAK,OAAO,UAAO,EAAK,CAAC,EAAE,UAAU,OAAI,GAAQ,EAC1D,CACJ,CACA,EClBMC,GAAkB,CACtB,OAAQ,CAACD,EAAiB,EAC1B,MAAO,CAIL,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAII,MAAO,CACL,KAAM,OACN,QAAS,EACf,EAII,gBAAiB,CACf,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,OACN,QAAS,IACf,CACA,EACE,OAAQ,CACN,UAAW,CACT,KAAME,EACZ,CACA,EACE,MAAO,CACL,OACJ,EACE,SAAU,CACJ,eAAgB,KAAK,MAG3B,EACA,SAAU,CAMR,WAAY,CACV,GAAI,CACF,MAAO,CAAC,CAAC,IAAI,IAAI,KAAK,KAAM,KAAK,KAAK,WAAW,GAAG,EAAI,OAAO,SAAS,OAAS,MAAM,CACzF,MAAQ,CACN,MAAO,EACT,CACF,CACJ,EACE,QAAS,CACP,QAAQlF,EAAO,CACb,KAAK,MAAM,QAASA,CAAK,EACrB,KAAK,iBACP,KAAK,UAAU,EAAK,CAExB,CACJ,CACA,ECtEMR,GAAY,CAChB,KAAM,iBACN,WAAY,CACV,iBAAAP,EACJ,EACE,OAAQ,CAACgG,EAAe,EACxB,OAAQ,CACN,iBAAkB,CAChB,KAAME,GACN,QAAS,EACf,CACA,EACE,MAAO,CAIL,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAKI,OAAQ,CACN,KAAM,QACN,QAAS,EACf,EAMI,KAAM,CACJ,KAAM,OACN,QAAS,SACT,UAAYC,GAAa,CAAC,SAAU,WAAY,QAAS,QAAS,QAAQ,EAAE,SAASA,CAAQ,CACnG,EAYI,WAAY,CACV,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,IACf,EAKI,MAAO,CACL,KAAM,OACN,QAAS,IACf,EAII,YAAa,CACX,KAAM,OACN,QAAS,EACf,CACA,EACE,MAAO,CAAC,mBAAmB,EAC3B,OAAQ,CACN,MAAO,CACL,SAAAC,GACA,gBAAAC,EACN,CACE,EACA,SAAU,CAMR,aAAc,CACZ,MAAO,CAAC,KAAK,QACf,EAIA,WAAY,CACV,OAAI,KAAK,OAAS,SAAW,OAAO,KAAK,YAAe,UAC/C,KAAK,aAAe,KAAK,MAE3B,KAAK,UACd,EAIA,YAAa,CACX,OAAI,KAAK,OAAS,UAAY,KAAK,OAAS,QACnC,KAAK,KAEP,QACT,EAIA,kBAAmB,CACjB,MAAMC,EAAa,CAAA,EACnB,OAAI,KAAK,kBACPA,EAAW,KAAO,WACd,KAAK,OAAS,SAChBA,EAAW,KAAO,gBAClBA,EAAW,cAAc,EAAI,KAAK,UAAY,OAAS,UAC9C,KAAK,OAAS,YAAc,KAAK,aAAe,UAAY,KAAK,aAAe,QACzFA,EAAW,KAAO,mBAClBA,EAAW,cAAc,EAAI,KAAK,aAAe,KAAO,QAAU,KAAK,WAAa,OAAS,UAEtF,KAAK,aAAe,MAAQ,KAAK,aAAe,WACzDA,EAAW,cAAc,EAAI,KAAK,WAAa,OAAS,SAEnDA,CACT,CACJ,EACE,QAAS,CAMP,YAAYvF,EAAO,CACjB,KAAK,QAAQA,CAAK,GACd,KAAK,aAAe,MAAQ,KAAK,OAAS,YACxC,KAAK,OAAS,QACZ,OAAO,KAAK,YAAe,UACxB,KAAK,WACR,KAAK,MAAM,oBAAqB,KAAK,KAAK,EAG5C,KAAK,MAAM,oBAAqB,CAAC,KAAK,SAAS,EAGjD,KAAK,MAAM,oBAAqB,CAAC,KAAK,SAAS,EAGrD,CACJ,CACA,EACME,GAAa,CAAC,MAAM,EACpBC,GAAa,CAAC,aAAc,WAAY,QAAS,MAAM,EACvDC,GAAa,CAAE,MAAO,iCAAiC,EACvDgE,GAAa,CACjB,IAAK,EACL,MAAO,qBACT,EACMoB,GAAa,CAAC,aAAa,EAC3BC,GAAa,CACjB,IAAK,EACL,MAAO,qBACT,EACMC,GAAa,CAAC,aAAa,EAC3BC,GAAa,CACjB,IAAK,EACL,MAAO,kDACT,EACA,SAAStF,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMmF,EAA8BjF,EAAiB,kBAAkB,EACvE,OAAOhC,EAAS,EAAImC,EAAmB,KAAM,CAC3C,MAAOhC,EAAe,CAAC,SAAU,CAAE,mBAAoBwB,EAAO,QAAQ,CAAE,CAAC,EACzE,KAAMG,EAAS,kBAAoB,cACvC,EAAK,CACDW,EAAmB,SAAUiD,EAAW,CACtC,aAAc5F,EAAK,UACnB,MAAO,CAAC,2BAA4B,CAClC,wBAAyBgC,EAAS,UAClC,UAAWA,EAAS,WAC5B,CAAO,EACD,SAAUH,EAAO,SACjB,MAAO7B,EAAK,MACZ,KAAMgC,EAAS,UACrB,EAAOA,EAAS,iBAAkB,CAC5B,QAAS/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,aAAeA,EAAS,YAAY,GAAGxD,CAAI,EAC1G,CAAK,EAAG,CACFoE,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,IAAM,CACxC2C,EAAmB,OAAQ,CACzB,MAAOtC,EAAe,CAAC,CAACL,EAAK,UAAY,2BAA6BA,EAAK,IAAI,EAAG,qBAAqB,CAAC,EACxG,MAAOoH,GAAe,CAAE,gBAAiBpH,EAAK,UAAY,OAAOA,EAAK,IAAI,IAAM,IAAI,CAAE,EACtF,cAAe,MACzB,EAAW,KAAM,CAAC,CAClB,EAAS,EAAI,EACP2C,EAAmB,OAAQhB,GAAY,CACrC3B,EAAK,MAAQE,EAAS,EAAImC,EAAmB,SAAUsD,GAAYrD,EAAgBtC,EAAK,IAAI,EAAG,CAAC,GAAKuC,EAAmB,GAAI,EAAI,EAChIvC,EAAK,YAAcE,IAAamC,EAAmB,OAAQ,CACzD,IAAK,EACL,MAAO,0BACP,YAAaC,EAAgBtC,EAAK,IAAI,CAChD,EAAW,KAAM,EAAG+G,EAAU,IAAM7G,EAAS,EAAImC,EAAmB,OAAQ2E,GAAY1E,EAAgBtC,EAAK,IAAI,EAAG,CAAC,GAC7G6B,EAAO,aAAe3B,IAAamC,EAAmB,OAAQ,CAC5D,IAAK,EACL,MAAO,6BACP,YAAaC,EAAgBT,EAAO,WAAW,CACzD,EAAW,KAAM,EAAGoF,EAAU,GAAK1E,EAAmB,GAAI,EAAI,CAC9D,CAAO,EACDV,EAAO,QAAU3B,IAAaC,EAAYgH,EAA6B,CACrE,IAAK,EACL,MAAO,2BACP,YAAa,GACb,KAAMrF,EAAO,eACrB,EAAS,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKE,EAAS,WAAa9B,EAAS,EAAIC,EAAYgH,EAA6B,CACnG,IAAK,EACL,KAAMrF,EAAO,SACb,MAAO,6BACf,EAAS,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKE,EAAS,YAAc,IAAS9B,EAAS,EAAImC,EAAmB,OAAQ6E,EAAU,GAAK3E,EAAmB,GAAI,EAAI,EAC3IA,EAAmB,GAAI,EAAI,CACjC,EAAO,GAAIb,EAAU,CACrB,EAAK,GAAID,EAAU,CACnB,CACA,MAAM4F,GAAiC1G,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC9NnHb,GAAYzJ,GAAgB,CAChC,KAAM,WACN,MAAO,CAIL,OAAQ,CACN,KAAM,CAAC,MAAO,MAAM,EACpB,QAAS,IACf,CACA,EAIE,QAAS,CACP,OAAO,KAAK,QAAU,KAAK,QAAQ,UAAU,CAAA,CAAE,CACjD,CACF,CAAC,ECHKgQ,GAAc,CAClB,KAAM,aACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMC,GAAe,CAAC,cAAe,YAAY,EAC3CC,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,qJAAqJ,EACzKC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAc3H,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CACpE,OAAO9B,EAAS,EAAImC,EAAmB,OAAQuD,EAAW5F,EAAK,OAAQ,CACrE,cAAe6B,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,mCACP,KAAM,MACN,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,QAASuD,CAAM,EAC7E,CAAG,EAAG,EACDrD,EAAS,EAAImC,EAAmB,MAAO,CACtC,KAAMR,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDc,EAAmB,OAAQ8E,GAAc,CACvC5F,EAAO,OAAS3B,EAAS,EAAImC,EAAmB,QAASqF,GAAcpF,EAAgBT,EAAO,KAAK,EAAG,CAAC,GAAKU,EAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAGiF,EAAY,EACtB,EAAK,GAAID,EAAY,CACrB,CACA,MAAMK,GAAyBjH,GAAY2G,GAAa,CAAC,CAAC,SAAUK,EAAa,CAAC,CAAC,EAC7EE,GAAc,CAClB,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACM1E,GAAe,CAAC,cAAe,YAAY,EAC3C2E,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,4JAA4J,EAChLC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAcjI,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CACpE,OAAO9B,EAAS,EAAImC,EAAmB,OAAQuD,EAAW5F,EAAK,OAAQ,CACrE,cAAe6B,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,iCACP,KAAM,MACN,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,QAASuD,CAAM,EAC7E,CAAG,EAAG,EACDrD,EAAS,EAAImC,EAAmB,MAAO,CACtC,KAAMR,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDc,EAAmB,OAAQoF,GAAc,CACvClG,EAAO,OAAS3B,EAAS,EAAImC,EAAmB,QAAS2F,GAAc1F,EAAgBT,EAAO,KAAK,EAAG,CAAC,GAAKU,EAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAGuF,EAAY,EACtB,EAAK,GAAI3E,EAAY,CACrB,CACA,MAAM+E,GAAuBvH,GAAYkH,GAAa,CAAC,CAAC,SAAUI,EAAa,CAAC,CAAC,EACjF7I,GAAS+I,EAAG,EACZ,MAAM7I,GAAc,CAClB,KAAM,iCACN,WAAY,CACV,SAAAc,GACA,YAAAgI,GACA,UAAAvC,EACJ,EACE,MAAO,CAIL,KAAM,CACJ,KAAM,QACN,SAAU,EAChB,EAII,OAAQ,CACN,KAAM,QACN,SAAU,EAChB,CACA,EACE,MAAO,CAAC,OAAO,EACf,OAAQ,CACN,MAAO,CAAE,WAAAf,EAAU,CACrB,EACA,SAAU,CACR,aAAc,CACZ,OAAO,KAAK,KAAOviB,EAAE,eAAe,EAAIA,EAAE,WAAW,CACvD,CACJ,EACE,QAAS,CACP,QAAQ,EAAG,CACT,KAAK,MAAM,QAAS,CAAC,CACvB,CACJ,CACA,EACA,SAAS8lB,GAAcrI,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CACpE,MAAMsG,EAAuBpG,EAAiB,WAAW,EACnDqG,EAAyBrG,EAAiB,aAAa,EACvDiE,EAAsBjE,EAAiB,UAAU,EACvD,OAAOhC,EAAS,EAAIC,EAAYgG,EAAqB,CACnD,MAAO9F,EAAe,CAAC,gBAAiB,CACtC,wBAAyBwB,EAAO,OAChC,sBAAuBA,EAAO,IACpC,CAAK,CAAC,EACF,aAAcG,EAAS,YACvB,QAASH,EAAO,QAAUC,EAAO,WAAa,sBAAwB,WACtE,QAASE,EAAS,OACtB,EAAK,CACD,KAAM1B,EAAQ,IAAM,CAClBuB,EAAO,MAAQ3B,IAAaC,EAAYmI,EAAsB,CAC5D,IAAK,EACL,KAAM,EACd,CAAO,IAAMpI,EAAS,EAAIC,EAAYoI,EAAwB,CACtD,IAAK,EACL,KAAM,EACd,CAAO,EACP,CAAK,EACD,EAAG,CACP,EAAK,EAAG,CAAC,QAAS,aAAc,UAAW,SAAS,CAAC,CACrD,CACA,MAAMC,GAAiD7H,GAAYrB,GAAa,CAAC,CAAC,SAAU+I,EAAa,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EAC7IjJ,GAASqJ,GAAKC,EAAG,EACjB,MAAM3H,GAAY,CAChB,KAAM,sBACN,WAAY,CACV,UAAAkE,GACA,eAAAoC,GACA,+BAAAmB,GACA,qBAAAlC,GACA,cAAAqC,GACA,SAAUC,GACd,OAAIhB,GACA,KAAAM,EACJ,EACE,MAAO,CAKL,OAAQ,CACN,KAAM,QACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,OACN,SAAU,EAChB,EAII,MAAO,CACL,KAAM,OACN,QAAS,IACf,EAII,GAAI,CACF,KAAM,OACN,QAAS,IAAMW,GAAe,EAC9B,UAAY1J,GAAOA,EAAG,KAAI,IAAO,EACvC,EAKI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAKI,QAAS,CACP,KAAM,QACN,QAAS,EACf,EAMI,GAAI,CACF,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,IACf,EAKI,KAAM,CACJ,KAAM,OACN,QAAS,IACf,EAKI,cAAe,CACb,KAAM,QACN,QAAS,EACf,EAKI,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,OACN,QAAS,EACf,EAII,gBAAiB,CACf,KAAM,OACN,QAAS,EACf,EAMI,OAAQ,CACN,KAAM,QACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,QACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,QACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,OACN,QAAS,MACf,EAII,cAAe,CACb,KAAM,OACN,QAAS,QACf,EAII,gBAAiB,CACf,KAAM,OACN,QAAS,IACf,EAII,oBAAqB,CACnB,KAAM,QACN,QAAS,EACf,EAII,cAAe,CACb,KAAM,OACN,QAAS,CACf,CACA,EACE,MAAO,CACL,kBACA,cACA,cACA,QACA,MACJ,EACE,OAAQ,CACN,MAAO,CACL,SAAUM,GAAW,EACrB,WAAAqF,EACN,CACE,EACA,MAAO,CACL,MAAO,CACL,yBAA0B,OAC1B,aAAc,GACd,OAAQ,KAAK,KAEb,cAAe,GAIf,mBAAoB,GACpB,QAAS,EACf,CACE,EACA,SAAU,CACR,cAAe,CACb,OAAO,KAAK,IAAM,CAAC,KAAK,IAC1B,EAGA,iBAAkB,CAChB,OAAI,KAAK,QAAQ,SAAS,gBAAkB,mBAK9C,EACA,qBAAsB,CACpB,OAAO,KAAK,UAAY,KAAK,UAAYviB,EAAE,WAAW,CACxD,EACA,qBAAsB,CACpB,OAAOA,EAAE,cAAc,CACzB,CACJ,EACE,MAAO,CACL,KAAKumB,EAAQ,CACX,KAAK,OAASA,CAChB,CACJ,EACE,SAAU,CACR,KAAK,yBAA2B,SAAS,cAAc,cAAc,GAAK,MAC5E,EACA,QAAS,CAEP,aAAa5a,EAAO,CAClB,KAAK,MAAM,kBAAmBA,CAAK,EACnC,KAAK,mBAAqBA,CAC5B,EAEA,gBAAiB,CACf,KAAK,OAAS,CAAC,KAAK,OACpB,KAAK,MAAM,cAAe,KAAK,MAAM,CACvC,EAQA,QAAQqT,EAAOtK,EAAU8R,EAAgB,CACvC,KAAK,MAAM,QAASxH,CAAK,EACrB,EAAAA,EAAM,SAAWA,EAAM,QAAUA,EAAM,SAAWA,EAAM,WAGxDwH,IACF9R,IAAWsK,CAAK,EAChBA,EAAM,eAAc,EAExB,EAEA,YAAa,CACX,KAAK,aAAe,KAAK,KACzB,KAAK,cAAgB,GACrB,KAAK,aAAa,EAAK,EACvB,KAAK,UAAU,IAAM,CACnB,KAAK,MAAM,aAAa,WAAU,CACpC,CAAC,CACH,EACA,eAAgB,CACd,KAAK,cAAgB,EACvB,EACA,mBAAoB,CAClB,KAAK,MAAM,cAAe,KAAK,YAAY,EAC3C,KAAK,aAAe,GACpB,KAAK,cAAgB,EACvB,EAEA,YAAa,CACX,KAAK,MAAM,MAAM,CACnB,EAIA,aAAc,CACZ,KAAK,QAAU,EACjB,EACA,YAAa,CACX,KAAK,QAAU,EACjB,EAOA,UAAU,EAAG,CACN,KAAK,MAAM,UAGZ,KAAK,SACP,EAAE,eAAc,EAChB,KAAK,MAAM,QAAQ,MAAM,cAAc,IAAI,MAAK,EAChD,KAAK,QAAU,IAEf,KAAK,MAAM,QAAQ,MAAM,cAAc,IAAI,KAAI,EAEnD,EAOA,WAAWnG,EAAM,CACf,OAAOA,GAAQA,EAAK,MAAM,cAAc,CAC1C,CACJ,CACA,EACMqG,GAAa,CAAC,IAAI,EAClBC,GAAa,CAAC,eAAgB,mBAAoB,gBAAiB,OAAQ,SAAU,QAAS,SAAS,EACvGC,GAAa,CACjB,IAAK,EACL,MAAO,kBACT,EACMgE,GAAa,CACjB,IAAK,EACL,MAAO,+BACT,EACMoB,GAAa,CAAE,MAAO,2CAA2C,EACjEC,GAAa,CACjB,IAAK,EACL,MAAO,uCACT,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,gCACT,EACA,SAASrF,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMgH,EAA2B9G,EAAiB,eAAe,EAC3D+G,EAAkC/G,EAAiB,sBAAsB,EACzEgH,EAAoBhH,EAAiB,QAAQ,EAC7CiH,EAA4BjH,EAAiB,gBAAgB,EAC7DkH,EAAkBlH,EAAiB,MAAM,EACzCmD,EAAuBnD,EAAiB,WAAW,EACnDmH,EAA4CnH,EAAiB,gCAAgC,EACnG,OAAOhC,EAAS,EAAImC,EAAmB,KAAM,CAC3C,GAAIR,EAAO,GACX,MAAOxB,EAAe,CAAC,CACrB,+BAAgC0B,EAAM,OACtC,+BAAgCF,EAAO,OACvC,oCAAqCA,EAAO,eAAiB,CAAC,CAAC7B,EAAK,OAAO,OACjF,EAAO,8BAA8B,CAAC,CACtC,EAAK,EACAE,EAAS,EAAIC,EAAYmF,GAAwBtD,EAAS,aAAe,cAAgB,UAAU,EAAGwD,GAAeC,GAAmB,CAAE,GAAGzD,EAAS,cAAgB,CAAE,OAAQ,GAAM,GAAIH,EAAO,GAAI,CAAE,CAAC,EAAG,CAC1M,QAASvB,EAAQ,CAAC,CAAE,KAAMyI,EAAgB,SAAA9R,EAAU,SAAAH,KAAe,CACjE6L,EAAmB,MAAO,CACxB,MAAOtC,EAAe,CAAC,uBAAwB,CAC7C,gCAAiC0B,EAAM,cACvC,gCAAiCF,EAAO,KACxC,+BAAgCC,EAAO,WACvC,OAAQD,EAAO,IAAM/K,GAAY+K,EAAO,MACpD,CAAW,CAAC,CACZ,EAAW,CACAA,EAAO,KAoCcU,EAAmB,GAAI,EAAI,GApCjCrC,EAAS,EAAImC,EAAmB,IAAK,CACnD,IAAK,EACL,MAAO,4BACP,eAAgBR,EAAO,QAAUA,EAAO,IAAM/K,EAAW,OAAS,OAClE,mBAAoB+K,EAAO,gBAC3B,gBAAmB7B,EAAK,OAAO,QAAU+B,EAAM,OAAO,SAAQ,EAAK,OACnE,KAAMF,EAAO,MAAQkH,GAAkB,IACvC,OAAQ/G,EAAS,WAAWH,EAAO,IAAI,EAAI,SAAW,OACtD,MAAOA,EAAO,OAASA,EAAO,KAC9B,OAAQ5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,YAAcA,EAAS,WAAW,GAAGxD,CAAI,GACjG,QAAU+E,GAAWvB,EAAS,QAAQuB,EAAQtM,EAAU8R,CAAc,EACtE,QAAS9I,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,aAAeA,EAAS,YAAY,GAAGxD,CAAI,GACpG,UAAWyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,WAAaA,EAAS,UAAU,GAAGxD,CAAI,EAAG,CAAC,OAAO,CAAC,EAAG,CAAC,KAAK,CAAC,EAC3J,EAAa,CACDmE,EAAmB,MAAO,CACxB,MAAOtC,EAAe,CAAC,4BAA6B,CAAE,CAACwB,EAAO,IAAI,EAAGA,EAAO,KAAM,CAAC,CACjG,EAAe,CACDA,EAAO,SAAW3B,IAAaC,EAAY6I,EAA0B,CAAE,IAAK,CAAC,CAAE,GAAKpG,EAAW5C,EAAK,OAAQ,OAAQ,CAClH,IAAK,EACL,OAAQ6B,EAAO,QAAUA,EAAO,IAAM/K,CACtD,EAAiB,OAAQ,EAAI,CAC7B,EAAe,CAAC,EACJ6L,EAAmB,OAAQ,CACzB,MAAOtC,EAAe,CAAC,6BAA8B,CAAE,kBAAmB0B,EAAM,cAAe,CAAC,CAC9G,EAAeO,EAAgBT,EAAO,IAAI,EAAG,CAAC,EAClCE,EAAM,eAAiB7B,EAAS,EAAImC,EAAmB,MAAOV,GAAY,CACxEpB,EAAY0I,EAAiC,CAC3C,IAAK,eACL,WAAYlH,EAAM,aAClB,sBAAuB9B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWxB,EAAM,aAAewB,GAClF,YAAa1B,EAAO,kBAAoB,GAAKA,EAAO,gBAAkBA,EAAO,KAC7E,QAASA,EAAO,IAAM/K,GAAY+K,EAAO,OACzC,SAAUG,EAAS,cACnB,UAAWA,EAAS,iBACpC,EAAiB,KAAM,EAAG,CAAC,aAAc,cAAe,UAAW,WAAY,WAAW,CAAC,CAC3F,CAAa,GAAKO,EAAmB,GAAI,EAAI,CAC7C,EAAa,GAAIb,EAAU,GACjBG,EAAO,MAAQ3B,EAAS,EAAImC,EAAmB,MAAOsD,GAAY,CAChEhD,EAAmB,MAAOoE,GAAYzE,EAAgBT,EAAO,IAAI,EAAG,CAAC,CACjF,CAAW,GAAKU,EAAmB,GAAI,EAAI,GAC9BvC,EAAK,OAAO,SAAaA,EAAK,OAAO,SAAW6B,EAAO,UAAYA,EAAO,OAAS,CAACE,EAAM,eAAiB7B,EAAS,EAAImC,EAAmB,MAAO,CACnJ,IAAK,EACL,MAAOhC,EAAe,CAAC,8BAA+B,CAAE,+CAAgDwB,EAAO,qBAAuBE,EAAM,oBAAsBF,EAAO,QAAQ,CAAE,CAAC,CAChM,EAAa,CACC7B,EAAK,OAAO,SAAWE,EAAS,EAAImC,EAAmB,MAAO2E,GAAY,CAC1EpE,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACjE,CAAa,GAAKuC,EAAmB,GAAI,EAAI,EAC/BvC,EAAK,OAAO,SAAW6B,EAAO,UAAY,CAACE,EAAM,eAAiBF,EAAO,MAAQ3B,EAAS,EAAIC,EAAYkF,EAAsB,CAChI,IAAK,EACL,IAAK,UACL,MAAO,gCACP,UAAW,sBACX,kBAAmBtD,EAAM,yBACzB,OAAQF,EAAO,cACf,UAAWA,EAAO,cAClB,KAAMA,EAAO,SACb,UAAWA,EAAO,UAClB,YAAaA,EAAO,SACpB,QAAS,WACT,gBAAiBG,EAAS,YACxC,EAAe,CACD,KAAM1B,EAAQ,IAAM,CAClBsC,EAAW5C,EAAK,OAAQ,YAAa,CAAA,EAAI,OAAQ,EAAI,CACrE,CAAe,EACD,QAASM,EAAQ,IAAM,CACrBuB,EAAO,UAAY,CAACE,EAAM,eAAiB7B,EAAS,EAAIC,EAAYgJ,EAA2B,CAC7F,IAAK,EACL,aAAcnH,EAAS,oBACvB,QAASA,EAAS,UACpC,EAAmB,CACD,KAAM1B,EAAQ,IAAM,CAClBC,EAAY2I,EAAmB,CAAE,KAAM,EAAE,CAAE,CAC/D,CAAmB,EACD,QAAS5I,EAAQ,IAAM,CACrBiF,EAAgB,IAAMjD,EAAgBT,EAAO,SAAS,EAAG,CAAC,CAC9E,CAAmB,EACD,EAAG,CACrB,EAAmB,EAAG,CAAC,aAAc,SAAS,CAAC,GAAKU,EAAmB,GAAI,EAAI,EAC/DV,EAAO,MAAQ3B,IAAaC,EAAYgJ,EAA2B,CACjE,IAAK,EACL,aAAcnH,EAAS,oBACvB,QAASA,EAAS,UACpC,EAAmB,CACD,KAAM1B,EAAQ,IAAM,CAClBC,EAAY6I,EAAiB,CAAE,KAAM,EAAE,CAAE,CAC7D,CAAmB,EACD,EAAG,CACrB,EAAmB,EAAG,CAAC,aAAc,SAAS,CAAC,GAAK7G,EAAmB,GAAI,EAAI,EAC/DK,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACnE,CAAe,EACD,EAAG,CACjB,EAAe,EAAG,CAAC,oBAAqB,SAAU,YAAa,OAAQ,YAAa,cAAe,eAAe,CAAC,GAAKuC,EAAmB,GAAI,EAAI,CACnJ,EAAa,CAAC,GAAKA,EAAmB,GAAI,EAAI,EACpCV,EAAO,eAAmB7B,EAAK,OAAO,SAAWE,EAAS,EAAIC,EAAYkJ,EAA2C,CACnH,IAAK,EACL,OAAQxH,EAAO,IAAM/K,GAAY+K,EAAO,OACxC,KAAME,EAAM,OACZ,QAASU,GAAcT,EAAS,eAAgB,CAAC,UAAW,MAAM,CAAC,CAC/E,EAAa,KAAM,EAAG,CAAC,SAAU,OAAQ,SAAS,CAAC,GAAKO,EAAmB,GAAI,EAAI,EACzEK,EAAW5C,EAAK,OAAQ,QAAS,CAAA,EAAI,OAAQ,EAAI,CAC3D,EAAW,CAAC,CACZ,CAAO,EACD,EAAG,CACT,EAAO,EAAE,GACLgC,EAAS,iBAAqBhC,EAAK,OAAO,SAAWE,IAAamC,EAAmB,KAAM4E,GAAY,CACrGrE,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACzD,CAAK,GAAKuC,EAAmB,GAAI,EAAI,CACrC,EAAK,GAAId,EAAU,CACnB,CACA,MAAM6H,GAAsC3I,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC9nBxHb,GAAY,CAChB,WAAY,CACV,SAAAX,EACJ,EACE,MAAO,CAIL,SAAU,CACR,KAAM,OACN,SAAU,GACV,QAAS,EACf,EAII,SAAU,CACR,KAAM,QACN,SAAU,GACV,QAAS,EACf,EAII,KAAM,CACJ,KAAM,OACN,SAAU,EAChB,EAMI,QAAS,CACP,KAAM,OACN,QAAS,UACT,UAAU3X,EAAO,CACf,MAAO,CAAC,UAAW,YAAa,UAAU,EAAE,QAAQA,CAAK,IAAM,EACjE,CACN,CACA,EACE,MAAO,CAAC,OAAO,CACjB,EACMgZ,GAAa,CAAE,MAAO,oBAAoB,EAChD,SAASG,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMmE,EAAsBjE,EAAiB,UAAU,EACvD,OAAOhC,EAAS,EAAImC,EAAmB,MAAOZ,GAAY,CACxDlB,EAAY4F,EAAqB,CAC/B,GAAItE,EAAO,SACX,SAAUA,EAAO,SACjB,QAASA,EAAO,QAChB,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,OAAO,EACvE,EAAO,CACD,KAAMM,EAAQ,IAAM,CAClBsC,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CACxD,CAAO,EACD,QAASM,EAAQ,IAAM,CACrBiF,EAAgB,IAAMjD,EAAgBT,EAAO,IAAI,EAAG,CAAC,CAC7D,CAAO,EACD,EAAG,CACT,EAAO,EAAG,CAAC,KAAM,WAAY,SAAS,CAAC,CACvC,CAAG,CACH,CACA,MAAM0H,GAAqC5I,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECzD7HxC,GAASoK,EAAG,EACZ,MAAMC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACbC,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAChBjI,GAAa,CAAE,MAAO,6BAA6B,EACnDC,GAAa,CAAE,MAAO,4BAA4B,EAClDC,GAAa,CAAE,MAAO,2BAA2B,EACjDZ,GAA4BzJ,GAAgB,CAChD,OAAQ,YACR,MAAO,CACL,QAAS,CAAA,CACb,EACE,MAAMiI,EAAS,CACb,MAAM/J,EAAQ+J,EACdxG,GAAQiK,GAAwB2G,CAAgB,EAChD5Q,GAAQkK,GAAsB,cAAc,EAC5ClK,GAAQ,UAAWzC,EAAS,IAAMd,EAAM,OAAO,CAAC,EAChD,MAAMgK,EAAWC,GAAW,EACtBmK,EAAmB1Q,GAAI,EAAK,EAC5B2Q,EAAe3Q,GAAG,EAClB4Q,EAAexT,EAAS,IAAMuT,EAAa,QAAU,aAAeH,GAAgBD,EAAU,EACpGM,GAAc,IAAM,CAClB,MAAMC,EAAY,SAAS,eAAe,cAAc,EACpDA,IACFA,EAAU,UAAY,GACtBA,EAAU,UAAU,IAAI,kBAAkB,EAE9C,CAAC,EACD,SAASC,GAAoB,CAC3BlK,GAAK,oBAAqB,CAAE,KAAM,EAAI,CAAE,EACxCjC,GAAS,IAAM,CACb,OAAO,SAAS,KAAO,qBACvB,SAAS,eAAe,oBAAoB,EAAE,MAAK,CACrD,CAAC,CACH,CACA,SAAS6L,EAAiBlhB,EAAO,CAC/BmhB,EAAiB,MAAQnhB,EACpBohB,EAAa,QAChBA,EAAa,MAAQ,aAEzB,CACA,MAAO,CAAC7J,EAAMC,KACLC,EAAS,EAAImC,EAAmB,MAAO,CAC5C,GAAI,cACJ,MAAOhC,EAAe,CAAC,UAAW,CAAC,OAAOd,EAAQ,QAAQ,YAAW,CAAE,GAAI,CAAE,kBAAmBhJ,EAAMuO,EAAU,CAAC,CAAE,CAAC,CAAC,CAC7H,EAAS,EACA5E,EAAS,EAAIC,EAAY+J,GAAU,CAAE,GAAI,eAAe,EAAI,CAC3DvH,EAAmB,MAAOlB,GAAY,CACpCkB,EAAmB,MAAOjB,GAAYY,EAAgB/L,EAAMhU,CAAC,EAAE,0BAA0B,CAAC,EAAG,CAAC,EAC9FogB,EAAmB,MAAOhB,GAAY,CACpCe,GAAenC,EAAYH,GAAU,CACnC,KAAM,sBACN,QAAS,WACT,QAASqC,GAAcwH,EAAmB,CAAC,SAAS,CAAC,EACrD,UAAWhK,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWsG,EAAa,MAAQ,cACtE,YAAa5J,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWsG,EAAa,MAAQ,aACxF,EAAiB,CACD,QAASvJ,EAAQ,IAAM,CACrBiF,EAAgBjD,EAAgB/L,EAAMhU,CAAC,EAAE,wBAAwB,CAAC,EAAG,CAAC,CACxF,CAAiB,EACD,EAAG,CACnB,EAAiB,GAAG,EAAG,CACP,CAACsgB,GAAO+G,EAAiB,KAAK,CAC9C,CAAe,EACDrJ,EAAYH,GAAU,CACpB,KAAM,mBACN,QAAS,WACT,UAAWH,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWsG,EAAa,MAAQ,WACtE,YAAa5J,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWsG,EAAa,MAAQ,UACxF,EAAiB,CACD,QAASvJ,EAAQ,IAAM,CACrBiF,EAAgBjD,EAAgB/L,EAAMhU,CAAC,EAAE,sBAAsB,CAAC,EAAG,CAAC,CACtF,CAAiB,EACD,EAAG,CACnB,CAAe,CACf,CAAa,EACDmgB,GAAenC,EAAYC,GAAkB,CAC3C,MAAO,0BACP,IAAKsJ,EAAa,MAClB,KAAM,MACpB,EAAe,KAAM,EAAG,CAAC,KAAK,CAAC,EAAG,CACpB,CAACjH,GAAO,CAACtM,EAAMiJ,CAAQ,CAAC,CACtC,CAAa,CACb,CAAW,CACX,CAAS,GACDoD,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CAC3D,EAAS,CAAC,EAER,CACF,CAAC,EACKmK,GAA4BxJ,GAAYI,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC/FrFU,GAAa,CAAC,OAAO,EACrBV,GAA4BzJ,GAAgB,CAChD,OAAQ,kBACR,MAAO,CACL,MAAO,CAAA,EACP,OAAQ,CAAE,KAAM,OAAO,EACvB,KAAM,CAAE,QAAS,EAAE,EACnB,IAAK,CAAE,KAAM,OAAO,CACxB,EACE,MAAMiI,EAAS,CACb,MAAM/J,EAAQ+J,EACR6K,EAAiB9T,EAAS,IAC1Bd,EAAM,IACDA,EAAM,MAAM,SAAQ,EAEX,IAAI,KAAK,aAAa6U,GAAkB,EAAI,CAC5D,SAAU,UACV,eAAgB,OACxB,CAAO,EACgB,OAAO7U,EAAM,KAAK,CACpC,EACK8U,EAA+BhU,EAAS,IAAM,CAClD,GAAId,EAAM,IACR,OAEF,MAAM+U,EAAgB/U,EAAM,MAAM,SAAQ,EAC1C,GAAI+U,IAAkBH,EAAe,MAGrC,OAAOG,CACT,CAAC,EACD,MAAO,CAACvK,EAAMC,KACLC,EAAS,EAAImC,EAAmB,MAAO,CAC5C,MAAOhC,EAAe,CAAC,0BAA2B,CAChD,OAAQd,EAAQ,OAChB,uCAAwCA,EAAQ,OAAS,cACzD,oCAAqCA,EAAQ,OAAS,UAChE,CAAS,CAAC,EACF,MAAO+K,EAA6B,KAC5C,EAAShI,EAAgB8H,EAAe,KAAK,EAAG,GAAI3I,EAAU,EAE5D,CACF,CAAC,EACK+I,GAAkC7J,GAAYI,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC3B5FA,GAAU,CACb,KAAM,mBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,kkBAAkkB,iDAX9kB8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,0CACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,6BACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,qTAAqT,iDAXjU8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,qDACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,oBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,2NAA2N,iDAXvO8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,2CACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,eACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,oDAAoD,iDAXhE8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,sCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,qBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,iPAAiP,iDAX7P8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,4CACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,2BACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,8QAA8Q,iDAX1R8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,mDACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,eACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,2CAA2C,iDAXvD8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,qCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,2CAA2C,iDAXvD8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,iCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,mBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,wYAAwY,iDAXpZ8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,0CACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCT9BgJ,GAAsC,OAAO,IAAI,mBAAmB,ECI1E,SAASC,GAAsBthB,EAAI,CACjC,MAAMuhB,EAAUzU,EAAS,IAAM0U,GAAQxhB,CAAE,GAAK,SAAS,IAAI,EACrDyhB,EAAc/R,GAAIgS,GAAiBH,EAAQ,KAAK,CAAC,EACjDI,EAAoBC,GAAgB,EAC1C,SAASC,GAAoB,CAC3BJ,EAAY,MAAQC,GAAiBH,EAAQ,KAAK,CACpD,CACA,OAAAO,GAAoBP,EAASM,EAAmB,CAAE,WAAY,EAAI,CAAE,EACpElS,GAAM4R,EAASM,CAAiB,EAChClS,GAAMgS,EAAmBE,EAAmB,CAAE,UAAW,EAAI,CAAE,EACxDE,GAASN,CAAW,CAC7B,CACA,MAAMO,GAAyBC,GAAuB,IAAMX,IAAuB,EACnF,SAASY,IAAiB,CACxB,MAAMT,EAAcO,GAAsB,EACpCG,EAAgBzV,GAAO2U,GAAqB,MAAM,EACxD,OAAOvU,EAAS,IACVqV,GAAe,MACVA,EAAc,QAAU,OAE1BV,EAAY,KACpB,CACH,CCzBA7L,GAASwM,EAAG,EACZ,MAAMnK,GAAa,CAAC,KAAK,EACnBC,GAAa,CAAC,KAAM,OAAQ,QAAS,MAAO,KAAK,EACjDX,GAA4BzJ,GAAgB,CAC3C,aAAc,GACnB,OAAQ,yBACR,MAAuBuU,GAAY,CACjC,MAAO,CAAE,QAAS,MAAM,EACxB,GAAI,CAAE,QAAS,IAAMhD,IAAiB,EACtC,WAAY,CAAE,QAAS,EAAE,EACzB,KAAM,CAAE,QAAS,MAAM,EACvB,MAAO,CAAE,QAAS,IAAMtmB,EAAE,sBAAsB,CAAC,EACjD,IAAK,CAAE,QAAS,IAAI,EACpB,IAAK,CAAE,QAAS,IAAI,EACpB,UAAW,CAAE,KAAM,OAAO,CAC9B,EAAK,CACD,WAAc,CAAE,QAAS,IAAI,EAC7B,eAAkB,CAAA,CACtB,CAAG,EACD,MAAO,CAAC,mBAAmB,EAC3B,MAAMgd,EAAS,CACb,MAAMuM,EAAazI,GAAS9D,EAAS,YAAY,EAC3C/J,EAAQ+J,EACRwM,EAAiBzV,EAAS,IAAMwV,EAAW,MAAQE,EAAYF,EAAW,KAAK,EAAI,EAAE,EACrFG,EAAe3V,EAAS,IAAMd,EAAM,IAAMwW,EAAYxW,EAAM,GAAG,EAAI,MAAM,EACzE0W,EAAe5V,EAAS,IAAMd,EAAM,IAAMwW,EAAYxW,EAAM,GAAG,EAAI,MAAM,EAC/E,SAAS2W,EAAgB1jB,EAAO,CAC9B,MAAM2jB,EAAO3jB,EAAM,YAAW,EAAG,SAAQ,EAAG,SAAS,EAAG,GAAG,EACrD4jB,GAAM5jB,EAAM,SAAQ,EAAK,GAAG,WAAW,SAAS,EAAG,GAAG,EACtD6jB,EAAK7jB,EAAM,QAAO,EAAG,SAAQ,EAAG,SAAS,EAAG,GAAG,EAC/C8jB,EAAK9jB,EAAM,SAAQ,EAAG,SAAQ,EAAG,SAAS,EAAG,GAAG,EAChD+jB,EAAK/jB,EAAM,WAAU,EAAG,SAAQ,EAAG,SAAS,EAAG,GAAG,EACxD,MAAO,CAAE,KAAA2jB,EAAM,GAAAC,EAAI,GAAAC,EAAI,GAAAC,EAAI,GAAAC,CAAE,CAC/B,CACA,SAASR,EAAYvjB,EAAO,CAC1B,KAAM,CAAE,KAAA2jB,EAAM,GAAAC,EAAI,GAAAC,EAAI,GAAAC,EAAI,GAAAC,CAAE,EAAKL,EAAgB1jB,CAAK,EACtD,GAAI+M,EAAM,OAAS,iBACjB,MAAO,GAAG4W,CAAI,IAAIC,CAAE,IAAIC,CAAE,IAAIC,CAAE,IAAIC,CAAE,GACjC,GAAIhX,EAAM,OAAS,OACxB,MAAO,GAAG4W,CAAI,IAAIC,CAAE,IAAIC,CAAE,GACrB,GAAI9W,EAAM,OAAS,QACxB,MAAO,GAAG4W,CAAI,IAAIC,CAAE,GACf,GAAI7W,EAAM,OAAS,OACxB,MAAO,GAAG+W,CAAE,IAAIC,CAAE,GACb,GAAIhX,EAAM,OAAS,OAAQ,CAChC,MAAMiX,EAAY,IAAI,KAAK,OAAO,SAASL,CAAI,EAAG,EAAG,CAAC,EAChDM,EAA2B,KAAK,OAAOjkB,EAAM,QAAO,EAAKgkB,EAAU,QAAO,IAAO,KAAU,GAAK,IAAI,EACpGE,EAAa,KAAK,KAAKD,EAA2B,CAAC,EACzD,MAAO,GAAGN,CAAI,KAAKO,CAAU,EAC/B,CACA,MAAO,EACT,CACA,SAASC,EAAQrL,EAAO,CACtB,MAAMsL,EAAQtL,EAAM,OACpB,GAAI,CAACsL,GAAS,MAAMA,EAAM,aAAa,EACrCf,EAAW,MAAQ,aACVtW,EAAM,OAAS,OAAQ,CAChC,MAAMsX,EAAOD,EAAM,MACb,CAAE,KAAAT,EAAM,GAAAC,EAAI,GAAAC,CAAE,EAAKH,EAAgBL,EAAW,OAAyB,IAAI,IAAM,EACvFA,EAAW,MAAwB,IAAI,KAAK,GAAGM,CAAI,IAAIC,CAAE,IAAIC,CAAE,IAAIQ,CAAI,EAAE,CAC3E,SAAWtX,EAAM,OAAS,QAAS,CACjC,MAAM6W,GAAM,IAAI,KAAKQ,EAAM,KAAK,EAAE,SAAQ,EAAK,GAAG,SAAQ,EAAG,SAAS,EAAG,GAAG,EACtE,CAAE,KAAAT,EAAM,GAAAE,EAAI,GAAAC,EAAI,GAAAC,CAAE,EAAKL,EAAgBL,EAAW,OAAyB,IAAI,IAAM,EAC3FA,EAAW,MAAwB,IAAI,KAAK,GAAGM,CAAI,IAAIC,CAAE,IAAIC,CAAE,IAAIC,CAAE,IAAIC,CAAE,EAAE,CAC/E,KAAO,CACL,MAAMO,EAAwB,IAAI,KAAKF,EAAM,aAAa,EAAE,kBAAiB,EAAK,IAAM,GAClFG,EAAwBH,EAAM,cAAgBE,EACpDjB,EAAW,MAAQ,IAAI,KAAKkB,CAAqB,CACnD,CACF,CACA,MAAO,CAAChN,EAAMC,KACLC,EAAS,EAAImC,EAAmB,MAAO,CAC5C,MAAOhC,EAAe,CAAC,yBAA0BL,EAAK,OAAO,KAAK,CAAC,CAC3E,EAAS,CACD2C,EAAmB,QAAS,CAC1B,MAAOtC,EAAe,CAAC,gCAAiC,CAAE,kBAAmBd,EAAQ,SAAS,CAAE,CAAC,EACjG,IAAKA,EAAQ,EACvB,EAAW+C,EAAgB/C,EAAQ,KAAK,EAAG,GAAIkC,EAAU,EACjDkB,EAAmB,QAASiD,EAAW,CACrC,GAAIrG,EAAQ,GACZ,MAAO,CAAC,gCAAiCA,EAAQ,UAAU,EAC3D,KAAMA,EAAQ,KACd,MAAOwM,EAAe,MACtB,IAAKG,EAAa,MAClB,IAAKD,EAAa,KAC5B,EAAWjM,EAAK,OAAQ,CAAE,QAAA4M,CAAO,CAAE,EAAG,KAAM,GAAIlL,EAAU,CAC1D,EAAS,CAAC,EAER,CACF,CAAC,EACKuL,GAAyCtM,GAAYI,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECvFlGU,GAAa,CAAE,MAAO,wBAAwB,EAC9CC,GAAa,CAAC,KAAM,mBAAoB,WAAY,cAAe,OAAO,EAC1EC,GAAa,CAAC,KAAK,EACnBgE,GAAa,CAAC,IAAI,EAClB5E,GAA4BzJ,GAAgB,CAC3C,aAAc,GACnB,OAAQ,aACR,MAAuBuU,GAAY,CACjC,SAAU,CAAE,KAAM,OAAO,EACzB,MAAO,CAAE,KAAM,OAAO,EACtB,WAAY,CAAE,QAAS,MAAM,EAC7B,GAAI,CAAE,QAAS,IAAMhD,IAAiB,EACtC,WAAY,CAAE,QAAS,EAAE,EACzB,MAAO,CAAE,QAAS,MAAM,EACxB,aAAc,CAAE,KAAM,OAAO,EAC7B,YAAa,CAAE,QAAS,MAAM,EAC9B,OAAQ,CAAE,QAAS,MAAM,EACzB,QAAS,CAAE,KAAM,OAAO,CAC5B,EAAK,CACD,WAAc,CAAE,SAAU,EAAI,EAC9B,eAAkB,CAAA,CACtB,CAAG,EACD,MAAO,CAAC,mBAAmB,EAC3B,MAAMtJ,EAAS,CAAE,OAAQ2N,CAAQ,EAAI,CACnC,MAAMpB,EAAazI,GAAS9D,EAAS,YAAY,EAC3C/J,EAAQ+J,EACd2N,EAAS,CACP,MAAAC,EACA,OAAAC,CACN,CAAK,EACD,MAAM/U,EAAQgV,GAAQ,EAChBC,EAAkBvJ,GAAe,OAAO,EACxCwJ,EAAsBjX,EAAS,IAAMd,EAAM,cAAgBgY,GAAWhY,EAAM,MAAQ,OAAO,EACjG2D,GAAM,IAAM3D,EAAM,aAAc,IAAM,CAChC,CAACA,EAAM,cAAgB,CAACA,EAAM,OAChCmJ,GAAO,KAAK,gKAAgK,CAEhL,CAAC,EACD,MAAM8O,EAAkBnX,EAAS,IAAM,CACrC,MAAMoX,EAAmB,CAAA,EACzB,OAAIlY,EAAM,YACRkY,EAAiB,KAAK,GAAGlY,EAAM,EAAE,cAAc,EAE7C,OAAO6C,EAAM,kBAAkB,GAAM,UACvCqV,EAAiB,KAAKrV,EAAM,kBAAkB,CAAC,EAE1CqV,EAAiB,KAAK,GAAG,GAAK,MACvC,CAAC,EACD,SAASC,EAAYpM,EAAO,CAC1B,KAAM,CAAE,MAAA9Y,GAAU8Y,EAAM,OACxBuK,EAAW,MAAQrjB,CACrB,CACA,SAAS0kB,EAAM9b,EAAS,CACtBic,EAAgB,MAAM,MAAMjc,CAAO,CACrC,CACA,SAAS+b,GAAS,CAChBE,EAAgB,MAAM,OAAM,CAC9B,CACA,MAAO,CAACtN,EAAMC,KACLC,EAAS,EAAImC,EAAmB,MAAO,CAC5C,MAAOhC,EAAe,CAAC,WAAY,CACjCL,EAAK,OAAO,MACZ,CACE,qBAAsBT,EAAQ,SAC9B,mBAAoBhJ,EAAMiX,EAAQ,CAC9C,CACA,CAAS,CAAC,CACV,EAAS,CACD7K,EAAmB,MAAOlB,GAAY,CACpCkB,EAAmB,WAAYiD,EAAW,CAAE,GAAG5F,EAAK,OAAQ,MAAO,QAAU,CAC3E,GAAIT,EAAQ,GACZ,IAAK,QACL,mBAAoBkO,EAAgB,MACpC,YAAa,SACb,MAAO,CAAC,kBAAmB,CACzBlO,EAAQ,WACR,CACE,iCAAkCA,EAAQ,aAC1C,0BAA2BhJ,EAAMiX,EAAQ,EACzC,2BAA4BjO,EAAQ,QACpC,yBAA0BA,EAAQ,KAClD,CACA,CAAa,EACD,SAAUA,EAAQ,SAClB,YAAagO,EAAoB,MACjC,MAAO,CAAE,OAAQhO,EAAQ,MAAM,EAC/B,MAAOuM,EAAW,MAClB,QAAS6B,CACrB,CAAW,EAAG,KAAM,GAAIjM,EAAU,EACvBnC,EAAQ,aAI4CgD,EAAmB,GAAI,EAAI,GAJvDrC,EAAS,EAAImC,EAAmB,QAAS,CAChE,IAAK,EACL,MAAO,kBACP,IAAK9C,EAAQ,EACzB,EAAa+C,EAAgB/C,EAAQ,KAAK,EAAG,EAAGoC,EAAU,EAC1D,CAAS,EACDpC,EAAQ,YAAcW,IAAamC,EAAmB,IAAK,CACzD,IAAK,EACL,GAAI,GAAG9C,EAAQ,EAAE,eACjB,MAAOc,EAAe,CAAC,gCAAiC,CACtD,uCAAwCd,EAAQ,MAChD,yCAA0CA,EAAQ,OAC9D,CAAW,CAAC,CACZ,EAAW,CACDA,EAAQ,SAAWW,IAAaC,EAAYK,GAAkB,CAC5D,IAAK,EACL,MAAO,sCACP,KAAMjK,EAAMqQ,EAAQ,EACpB,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKrH,EAAQ,OAASW,EAAS,EAAIC,EAAYK,GAAkB,CACnF,IAAK,EACL,MAAO,sCACP,KAAMjK,EAAMqX,EAAqB,EACjC,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKrL,EAAmB,GAAI,EAAI,EACpDgD,EAAgB,IAAMjD,EAAgB/C,EAAQ,UAAU,EAAG,CAAC,CACtE,EAAW,GAAIoG,EAAU,GAAKpD,EAAmB,GAAI,EAAI,CACzD,EAAS,CAAC,EAER,CACF,CAAC,EACKsL,GAA6BlN,GAAYI,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECxHtFU,GAAa,CAAE,MAAO,2BAA2B,EACjDC,GAAa,CAAC,KAAM,mBAAoB,WAAY,cAAe,OAAQ,OAAO,EAClFC,GAAa,CAAC,KAAK,EACnBgE,GAAa,CAAE,MAAO,8CAA8C,EACpEoB,GAAa,CACjB,IAAK,EACL,MAAO,+CACT,EACMC,GAAa,CAAC,IAAI,EAClBjG,GAA4BzJ,GAAgB,CAE9C,aAAc,GAEhB,OAAQ,eACR,MAAuBuU,GAAY,CACjC,MAAO,CAAE,QAAS,EAAE,EACpB,WAAY,CAAE,QAAS,EAAE,EACzB,GAAI,CAAE,QAAS,IAAMhD,IAAiB,EACtC,MAAO,CAAE,QAAS,MAAM,EACxB,aAAc,CAAE,KAAM,OAAO,EAC7B,KAAM,CAAE,QAAS,MAAM,EACvB,YAAa,CAAE,QAAS,MAAM,EAC9B,mBAAoB,CAAE,KAAM,OAAO,EACnC,oBAAqB,CAAE,QAAS,MAAM,EACtC,QAAS,CAAE,KAAM,OAAO,EACxB,MAAO,CAAE,KAAM,OAAO,EACtB,WAAY,CAAE,QAAS,EAAE,EACzB,SAAU,CAAE,KAAM,OAAO,EACzB,KAAM,CAAE,KAAM,OAAO,CACzB,EAAK,CACD,WAAc,CAAE,SAAU,EAAI,EAC9B,eAAkB,CAAA,CACtB,CAAG,EACD,MAAuBgD,GAAY,CAAC,qBAAqB,EAAG,CAAC,mBAAmB,CAAC,EACjF,MAAMtM,EAAS,CAAE,OAAQ2N,EAAU,KAAMY,GAAU,CACjD,MAAMhC,EAAazI,GAAS9D,EAAS,YAAY,EAC3C/J,EAAQ+J,EACRQ,EAAO+N,EACbZ,EAAS,CACP,MAAAC,EACA,OAAAC,CACN,CAAK,EACD,MAAM/U,EAAQgV,GAAQ,EAChBU,EAAehK,GAAe,OAAO,EACrCiK,EAAkB1X,EAAS,IAAMd,EAAM,oBAAsBA,EAAM,OAAO,EAC1E+X,EAAsBjX,EAAS,IAAM,CACzC,GAAId,EAAM,YACR,OAAOA,EAAM,YAEf,GAAIA,EAAM,MACR,OAAOgY,GAAWhY,EAAM,MAAQ,EAGpC,CAAC,EACKyY,EAAe3X,EAAS,IACNd,EAAM,OAASA,EAAM,YAK5C,EACKiY,EAAkBnX,EAAS,IAAM,CACrC,MAAMoX,EAAmB,CAAA,EACzB,OAAIlY,EAAM,YACRkY,EAAiB,KAAK,GAAGlY,EAAM,EAAE,cAAc,EAE7C6C,EAAM,kBAAkB,GAC1BqV,EAAiB,KAAK,OAAOrV,EAAM,kBAAkB,CAAC,CAAC,EAElDqV,EAAiB,KAAK,GAAG,GAAK,MACvC,CAAC,EACD,SAASP,EAAM9b,EAAS,CACtB0c,EAAa,MAAM,MAAM1c,CAAO,CAClC,CACA,SAAS+b,GAAS,CAChBW,EAAa,MAAM,OAAM,CAC3B,CACA,SAASJ,EAAYpM,EAAO,CAC1B,MAAM3J,EAAS2J,EAAM,OACrBuK,EAAW,MAAQtW,EAAM,OAAS,UAAY,OAAOsW,EAAW,OAAU,SAAW,WAAWlU,EAAO,KAAK,EAAIA,EAAO,KACzH,CACA,MAAO,CAACoI,EAAMC,KACLC,EAAS,EAAImC,EAAmB,MAAO,CAC5C,MAAOhC,EAAe,CAAC,cAAe,CAAC,CACrC,wBAAyBd,EAAQ,SACjC,qBAAsBA,EAAQ,MAC9B,6BAA8BA,EAAQ,cAAgB,CAAC0O,EAAa,MACpE,4BAA6B,CAAC,CAACjO,EAAK,OAAO,KAC3C,6BAA8BgO,EAAgB,MAC9C,oBAAqBzO,EAAQ,KAC7B,uBAAwBA,EAAQ,QAChC,sBAAuBhJ,EAAMiX,EAAQ,CAC/C,EAAWxN,EAAK,OAAO,KAAK,CAAC,CAAC,CAC9B,EAAS,CACD2C,EAAmB,MAAOlB,GAAY,CACpCkB,EAAmB,QAASiD,EAAW5F,EAAK,OAAQ,CAClD,GAAIT,EAAQ,GACZ,IAAK,QACL,mBAAoBkO,EAAgB,MACpC,YAAa,SACb,MAAO,CAAC,qBAAsBlO,EAAQ,UAAU,EAChD,SAAUA,EAAQ,SAClB,YAAagO,EAAoB,MACjC,KAAMhO,EAAQ,KACd,MAAOuM,EAAW,MAAM,SAAQ,EAChC,QAAS6B,CACrB,CAAW,EAAG,KAAM,GAAIjM,EAAU,EACxB,CAACnC,EAAQ,cAAgB0O,EAAa,OAAS/N,EAAS,EAAImC,EAAmB,QAAS,CACtF,IAAK,EACL,MAAO,qBACP,IAAK9C,EAAQ,EACzB,EAAa+C,EAAgB/C,EAAQ,KAAK,EAAG,EAAGoC,EAAU,GAAKY,EAAmB,GAAI,EAAI,EAChFG,GAAeC,EAAmB,MAAOgD,GAAY,CACnD/C,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CAC5D,EAAa,GAAG,EAAG,CACP,CAAC6C,GAAO,CAAC,CAAC7C,EAAK,OAAO,IAAI,CACtC,CAAW,EACDT,EAAQ,oBAAsBW,IAAaC,EAAYC,GAAU,CAC/D,IAAK,EACL,MAAO,+BACP,aAAcb,EAAQ,oBACtB,SAAUA,EAAQ,SAClB,QAAS,yBACT,QAASU,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWxD,EAAK,sBAAuBwD,CAAM,EAC7F,EAAa,CACD,KAAMjD,EAAQ,IAAM,CAClBsC,EAAW5C,EAAK,OAAQ,uBAAwB,CAAA,EAAI,OAAQ,EAAI,CAC9E,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,aAAc,UAAU,CAAC,GAAKT,EAAQ,SAAWA,EAAQ,OAASW,EAAS,EAAImC,EAAmB,MAAO0E,GAAY,CAC1HxH,EAAQ,SAAWW,IAAaC,EAAYK,GAAkB,CAC5D,IAAK,EACL,KAAMjK,EAAMqQ,EAAQ,CAClC,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,IAAM1G,EAAS,EAAIC,EAAYK,GAAkB,CACnE,IAAK,EACL,KAAMjK,EAAMqX,EAAqB,CAC/C,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,EAChC,CAAW,GAAKrL,EAAmB,GAAI,EAAI,CAC3C,CAAS,EACDhD,EAAQ,YAAcW,IAAamC,EAAmB,IAAK,CACzD,IAAK,EACL,GAAI,GAAG9C,EAAQ,EAAE,eACjB,MAAO,kCACjB,EAAW,CACDA,EAAQ,SAAWW,IAAaC,EAAYK,GAAkB,CAC5D,IAAK,EACL,MAAO,yCACP,KAAMjK,EAAMqQ,EAAQ,EACpB,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKrH,EAAQ,OAASW,EAAS,EAAIC,EAAYK,GAAkB,CACnF,IAAK,EACL,MAAO,yCACP,KAAMjK,EAAMqX,EAAqB,EACjC,OAAQ,EACpB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,GAAKrL,EAAmB,GAAI,EAAI,EACpDgD,EAAgB,IAAMjD,EAAgB/C,EAAQ,UAAU,EAAG,CAAC,CACtE,EAAW,EAAGyH,EAAU,GAAKzE,EAAmB,GAAI,EAAI,CACxD,EAAS,CAAC,EAER,CACF,CAAC,EACK2L,GAA+BvN,GAAYI,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECpK9F3B,GAAS+O,GAAKzF,EAAG,EACjB,MAAM3H,GAA4BzJ,GAAgB,CAChD,OAAQ,cACR,MAAuBuU,GAAY,CACjC,MAAO,CAAA,EACP,WAAY,CAAA,EACZ,GAAI,CAAA,EACJ,MAAO,CAAA,EACP,aAAc,CAAE,KAAM,OAAO,EAC7B,KAAM,CAAA,EACN,YAAa,CAAA,EACb,mBAAoB,CAAE,KAAM,OAAO,EACnC,oBAAqB,CAAE,QAAS,MAAM,EACtC,QAAS,CAAE,KAAM,OAAO,EACxB,MAAO,CAAE,KAAM,OAAO,EACtB,WAAY,CAAA,EACZ,SAAU,CAAE,KAAM,OAAO,EACzB,KAAM,CAAE,KAAM,OAAO,EACrB,mBAAoB,CAAE,QAAS,OAAO,CAC1C,EAAK,CACD,WAAc,CAAE,QAAS,EAAE,EAC3B,eAAkB,CAAA,CACtB,CAAG,EACD,MAAO,CAAC,mBAAmB,EAC3B,MAAMtM,EAAS,CAAE,OAAQ2N,CAAQ,EAAI,CACnC,MAAMpB,EAAazI,GAAS9D,EAAS,YAAY,EAC3C/J,EAAQ+J,EACd2N,EAAS,CACP,MAAAC,EACA,OAAAC,CACN,CAAK,EACD,MAAMgB,EAAqBrK,GAAe,YAAY,EAChDsK,EAA8B,CAClC,SAAU9rB,EAAE,cAAc,EAC1B,MAAOA,EAAE,YAAY,EACrB,KAAMA,EAAE,cAAc,CAC5B,EACU+rB,EAAwB,IAAI,IAAI,OAAO,KAAKJ,GAAa,KAAK,CAAC,EAC/DK,EAAiBjY,EAAS,IAAM,CACpC,MAAMkY,EAAc,OAAO,YAAY,OAAO,QAAQhZ,CAAK,EAAE,OAAO,CAAC,CAACnN,CAAG,IAAMimB,EAAsB,IAAIjmB,CAAG,CAAC,CAAC,EAC9G,OAAAmmB,EAAY,sBAAwBH,EAA4B7Y,EAAM,kBAAkB,EACjFgZ,CACT,CAAC,EACD,SAASrB,EAAM9b,EAAS,CACtB+c,EAAmB,MAAM,MAAM/c,CAAO,CACxC,CACA,SAAS+b,GAAS,CAChBgB,EAAmB,MAAM,OAAM,CACjC,CACA,MAAO,CAACpO,EAAMC,KACLC,EAAS,EAAIC,EAAY5J,EAAM2X,EAAY,EAAGtI,EAAW2I,EAAe,MAAO,CACpF,IAAK,aACL,WAAYzC,EAAW,MACvB,sBAAuB7L,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWuI,EAAW,MAAQvI,EACxF,CAAO,EAAGkL,GAAY,CAAE,EAAG,CAAC,EAAI,CACtBzO,EAAK,OAAO,KAAO,CACnB,KAAM,OACN,GAAIM,EAAQ,IAAM,CAChBsC,EAAW5C,EAAK,OAAQ,MAAM,CAC1C,CAAW,EACD,IAAK,GACf,EAAY,OACJT,EAAQ,OAAS,SAAW,CAC1B,KAAM,uBACN,GAAIe,EAAQ,IAAM,CAChBf,EAAQ,qBAAuB,YAAcW,EAAS,EAAIC,EAAY5J,EAAMiK,EAAgB,EAAG,CAC7F,IAAK,EACL,YAAa,GACb,KAAMjK,EAAMkK,EAAa,CACvC,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,IAAMP,EAAS,EAAIC,EAAY5J,EAAMiK,EAAgB,EAAG,CAC1E,IAAK,EACL,KAAMjB,EAAQ,qBAAuB,OAAShJ,EAAMmY,EAAO,EAAInY,EAAMoY,EAAQ,CAC3F,EAAe,KAAM,EAAG,CAAC,MAAM,CAAC,EAChC,CAAW,EACD,IAAK,GACf,EAAY,MACZ,CAAO,EAAG,KAAM,CAAC,YAAY,CAAC,EAE5B,CACF,CAAC,EChEI5N,GAAU,CACb,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,mCAAmC,iDAX/C8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,iCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCEpC,SAAS+M,IAAiB,CACzB,GAAI,CACH,OAAOltB,GAAU,UAAW,SAAS,CACtC,MAAQ,CACP,MAAO,CAAE,IAAK,IAAI,CACnB,CACD,CAKA,SAASmtB,IAAoB,CAC5B,GAAI,CACH,OAAOntB,GAAU,UAAW,YAAY,GAAK,CAAA,CAC9C,MAAQ,CACP,MAAO,CAAA,CACR,CACD,CAEO,MAAMotB,EAAQrX,GAAS,CAC7B,QAASmX,GAAc,EACvB,WAAYC,GAAiB,EAC7B,SAAU,CAAA,EACV,QAAS,CAAE,SAAU,EAAE,EACvB,QAAS,GACT,WAAY,KAGZ,UAAU1P,EAAI,CAGb,OAAIA,GAAO,KACH,CAAE,MAAO5c,EAAE,UAAW,QAAQ,EAAG,MAAO,OAAQ,KAAM,IAAI,EAE3D,KAAK,WAAW,KAAMA,GAAMA,EAAE,KAAO4c,CAAE,GAAK,CAAE,MAAO5c,EAAE,UAAW,SAAS,EAAG,MAAO,OAAQ,KAAM,GAAG,CAC9G,EAMA,aAAawsB,EAAS,CACrB,MAAMC,EAAO,KAAK,UAAUD,EAAQ,MAAM,EAC1C,OAAOC,GAAQA,EAAK,sBAAwB,EAC7C,EAOA,cAAcD,EAAS,CACtB,MAAO,EAAE,KAAK,aAAaA,CAAO,GAAKA,EAAQ,SAAW,WAC3D,EACA,IAAI,mBAAoB,CACvB,OAAO,KAAK,WAAW,OAAQxsB,GAAMA,EAAE,OAAO,CAC/C,EAEA,IAAI,uBAAwB,CAC3B,OAAO,KAAK,WAAW,OAAQA,GAAMA,EAAE,SAAWA,EAAE,mBAAmB,CACxE,EAGA,MAAM,gBAAiB,CACtB,GAAI,CACH,KAAK,QAAU,MAAM0sB,GAAI,WAAU,CACpC,OAAS,EAAG,CACX,QAAQ,MAAM,qCAAsC,CAAC,CACtD,CACD,EAEA,MAAM,gBAAiB,CACtB,KAAK,WAAa,MAAMA,GAAI,eAAe,EAAK,CACjD,EAEA,MAAM,aAAa9c,EAAQ,CAC1B,KAAK,QAAU,GACf,GAAI,CACH,KAAK,SAAW,MAAM8c,GAAI,aAAa9c,CAAM,CAC9C,MAAQ,CACP+c,GAAU3sB,EAAE,UAAW,yBAAyB,CAAC,CAClD,QAAA,CACC,KAAK,QAAU,EAChB,CACD,EAEA,MAAM,cAAc4sB,EAAM,CACzB,KAAK,QAAU,MAAMF,GAAI,aAAaE,CAAI,CAC3C,EAEA,MAAM,cAAc3f,EAAM,CACzB,MAAM4f,EAAU,MAAMH,GAAI,cAAczf,CAAI,EAC5C,OAAA6f,GAAY9sB,EAAE,UAAW,eAAe,CAAC,EACzC,MAAM,KAAK,eAAc,EAClB6sB,CACR,EAEA,MAAM,cAAcjQ,EAAI3P,EAAM,CAC7B,MAAM8f,EAAU,MAAML,GAAI,cAAc9P,EAAI3P,CAAI,EAChD,OAAA6f,GAAY9sB,EAAE,UAAW,iBAAiB,CAAC,EACpC+sB,CACR,EAEA,MAAM,cAAcnQ,EAAI,CACvB,MAAMoQ,EAAM,MAAMN,GAAI,cAAc9P,CAAE,EACtC,OAAAkQ,GAAY9sB,EAAE,UAAW,mBAAmB,CAAC,EAC7C,MAAM,KAAK,eAAc,EAClBgtB,CACR,EAEA,MAAM,eAAepQ,EAAIqQ,EAAS,CACjC,MAAMD,EAAM,MAAMN,GAAI,eAAe9P,EAAIqQ,CAAO,EAChD,OAAA,MAAM,KAAK,eAAc,EAClBD,CACR,EAEA,MAAM,cAAcpQ,EAAIqQ,EAAS,CAChC,MAAMD,EAAM,MAAMN,GAAI,cAAc9P,EAAIqQ,CAAO,EAC/C,OAAAH,GAAY9sB,EAAE,UAAW,kBAAkB,CAAC,EAC5C,MAAM,KAAK,eAAc,EAClBgtB,CACR,EAEA,OAAOpQ,EAAI,CACV,KAAK,WAAaA,CACnB,CACD,CAAC,EASM,SAASsQ,GAAWC,EAAQ,CAClC,OAAQA,EAAM,CACb,IAAK,UACJ,MAAO,CAAE,MAAOntB,EAAE,UAAW,SAAS,EAAG,KAAM,4BAA6B,KAAM,uBAAwB,KAAM,GAAG,EACpH,IAAK,YACJ,MAAO,CAAE,MAAOA,EAAE,UAAW,SAAS,EAAG,KAAM,4BAA6B,KAAM,uBAAwB,KAAM,GAAG,EACpH,IAAK,WACJ,MAAO,CAAE,MAAOA,EAAE,UAAW,UAAU,EAAG,KAAM,4BAA6B,KAAM,uBAAwB,KAAM,GAAG,EACrH,IAAK,WACJ,MAAO,CAAE,MAAOA,EAAE,UAAW,UAAU,EAAG,KAAM,0BAA2B,KAAM,qBAAsB,KAAM,GAAG,EACjH,IAAK,YACJ,MAAO,CAAE,MAAOA,EAAE,UAAW,WAAW,EAAG,KAAM,gCAAiC,KAAM,gCAAiC,KAAM,IAAI,EACpI,IAAK,qBACJ,MAAO,CAAE,MAAOA,EAAE,UAAW,oBAAoB,EAAG,KAAM,4BAA6B,KAAM,uBAAwB,KAAM,IAAI,EAChI,QACC,MAAO,CAAE,MAAOmtB,EAAQ,KAAM,yBAA0B,KAAM,gCAAiC,KAAM,GAAG,CAC3G,CACA,CCOA,MAAK3O,GAAU,CACd,KAAM,gBACN,WAAY,CACX,QAAA4O,GACA,SAAAC,GACA,uBAAA3C,GACA,WAAAY,eACAgC,GACA,WAAAC,GACA,SAAA1P,GACA,cAAAuI,GACA,KAAAoH,IAGD,MAAO,CACN,QAAS,CAAE,KAAM,OAAQ,QAAS,MAElC,OAAQ,CAAE,KAAM,QAAS,QAAS,KAGnC,MAAO,CAAC,QAAS,OAAO,EACxB,MAAO,CACN,MAAO,CACN,aAAc,KACd,SAAU,KACV,OAAQ,KACR,YAAa,GAGb,mBAAoB,GACpB,eAAgB,KAChB,OAAQ,GACR,WAAY,GACZ,iBAAkB,KAClB,gBAAiB,CAAA,EACjB,gBAAiB,GACjB,oBAAqB,KACrB,mBAAoB,CAAA,EACpB,mBAAoB,EACrB,CACD,EAEA,SAAU,CACT,QAAS,CACR,OAAO,KAAK,UAAY,IACzB,EAEA,aAAc,CACb,OAAI,KAAK,OACDxtB,EAAE,UAAW,gBAAgB,EAE9B,KAAK,OAASA,EAAE,UAAW,cAAc,EAAIA,EAAE,UAAW,kBAAkB,CACpF,EAEA,aAAc,CACb,OAAI,KAAK,OACDA,EAAE,UAAW,cAAc,EAG5B,KAAK,OAASA,EAAE,UAAW,QAAQ,EAAIA,EAAE,UAAW,gBAAgB,CAC5E,EAEA,aAAc,CAEb,OAAO,KAAK,OAASusB,EAAM,kBAAoBA,EAAM,qBACtD,EAEA,WAAY,CACX,OAAO,KAAK,aAAe,KAAK,aAAa,MAAQ,8BACtD,EAEA,cAAe,CACd,OAAO,KAAK,aAAe,KAAK,aAAa,aAAe,EAC7D,EAEA,kBAAmB,CAClB,OAAO,KAAK,aAAe,KAAK,aAAa,oBAAsB,EACpE,EAGA,UAAW,CACV,KAAM,CACL,OAAO,KAAK,SAAW,IAAI,KAAK,KAAK,SAAW,WAAW,EAAI,IAChE,EAEA,IAAI3pB,EAAG,CACN,KAAK,SAAWA,EAAI6qB,GAAM7qB,CAAC,EAAI,KAE3B,KAAK,UAAY,KAAK,QAAU,KAAK,OAAS,KAAK,WACtD,KAAK,OAAS,KAAK,SAErB,GAGD,QAAS,CACR,KAAM,CACL,OAAO,KAAK,OAAS,IAAI,KAAK,KAAK,OAAS,WAAW,EAAI,IAC5D,EAEA,IAAIA,EAAG,CACN,KAAK,OAASA,EAAI6qB,GAAM7qB,CAAC,EAAI,IAC9B,GAGD,YAAa,CAEZ,OAAO,KAAK,OAAU,KAAK,kBAAoB,KAAK,iBAAiB,IAAQ,KAAK,QAAU,KAAK,QAAQ,YAAc2pB,EAAM,QAAQ,GACtI,EAEA,gBAAiB,CAChB,MAAM3pB,EAAI,WAAW,KAAK,WAAW,EACrC,OAAO,OAAO,SAASA,CAAC,EAAIA,EAAI,CACjC,EAIA,eAAgB,CACf,MAAO,CAAC,KAAK,QAAU,CAAC,KAAK,kBAC9B,EAEA,aAAc,CACb,OAAO8qB,GAAY,6BAA6B,CACjD,EAEA,YAAa,CAOZ,GAAI,CAAC,KAAK,cAAgB,KAAK,QAAU,CAAC,KAAK,SAC9C,OAAO,KAER,MAAMd,EAAO,SAAS,KAAK,SAAS,MAAM,EAAG,CAAC,EAAG,EAAE,EACnD,OAAOL,EAAM,QAAQ,SAAS,KAAMzsB,GAAMA,EAAE,SAAW,KAAK,aAAa,IAAMA,EAAE,OAAS8sB,GAAQ9sB,EAAE,cAAgB,IAAI,GAAK,IAC9H,EAEA,oBAAqB,CACpB,OAAK,KAAK,WAGH,KAAK,OAAO,KAAK,WAAW,UAAY,KAAK,gBAAkB,EAAE,EAAI,GAFpE,IAGT,EAEA,iBAAkB,CACjB,OAAO,KAAK,YAAc,KAAK,cAAgB,KAAK,aAAa,sBAAwB,KAAK,mBAAqB,CACpH,EAEA,cAAe,CACd,MAAI,CAAC,KAAK,YAAc,CAAC,KAAK,WAAW,YACjC,EAED,KAAK,IAAI,EAAG,KAAK,IAAI,IAAM,KAAK,mBAAqB,KAAK,WAAW,YAAe,GAAG,CAAC,CAChG,EAEA,WAAY,CAUX,MATI,EAAA,CAAC,KAAK,cAAgB,CAAC,KAAK,UAAY,CAAC,KAAK,QAAU,KAAK,gBAAkB,GAG/E,KAAK,QAAU,CAAC,KAAK,kBAGrB,KAAK,kBAAoB,CAAC,KAAK,qBAG/B,KAAK,cAAgB,KAAK,OAAO,KAAI,IAAO,GAIjD,GAGD,MAAO,CACN,UAAW,CACV,KAAK,iBAAgB,CACtB,EAEA,QAAS,CACR,KAAK,iBAAgB,CACtB,GAGD,MAAM,SAAU,CACf,MAAM,KAAK,cAAa,EACpB,CAAC,KAAK,QAAU,CAACysB,EAAM,QAAQ,SAAS,QAC3C,MAAMA,EAAM,cAAa,EAI1B,GAAI,CACH,KAAK,eAAiB,MAAMoB,GAAmBpB,EAAM,QAAQ,eAAgBA,EAAM,QAAQ,aAAa,EACxG,KAAK,iBAAgB,CACtB,MAAQ,CAER,CACD,EAEA,QAAS,GACRvsB,EACA,mBAAmB4C,EAAG,CACrB,KAAK,YAAcA,EACnB,KAAK,mBAAqB,EAC3B,EAGA,kBAAmB,CAClB,GAAI,KAAK,QAAU,KAAK,oBAAsB,CAAC,KAAK,UAAY,CAAC,KAAK,OACrE,OAED,MAAMgrB,EAAWC,GAActB,EAAM,QAAQ,cAAgB,WAAW,EACxE,KAAK,YAAc,OAAOuB,GAAiB,KAAK,SAAU,KAAK,OAAQF,EAAU,KAAK,cAAc,CAAC,CACtG,EAEA,WAAWhrB,EAAG,CACb,OAAIA,GAAM,KACF,IAED,OAAOA,CAAC,EAAE,eAAe,OAAW,CAAE,sBAAuB,EAAG,CACxE,EAEA,MAAM,eAAgB,CACrB,MAAMmrB,EAAQ,KAAK,YACnB,GAAI,KAAK,QACR,KAAK,aAAexB,EAAM,kBAAkB,KAAMtsB,GAAMA,EAAE,KAAO,KAAK,QAAQ,MAAM,GAAK8tB,EAAM,CAAC,EAChG,KAAK,SAAW,KAAK,QAAQ,UAC7B,KAAK,OAAS,KAAK,QAAQ,QAC3B,KAAK,YAAc,OAAO,KAAK,QAAQ,WAAW,EAClD,KAAK,OAAS,KAAK,QAAQ,QAAU,GACjC,KAAK,QAAQ,iBAChB,KAAK,oBAAsB,CAAE,IAAK,KAAK,QAAQ,eAAgB,YAAa,KAAK,QAAQ,iBAAmB,KAAK,QAAQ,cAAa,OAEjI,CACN,KAAK,aAAeA,EAAM,CAAC,GAAK,KAChC,MAAMC,EAAQP,GAAM,IAAI,IAAM,EAC9B,KAAK,SAAWO,EAChB,KAAK,OAASA,EAET,KAAK,SACT,KAAK,oBAAsB,KAAK,iBAAgB,EAAG,CAAC,GAAK,KAE3D,CAEK,KAAK,SACT,KAAK,mBAAqB,KAAK,iBAAgB,EAE3C,KAAK,qBAAuB,CAAC,KAAK,mBAAmB,KAAMxsB,GAAMA,EAAE,MAAQ,KAAK,oBAAoB,GAAG,IAC1G,KAAK,mBAAqB,CAAC,KAAK,oBAAqB,GAAG,KAAK,kBAAkB,GAGlF,EAGA,kBAAmB,CAClB,MAAMysB,EAAO,IAAI,IACX7S,EAAO,CAAA,EACP8S,EAAM3B,EAAM,SAChB,OAAQjtB,GAAMA,EAAE,cAAgBitB,EAAM,QAAQ,KAAOjtB,EAAE,cAAc,EACrE,KAAK,CAACC,EAAGO,IAAMA,EAAE,GAAKP,EAAE,EAAE,EAC5B,UAAWD,KAAK4uB,EACVD,EAAK,IAAI3uB,EAAE,cAAc,IAC7B2uB,EAAK,IAAI3uB,EAAE,cAAc,EACzB8b,EAAK,KAAK,CAAE,IAAK9b,EAAE,eAAgB,YAAaA,EAAE,iBAAmBA,EAAE,eAAgB,GAGzF,OAAO8b,CACR,EAEA,MAAM,iBAAiBtW,EAAO,CAC7B,GAAI,EAAA,CAACA,GAASA,EAAM,OAAS,GAG7B,MAAK,gBAAkB,GACvB,GAAI,CACH,KAAK,gBAAkB,MAAM4nB,GAAI,YAAY5nB,CAAK,CACnD,MAAQ,CACP,KAAK,gBAAkB,CAAA,CACxB,QAAA,CACC,KAAK,gBAAkB,EACxB,CAAA,CACD,EAEA,MAAM,oBAAoBA,EAAO,CAChC,GAAI,GAACA,GAASA,EAAM,OAAS,GAG7B,CAAA,KAAK,mBAAqB,GAC1B,GAAI,CACH,MAAMqpB,EAAQ,MAAMzB,GAAI,YAAY5nB,CAAK,EAEzC,KAAK,mBAAqBqpB,EAAM,OAAQxsB,GAAMA,EAAE,MAAQ,KAAK,UAAU,CACxE,MAAQ,CACP,KAAK,mBAAqB,CAAA,CAC3B,QAAA,CACC,KAAK,mBAAqB,EAC3B,CAAA,CACD,EAEA,MAAM,QAAS,CACd,GAAI,CAAC,KAAK,UACT,OAED,KAAK,WAAa,GAClB,MAAMysB,EAAU,CACf,OAAQ,KAAK,aAAa,GAC1B,UAAW,KAAK,SAChB,QAAS,KAAK,OACd,YAAa,KAAK,eAClB,OAAQ,KAAK,MACd,EACI,KAAK,QAAU,KAAK,mBACvBA,EAAQ,YAAc,KAAK,iBAAiB,KAEzC,KAAK,kBAAoB,KAAK,sBACjCA,EAAQ,eAAiB,KAAK,oBAAoB,KAEnD,GAAI,CACC,KAAK,OACR,MAAM7B,EAAM,cAAc,KAAK,QAAQ,GAAI6B,CAAO,EAElD,MAAM7B,EAAM,cAAc6B,CAAO,EAElC,KAAK,MAAM,OAAO,CACnB,OAASruB,EAAG,CACX4sB,GAAU5sB,EAAE,UAAU,MAAM,SAAWC,EAAE,UAAW,4BAA4B,CAAC,CAClF,QAAA,CACC,KAAK,WAAa,EACnB,CACD,EAEF,EA7eOkf,GAAA,CAAA,MAAM,QAAQ,EACdC,GAAA,CAAA,MAAM,eAAe,YAQN,MAAM,iBACjBiE,GAAA,CAAA,MAAM,eAAe,EAexBoB,GAAA,CAAA,MAAM,eAAe,EAClBC,GAAA,CAAA,MAAM,eAAe,EAQpBC,GAAA,CAAA,MAAM,KAAK,EAAOC,GAAA,CAAA,MAAM,WAAW,EAGnC0J,GAAA,CAAA,MAAM,KAAK,EAAOC,GAAA,CAAA,MAAM,WAAW,YAKf,MAAM,iBAC3BC,GAAA,CAAA,MAAM,eAAe,EAezBC,GAAA,CAAA,MAAM,cAAc,EAKnBC,GAAA,CAAA,MAAM,aAAa,EAClBC,GAAA,CAAA,MAAM,eAAe,EAClBC,GAAA,CAAA,MAAM,eAAe,EAGxBC,GAAA,CAAA,MAAM,eAAe,EAClBC,GAAA,CAAA,MAAM,eAAe,EAKzBC,GAAA,CAAA,MAAM,eAAe,EAClBC,GAAA,CAAA,MAAM,eAAe,EAWzBC,GAAA,CAAA,MAAM,cAAc,cAiBlBC,GAAA,CAAA,MAAM,kBAAkB,MAGtB,MAAM,eAAe,KAAK,gBAU7BC,GAAA,CAAA,MAAM,eAAe,EAClBC,GAAA,CAAA,MAAM,eAAe,YAED,MAAM,yBACnB,MAAM,oBAShBC,GAAA,CAAA,MAAM,iBAAiB,iNArI9BC,EAkJUC,EAAA,CAjJR,KAAM7P,EAAA,YACP,KAAK,SACJ,uBAAOhC,EAAA,MAAK,OAAA,eACb,IA6IM,CA7IN2K,EA6IM,MA7INlJ,GA6IM,CA5ILkJ,EAEK,KAFLjJ,GAEKoQ,EADD9P,EAAA,WAAW,EAAA,CAAA,EAGGH,EAAA,YAAlB+P,EAEaG,EAAA,OAFa,KAAK,mBAC9B,IAAoI,KAAjI/P,EAAA,EAAC,UAAA,gHAAA,CAAA,EAAA,CAAA,oBAGMH,EAAA,QAAX+I,IAAAH,EAcM,MAdN9I,GAcM,CAbLgJ,EAAmE,QAAnEhF,GAAmEmM,EAAnC9P,EAAA,EAAC,UAAA,UAAA,CAAA,EAAA,CAAA,EAEjCgQ,EAS8BC,EAAA,YARpBlQ,EAAA,sDAAAA,EAAA,iBAAgBwB,GACxB,QAASxB,EAAA,gBACT,QAASA,EAAA,gBACT,WAAY,GACb,MAAM,cACL,WAAY,GACZ,YAAaC,EAAA,EAAC,UAAA,yBAAA,EACd,sBAAqBA,EAAA,EAAC,UAAA,UAAA,EACtB,SAAQA,EAAA,wHAIX2I,EAeM,MAfN5D,GAeM,CAdL4D,EAAqE,QAArE3D,GAAqE8K,EAArC9P,EAAA,EAAC,UAAA,YAAA,CAAA,EAAA,CAAA,EACjCgQ,EAYWC,EAAA,YAXDlQ,EAAA,kDAAAA,EAAA,aAAYwB,GACpB,QAASvB,EAAA,YACV,MAAM,QACL,UAAW,GACX,sBAAqBA,EAAA,EAAC,UAAA,YAAA,IACZ,OAAMkQ,EAChB,CAA6E,CADzD,KAAAC,EAAM,MAAAC,CAAK,IAAA,CAC/BzH,EAA6E,OAA7E1D,GAA6E,CAA3D0D,EAAyC,OAAzCzD,GAAyC4K,EAAdK,CAAI,EAAA,CAAA,MAAaC,CAAK,EAAA,CAAA,MAEzD,kBAAeF,EACzB,CAA6E,CADhD,KAAAC,EAAM,MAAAC,CAAK,IAAA,CACxCzH,EAA6E,OAA7EiG,GAA6E,CAA3DjG,EAAyC,OAAzCkG,GAAyCiB,EAAdK,CAAI,EAAA,CAAA,MAAaC,CAAK,EAAA,CAAA,+DAK3DpQ,EAAA,kBAAX4I,IAAAH,EAmBM,MAnBN4H,GAmBM,CAlBL1H,EAEQ,QAFRmG,GAEQ,KADJ9O,EAAA,EAAC,UAAA,aAAA,CAAA,EAAA,CAAA,EAA6B/B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA0K,EAAkC,OAAA,CAA5B,MAAM,aAAa,EAAC,IAAC,EAAA,KAG7DqH,EASiCC,EAAA,YARvBlQ,EAAA,yDAAAA,EAAA,oBAAmBwB,GAC3B,QAASxB,EAAA,mBACT,QAASA,EAAA,mBACT,WAAY,GACb,MAAM,cACL,WAAY,GACZ,YAAaC,EAAA,EAAC,UAAA,qBAAA,EACd,sBAAqBA,EAAA,EAAC,UAAA,aAAA,EACtB,SAAQA,EAAA,+GAEV2I,EAEI,IAFJoG,GAEIe,EADA9P,EAAA,EAAC,UAAA,uGAAA,CAAA,EAAA,CAAA,cAIN2I,EASM,MATNqG,GASM,CARLrG,EAGM,MAHNsG,GAGM,CAFLtG,EAA+D,QAA/DuG,GAA+DY,EAA/B9P,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,EACjCgQ,EAA0DM,EAAA,YAAzBtQ,EAAA,+CAAAA,EAAA,UAASuB,GAAE,KAAK,iCAElDoH,EAGM,MAHNwG,GAGM,CAFLxG,EAA6D,QAA7DyG,GAA6DU,EAA7B9P,EAAA,EAAC,UAAA,IAAA,CAAA,EAAA,CAAA,EACjCgQ,EAAwDM,EAAA,YAAvBtQ,EAAA,6CAAAA,EAAA,QAAOuB,GAAE,KAAK,mCAIjDoH,EA0BM,MA1BN0G,GA0BM,CAzBL1G,EAEQ,QAFR2G,GAEQ,KADJtP,EAAA,EAAC,UAAA,cAAA,CAAA,EAAA,CAAA,EAA8B/B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA0K,EAAkC,OAAA,CAA5B,MAAM,aAAa,EAAC,IAAC,EAAA,KAE9DqH,EAO2CO,EAAA,CANzC,WAAYxQ,EAAA,YACb,KAAK,SACL,IAAI,IACJ,KAAK,MACJ,MAAOC,EAAA,EAAC,UAAA,cAAA,EACR,aAAc,GACd,sBAAmBA,EAAA,yEACrB2I,EAaI,IAbJ4G,GAaI,CAZavP,EAAA,mBAAhByI,EAQW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CAPPC,EAAAX,EAAA9P,EAAA,oCAAsC,IACzC,CAAA,EAAA2I,EAIgF,IAAA,CAH9E,KAAM3I,EAAA,YACP,OAAO,SACP,IAAI,sBACJ,MAAM,kBAAkBA,EAAA,EAAC,UAAA,kCAAA,CAAA,EAAA,EAAA0Q,EAAA,EAAsDD,EAAA,MAC7EzQ,EAAA,EAAC,UAAA,qDAAA,CAAA,EAAA,CAAA,aAELyI,EAEW+H,EAAA,CAAA,IAAA,CAAA,EAAA,KADPxQ,EAAA,EAAC,UAAA,mHAAA,CAAA,EAAA,CAAA,YAKIA,EAAA,YAAU,CAAKH,EAAA,QAAUG,EAAA,eAAc,OAAlDyI,EAQM,MAAA,OARkD,MAAM,UAAW,yBAAyBzI,EAAA,SAAS,CAAA,IAC1G2I,EAMM,MANN6G,GAMM,CALL7G,EAA4C,cAAnC3I,EAAA,EAAC,UAAA,WAAA,CAAA,EAAA,CAAA,EACV2I,EAA8F,SAAA,KAAAmH,EAAnF9P,EAAA,WAAWA,EAAA,WAAW,SAAS,CAAA,EAAI,MAAG8P,EAAG9P,EAAA,WAAWA,EAAA,kBAAkB,CAAA,EAAA,CAAA,EACjF2I,EAEO,OAFPgI,GAEO,CADNhI,EAAyE,OAAA,CAAnE,MAAM,oBAAqB,gBAAgB3I,EAAA,aAAY,GAAA,CAAA,6BAK9CA,EAAA,qBAAlB4P,EAEaG,EAAA,OAFsB,KAAK,sBACvC,IAAkH,KAA/G/P,EAAA,EAAC,UAAA,8FAAA,CAAA,EAAA,CAAA,oBAGL2I,EAWM,MAXN8G,GAWM,CAVL9G,EAIQ,QAJR+G,GAIQ,CAHJe,EAAAX,EAAA9P,EAAA,uBAAyB,IAC5B,CAAA,EAAYA,EAAA,kBAAZyI,EAAsD,OAAtDmI,GAA8C,GAAC,QAC/CnI,EAA6E,OAA7EoI,GAA6Ef,EAApC9P,EAAA,EAAC,UAAA,YAAA,CAAA,EAAA,CAAA,KAE3CgQ,EAIYc,EAAA,YAHF/Q,EAAA,4CAAAA,EAAA,OAAMwB,GACd,YAAavB,EAAA,EAAC,UAAA,gCAAA,EACf,OAAO,WACP,KAAK,4CAGP2I,EAWM,MAXNgH,GAWM,CAVLK,EAEW7L,EAAA,CAFD,QAAQ,WAAY,uBAAOnG,EAAA,MAAK,OAAA,eACzC,IAA4B,KAAzBgC,EAAA,EAAC,UAAA,QAAA,CAAA,EAAA,CAAA,UAELgQ,EAMW7L,EAAA,CAND,QAAQ,UAAW,SAAQ,CAAGnE,EAAA,WAAaD,EAAA,WAAa,QAAOC,EAAA,SAC7D,OACV,IAA8C,CAAzBD,EAAA,gBAArB6P,EAA8C5I,EAAA,OAAZ,KAAM,WACxC4I,EAA0BmB,EAAA,OAAZ,KAAM,kBACV,IACX,CADWN,EAAA,MACRzQ,EAAA,WAAW,EAAA,CAAA,yHClIbgR,GAAsC,IAAI,QAC1CC,GAAkB,CACvB,QAAQzpB,EAAI0pB,EAAS,CACpB,MAAMC,EAAU,CAACD,EAAQ,UAAU,OACnC,IAAIE,EACJ,GAAI,OAAOF,EAAQ,OAAU,WAAYE,EAAOC,GAAe7pB,EAAI0pB,EAAQ,MAAO,CAAE,QAAAC,CAAO,CAAE,MACxF,CACJ,KAAM,CAAC7nB,EAAS+F,CAAO,EAAI6hB,EAAQ,MACnCE,EAAOC,GAAe7pB,EAAI8B,EAAS,OAAO,OAAO,CAAE,QAAA6nB,GAAW9hB,CAAO,CAAC,CACvE,CACA2hB,GAAoB,IAAIxpB,EAAI4pB,CAAI,CACjC,EACA,UAAU5pB,EAAI,CACb,MAAM4pB,EAAOJ,GAAoB,IAAIxpB,CAAE,EACnC4pB,GAAQ,OAAOA,GAAS,WAAYA,EAAI,EACHA,GAAK,KAAI,EAClDJ,GAAoB,OAAOxpB,CAAE,CAC9B,CACD,ECrCM8pB,GAAY,CAChB,QAAQ9pB,EAAI,CACVA,EAAG,MAAK,CACV,CACF,ECDM+pB,GAAc,6vJAEdC,GAAe,omBAgBfC,GAAU,UACVC,GAAQ,QACRC,GAAQ,QACRC,GAAe,eACfC,GAAe,eACfC,GAAS,SACTC,GAAQ,QACRC,GAAS,SACTC,GAAc,cACdC,GAAa,aAQnB,SAASC,GAAcxpB,EAAMypB,EAAQ,CACnC,OAAMzpB,KAAQypB,IACZA,EAAOzpB,CAAI,EAAI,CAAA,GAEVypB,EAAOzpB,CAAI,CACpB,CAQA,SAAS0pB,GAAY9xB,EAAG+xB,EAAOF,EAAQ,CACjCE,EAAMb,EAAO,IACfa,EAAMV,EAAY,EAAI,GACtBU,EAAMT,EAAY,EAAI,IAEpBS,EAAMZ,EAAK,IACbY,EAAMV,EAAY,EAAI,GACtBU,EAAMX,EAAK,EAAI,IAEbW,EAAMV,EAAY,IACpBU,EAAMT,EAAY,EAAI,IAEpBS,EAAMX,EAAK,IACbW,EAAMT,EAAY,EAAI,IAEpBS,EAAMT,EAAY,IACpBS,EAAMR,EAAM,EAAI,IAEdQ,EAAMP,EAAK,IACbO,EAAMR,EAAM,EAAI,IAElB,UAAW/wB,KAAKuxB,EAAO,CACrB,MAAMC,EAAQJ,GAAcpxB,EAAGqxB,CAAM,EACjCG,EAAM,QAAQhyB,CAAC,EAAI,GACrBgyB,EAAM,KAAKhyB,CAAC,CAEhB,CACF,CAQA,SAASiyB,GAAcjyB,EAAG6xB,EAAQ,CAChC,MAAM7V,EAAS,CAAA,EACf,UAAWva,KAAKowB,EACVA,EAAOpwB,CAAC,EAAE,QAAQzB,CAAC,GAAK,IAC1Bgc,EAAOva,CAAC,EAAI,IAGhB,OAAOua,CACT,CAoBA,SAASkW,GAAM9iB,EAAQ,KAAM,CAG3B,KAAK,EAAI,GAGT,KAAK,GAAK,CAAA,EAEV,KAAK,GAAK,KAEV,KAAK,EAAIA,CACX,CAMA8iB,GAAM,OAAS,CAAA,EACfA,GAAM,UAAY,CAChB,SAAU,CACR,MAAO,CAAC,CAAC,KAAK,CAChB,EAOA,GAAG5H,EAAO,CACR,MAAM3e,EAAQ,KACRwmB,EAAYxmB,EAAM,EAAE2e,CAAK,EAC/B,GAAI6H,EACF,OAAOA,EAET,QAASvxB,EAAI,EAAGA,EAAI+K,EAAM,GAAG,OAAQ/K,IAAK,CACxC,MAAMwxB,EAAQzmB,EAAM,GAAG/K,CAAC,EAAE,CAAC,EACrBuxB,EAAYxmB,EAAM,GAAG/K,CAAC,EAAE,CAAC,EAC/B,GAAIuxB,GAAaC,EAAM,KAAK9H,CAAK,EAC/B,OAAO6H,CAEX,CAEA,OAAOxmB,EAAM,EACf,EAQA,IAAI2e,EAAO+H,EAAY,GAAO,CAC5B,OAAOA,EAAY/H,KAAS,KAAK,EAAI,CAAC,CAAC,KAAK,GAAGA,CAAK,CACtD,EASA,GAAGgI,EAAQ7oB,EAAMsoB,EAAOF,EAAQ,CAC9B,QAASjxB,EAAI,EAAGA,EAAI0xB,EAAO,OAAQ1xB,IACjC,KAAK,GAAG0xB,EAAO1xB,CAAC,EAAG6I,EAAMsoB,EAAOF,CAAM,CAE1C,EAUA,GAAGriB,EAAQ/F,EAAMsoB,EAAOF,EAAQ,CAC9BA,EAASA,GAAUK,GAAM,OACzB,IAAIC,EACJ,OAAI1oB,GAAQA,EAAK,EACf0oB,EAAY1oB,GAGZ0oB,EAAY,IAAID,GAAMzoB,CAAI,EACtBsoB,GAASF,GACXC,GAAYroB,EAAMsoB,EAAOF,CAAM,GAGnC,KAAK,GAAG,KAAK,CAACriB,EAAQ2iB,CAAS,CAAC,EACzBA,CACT,EAWA,GAAG7H,EAAO7gB,EAAMsoB,EAAOF,EAAQ,CAC7B,IAAIlmB,EAAQ,KACZ,MAAMd,EAAMyf,EAAM,OAClB,GAAI,CAACzf,EACH,OAAOc,EAET,QAAS/K,EAAI,EAAGA,EAAIiK,EAAM,EAAGjK,IAC3B+K,EAAQA,EAAM,GAAG2e,EAAM1pB,CAAC,CAAC,EAE3B,OAAO+K,EAAM,GAAG2e,EAAMzf,EAAM,CAAC,EAAGpB,EAAMsoB,EAAOF,CAAM,CACrD,EA2BA,GAAGvH,EAAO7gB,EAAMsoB,EAAOF,EAAQ,CAC7BA,EAASA,GAAUK,GAAM,OACzB,MAAMvmB,EAAQ,KAGd,GAAIlC,GAAQA,EAAK,EACf,OAAAkC,EAAM,EAAE2e,CAAK,EAAI7gB,EACVA,EAET,MAAMzJ,EAAIyJ,EAIV,IAAI0oB,EACFI,EAAgB5mB,EAAM,GAAG2e,CAAK,EAUhC,GATIiI,GACFJ,EAAY,IAAID,GAChB,OAAO,OAAOC,EAAU,EAAGI,EAAc,CAAC,EAC1CJ,EAAU,GAAG,KAAK,MAAMA,EAAU,GAAII,EAAc,EAAE,EACtDJ,EAAU,GAAKI,EAAc,GAC7BJ,EAAU,EAAII,EAAc,GAE5BJ,EAAY,IAAID,GAEdlyB,EAAG,CAEL,GAAI6xB,EACF,GAAIM,EAAU,GAAK,OAAOA,EAAU,GAAM,SAAU,CAClD,MAAMK,EAAW,OAAO,OAAOP,GAAcE,EAAU,EAAGN,CAAM,EAAGE,CAAK,EACxED,GAAY9xB,EAAGwyB,EAAUX,CAAM,CACjC,MAAWE,GACTD,GAAY9xB,EAAG+xB,EAAOF,CAAM,EAGhCM,EAAU,EAAInyB,CAChB,CACA,OAAA2L,EAAM,EAAE2e,CAAK,EAAI6H,EACVA,CACT,CACF,EAWA,MAAMM,EAAK,CAAC9mB,EAAO2e,EAAO7gB,EAAMsoB,EAAOF,IAAWlmB,EAAM,GAAG2e,EAAO7gB,EAAMsoB,EAAOF,CAAM,EAU/Ea,GAAK,CAAC/mB,EAAO6D,EAAQ/F,EAAMsoB,EAAOF,IAAWlmB,EAAM,GAAG6D,EAAQ/F,EAAMsoB,EAAOF,CAAM,EAUjFc,GAAK,CAAChnB,EAAO2e,EAAO7gB,EAAMsoB,EAAOF,IAAWlmB,EAAM,GAAG2e,EAAO7gB,EAAMsoB,EAAOF,CAAM,EAU/Ee,EAAK,CAACjnB,EAAO2e,EAAO7gB,EAAMsoB,EAAOF,IAAWlmB,EAAM,GAAG2e,EAAO7gB,EAAMsoB,EAAOF,CAAM,EAQ/EgB,GAAO,OACPC,GAAQ,QACRC,GAAiB,iBACjBC,GAAiB,iBAGjBC,GAAY,YAGZC,GAAM,MAGNC,GAAO,OAKPC,GAAS,SAKTC,GAAe,eAGfC,GAAM,MAGNC,GAAK,KAGLC,GAAK,KAKLC,GAAY,YACZC,GAAa,aACbC,GAAc,cACdC,GAAe,eACfC,GAAY,YACZC,GAAa,aACbC,GAAmB,mBACnBC,GAAoB,oBACpBC,GAAqB,qBACrBC,GAAsB,sBACtBC,GAAoB,oBACpBC,GAAqB,qBACrBC,GAAyB,yBACzBC,GAA0B,0BAC1BC,GAAoB,oBACpBC,GAAuB,uBAGvBC,GAAY,YACZC,GAAa,aACbC,GAAW,WACXC,GAAK,KACLC,GAAY,YACZC,GAAW,WACXC,GAAQ,QACRC,GAAQ,QACRC,GAAQ,QACRC,GAAS,SACTC,GAAM,MACNC,GAAS,SACTC,GAAc,cACdC,GAAS,SACTC,GAAU,UACVC,GAAO,OACPC,GAAO,OACPC,GAAQ,QACRC,GAAQ,QACRC,GAAQ,QACRC,GAAqB,qBAErBC,GAAO,OACPC,GAAQ,QACRC,GAAQ,QACRC,GAAa,aAGbC,GAAU,QAGVC,GAAM,MAEZ,IAAIC,GAAkB,OAAO,OAAO,CACnC,UAAW,KACX,eAAgBpD,GAChB,UAAWyB,GACX,WAAYC,GACZ,eAAgB3B,GAChB,SAAU4B,GACV,GAAIC,GACJ,UAAWC,GACX,SAAUC,GACV,MAAOC,GACP,kBAAmBf,GACnB,WAAYN,GACZ,aAAcE,GACd,WAAYE,GACZ,MAAOkB,GACP,MAAOC,GACP,OAAQC,GACR,IAAKC,GACL,MAAOe,GACP,OAAQd,GACR,YAAaC,GACb,qBAAsBb,GACtB,mBAAoBP,GACpB,kBAAmBM,GACnB,mBAAoBsB,GACpB,oBAAqB3B,GACrB,OAAQoB,GACR,kBAAmBnB,GACnB,uBAAwBE,GACxB,UAAWpB,GACX,GAAIO,GACJ,IAAKF,GACL,iBAAkBS,GAClB,UAAWN,GACX,YAAaE,GACb,UAAWE,GACX,QAAS0B,GACT,KAAMC,GACN,KAAMC,GACN,MAAOC,GACP,MAAOC,GACP,MAAOC,GACP,mBAAoBxB,GACpB,wBAAyBE,GACzB,OAAQlB,GACR,KAAM0C,GACN,MAAOC,GACP,aAAc1C,GACd,IAAK8C,GACL,MAAOH,GACP,IAAK9C,GACL,WAAY+C,GACZ,KAAM9C,GACN,MAAOL,GACP,KAAMD,GACN,GAAIU,EACL,CAAC,EAGD,MAAM8C,GAAe,QACfC,GAAS,WAAA,SAAA,GAAA,EACTC,GAAQ,WAAA,aAAA,GAAA,EAERC,GAAQ,KACRC,GAAQ,KAiBRC,GAAK,KACLC,GAAK;AAAA,EACLC,GAAkB,IAClBC,GAAe,IACfC,GAAqB,IAE3B,IAAIC,GAAO,KACTC,GAAQ,KAuBV,SAASC,GAAOC,EAAgB,GAAI,CAGlC,MAAMrF,EAAS,CAAA,EACfK,GAAM,OAASL,EAEf,MAAMsF,EAAQ,IAAIjF,GACd6E,IAAQ,OACVA,GAAOK,GAAWpG,EAAW,GAE3BgG,IAAS,OACXA,GAAQI,GAAWnG,EAAY,GAIjC2B,EAAGuE,EAAO,IAAKzC,EAAU,EACzB9B,EAAGuE,EAAO,IAAK1D,EAAS,EACxBb,EAAGuE,EAAO,IAAKzD,EAAU,EACzBd,EAAGuE,EAAO,IAAKxD,EAAW,EAC1Bf,EAAGuE,EAAO,IAAKvD,EAAY,EAC3BhB,EAAGuE,EAAO,IAAKtD,EAAS,EACxBjB,EAAGuE,EAAO,IAAKrD,EAAU,EACzBlB,EAAGuE,EAAO,IAAKpD,EAAgB,EAC/BnB,EAAGuE,EAAO,IAAKnD,EAAiB,EAChCpB,EAAGuE,EAAO,IAAKlD,EAAkB,EACjCrB,EAAGuE,EAAO,IAAKjD,EAAmB,EAClCtB,EAAGuE,EAAO,IAAKhD,EAAiB,EAChCvB,EAAGuE,EAAO,IAAK/C,EAAkB,EACjCxB,EAAGuE,EAAO,IAAK9C,EAAsB,EACrCzB,EAAGuE,EAAO,IAAK7C,EAAuB,EACtC1B,EAAGuE,EAAO,IAAK5C,EAAiB,EAChC3B,EAAGuE,EAAO,IAAK3C,EAAoB,EACnC5B,EAAGuE,EAAO,IAAK1C,EAAS,EACxB7B,EAAGuE,EAAO,IAAKxC,EAAQ,EACvB/B,EAAGuE,EAAO,IAAKvC,EAAE,EACjBhC,EAAGuE,EAAO,IAAKrC,EAAQ,EACvBlC,EAAGuE,EAAO,IAAKpC,EAAK,EACpBnC,EAAGuE,EAAO,IAAKnC,EAAK,EACpBpC,EAAGuE,EAAO,IAAKlC,EAAK,EACpBrC,EAAGuE,EAAO,IAAKjC,EAAM,EACrBtC,EAAGuE,EAAO,IAAKhC,EAAG,EAClBvC,EAAGuE,EAAO,IAAK/B,EAAM,EACrBxC,EAAGuE,EAAO,IAAK9B,EAAW,EAC1BzC,EAAGuE,EAAO,IAAK7B,EAAM,EACrB1C,EAAGuE,EAAO,IAAK5B,EAAO,EACtB3C,EAAGuE,EAAO,IAAK3B,EAAI,EACnB5C,EAAGuE,EAAO,IAAK1B,EAAI,EACnB7C,EAAGuE,EAAO,IAAKzB,EAAK,EACpB9C,EAAGuE,EAAO,IAAKxB,EAAK,EACpB/C,EAAGuE,EAAO,IAAKvB,EAAK,EACpBhD,EAAGuE,EAAO,IAAKpB,EAAK,EACpBnD,EAAGuE,EAAO,IAAKrB,EAAI,EACnBlD,EAAGuE,EAAO,IAAKnB,EAAK,EACpBpD,EAAGuE,EAAO,IAAKlB,EAAU,EACzBrD,EAAGuE,EAAO,KAAMtC,EAAS,EACzBjC,EAAGuE,EAAO,IAAKtB,EAAkB,EACjC,MAAMwB,EAAM3E,GAAGyE,EAAOX,GAAOlD,GAAK,CAChC,CAACpC,EAAO,EAAG,EACf,CAAG,EACDwB,GAAG2E,EAAKb,GAAOa,CAAG,EAClB,MAAMC,EAAe5E,GAAG2E,EAAKhB,GAActD,GAAgB,CACzD,CAAC1B,EAAY,EAAG,EACpB,CAAG,EACKkG,EAAe7E,GAAG2E,EAAKf,GAAQtD,GAAgB,CACnD,CAAC1B,EAAY,EAAG,EACpB,CAAG,EAGKkG,EAAO9E,GAAGyE,EAAOd,GAAcxD,GAAM,CACzC,CAAC1B,EAAK,EAAG,EACb,CAAG,EACDuB,GAAG8E,EAAMhB,GAAOc,CAAY,EAC5B5E,GAAG8E,EAAMnB,GAAcmB,CAAI,EAC3B9E,GAAG4E,EAAcd,GAAOc,CAAY,EACpC5E,GAAG4E,EAAcjB,GAAciB,CAAY,EAG3C,MAAMG,EAAQ/E,GAAGyE,EAAOb,GAAQxD,GAAO,CACrC,CAAC1B,EAAK,EAAG,EACb,CAAG,EACDsB,GAAG+E,EAAOpB,EAAY,EACtB3D,GAAG+E,EAAOjB,GAAOe,CAAY,EAC7B7E,GAAG+E,EAAOnB,GAAQmB,CAAK,EACvB/E,GAAG6E,EAAcf,GAAOe,CAAY,EACpC7E,GAAG6E,EAAclB,EAAY,EAC7B3D,GAAG6E,EAAcjB,GAAQiB,CAAY,EAKrC,MAAMG,EAAK9E,EAAGuE,EAAOR,GAAInD,GAAI,CAC3B,CAAC7B,EAAU,EAAG,EAClB,CAAG,EACKgG,EAAK/E,EAAGuE,EAAOT,GAAInD,GAAI,CAC3B,CAAC5B,EAAU,EAAG,EAClB,CAAG,EACKiG,EAAKlF,GAAGyE,EAAOV,GAAOlD,GAAI,CAC9B,CAAC5B,EAAU,EAAG,EAClB,CAAG,EACDiB,EAAGuE,EAAOL,GAAoBc,CAAE,EAChChF,EAAG+E,EAAIhB,GAAIe,CAAE,EACb9E,EAAG+E,EAAIb,GAAoBc,CAAE,EAC7BlF,GAAGiF,EAAIlB,GAAOmB,CAAE,EAChBhF,EAAGgF,EAAIlB,EAAE,EACT9D,EAAGgF,EAAIjB,EAAE,EACTjE,GAAGkF,EAAInB,GAAOmB,CAAE,EAChBhF,EAAGgF,EAAId,GAAoBc,CAAE,EAI7B,MAAMC,EAAQnF,GAAGyE,EAAOZ,GAAOL,GAAS,CACtC,CAAC1E,EAAK,EAAG,EACb,CAAG,EACDoB,EAAGiF,EAAO,GAAG,EACbnF,GAAGmF,EAAOtB,GAAOsB,CAAK,EACtBjF,EAAGiF,EAAOjB,GAAiBiB,CAAK,EAGhC,MAAMC,EAAclF,EAAGiF,EAAOhB,EAAY,EAC1CjE,EAAGkF,EAAa,GAAG,EACnBpF,GAAGoF,EAAavB,GAAOsB,CAAK,EAK5B,MAAME,EAAS,CAAC,CAAC1B,GAAcmB,CAAI,EAAG,CAAChB,GAAOc,CAAY,CAAC,EACrDU,EAAU,CAAC,CAAC3B,GAAc,IAAI,EAAG,CAACC,GAAQmB,CAAK,EAAG,CAACjB,GAAOe,CAAY,CAAC,EAC7E,QAAS32B,EAAI,EAAGA,EAAIm2B,GAAK,OAAQn2B,IAC/Bq3B,GAAOd,EAAOJ,GAAKn2B,CAAC,EAAGsyB,GAAKL,GAAMkF,CAAM,EAE1C,QAASn3B,EAAI,EAAGA,EAAIo2B,GAAM,OAAQp2B,IAChCq3B,GAAOd,EAAOH,GAAMp2B,CAAC,EAAGuyB,GAAML,GAAOkF,CAAO,EAE9ClG,GAAYoB,GAAK,CACf,IAAK,GACL,MAAO,EACX,EAAKrB,CAAM,EACTC,GAAYqB,GAAM,CAChB,KAAM,GACN,MAAO,EACX,EAAKtB,CAAM,EAKToG,GAAOd,EAAO,OAAQ/D,GAAQP,GAAMkF,CAAM,EAC1CE,GAAOd,EAAO,SAAU/D,GAAQP,GAAMkF,CAAM,EAC5CE,GAAOd,EAAO,OAAQ9D,GAAcR,GAAMkF,CAAM,EAChDE,GAAOd,EAAO,QAAS9D,GAAcR,GAAMkF,CAAM,EACjDE,GAAOd,EAAO,MAAO9D,GAAcR,GAAMkF,CAAM,EAC/CE,GAAOd,EAAO,OAAQ9D,GAAcR,GAAMkF,CAAM,EAChDjG,GAAYsB,GAAQ,CAClB,OAAQ,GACR,MAAO,EACX,EAAKvB,CAAM,EACTC,GAAYuB,GAAc,CACxB,YAAa,GACb,MAAO,EACX,EAAKxB,CAAM,EAGTqF,EAAgBA,EAAc,KAAK,CAAC33B,EAAGO,IAAMP,EAAE,CAAC,EAAIO,EAAE,CAAC,EAAI,EAAI,EAAE,EACjE,QAASc,EAAI,EAAGA,EAAIs2B,EAAc,OAAQt2B,IAAK,CAC7C,MAAMs3B,EAAMhB,EAAct2B,CAAC,EAAE,CAAC,EAExBmxB,EADqBmF,EAAct2B,CAAC,EAAE,CAAC,EACV,CACjC,CAAC6wB,EAAM,EAAG,EAChB,EAAQ,CACF,CAACC,EAAW,EAAG,EACrB,EACQwG,EAAI,QAAQ,GAAG,GAAK,EACtBnG,EAAMR,EAAM,EAAI,GACN8E,GAAa,KAAK6B,CAAG,EAEtB1B,GAAM,KAAK0B,CAAG,EACvBnG,EAAMV,EAAY,EAAI,GAEtBU,EAAMZ,EAAK,EAAI,GAJfY,EAAMb,EAAO,EAAI,GAMnByB,GAAGwE,EAAOe,EAAKA,EAAKnG,CAAK,CAC3B,CAGA,OAAAY,GAAGwE,EAAO,YAAalE,GAAW,CAChC,MAAO,EACX,CAAG,EAGDkE,EAAM,GAAK,IAAIjF,GAAMiE,EAAG,EACjB,CACL,MAAOgB,EACP,OAAQ,OAAO,OAAO,CACpB,OAAAtF,CACN,EAAOuE,EAAE,CACT,CACA,CAWA,SAAS+B,GAAMC,EAAOC,EAAK,CAKzB,MAAMC,EAAWC,GAAcF,EAAI,QAAQ,SAAU52B,GAAKA,EAAE,YAAW,CAAE,CAAC,EACpE+2B,EAAYF,EAAS,OACrBpqB,EAAS,CAAA,EAIf,IAAIuqB,EAAS,EAGTC,EAAa,EAGjB,KAAOA,EAAaF,GAAW,CAC7B,IAAI7sB,EAAQysB,EACRjG,EAAY,KACZwG,EAAc,EACdC,EAAkB,KAClBC,EAAe,GACfC,EAAoB,GACxB,KAAOJ,EAAaF,IAAcrG,EAAYxmB,EAAM,GAAG2sB,EAASI,CAAU,CAAC,IACzE/sB,EAAQwmB,EAGJxmB,EAAM,WACRktB,EAAe,EACfC,EAAoB,EACpBF,EAAkBjtB,GACTktB,GAAgB,IACzBA,GAAgBP,EAASI,CAAU,EAAE,OACrCI,KAEFH,GAAeL,EAASI,CAAU,EAAE,OACpCD,GAAUH,EAASI,CAAU,EAAE,OAC/BA,IAIFD,GAAUI,EACVH,GAAcI,EACdH,GAAeE,EAGf3qB,EAAO,KAAK,CACV,EAAG0qB,EAAgB,EAEnB,EAAGP,EAAI,MAAMI,EAASE,EAAaF,CAAM,EAEzC,EAAGA,EAASE,EAEZ,EAAGF,CACT,CAAK,CACH,CACA,OAAOvqB,CACT,CAaA,SAASqqB,GAAcF,EAAK,CAC1B,MAAMrc,EAAS,CAAA,EACTnR,EAAMwtB,EAAI,OAChB,IAAInsB,EAAQ,EACZ,KAAOA,EAAQrB,GAAK,CAClB,IAAIkuB,EAAQV,EAAI,WAAWnsB,CAAK,EAC5B8sB,EACA5qB,EAAO2qB,EAAQ,OAAUA,EAAQ,OAAU7sB,EAAQ,IAAMrB,IAAQmuB,EAASX,EAAI,WAAWnsB,EAAQ,CAAC,GAAK,OAAU8sB,EAAS,MAASX,EAAInsB,CAAK,EAC9ImsB,EAAI,MAAMnsB,EAAOA,EAAQ,CAAC,EAC5B8P,EAAO,KAAK5N,CAAI,EAChBlC,GAASkC,EAAK,MAChB,CACA,OAAO4N,CACT,CAWA,SAASic,GAAOtsB,EAAO2e,EAAO,EAAG2O,EAAUC,EAAI,CAC7C,IAAIzvB,EACJ,MAAMoB,EAAMyf,EAAM,OAClB,QAAS1pB,EAAI,EAAGA,EAAIiK,EAAM,EAAGjK,IAAK,CAChC,MAAMwN,EAAOkc,EAAM1pB,CAAC,EAChB+K,EAAM,EAAEyC,CAAI,EACd3E,EAAOkC,EAAM,EAAEyC,CAAI,GAEnB3E,EAAO,IAAIyoB,GAAM+G,CAAQ,EACzBxvB,EAAK,GAAKyvB,EAAG,MAAK,EAClBvtB,EAAM,EAAEyC,CAAI,EAAI3E,GAElBkC,EAAQlC,CACV,CACA,OAAAA,EAAO,IAAIyoB,GAAM,CAAC,EAClBzoB,EAAK,GAAKyvB,EAAG,MAAK,EAClBvtB,EAAM,EAAE2e,EAAMzf,EAAM,CAAC,CAAC,EAAIpB,EACnBA,CACT,CAQA,SAAS2tB,GAAW+B,EAAS,CAC3B,MAAMC,EAAQ,CAAA,EACRC,EAAQ,CAAA,EACd,IAAIz4B,EAAI,EACJ04B,EAAS,aACb,KAAO14B,EAAIu4B,EAAQ,QAAQ,CACzB,IAAII,EAAgB,EACpB,KAAOD,EAAO,QAAQH,EAAQv4B,EAAI24B,CAAa,CAAC,GAAK,GACnDA,IAEF,GAAIA,EAAgB,EAAG,CACrBH,EAAM,KAAKC,EAAM,KAAK,EAAE,CAAC,EACzB,QAASG,EAAW,SAASL,EAAQ,UAAUv4B,EAAGA,EAAI24B,CAAa,EAAG,EAAE,EAAGC,EAAW,EAAGA,IACvFH,EAAM,IAAG,EAEXz4B,GAAK24B,CACP,MACEF,EAAM,KAAKF,EAAQv4B,CAAC,CAAC,EACrBA,GAEJ,CACA,OAAOw4B,CACT,CAmFA,MAAMK,GAAW,CACf,gBAAiB,OACjB,OAAQ,KACR,OAAQpnB,GACR,WAAYA,GACZ,MAAO,GACP,QAAS,IACT,OAAQ,KACR,IAAK,KACL,SAAU,GACV,SAAU,IACV,UAAW,KACX,WAAY,KACZ,WAAY,CAAA,EACZ,OAAQ,IACV,EAYA,SAASqnB,GAAQC,EAAMC,EAAgB,KAAM,CAC3C,IAAIp4B,EAAI,OAAO,OAAO,CAAA,EAAIi4B,EAAQ,EAC9BE,IACFn4B,EAAI,OAAO,OAAOA,EAAGm4B,aAAgBD,GAAUC,EAAK,EAAIA,CAAI,GAI9D,MAAME,EAAcr4B,EAAE,WAChBs4B,EAAuB,CAAA,EAC7B,QAASl5B,EAAI,EAAGA,EAAIi5B,EAAY,OAAQj5B,IACtCk5B,EAAqB,KAAKD,EAAYj5B,CAAC,EAAE,YAAW,CAAE,EAGxD,KAAK,EAAIY,EACLo4B,IACF,KAAK,cAAgBA,GAEvB,KAAK,WAAaE,CACpB,CACAJ,GAAQ,UAAY,CAClB,EAAGD,GAIH,WAAY,CAAA,EAKZ,cAAcM,EAAI,CAChB,OAAOA,CACT,EAOA,MAAM3qB,EAAO,CACX,OAAO,KAAK,IAAI,WAAYA,EAAM,SAAQ,EAAIA,CAAK,CACrD,EAcA,IAAItJ,EAAKk0B,EAAU5qB,EAAO,CACxB,MAAM6qB,EAAaD,GAAY,KAC/B,IAAIE,EAAS,KAAK,EAAEp0B,CAAG,EACvB,OAAKo0B,IAGD,OAAOA,GAAW,UACpBA,EAAS9qB,EAAM,KAAK8qB,EAASA,EAAO9qB,EAAM,CAAC,EAAIqqB,GAAS3zB,CAAG,EACvD,OAAOo0B,GAAW,YAAcD,IAClCC,EAASA,EAAOF,EAAU5qB,CAAK,IAExB,OAAO8qB,GAAW,YAAcD,IACzCC,EAASA,EAAOF,EAAU5qB,EAAM,EAAGA,CAAK,GAEnC8qB,EACT,EAQA,OAAOp0B,EAAKk0B,EAAU5qB,EAAO,CAC3B,IAAI+qB,EAAM,KAAK,EAAEr0B,CAAG,EACpB,OAAI,OAAOq0B,GAAQ,YAAcH,GAAY,OAC3CG,EAAMA,EAAIH,EAAU5qB,EAAM,EAAGA,CAAK,GAE7B+qB,CACT,EAQA,OAAO/qB,EAAO,CACZ,MAAM2qB,EAAK3qB,EAAM,OAAO,IAAI,EAE5B,OADiB,KAAK,IAAI,SAAU,KAAMA,CAAK,GAAK,KAAK,eACzC2qB,EAAI3qB,EAAM,EAAGA,CAAK,CACpC,CACF,EACA,SAASiD,GAAK+nB,EAAK,CACjB,OAAOA,CACT,CAiBA,SAASC,GAAWn0B,EAAOgI,EAAQ,CACjC,KAAK,EAAI,QACT,KAAK,EAAIhI,EACT,KAAK,GAAKgI,CACZ,CAeAmsB,GAAW,UAAY,CACrB,OAAQ,GAKR,UAAW,CACT,OAAO,KAAK,CACd,EAOA,OAAO5I,EAAQ,CACb,OAAO,KAAK,SAAQ,CACtB,EAKA,kBAAkB3iB,EAAS,CACzB,MAAMsrB,EAAM,KAAK,SAAQ,EACnBE,EAAWxrB,EAAQ,IAAI,WAAYsrB,EAAK,IAAI,EAC5CG,EAAYzrB,EAAQ,IAAI,SAAUsrB,EAAK,IAAI,EACjD,OAAOE,GAAYC,EAAU,OAASD,EAAWC,EAAU,UAAU,EAAGD,CAAQ,EAAI,IAAMC,CAC5F,EAMA,gBAAgBzrB,EAAS,CACvB,OAAOA,EAAQ,IAAI,aAAc,KAAK,OAAOA,EAAQ,IAAI,iBAAiB,CAAC,EAAG,IAAI,CACpF,EAKA,YAAa,CACX,OAAO,KAAK,GAAG,CAAC,EAAE,CACpB,EAMA,UAAW,CACT,OAAO,KAAK,GAAG,KAAK,GAAG,OAAS,CAAC,EAAE,CACrC,EAUA,SAAS0rB,EAAWf,GAAS,gBAAiB,CAC5C,MAAO,CACL,KAAM,KAAK,EACX,MAAO,KAAK,SAAQ,EACpB,OAAQ,KAAK,OACb,KAAM,KAAK,OAAOe,CAAQ,EAC1B,MAAO,KAAK,WAAU,EACtB,IAAK,KAAK,SAAQ,CACxB,CACE,EAKA,kBAAkB1rB,EAAS,CACzB,MAAO,CACL,KAAM,KAAK,EACX,MAAO,KAAK,kBAAkBA,CAAO,EACrC,OAAQ,KAAK,OACb,KAAM,KAAK,gBAAgBA,CAAO,EAClC,MAAO,KAAK,WAAU,EACtB,IAAK,KAAK,SAAQ,CACxB,CACE,EAMA,SAASA,EAAS,CAChB,OAAOA,EAAQ,IAAI,WAAY,KAAK,SAAQ,EAAI,IAAI,CACtD,EAKA,OAAOA,EAAS,CACd,MAAMM,EAAQ,KACRyJ,EAAO,KAAK,OAAO/J,EAAQ,IAAI,iBAAiB,CAAC,EACjD2rB,EAAgB3rB,EAAQ,IAAI,aAAc+J,EAAM,IAAI,EACpD6hB,EAAU5rB,EAAQ,IAAI,UAAW+J,EAAMzJ,CAAK,EAC5CurB,EAAU,KAAK,kBAAkB7rB,CAAO,EACxCyV,EAAa,CAAA,EACbqW,EAAY9rB,EAAQ,IAAI,YAAa+J,EAAMzJ,CAAK,EAChDiG,EAASvG,EAAQ,IAAI,SAAU+J,EAAMzJ,CAAK,EAC1CyrB,EAAM/rB,EAAQ,IAAI,MAAO+J,EAAMzJ,CAAK,EACpC0G,EAAQhH,EAAQ,OAAO,aAAc+J,EAAMzJ,CAAK,EAChD0rB,EAAiBhsB,EAAQ,OAAO,SAAU+J,EAAMzJ,CAAK,EAC3D,OAAAmV,EAAW,KAAOkW,EACdG,IACFrW,EAAW,MAAQqW,GAEjBvlB,IACFkP,EAAW,OAASlP,GAElBwlB,IACFtW,EAAW,IAAMsW,GAEf/kB,GACF,OAAO,OAAOyO,EAAYzO,CAAK,EAE1B,CACL,QAAA4kB,EACA,WAAAnW,EACA,QAAAoW,EACA,eAAAG,CACN,CACE,CACF,EAQA,SAASC,GAAiBtO,EAAMxZ,EAAO,CACrC,MAAM+nB,UAAcX,EAAW,CAC7B,YAAYn0B,EAAOgI,EAAQ,CACzB,MAAMhI,EAAOgI,CAAM,EACnB,KAAK,EAAIue,CACX,CACJ,CACE,UAAWhtB,KAAKwT,EACd+nB,EAAM,UAAUv7B,CAAC,EAAIwT,EAAMxT,CAAC,EAE9B,OAAAu7B,EAAM,EAAIvO,EACHuO,CACT,CAKA,MAAMC,GAAQF,GAAiB,QAAS,CACtC,OAAQ,GACR,QAAS,CACP,MAAO,UAAY,KAAK,SAAQ,CAClC,CACF,CAAC,EAKKG,GAAOH,GAAiB,MAAM,EAM9BrD,GAAKqD,GAAiB,IAAI,EAM1BI,GAAMJ,GAAiB,MAAO,CAClC,OAAQ,GAQR,OAAOtJ,EAASgI,GAAS,gBAAiB,CAExC,OAAO,KAAK,cAAgB,KAAK,EAAI,GAAGhI,CAAM,MAAM,KAAK,CAAC,EAC5D,EAKA,aAAc,CACZ,MAAMvjB,EAAS,KAAK,GACpB,OAAOA,EAAO,QAAU,GAAKA,EAAO,CAAC,EAAE,IAAM+kB,IAAa/kB,EAAO,CAAC,EAAE,IAAM8mB,EAC5E,CACF,CAAC,EA4BKoG,GAAYC,GAAO,IAAInJ,GAAMmJ,CAAG,EAMtC,SAASC,GAAO,CACd,OAAAzJ,CACF,EAAG,CAED,MAAM0J,EAAc1J,EAAO,OAAO,OAAO,CAAC4C,GAAWE,GAAUC,GAAIC,GAAWC,GAAUC,GAAOG,GAAQE,GAAQE,GAAQhC,GAAKiC,GAASC,GAAMC,GAAMC,GAAOK,GAAOI,GAAKH,GAAOC,EAAU,CAAC,EAKhLuF,EAAiB,CAAC9G,GAAYM,GAAOC,GAAOE,GAAKE,GAAaE,GAASI,GAAOC,GAAOE,GAAM/B,GAAkBC,GAAmBP,GAAWC,GAAYE,GAAcD,GAAaE,GAAWC,GAAYG,GAAoBC,GAAqBC,GAAmBC,GAAoBC,GAAwBC,GAAyBC,GAAmBC,EAAoB,EAIjXiH,EAAqB,CAAChH,GAAWC,GAAYC,GAAUE,GAAWC,GAAUC,GAAOG,GAAQE,GAAQE,GAAQ7B,GAAWC,GAAY6B,GAASC,GAAMC,GAAMC,GAAOC,GAAOI,GAAOI,GAAKH,GAAOC,EAAU,EAMlMkB,EAAQiE,GAAS,EACjBM,EAAY9I,EAAGuE,EAAOnB,EAAK,EACjCvD,EAAGiJ,EAAWD,EAAoBC,CAAS,EAC3CjJ,EAAGiJ,EAAW7J,EAAO,OAAQ6J,CAAS,EACtC,MAAMC,EAASP,GAAS,EACtBQ,EAASR,GAAS,EAClBS,EAAcT,GAAS,EACzB3I,EAAG0E,EAAOtF,EAAO,OAAQ8J,CAAM,EAC/BlJ,EAAG0E,EAAOtF,EAAO,OAAQ+J,CAAM,EAC/BnJ,EAAG0E,EAAOtF,EAAO,YAAagK,CAAW,EAEzCpJ,EAAGkJ,EAAQF,EAAoBC,CAAS,EACxCjJ,EAAGkJ,EAAQ9J,EAAO,OAAQ8J,CAAM,EAChC,MAAMG,EAAclJ,EAAG+I,EAAQ/G,EAAE,EAEjChC,EAAG8I,EAAW9G,GAAIkH,CAAW,EAG7BlJ,EAAGgJ,EAAQhH,GAAIkH,CAAW,EAC1BlJ,EAAGiJ,EAAajH,GAAIkH,CAAW,EAC/B,MAAMC,EAAenJ,EAAG8I,EAAWvG,EAAG,EACtC1C,EAAGsJ,EAAcN,EAAoBC,CAAS,EAC9CjJ,EAAGsJ,EAAclK,EAAO,OAAQ6J,CAAS,EACzC,MAAMM,EAAcZ,GAAS,EAC7B3I,EAAGqJ,EAAajK,EAAO,OAAQmK,CAAW,EAC1CvJ,EAAGuJ,EAAanK,EAAO,OAAQmK,CAAW,EAC1C,MAAMC,EAAiBrJ,EAAGoJ,EAAa7G,EAAG,EAC1C1C,EAAGwJ,EAAgBpK,EAAO,OAAQmK,CAAW,EAC7C,MAAME,EAAUd,GAAUH,EAAK,EAC/BxI,EAAGwJ,EAAgBpK,EAAO,IAAKqK,CAAO,EACtCzJ,EAAGwJ,EAAgBpK,EAAO,KAAMqK,CAAO,EACvCtJ,EAAGkJ,EAAa7I,GAAWiJ,CAAO,EAGlC,MAAMC,EAAoBvJ,EAAGoJ,EAAa1G,EAAM,EAChD1C,EAAGuJ,EAAmB7G,GAAQ6G,CAAiB,EAC/C1J,EAAG0J,EAAmBtK,EAAO,OAAQmK,CAAW,EAChDvJ,EAAGyJ,EAASrK,EAAO,OAAQmK,CAAW,EACtCpJ,EAAGsJ,EAAS/G,GAAK8G,CAAc,EAC/BrJ,EAAGsJ,EAAS5G,GAAQ6G,CAAiB,EAIrC,MAAMC,EAAexJ,EAAG+I,EAAQrG,EAAM,EAChC+G,EAAYzJ,EAAG+I,EAAQxG,EAAG,EAChCvC,EAAGwJ,EAAc9G,GAAQ8G,CAAY,EACrC3J,EAAG2J,EAAcvK,EAAO,OAAQ8J,CAAM,EACtClJ,EAAG4J,EAAWZ,EAAoBC,CAAS,EAC3CjJ,EAAG4J,EAAWxK,EAAO,OAAQ8J,CAAM,EACnC,MAAMW,EAAelB,GAAUD,EAAG,EAClC1I,EAAG4J,EAAWxK,EAAO,IAAKyK,CAAY,EACtC7J,EAAG4J,EAAWxK,EAAO,KAAMyK,CAAY,EACvC7J,EAAG6J,EAAczK,EAAO,OAAQ8J,CAAM,EACtClJ,EAAG6J,EAAcb,EAAoBC,CAAS,EAC9C9I,EAAG0J,EAAcnH,GAAKkH,CAAS,EAC/BzJ,EAAG0J,EAAchH,GAAQ8G,CAAY,EACrCxJ,EAAG0J,EAAc1H,GAAIkH,CAAW,EAChC,MAAMS,EAAoB3J,EAAG0J,EAActH,EAAK,EAC1CwH,EAAwBpB,GAAUD,EAAG,EAC3C1I,EAAG8J,EAAmB1K,EAAO,QAAS2K,CAAqB,EAG3D,MAAMC,EAAQrB,GAAUD,EAAG,EAGrBuB,GAAetB,KAGrB3I,EAAGgK,EAAOlB,EAAakB,CAAK,EAC5BhK,EAAGgK,EAAOjB,EAAgBkB,EAAY,EACtCjK,EAAGiK,GAAcnB,EAAakB,CAAK,EACnChK,EAAGiK,GAAclB,EAAgBkB,EAAY,EAI7C9J,EAAG0J,EAAcvG,GAAO0G,CAAK,EAC7B7J,EAAG4J,EAAuBzG,GAAO0G,CAAK,EAGtC,MAAME,GAAc/J,EAAGgJ,EAAQ5G,EAAK,EAC9B4H,GAAmBhK,EAAGiJ,EAAa7G,EAAK,EACxC6H,GAAwBjK,EAAGgK,GAAkB7G,EAAK,EAElD+G,GAAYlK,EAAGiK,GAAuB9G,EAAK,EAGjDtD,EAAGmJ,EAAQ/J,EAAO,OAAQ8J,CAAM,EAChC/I,EAAGgJ,EAAQzG,GAAKkH,CAAS,EACzBzJ,EAAGgJ,EAAQtG,GAAQ8G,CAAY,EAC/B3J,EAAGoJ,EAAahK,EAAO,OAAQ8J,CAAM,EACrC/I,EAAGiJ,EAAa1G,GAAKkH,CAAS,EAC9BzJ,EAAGiJ,EAAavG,GAAQ8G,CAAY,EAGpC3J,EAAGkK,GAAa9K,EAAO,OAAQ4K,CAAK,EACpC7J,EAAG+J,GAAa5G,GAAO0G,CAAK,EAC5B7J,EAAG+J,GAAahH,GAAO8G,CAAK,EAC5BhK,EAAGqK,GAAWjL,EAAO,OAAQ4K,CAAK,EAClChK,EAAGqK,GAAWvB,EAAakB,CAAK,EAChC7J,EAAGkK,GAAW/G,GAAO0G,CAAK,EAC1B,MAAMM,GAAe,CAAC,CAACtJ,GAAWC,EAAU,EAE5C,CAACC,GAAaC,EAAY,EAE1B,CAACC,GAAWC,EAAU,EAEtB,CAACC,GAAkBC,EAAiB,EAEpC,CAACC,GAAoBC,EAAmB,EAExC,CAACC,GAAmBC,EAAkB,EAEtC,CAACC,GAAwBC,EAAuB,EAEhD,CAACC,GAAmBC,EAAoB,CAC1C,EACE,QAAS5zB,GAAI,EAAGA,GAAIm8B,GAAa,OAAQn8B,KAAK,CAC5C,KAAM,CAACo8B,GAAMC,EAAK,EAAIF,GAAan8B,EAAC,EAC9Bs8B,GAAUtK,EAAG6J,EAAOO,EAAI,EAG9BpK,EAAG8J,GAAcM,GAAME,EAAO,EAK9B,MAAMC,GAAW/B,GAAUD,EAAG,EAC9B1I,EAAGyK,GAAS3B,EAAa4B,EAAQ,EACjC,MAAMC,GAAchC,KACpB3I,EAAGyK,GAAS1B,EAAgB4B,EAAW,EAKvCxK,EAAGsK,GAASD,GAAOR,CAAK,EAGxBhK,EAAG0K,GAAU5B,EAAa4B,EAAQ,EAClC1K,EAAG0K,GAAU3B,EAAgB4B,EAAW,EACxC3K,EAAG2K,GAAa7B,EAAa4B,EAAQ,EACrC1K,EAAG2K,GAAa5B,EAAgB4B,EAAW,EAG3CxK,EAAGuK,GAAUF,GAAOR,CAAK,EACzB7J,EAAGwK,GAAaH,GAAOR,CAAK,CAC9B,CACA,OAAA7J,EAAGuE,EAAOlE,GAAWqJ,CAAY,EACjC1J,EAAGuE,EAAO3D,GAAIkE,EAAE,EAET,CACL,MAAOP,EACP,OAAQf,EACZ,CACA,CAYA,SAASiH,GAAIjF,EAAO9N,EAAOpc,EAAQ,CACjC,IAAIrD,EAAMqD,EAAO,OACbuqB,EAAS,EACT6E,EAAS,CAAA,EACTC,EAAa,CAAA,EACjB,KAAO9E,EAAS5tB,GAAK,CACnB,IAAIc,EAAQysB,EACRoF,EAAc,KACdrL,EAAY,KACZsL,EAAc,EACd7E,EAAkB,KAClBC,EAAe,GACnB,KAAOJ,EAAS5tB,GAAO,EAAE2yB,EAAc7xB,EAAM,GAAGuC,EAAOuqB,CAAM,EAAE,CAAC,IAG9D8E,EAAW,KAAKrvB,EAAOuqB,GAAQ,CAAC,EAElC,KAAOA,EAAS5tB,IAAQsnB,EAAYqL,GAAe7xB,EAAM,GAAGuC,EAAOuqB,CAAM,EAAE,CAAC,IAE1E+E,EAAc,KACd7xB,EAAQwmB,EAGJxmB,EAAM,WACRktB,EAAe,EACfD,EAAkBjtB,GACTktB,GAAgB,GACzBA,IAEFJ,IACAgF,IAEF,GAAI5E,EAAe,EAIjBJ,GAAUgF,EACNhF,EAAS5tB,IACX0yB,EAAW,KAAKrvB,EAAOuqB,CAAM,CAAC,EAC9BA,SAEG,CAGD8E,EAAW,OAAS,IACtBD,EAAO,KAAKI,GAAexC,GAAM5Q,EAAOiT,CAAU,CAAC,EACnDA,EAAa,CAAA,GAIf9E,GAAUI,EACV4E,GAAe5E,EAGf,MAAM8E,EAAQ/E,EAAgB,EACxBgF,EAAY1vB,EAAO,MAAMuqB,EAASgF,EAAahF,CAAM,EAC3D6E,EAAO,KAAKI,GAAeC,EAAOrT,EAAOsT,CAAS,CAAC,CACrD,CACF,CAGA,OAAIL,EAAW,OAAS,GACtBD,EAAO,KAAKI,GAAexC,GAAM5Q,EAAOiT,CAAU,CAAC,EAE9CD,CACT,CAUA,SAASI,GAAeC,EAAOrT,EAAOpc,EAAQ,CAC5C,MAAM2vB,EAAW3vB,EAAO,CAAC,EAAE,EACrB4vB,EAAS5vB,EAAOA,EAAO,OAAS,CAAC,EAAE,EACnChI,EAAQokB,EAAM,MAAMuT,EAAUC,CAAM,EAC1C,OAAO,IAAIH,EAAMz3B,EAAOgI,CAAM,CAChC,CAMA,MAAM6vB,GAAO,CACX,QAAS,KACT,OAAQ,KACR,WAAY,CAAA,EACZ,YAAa,CAAA,EACb,cAAe,CAAA,EACf,YAAa,EACf,EAgHA,SAASC,IAAO,CAEdD,GAAK,QAAU9G,GAAO8G,GAAK,aAAa,EACxC,QAASn9B,EAAI,EAAGA,EAAIm9B,GAAK,WAAW,OAAQn9B,IAC1Cm9B,GAAK,WAAWn9B,CAAC,EAAE,CAAC,EAAE,CACpB,QAASm9B,GAAK,OACpB,CAAK,EAIHA,GAAK,OAASzC,GAAOyC,GAAK,QAAQ,MAAM,EACxC,QAASn9B,EAAI,EAAGA,EAAIm9B,GAAK,YAAY,OAAQn9B,IAC3Cm9B,GAAK,YAAYn9B,CAAC,EAAE,CAAC,EAAE,CACrB,QAASm9B,GAAK,QACd,OAAQA,GAAK,MACnB,CAAK,EAEH,OAAAA,GAAK,YAAc,GACZA,EACT,CAOA,SAASE,GAAS5F,EAAK,CACrB,OAAK0F,GAAK,aACRC,GAAI,EAECX,GAAIU,GAAK,OAAO,MAAO1F,EAAKF,GAAM4F,GAAK,QAAQ,MAAO1F,CAAG,CAAC,CACnE,CACA4F,GAAS,KAAO9F,GCtvDhB,SAAS+F,GAAc7F,EAAK,CAC1B,MAAMvpB,EAAU,IAAI4qB,GAAQ,CAC1B,gBAAiB,QACjB,OAAQ,SACR,UAAW,qBACX,WAAY,CACV,IAAK,8BACX,CACA,EAAKE,EAAa,EACV1rB,EAAS+vB,GAAS5F,CAAG,EACrBrc,EAAS,CAAA,EACf,UAAW5M,KAASlB,EACdkB,EAAM,IAAM,MAAQN,EAAQ,IAAI,OAAO,EACzCkN,EAAO,KAAK;AAAA,CAAQ,EACX,CAAC5M,EAAM,QAAU,CAACN,EAAQ,MAAMM,CAAK,EAC9C4M,EAAO,KAAKmiB,GAAW/uB,EAAM,SAAQ,CAAE,CAAC,EAExC4M,EAAO,KAAKlN,EAAQ,OAAOM,CAAK,CAAC,EAGrC,OAAO4M,EAAO,KAAK,EAAE,CACvB,CACA,SAASoiB,GAAWvlB,EAAM,CACxB,OAAOA,EAAK,QAAQ,KAAM,QAAQ,CACpC,CACA,SAASwlB,GAAmB9Z,EAAY,CACtC,MAAMvI,EAAS,CAAA,EACf,UAAWsiB,KAAQ/Z,EAAY,CAC7B,MAAM6V,EAAM7V,EAAW+Z,CAAI,EAAI,GAC/BtiB,EAAO,KAAK,GAAGsiB,CAAI,KAAKF,GAAWhE,CAAG,CAAC,GAAG,CAC5C,CACA,OAAOpe,EAAO,KAAK,GAAG,CACxB,CACA,SAAS4d,GAAc,CAAE,QAAAc,EAAS,WAAAnW,EAAY,QAAAoW,CAAO,EAAI,CACvD,MAAO,IAAID,CAAO,IAAI2D,GAAmB9Z,CAAU,CAAC,IAAI4Z,GAAWxD,CAAO,CAAC,KAAKD,CAAO,GACzF,CACA,MAAM3J,GAAY,SAAS9pB,EAAI,CAAE,MAAAf,GAAS,CACpCA,GAAO,UAAY,KACrBe,EAAG,UAAYi3B,GAAch4B,EAAM,IAAI,EAE3C,ECxCMgZ,GAAa,CAAC,OAAO,EACrBV,GAA4BzJ,GAAgB,CAChD,OAAQ,qBACR,MAAO,CACL,KAAM,CAAA,EACN,MAAO,CAAA,EACP,QAAS,CAAE,KAAM,OAAO,CAC5B,EACE,MAAMiI,EAAS,CACb,MAAMuhB,EAAY5qB,GAAO,yBAAyB,EAClD,MAAO,CAAC8J,EAAMC,IACLyC,IAAgBxC,IAAamC,EAAmB,KAAM,CAC3D,QAAS,YACT,IAAKye,EACL,SAAU,KACV,MAAOvhB,EAAQ,KACvB,EAAS,CACDgG,EAAgBjD,EAAgB/C,EAAQ,IAAI,EAAG,CAAC,CACxD,EAAS,EAAGkC,EAAU,GAAI,CAClB,CAAClL,EAAM+c,EAAS,EAAG,CAAE,KAAM/T,EAAQ,KAAM,QAASA,EAAQ,OAAO,CAAE,CAC3E,CAAO,CAEL,CACF,CAAC,ECrBKkC,GAAa,CAAC,iBAAiB,EAC/BC,GAAa,CACjB,IAAK,EACL,MAAO,sBACP,cAAe,MACjB,EACMC,GAAa,CAAC,IAAI,EAClBgE,GAAa,CACjB,IAAK,EACL,MAAO,4BACT,EACMoB,GAAa,CACjB,IAAK,EACL,MAAO,uBACT,EACMhG,GAA4BzJ,GAAgB,CAChD,OAAQ,iBACR,MAAO,CACL,YAAa,CAAE,QAAS,EAAE,EAC1B,KAAM,CAAE,QAAS,EAAE,CACvB,EACE,MAAMiI,EAAS,CACb,MAAMwhB,EAASlY,GAAe,EAC9B,MAAO,CAAC7I,EAAMC,KACLC,EAAS,EAAImC,EAAmB,MAAO,CAC5C,kBAAmB9L,EAAMwqB,CAAM,EAC/B,MAAO,gBACP,KAAM,MACd,EAAS,CACD/gB,EAAK,OAAO,MAAQE,EAAS,EAAImC,EAAmB,MAAOX,GAAY,CACrEkB,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,CAC1D,CAAS,GAAKuC,EAAmB,GAAI,EAAI,EACjChD,EAAQ,OAAS,IAAMS,EAAK,OAAO,MAAQE,EAAS,EAAImC,EAAmB,MAAO,CAChF,IAAK,EACL,GAAI9L,EAAMwqB,CAAM,EAChB,MAAO,qBACjB,EAAW,CACDne,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,IAAM,CACxCuF,EAAgBjD,EAAgB/C,EAAQ,IAAI,EAAG,CAAC,CAC5D,EAAa,EAAI,CACjB,EAAW,EAAGoC,EAAU,GAAKY,EAAmB,GAAI,EAAI,EAChDhD,EAAQ,cAAgB,IAAMS,EAAK,OAAO,aAAeE,IAAamC,EAAmB,IAAKsD,GAAY,CACxG/C,EAAW5C,EAAK,OAAQ,cAAe,CAAA,EAAI,IAAM,CAC/CuF,EAAgBjD,EAAgB/C,EAAQ,WAAW,EAAG,CAAC,CACnE,EAAa,EAAI,CACjB,CAAS,GAAKgD,EAAmB,GAAI,EAAI,EACjCvC,EAAK,OAAO,QAAUE,EAAS,EAAImC,EAAmB,MAAO0E,GAAY,CACvEnE,EAAW5C,EAAK,OAAQ,SAAU,CAAA,EAAI,OAAQ,EAAI,CAC5D,CAAS,GAAKuC,EAAmB,GAAI,EAAI,CACzC,EAAS,EAAGd,EAAU,EAEpB,CACF,CAAC,EACKuf,GAAiCrgB,GAAYI,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECnC1FkgB,GAAc,CAClB,KAAM,gBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMC,GAAe,CAAC,cAAe,YAAY,EAC3CC,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,2FAA2F,EAC/GC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAActhB,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CACpE,OAAO9B,EAAS,EAAImC,EAAmB,OAAQuD,EAAW5F,EAAK,OAAQ,CACrE,cAAe6B,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,uCACP,KAAM,MACN,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,QAASuD,CAAM,EAC7E,CAAG,EAAG,EACDrD,EAAS,EAAImC,EAAmB,MAAO,CACtC,KAAMR,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDc,EAAmB,OAAQye,GAAc,CACvCvf,EAAO,OAAS3B,EAAS,EAAImC,EAAmB,QAASgf,GAAc/e,EAAgBT,EAAO,KAAK,EAAG,CAAC,GAAKU,EAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAG4e,EAAY,EACtB,EAAK,GAAID,EAAY,CACrB,CACA,MAAMK,GAAgC5gB,GAAYsgB,GAAa,CAAC,CAAC,SAAUK,EAAa,CAAC,CAAC,EACpF1Y,GAAc,CAClB,KAAM,WACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACM4Y,GAAe,CAAC,cAAe,YAAY,EAC3Cha,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,sGAAsG,EAC1HC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAc3H,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CACpE,OAAO9B,EAAS,EAAImC,EAAmB,OAAQuD,EAAW5F,EAAK,OAAQ,CACrE,cAAe6B,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,iCACP,KAAM,MACN,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,QAASuD,CAAM,EAC7E,CAAG,EAAG,EACDrD,EAAS,EAAImC,EAAmB,MAAO,CACtC,KAAMR,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDc,EAAmB,OAAQ8E,GAAc,CACvC5F,EAAO,OAAS3B,EAAS,EAAImC,EAAmB,QAASqF,GAAcpF,EAAgBT,EAAO,KAAK,EAAG,CAAC,GAAKU,EAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAGiF,EAAY,EACtB,EAAK,GAAIga,EAAY,CACrB,CACA,MAAMC,GAA2B9gB,GAAYiI,GAAa,CAAC,CAAC,SAAUjB,EAAa,CAAC,CAAC,EAC/EL,GAAc,CAClB,KAAM,kBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,MACZ,EACI,UAAW,CACT,KAAM,OACN,QAAS,cACf,EACI,KAAM,CACJ,KAAM,OACN,QAAS,EACf,CACA,CACA,EACMoa,GAAe,CAAC,cAAe,YAAY,EAC3C5Z,GAAe,CAAC,OAAQ,QAAS,QAAQ,EACzCC,GAAe,CAAE,EAAG,iNAAiN,EACrOC,GAAe,CAAE,IAAK,CAAC,EAC7B,SAASC,GAAcjI,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CACpE,OAAO9B,EAAS,EAAImC,EAAmB,OAAQuD,EAAW5F,EAAK,OAAQ,CACrE,cAAe6B,EAAO,MAAQ,KAAO,OACrC,aAAcA,EAAO,MACrB,MAAO,yCACP,KAAM,MACN,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,QAASuD,CAAM,EAC7E,CAAG,EAAG,EACDrD,EAAS,EAAImC,EAAmB,MAAO,CACtC,KAAMR,EAAO,UACb,MAAO,4BACP,MAAOA,EAAO,KACd,OAAQA,EAAO,KACf,QAAS,WACf,EAAO,CACDc,EAAmB,OAAQoF,GAAc,CACvClG,EAAO,OAAS3B,EAAS,EAAImC,EAAmB,QAAS2F,GAAc1F,EAAgBT,EAAO,KAAK,EAAG,CAAC,GAAKU,EAAmB,GAAI,EAAI,CAC/I,CAAO,CACP,EAAO,EAAGuF,EAAY,EACtB,EAAK,GAAI4Z,EAAY,CACrB,CACA,MAAMC,GAAkChhB,GAAY2G,GAAa,CAAC,CAAC,SAAUW,EAAa,CAAC,CAAC,EACtFV,GAAe,CAAC,gBAAiB,UAAU,EAC3CM,GAA8BvQ,GAAgB,CAClD,OAAQ,yBACR,MAAuBuU,GAAY,CACjC,IAAK,CAAA,CACT,EAAK,CACD,SAAY,CAAE,KAAM,QAAc,SAAU,EAAM,EAClD,kBAAqB,CAAA,CACzB,CAAG,EACD,MAAO,CAAC,iBAAiB,EACzB,MAAMtM,EAAS,CACb,MAAMqiB,EAAWve,GAAS9D,EAAS,UAAU,EAC7C,MAAO,CAACS,EAAMC,KACLC,EAAS,EAAImC,EAAmB,SAAU,CAC/C,MAAOhC,EAAe,CAAC,aAAc,CAACL,EAAK,OAAO,kBAAmB,CACnE,CAACA,EAAK,OAAO,0BAA0B,EAAG4hB,EAAS,MACnD,CAAC5hB,EAAK,OAAO,wBAAwB,EAAGzJ,EAAMuO,EAAU,CAClE,CAAS,CAAC,CAAC,EACH,KAAM,MACN,gBAAiB8c,EAAS,MAC1B,SAAUA,EAAS,MAAQ,EAAI,GAC/B,QAAS3hB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWqe,EAAS,MAAQ,GACxE,EAAS,CACDjf,EAAmB,OAAQ,CACzB,MAAOtC,EAAeL,EAAK,OAAO,uBAAuB,CACnE,EAAW,CACDO,EAAYshB,GAAa,CACvB,OAAQtiB,EAAQ,IAAI,WAAU,CAC1C,EAAa,CACD,QAASe,EAAQ,IAAM,CACrBqC,EAAmB,OAAQ,CACzB,MAAOtC,EAAe,CAACL,EAAK,OAAO,8BAA+BT,EAAQ,IAAI,IAAI,CAAC,CACnG,EAAiB,KAAM,CAAC,CACxB,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,QAAQ,CAAC,CAC1B,EAAW,CAAC,EACJoD,EAAmB,OAAQ,CACzB,MAAOtC,EAAeL,EAAK,OAAO,uBAAuB,CACnE,EAAWsC,EAAgB/C,EAAQ,IAAI,IAAI,EAAG,CAAC,CAC/C,EAAS,GAAIgI,EAAY,EAEvB,CACF,CAAC,EACKua,GAAoB,2BACpBC,GAA2B,kCAC3BC,GAA6B,oCAC7BC,GAA0B,iCAC1BC,GAA0B,iCAC1BC,GAAgC,uCAChCC,GAAS,CACb,uBAAwB,8BACxB,kBAAAN,GACA,yBAAAC,GACA,2BAAAC,GACA,wBAAAC,GACA,wBAAAC,GACA,8BAAAC,EACF,EACME,GAAa,CACjB,OAAUD,EACZ,EACME,GAAyC3hB,GAAYkH,GAAa,CAAC,CAAC,eAAgBwa,EAAU,CAAC,CAAC,EAChG/iB,GAAc,CAClB,KAAM,mBACN,WAAY,CACV,uBAAAgjB,EACJ,EACE,SAAU,CACR,MAAO,CACL,YAAa,KAAK,YAClB,cAAe,KAAK,cAEpB,aAAc,IAAM,KAAK,UAEzB,eAAgB,IAAM,KAAK,eACjC,CACE,EACA,MAAO,CAIL,OAAQ,CACN,KAAM,OACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CAAC,eAAe,EACvB,KAAK9sB,EAAO,CACV,MAAO,CAIL,KAAM,CAAA,EAIN,UAAWA,EAAM,OACjB,WAAAsP,EACN,CACE,EACA,SAAU,CAMR,iBAAkB,CAChB,OAAO,KAAK,KAAK,OAAS,CAC5B,EACA,kBAAmB,CACjB,OAAO,KAAK,WAAa,KAAK,KAAK,SAAW,CAChD,EACA,iBAAkB,CAChB,OAAO,KAAK,KAAK,UAAWyd,GAAQA,EAAI,KAAO,KAAK,SAAS,CAC/D,CACJ,EACE,MAAO,CACL,MAAO,CACD,KAAK,QACP,KAAK,aAAY,CAErB,EACA,OAAOC,EAAQ,CACTA,IAAW,KAAK,WAClB,KAAK,aAAY,CAErB,CACJ,EACE,QAAS,CAMP,UAAUrjB,EAAI,CACZ,KAAK,UAAYA,EACjB,KAAK,MAAM,gBAAiB,KAAK,SAAS,CAC5C,EAKA,kBAAmB,CACb,KAAK,gBAAkB,GACzB,KAAK,UAAU,KAAK,KAAK,KAAK,gBAAkB,CAAC,EAAE,EAAE,EAEvD,KAAK,eAAc,CACrB,EAKA,cAAe,CACT,KAAK,gBAAkB,KAAK,KAAK,OAAS,GAC5C,KAAK,UAAU,KAAK,KAAK,KAAK,gBAAkB,CAAC,EAAE,EAAE,EAEvD,KAAK,eAAc,CACrB,EAKA,eAAgB,CACd,KAAK,UAAU,KAAK,KAAK,CAAC,EAAE,EAAE,EAC9B,KAAK,eAAc,CACrB,EAKA,cAAe,CACb,KAAK,UAAU,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAAE,EAAE,EACjD,KAAK,eAAc,CACrB,EAIA,gBAAiB,CACf,KAAK,IAAI,cAAc,eAAe,KAAK,SAAS,EAAE,EAAE,MAAK,CAC/D,EAKA,uBAAwB,CACtB,KAAK,IAAI,cAAc,QAAU,KAAK,SAAS,EAAE,MAAK,CACxD,EAIA,cAAe,CACb,KAAK,UAAY,KAAK,QAAU,KAAK,KAAK,KAAK,CAAC,CAAE,GAAAA,CAAE,IAAOA,IAAO,KAAK,MAAM,EAAI,KAAK,OAAS,KAAK,KAAK,CAAC,GAAG,IAAM,EACrH,EAMA,YAAYojB,EAAK,CACf,KAAK,KAAK,KAAKA,CAAG,EAClB,KAAK,KAAK,KAAK,CAACzgC,EAAGO,IACbP,EAAE,QAAUO,EAAE,MACTP,EAAE,KAAK,cAAcO,EAAE,KAAM,CAACgoB,GAAkB,CAAE,CAAC,EAErDvoB,EAAE,MAAQO,EAAE,KACpB,EACD,KAAK,aAAY,CACnB,EAMA,cAAc8c,EAAI,CAChB,MAAMsjB,EAAW,KAAK,KAAK,UAAWF,GAAQA,EAAI,KAAOpjB,CAAE,EACvDsjB,IAAa,IACf,KAAK,KAAK,OAAOA,EAAU,CAAC,EAE1B,KAAK,YAActjB,GACrB,KAAK,aAAY,CAErB,CACJ,CACA,EACMgE,GAAe,CAAE,MAAO,kBAAkB,EAChD,SAASkF,GAAcrI,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CACpE,MAAM0gB,EAAoCxgB,EAAiB,wBAAwB,EACnF,OAAOhC,EAAS,EAAImC,EAAmB,MAAOc,GAAc,CAC1DnB,EAAS,iBAAmBA,EAAS,kBAAoB9B,EAAS,EAAImC,EAAmB,MAAO,CAC9F,IAAK,EACL,KAAM,UACN,MAAOhC,EAAe,CAAC,wBAAyB,CAAE,gCAAiC0B,EAAM,UAAU,CAAE,CAAC,EACtG,UAAW,CACT9B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,kBAAoBA,EAAS,iBAAiB,GAAGxD,CAAI,EAAG,CAAC,QAAS,UAAW,MAAM,CAAC,EAAG,CAAC,MAAM,CAAC,GACtKyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,cAAgBA,EAAS,aAAa,GAAGxD,CAAI,EAAG,CAAC,QAAS,UAAW,MAAM,CAAC,EAAG,CAAC,OAAO,CAAC,GAC/JyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,uBAAyBA,EAAS,sBAAsB,GAAGxD,CAAI,EAAG,CAAC,QAAS,UAAW,MAAM,CAAC,EAAG,CAAC,KAAK,CAAC,GAC/KyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,eAAiBA,EAAS,cAAc,GAAGxD,CAAI,EAAG,CAAC,QAAS,UAAW,MAAM,CAAC,EAAG,CAAC,MAAM,CAAC,GAChKyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,cAAgBA,EAAS,aAAa,GAAGxD,CAAI,EAAG,CAAC,QAAS,UAAW,MAAM,CAAC,EAAG,CAAC,KAAK,CAAC,GAC7JyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,eAAiBA,EAAS,cAAc,GAAGxD,CAAI,EAAG,CAAC,QAAS,UAAW,MAAM,CAAC,EAAG,CAAC,SAAS,CAAC,GACnKyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,cAAgBA,EAAS,aAAa,GAAGxD,CAAI,EAAG,CAAC,QAAS,UAAW,MAAM,CAAC,EAAG,CAAC,WAAW,CAAC,EAC3K,CACA,EAAO,EACA0B,EAAU,EAAI,EAAGmC,EAAmBG,EAAU,KAAMmgB,GAAW5gB,EAAM,KAAOwgB,IACpEriB,EAAS,EAAIC,EAAYuiB,EAAmC,CACjE,GAAI,cAAcH,EAAI,EAAE,GACxB,IAAKA,EAAI,GACT,MAAO,wBACP,gBAAiB,OAAOA,EAAI,EAAE,GAC9B,SAAUxgB,EAAM,YAAcwgB,EAAI,GAClC,IAAAA,EACA,oBAAsBhf,GAAWvB,EAAS,UAAUugB,EAAI,EAAE,CACpE,EAAW,KAAM,EAAG,CAAC,KAAM,gBAAiB,WAAY,MAAO,mBAAmB,CAAC,EAC5E,EAAG,GAAG,EACb,EAAO,EAAE,GAAKhgB,EAAmB,GAAI,EAAI,EACrCI,EAAmB,MAAO,CACxB,MAAOtC,EAAe,CAAC,4BAA6B,CAAE,sCAAuC2B,EAAS,gBAAiB,CAAC,CAC9H,EAAO,CACDY,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACzD,EAAO,CAAC,CACR,CAAG,CACH,CACA,MAAM4iB,GAAmCjiB,GAAYrB,GAAa,CAAC,CAAC,SAAU+I,EAAa,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EAC/HjJ,GAASyjB,EAAG,EACZ,MAAM9hB,GAAY,CAChB,KAAM,eACN,WAAY,CACV,UAAAkE,GACA,mBAAoB6d,GACpB,iBAAAF,GACA,SAAAxiB,GACA,cAAAuI,GACA,eAAAqY,GACA,eAAAlb,GACA,UAAAE,GACA,cAAAub,GACA,SAAAE,GACA,gBAAAE,EACJ,EACE,WAAY,CACV,MAAOrO,GAEP,aAAcL,EAClB,EACE,OAAQ,CACN,kBAAmB,CACjB,KAAMhQ,GACN,QAAS,MACf,CACA,EACE,MAAO,CAIL,OAAQ,CACN,KAAM,OACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,OACN,SAAU,EAChB,EAII,aAAc,CACZ,KAAM,QACN,QAAS,EACf,EAII,gBAAiB,CACf,KAAM,OACN,QAAS,EACf,EAII,QAAS,CACP,KAAM,OACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,OACN,QAAS,EACf,EAKI,WAAY,CACV,KAAM,OACN,QAAS,EACf,EAKI,QAAS,CACP,KAAM,QACN,QAAS,IACf,EAII,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAII,QAAS,CACP,KAAM,QACN,QAAS,EACf,EAII,QAAS,CACP,KAAM,QACN,QAAS,EACf,EAMI,MAAO,CACL,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAII,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAKI,MAAO,CACL,KAAM,OACN,QAAS,EACf,EASI,KAAM,CACJ,KAAM,QACN,QAAS,EACf,EAKI,cAAe,CACb,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACf,EAII,YAAa,CACX,KAAM,OACN,QAAS,MACf,EAII,SAAU,CACR,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CACL,QACA,SACA,SAEA,gBACA,cACA,sBACA,cACA,iBACA,aACA,gBACJ,EACE,OAAQ,CACN,MAAM6d,EAAY5nB,GAAI,IAAI,EAC1B,OAAAH,GAAQ,0BAA2B+nB,CAAS,EACrC,CACL,IAAKjY,GAAe,EACpB,SAAUka,GAAgB,EAC1B,UAAAjC,CACN,CACE,EACA,MAAO,CACL,MAAO,CACL,qBAAsBv+B,EAAE,aAAa,EACrC,gBAAiBA,EAAE,eAAe,EAClC,mBAAoBA,EAAE,UAAU,EAChC,UAAW,KAAK,QAChB,UAAW,KACX,qBAAsB,IAC5B,CACE,EACA,SAAU,CACR,SAAU,CACR,OAAO,KAAK,YAAc,IAC5B,EACA,wBAAyB,CACvB,MAAO,CAAC,CAAC,KAAK,OAAO,aACvB,CACJ,EACE,MAAO,CACL,SAAU,CACR,KAAK,UAAY,KAAK,OACxB,EACA,UAAW,CACT,KAAK,gBAAe,CACtB,EACA,MAAO,CACL,KAAK,uCAAsC,CAC7C,CACJ,EACE,SAAU,CACR,KAAK,6BAA4B,EACjC,KAAK,uCAAsC,CAC7C,EACA,eAAgB,CACd,KAAK,MAAM,QAAQ,EACnB,KAAK,WAAW,WAAU,CAC5B,EACA,QAAS,CACP,gBAAAygC,GACA,EAAAzgC,EACA,8BAA+B,CAC7B,GAAI,SAAS,eAAiB,SAAS,gBAAkB,SAAS,OAChE,KAAK,qBAAuB,SAAS,cACjC,KAAK,qBAAqB,aAAa,MAAM,IAAM,YAAY,CACjE,MAAM0gC,EAAO,KAAK,qBAAqB,QAAQ,eAAe,EAC9D,GAAIA,EAAM,CACR,MAAMC,EAAc,SAAS,cAAc,mBAAmBD,EAAK,EAAE,IAAI,EACzE,KAAK,qBAAuBC,CAC9B,CACF,CAEJ,EACA,eAAgB,CACV,KAAK,YAGT,KAAK,UAAY7e,GAAgB,CAE/B,KAAK,MAAM,QAEX,SAAS,cAAc,SAAS,CACxC,EAAS,CACD,kBAAmB,GACnB,cAAe,KAAK,MAAM,YAAY,IACtC,UAAWE,GAAY,EACvB,kBAAmB,EAC3B,CAAO,EACH,EAIA,iBAAkB,CACZ,KAAK,MAAQ,KAAK,UACpB,KAAK,cAAa,EAClB,KAAK,UAAU,SAAQ,GAEvB,KAAK,WAAW,WAAU,CAE9B,EAMA,aAAahD,EAAO,CACd,KAAK,WACPA,EAAM,gBAAe,EACrB,KAAK,aAAY,EAErB,EACA,aAAawJ,EAAS,CAChB,KAAK,sBACP,KAAK,MAAK,EAEZ,KAAK,gBAAe,EACpB,KAAK,MAAM,SAAUA,CAAO,CAC9B,EACA,aAAaA,EAAS,CACpB,KAAK,MAAM,SAAUA,CAAO,EAC5B,KAAK,gBAAe,EACpB,KAAK,sBAAsB,MAAM,CAAE,aAAc,EAAI,CAAE,EACvD,KAAK,qBAAuB,IAC9B,EAMA,aAAa,EAAG,CACd,KAAK,MAAM,QAAS,CAAC,EACrB,KAAK,MAAM,cAAe,EAAK,CACjC,EAMA,cAAc,EAAG,CACf,KAAK,MAAM,cAAe,CAAC,CAC7B,EAKA,eAAgB,CACd,KAAK,UAAY,CAAC,KAAK,UACvB,KAAK,MAAM,iBAAkB,KAAK,SAAS,CAC7C,EACA,MAAM,UAAW,CACf,KAAK,MAAM,sBAAuB,EAAI,EAClC,KAAK,eACP,MAAM,KAAK,UAAS,EACpB,KAAK,MAAM,UAAU,MAAK,EAE9B,EAMA,OAAQ,CACN,GAAI,CAAC,KAAK,MAAQ,CAAC,KAAK,SAAU,CAChC,KAAK,MAAM,OAAO,IAAI,MAAK,EAC3B,MACF,CACA,GAAI,CACF,KAAK,UAAU,MAAK,CACtB,MAAQ,CAER,CACF,EAMA,uBAAwB,CACtB,KAAK,6BAA4B,EACjC,KAAK,MAAM,KAAK,sBAAqB,CACvC,EAIA,wCAAyC,CACnC,KAAK,OAAS,IAAS,CAAC,KAAK,UAAY,CAAC,KAAK,mBACjDpM,GAAO,KAAK,mKAAmK,CAEnL,EAMA,YAAY4C,EAAO,CACjB,KAAK,MAAM,cAAeA,EAAM,OAAO,KAAK,CAC9C,EAOA,aAAaA,EAAO,CAClB,KAAK,MAAM,sBAAuB,EAAK,EACvC,KAAK,MAAM,aAAcA,CAAK,CAChC,EACA,kBAAmB,CACjB,KAAK,MAAM,sBAAuB,EAAK,EACvC,KAAK,MAAM,gBAAgB,CAC7B,EACA,eAAe4hB,EAAW,CACxB,KAAK,MAAM,gBAAiBA,CAAS,CACvC,CACJ,CACA,EACM1hB,GAAa,CAAC,iBAAiB,EAC/BC,GAAa,CAAE,MAAO,0BAA0B,EAChDC,GAAa,CACjB,IAAK,EACL,MAAO,sCACT,EACMgE,GAAa,CAAE,MAAO,oCAAoC,EAC1DoB,GAAa,CAAE,MAAO,wCAAwC,EAC9DC,GAAa,CAAC,cAAe,OAAO,EACpCC,GAAa,CAAC,OAAO,EACrBC,GAAa,CACjB,IAAK,EACL,MAAO,iCACT,EACA,SAAStF,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMohB,EAA2BlhB,EAAiB,eAAe,EAC3DiE,EAAsBjE,EAAiB,UAAU,EACjD8G,EAA2B9G,EAAiB,eAAe,EAC3DmhB,EAAsBnhB,EAAiB,UAAU,EACjDohB,EAA6BphB,EAAiB,iBAAiB,EAC/DqhB,EAAgCrhB,EAAiB,oBAAoB,EACrEgE,EAA4BhE,EAAiB,gBAAgB,EAC7DmD,EAAuBnD,EAAiB,WAAW,EACnDkE,EAAuBlE,EAAiB,WAAW,EACnDshB,EAA8BthB,EAAiB,kBAAkB,EACjEuhB,EAA4BvhB,EAAiB,gBAAgB,EAC7DwhB,EAAmBC,GAAiB,OAAO,EAC3CC,EAA2BD,GAAiB,eAAe,EACjE,OAAOzjB,EAAS,EAAIC,EAAY0jB,GAAY,CAC1C,OAAQ,GACR,KAAM,cACN,aAAc7hB,EAAS,aACvB,aAAcA,EAAS,YAC3B,EAAK,CACD,QAAS1B,EAAQ,IAAM,CACrBoC,GAAeC,EAAmB,QAAS,CACzC,GAAI,kBACJ,IAAK,UACL,MAAO,cACP,kBAAmB,mBAAmBb,EAAO,GAAG,WAChD,UAAW7B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAS,IAAIvG,IAASwD,EAAS,cAAgBA,EAAS,aAAa,GAAGxD,CAAI,EAAG,CAAC,KAAK,CAAC,EACnI,EAAS,CACDwD,EAAS,mBAAqB,CAACH,EAAO,MAAQ,CAACA,EAAO,UAAY3B,EAAS,EAAIC,EAAY+J,GAAU,CACnG,IAAK,EACL,GAAIlI,EAAS,iBACvB,EAAW,CACDzB,EAAY4F,EAAqBP,EAAW,CAC1C,IAAK,SACL,aAAc5D,EAAS,EAAE,cAAc,EACvC,MAAO,CAAC,sBAAuBH,EAAO,aAAa,EACnD,QAAS,UACrB,EAAaA,EAAO,YAAa,CACrB,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,cAAe,EAAI,EACzF,CAAW,EAAG,CACF,KAAMM,EAAQ,IAAM,CAClBsC,EAAW5C,EAAK,OAAQ,cAAe,CAAA,EAAI,IAAM,CAC/CO,EAAY6iB,EAA0B,CAAE,KAAM,EAAE,CAAE,CAClE,EAAiB,EAAI,CACrB,CAAa,EACD,EAAG,CACf,EAAa,GAAI,CAAC,aAAc,OAAO,CAAC,CACxC,EAAW,EAAG,CAAC,IAAI,CAAC,GAAK7gB,EAAmB,GAAI,EAAI,EAC5CI,EAAmB,SAAU,CAC3B,MAAOtC,EAAe,CAAC,qBAAsB,CAC3C,kCAAmC2B,EAAS,gBAAgBhC,EAAK,OAAO,SAAM,CAAI,GAAK6B,EAAO,WAC9F,8BAA+BA,EAAO,OAClD,CAAW,CAAC,CACZ,EAAW,CACAA,EAAO,OA+GI3B,IAAaC,EAAYojB,EAA+B,CAClE,IAAK,EACL,MAAO,uCACP,KAAM1hB,EAAO,KACb,SAAU,IACtB,EAAa,KAAM,EAAG,CAAC,MAAM,CAAC,GApHJe,EAAW5C,EAAK,OAAQ,OAAQ,CAAE,IAAK,CAAC,EAAI,IAAM,CAChE2C,EAAmB,MAAOjB,GAAY,CACpCM,EAAS,gBAAgBhC,EAAK,OAAO,SAAM,CAAI,GAAK6B,EAAO,YAAc3B,IAAamC,EAAmB,MAAO,CAC9G,IAAK,EACL,MAAOhC,EAAe,CAAC,6BAA8B,CACnD,0CAA2C2B,EAAS,sBACtE,CAAiB,CAAC,EACF,MAAOoF,GAAe,CACpB,gBAAiB,OAAOvF,EAAO,UAAU,GAC3D,CAAiB,EACD,SAAU,IACV,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,eAAiBA,EAAS,cAAc,GAAGxD,CAAI,GACxG,UAAWyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAS,IAAIvG,IAASwD,EAAS,eAAiBA,EAAS,cAAc,GAAGxD,CAAI,EAAG,CAAC,OAAO,CAAC,EAC/I,EAAiB,CACDoE,EAAW5C,EAAK,OAAQ,SAAU,CAAE,MAAO,gCAAgC,EAAI,OAAQ,EAAI,CAC3G,EAAiB,EAAE,GAAKuC,EAAmB,GAAI,EAAI,EACrCI,EAAmB,MAAO,CACxB,MAAOtC,EAAe,CAAC,2BAA4B,CACjD,iDAAkD2B,EAAS,SAAWA,EAAS,gBAAgBhC,EAAK,OAAO,kBAAkB,KAAK,EAClI,qCAAsC6B,EAAO,cAAgB,CAACA,EAAO,QACrE,mDAAoDA,EAAO,cAAgBA,EAAO,QAClF,4CAA6C,CAACG,EAAS,gBAAgBhC,EAAK,OAAO,mBAAmB,IAAC,CAAI,CAC7H,CAAiB,CAAC,CAClB,EAAiB,CACDgC,EAAS,SAAWA,EAAS,gBAAgBhC,EAAK,OAAO,kBAAkB,IAAC,CAAI,GAAKE,EAAS,EAAImC,EAAmB,MAAOV,GAAY,CACtIiB,EAAW5C,EAAK,OAAQ,mBAAoB,CAAA,EAAI,IAAM,CACpDgC,EAAS,SAAW9B,IAAaC,EAAYgG,EAAqB,CAChE,IAAK,EACL,aAAcpE,EAAM,mBACpB,QAASA,EAAM,UACf,MAAO,2BACP,QAAS,YACT,QAASU,GAAcT,EAAS,cAAe,CAAC,SAAS,CAAC,CAChF,EAAuB,CACD,KAAM1B,EAAQ,IAAM,CAClBuB,EAAO,aAAe3B,EAAS,EAAIC,EAAY6I,EAA0B,CAAE,IAAK,CAAC,CAAE,GAAKjH,EAAM,WAAa7B,EAAS,EAAIC,EAAYkjB,EAAqB,CACvJ,IAAK,EACL,KAAM,EAChC,CAAyB,IAAMnjB,EAAS,EAAIC,EAAYmjB,EAA4B,CAC1D,IAAK,EACL,KAAM,EAChC,CAAyB,EACzB,CAAuB,EACD,EAAG,CACzB,EAAuB,EAAG,CAAC,aAAc,UAAW,SAAS,CAAC,GAAK/gB,EAAmB,GAAI,EAAI,CAC9F,EAAqB,EAAI,CACzB,CAAiB,GAAKA,EAAmB,GAAI,EAAI,EACjCI,EAAmB,MAAOgD,GAAY,CACpChD,EAAmB,MAAOoE,GAAY,CACpCrE,GAAenC,EAAYgjB,EAA+B,CACxD,MAAO,+BACP,KAAM1hB,EAAO,KACb,QAASA,EAAO,YAChB,MAAOA,EAAO,MACd,SAAUA,EAAO,aAAe,EAAI,GACpC,QAASY,GAAcT,EAAS,SAAU,CAAC,MAAM,CAAC,CACxE,EAAuB,KAAM,EAAG,CAAC,OAAQ,UAAW,QAAS,WAAY,SAAS,CAAC,EAAG,CAChE,CAACa,GAAO,CAAChB,EAAO,YAAY,CAClD,CAAqB,EACDA,EAAO,aAAea,IAAgBxC,EAAS,EAAImC,EAAmB,OAAQ,CAC5E,IAAK,EACL,MAAO,oCACP,SAAUpC,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIwC,GAAc,IAAIjE,IAASwD,EAAS,cAAgBA,EAAS,aAAa,GAAGxD,CAAI,EAAG,CAAC,SAAS,CAAC,EACzJ,EAAuB,CACDkE,GAAeC,EAAmB,QAAS,CACzC,IAAK,YACL,MAAO,qCACP,KAAM,OACN,YAAad,EAAO,gBACpB,MAAOA,EAAO,KACd,UAAW5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAStC,GAAc,IAAIjE,IAASwD,EAAS,kBAAoBA,EAAS,iBAAiB,GAAGxD,CAAI,EAAG,CAAC,MAAM,CAAC,EAAG,CAAC,KAAK,CAAC,GAC5J,QAASyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,aAAeA,EAAS,YAAY,GAAGxD,CAAI,EAC5H,EAAyB,KAAM,GAAIwI,EAAU,EAAG,CACxB,CAAC0c,CAAgB,CACzC,CAAuB,EACDnjB,EAAY4F,EAAqB,CAC/B,aAAcpE,EAAM,qBACpB,KAAM,SACN,QAAS,wBACjC,EAAyB,CACD,KAAMzB,EAAQ,IAAM,CAClBC,EAAY2F,EAA2B,CAAE,KAAM,EAAE,CAAE,CAC7E,CAAyB,EACD,EAAG,CAC3B,EAAyB,EAAG,CAAC,YAAY,CAAC,CAC1C,EAAuB,EAAE,GAAI,CACP,CAAC0d,EAA0B,IAAM5hB,EAAS,aAAY,CAAE,CAC9E,CAAqB,EAAIO,EAAmB,GAAI,EAAI,EAChCP,EAAS,gBAAgBhC,EAAK,OAAO,mBAAmB,IAAC,CAAI,GAAKE,EAAS,EAAIC,EAAYkF,EAAsB,CAC/G,IAAK,EACL,MAAO,2BACP,UAAWxD,EAAO,SACxC,EAAuB,CACD,QAASvB,EAAQ,IAAM,CACrBsC,EAAW5C,EAAK,OAAQ,oBAAqB,CAAA,EAAI,OAAQ,EAAI,CACrF,CAAuB,EACD,EAAG,CACzB,EAAuB,EAAG,CAAC,WAAW,CAAC,GAAKuC,EAAmB,GAAI,EAAI,CACvE,CAAmB,EACDV,EAAO,QAAQ,KAAI,IAAO,IAAM7B,EAAK,OAAO,SAAcE,IAAamC,EAAmB,IAAK,CAC7F,IAAK,EACL,MAAOR,EAAO,UAAY,OAC1B,MAAO,6BAC3B,EAAqB,CACDe,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,IAAM,CAC3CuF,EAAgBjD,EAAgBT,EAAO,OAAO,EAAG,CAAC,CACxE,EAAuB,EAAI,CAC3B,EAAqB,EAAGoF,EAAU,GAAK1E,EAAmB,GAAI,EAAI,CAClE,CAAiB,CACjB,EAAiB,CAAC,CAClB,CAAa,CACb,EAAa,EAAI,EAMPhC,EAAY4F,EAAqB,CAC/B,IAAK,cACL,aAAcpE,EAAM,gBACpB,MAAOA,EAAM,gBACb,MAAO,qBACP,QAAS,WACT,QAASU,GAAcT,EAAS,aAAc,CAAC,SAAS,CAAC,CACrE,EAAa,CACD,KAAM1B,EAAQ,IAAM,CAClBC,EAAY6F,EAAsB,CAAE,KAAM,EAAE,CAAE,CAC5D,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,aAAc,QAAS,SAAS,CAAC,EACxCpE,EAAS,gBAAgBhC,EAAK,OAAO,cAAW,CAAI,GAAK,CAAC6B,EAAO,OAAS3B,EAAS,EAAImC,EAAmB,MAAO6E,GAAY,CAC3HtE,EAAW5C,EAAK,OAAQ,cAAe,CAAA,EAAI,OAAQ,EAAI,CACnE,CAAW,GAAKuC,EAAmB,GAAI,EAAI,CAC3C,EAAW,CAAC,EACJG,GAAenC,EAAYijB,EAA6B,CACtD,IAAK,OACL,OAAQ3hB,EAAO,OACf,UAAWA,EAAO,UAClB,kBAAmBG,EAAS,cACtC,EAAW,CACD,QAAS1B,EAAQ,IAAM,CACrBsC,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CAC/D,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,SAAU,YAAa,iBAAiB,CAAC,EAAG,CACjD,CAAC6C,GAAO,CAAChB,EAAO,OAAO,CACjC,CAAS,EACDA,EAAO,SAAW3B,IAAaC,EAAYsjB,EAA2B,CAAE,IAAK,GAAK,CAChF,KAAMnjB,EAAQ,IAAM,CAClBC,EAAYyI,EAA0B,CAAE,KAAM,EAAE,CAAE,CAC9D,CAAW,EACD,EAAG,CACb,CAAS,GAAKzG,EAAmB,GAAI,EAAI,CACzC,EAAS,GAAId,EAAU,EAAG,CAClB,CAACoB,GAAOhB,EAAO,IAAI,CAC3B,CAAO,CACP,CAAK,EACD,EAAG,CACP,EAAK,EAAG,CAAC,eAAgB,cAAc,CAAC,CACxC,CACA,MAAMiiB,GAA+BnjB,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECnhCjHb,GAAY,CAChB,KAAM,kBACN,OAAQ,CAAC,cAAe,gBAAiB,eAAgB,gBAAgB,EACzE,MAAO,CAIL,GAAI,CACF,KAAM,OACN,SAAU,EAChB,EAII,KAAM,CACJ,KAAM,OACN,SAAU,EAChB,EAII,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAII,MAAO,CACL,KAAM,OACN,QAAS,CACf,CACA,EACE,MAAO,CACL,gBACA,QACJ,EACE,OAAQ,CAAC,KAAM,OAAQ,OAAQ,QAAS,YAAY,EACpD,SAAU,CAMR,UAAW,CACT,OAAO,KAAK,iBAAmB,KAAK,EACtC,CACJ,EACE,SAAU,CACR,KAAK,YAAY,IAAI,CACvB,EACA,eAAgB,CACd,KAAK,cAAc,KAAK,EAAE,CAC5B,EACA,QAAS,CACP,SAASQ,EAAO,CACV,KAAK,IAAI,aAAe,KAAK,IAAI,YAAc,KAAK,IAAI,cAC1D,KAAK,MAAM,gBAAiBA,CAAK,EAEnC,KAAK,MAAM,SAAUA,CAAK,CAC5B,EAMA,YAAa,CACX,OAAO,KAAK,OAAO,OAAI,CACzB,CACJ,CACA,EACME,GAAa,CAAC,KAAM,cAAe,aAAc,kBAAmB,OAAQ,UAAU,EACtFC,GAAa,CAAE,MAAO,iBAAiB,EAC7C,SAASE,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAO9B,EAAS,EAAImC,EAAmB,UAAW,CAChD,GAAI,OAAOR,EAAO,EAAE,GACpB,cAAe,CAACG,EAAS,SACzB,aAAcA,EAAS,eAAc,EAAK,OAASH,EAAO,KAC1D,kBAAmBG,EAAS,iBAAmB,cAAcH,EAAO,EAAE,GAAK,OAC3E,MAAOxB,EAAe,CAAC,mBAAoB,CAAE,2BAA4B2B,EAAS,QAAQ,CAAE,CAAC,EAC7F,KAAMA,EAAS,eAAc,EAAK,WAAa,OAC/C,SAAUA,EAAS,eAAc,EAAK,EAAI,GAC1C,SAAU/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,UAAYA,EAAS,SAAS,GAAGxD,CAAI,EACnG,EAAK,CACDmE,EAAmB,KAAMjB,GAAYY,EAAgBT,EAAO,IAAI,EAAG,CAAC,EACpEe,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACvD,EAAK,GAAIyB,EAAU,CACnB,CACA,MAAMsiB,GAAkCpjB,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECe1H,SAASoiB,GAAS/tB,EAAQ1G,EAAK,CAC7B,MAAM00B,EAAe,CAACrJ,EAAKsJ,IAAWtJ,EAAI,WAAWsJ,CAAM,EAAItJ,EAAI,MAAMsJ,EAAO,MAAM,EAAItJ,EACpFuJ,EAAiB,CAACvJ,KAAQwJ,IAAaA,EAAS,OAAO,CAACC,EAAKH,IAAWD,EAAaI,EAAKH,CAAM,EAAGtJ,CAAG,EAC5G,GAAI,CAAC3kB,EACH,OAAO,KAET,MAAMquB,EAAgB,eAAe,KAAK/0B,CAAG,EACvCg1B,EAAgB,wBAAwB,KAAKh1B,CAAG,EAOtD,GANI,CAAC+0B,GAAiBC,GAGlBD,GAAiB,CAAC/0B,EAAI,WAAWi1B,GAAU,CAAE,GAG7C,CAACF,GAAiB,CAAC/0B,EAAI,WAAW,GAAG,EACvC,OAAO,KAET,MAAMk1B,EAAcH,EAAgBH,EAAe50B,EAAKi1B,GAAU,EAAI,YAAY,EAAIj1B,EAChFm1B,EAAqBP,EAAeluB,EAAO,QAAQ,QAAQ,KAAM0uB,GAAU,EAAI,YAAY,EAC3FC,EAAsBT,EAAeM,EAAaC,CAAkB,GAAK,IACzEj6B,EAAQwL,EAAO,QAAQ2uB,CAAmB,EAChD,OAAKn6B,EAAM,QAAQ,OAGZA,EAAM,SAFJ,IAGX,CCxHA,SAASo6B,GAA8BC,EAAO,CAC5C,OAAK,OAAO,wBAGL,OAAO,OAAO,OAAO,uBAAuB,EAAE,OAAQC,GAAWA,EAAO,QAAQD,CAAK,CAAC,EAFpF,CAAA,CAGX,CChBA,MAAM9gC,GAAI,IAAI,WAAW,CAAC,EAC1B,MAAM9B,EAAE,CACN,OAAO,QAAQiB,EAAGrB,EAAI,GAAI,CACxB,OAAO,KAAK,cAAc,MAAK,EAAG,UAAUqB,CAAC,EAAE,IAAIrB,CAAC,CACtD,CACA,OAAO,aAAaqB,EAAGrB,EAAI,GAAI,CAC7B,OAAO,KAAK,cAAc,MAAK,EAAG,eAAeqB,CAAC,EAAE,IAAIrB,CAAC,CAC3D,CAEA,OAAO,cAAgB,IAAI,WAAW,CACpC,WACA,WACA,YACA,SACJ,CAAG,EACD,OAAO,iBAAmB,IAAI,WAAW,CACvC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACJ,CAAG,EACD,OAAO,SAAW,mBAClB,OAAO,OAAS,CAAA,EAEhB,OAAO,cAAgB,IAAII,GAC3B,OAAO,KAAKiB,EAAG,CACb,MAAMrB,EAAII,GAAE,SAAUK,EAAIL,GAAE,OAC5B,IAAII,EAAGP,EAAGF,EAAGD,EACb,IAAKA,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtB,IAAKG,EAAIH,EAAI,EAAGU,EAAIa,EAAEvB,CAAC,EAAGC,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC3CU,EAAER,EAAI,EAAIF,CAAC,EAAIC,EAAE,OAAOQ,EAAI,EAAE,EAAGA,KAAO,EAAGC,EAAER,EAAI,EAAIF,CAAC,EAAIC,EAAE,OAAOQ,EAAI,EAAE,EAAGA,KAAO,EACvF,OAAOC,EAAE,KAAK,EAAE,CAClB,CACA,OAAO,UAAUY,EAAGrB,EAAG,CACrB,IAAIS,EAAIY,EAAE,CAAC,EAAGb,EAAIa,EAAE,CAAC,EAAGpB,EAAIoB,EAAE,CAAC,EAAGtB,EAAIsB,EAAE,CAAC,EACzCZ,IAAMD,EAAIP,EAAI,CAACO,EAAIT,GAAKC,EAAE,CAAC,EAAI,UAAY,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAID,EAAI,CAACC,EAAIR,GAAKD,EAAE,CAAC,EAAI,UAAY,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIU,EAAI,CAACV,EAAIS,GAAKR,EAAE,CAAC,EAAI,UAAY,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIF,EAAI,CAACE,EAAIQ,GAAKT,EAAE,CAAC,EAAI,WAAa,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMD,EAAIP,EAAI,CAACO,EAAIT,GAAKC,EAAE,CAAC,EAAI,UAAY,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAID,EAAI,CAACC,EAAIR,GAAKD,EAAE,CAAC,EAAI,WAAa,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIU,EAAI,CAACV,EAAIS,GAAKR,EAAE,CAAC,EAAI,WAAa,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIF,EAAI,CAACE,EAAIQ,GAAKT,EAAE,CAAC,EAAI,SAAW,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMD,EAAIP,EAAI,CAACO,EAAIT,GAAKC,EAAE,CAAC,EAAI,WAAa,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAID,EAAI,CAACC,EAAIR,GAAKD,EAAE,CAAC,EAAI,WAAa,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIU,EAAI,CAACV,EAAIS,GAAKR,EAAE,EAAE,EAAI,MAAQ,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIF,EAAI,CAACE,EAAIQ,GAAKT,EAAE,EAAE,EAAI,WAAa,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMD,EAAIP,EAAI,CAACO,EAAIT,GAAKC,EAAE,EAAE,EAAI,WAAa,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAID,EAAI,CAACC,EAAIR,GAAKD,EAAE,EAAE,EAAI,SAAW,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIU,EAAI,CAACV,EAAIS,GAAKR,EAAE,EAAE,EAAI,WAAa,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIF,EAAI,CAACE,EAAIQ,GAAKT,EAAE,EAAE,EAAI,WAAa,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMD,EAAIT,EAAIE,EAAI,CAACF,GAAKC,EAAE,CAAC,EAAI,UAAY,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAIR,EAAIO,EAAI,CAACP,GAAKD,EAAE,CAAC,EAAI,WAAa,EAAGD,GAAKA,GAAK,EAAIA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIS,EAAIC,EAAI,CAACD,GAAKR,EAAE,EAAE,EAAI,UAAY,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIQ,EAAIV,EAAI,CAACU,GAAKT,EAAE,CAAC,EAAI,UAAY,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMD,EAAIT,EAAIE,EAAI,CAACF,GAAKC,EAAE,CAAC,EAAI,UAAY,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAIR,EAAIO,EAAI,CAACP,GAAKD,EAAE,EAAE,EAAI,SAAW,EAAGD,GAAKA,GAAK,EAAIA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIS,EAAIC,EAAI,CAACD,GAAKR,EAAE,EAAE,EAAI,UAAY,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIQ,EAAIV,EAAI,CAACU,GAAKT,EAAE,CAAC,EAAI,UAAY,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMD,EAAIT,EAAIE,EAAI,CAACF,GAAKC,EAAE,CAAC,EAAI,UAAY,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAIR,EAAIO,EAAI,CAACP,GAAKD,EAAE,EAAE,EAAI,WAAa,EAAGD,GAAKA,GAAK,EAAIA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIS,EAAIC,EAAI,CAACD,GAAKR,EAAE,CAAC,EAAI,UAAY,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIQ,EAAIV,EAAI,CAACU,GAAKT,EAAE,CAAC,EAAI,WAAa,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMD,EAAIT,EAAIE,EAAI,CAACF,GAAKC,EAAE,EAAE,EAAI,WAAa,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAIR,EAAIO,EAAI,CAACP,GAAKD,EAAE,CAAC,EAAI,SAAW,EAAGD,GAAKA,GAAK,EAAIA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIS,EAAIC,EAAI,CAACD,GAAKR,EAAE,CAAC,EAAI,WAAa,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIQ,EAAIV,EAAI,CAACU,GAAKT,EAAE,EAAE,EAAI,WAAa,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMD,EAAIP,EAAIF,GAAKC,EAAE,CAAC,EAAI,OAAS,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAID,EAAIP,GAAKD,EAAE,CAAC,EAAI,WAAa,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIU,EAAID,GAAKR,EAAE,EAAE,EAAI,WAAa,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIF,EAAIU,GAAKT,EAAE,EAAE,EAAI,SAAW,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,GAAKP,EAAI,EAAGQ,IAAMD,EAAIP,EAAIF,GAAKC,EAAE,CAAC,EAAI,WAAa,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAID,EAAIP,GAAKD,EAAE,CAAC,EAAI,WAAa,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIU,EAAID,GAAKR,EAAE,CAAC,EAAI,UAAY,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIF,EAAIU,GAAKT,EAAE,EAAE,EAAI,WAAa,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,GAAKP,EAAI,EAAGQ,IAAMD,EAAIP,EAAIF,GAAKC,EAAE,EAAE,EAAI,UAAY,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAID,EAAIP,GAAKD,EAAE,CAAC,EAAI,UAAY,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIU,EAAID,GAAKR,EAAE,CAAC,EAAI,UAAY,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIF,EAAIU,GAAKT,EAAE,CAAC,EAAI,SAAW,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,GAAKP,EAAI,EAAGQ,IAAMD,EAAIP,EAAIF,GAAKC,EAAE,CAAC,EAAI,UAAY,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMU,EAAID,EAAIP,GAAKD,EAAE,EAAE,EAAI,UAAY,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMF,EAAIU,EAAID,GAAKR,EAAE,EAAE,EAAI,UAAY,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMP,EAAIF,EAAIU,GAAKT,EAAE,CAAC,EAAI,UAAY,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,GAAKP,EAAI,EAAGQ,IAAMR,GAAKO,EAAI,CAACT,IAAMC,EAAE,CAAC,EAAI,UAAY,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMS,GAAKC,EAAI,CAACR,IAAMD,EAAE,CAAC,EAAI,WAAa,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMQ,GAAKV,EAAI,CAACS,IAAMR,EAAE,EAAE,EAAI,WAAa,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMT,GAAKE,EAAI,CAACQ,IAAMT,EAAE,CAAC,EAAI,SAAW,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMR,GAAKO,EAAI,CAACT,IAAMC,EAAE,EAAE,EAAI,WAAa,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMS,GAAKC,EAAI,CAACR,IAAMD,EAAE,CAAC,EAAI,WAAa,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMQ,GAAKV,EAAI,CAACS,IAAMR,EAAE,EAAE,EAAI,QAAU,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMT,GAAKE,EAAI,CAACQ,IAAMT,EAAE,CAAC,EAAI,WAAa,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMR,GAAKO,EAAI,CAACT,IAAMC,EAAE,CAAC,EAAI,WAAa,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMS,GAAKC,EAAI,CAACR,IAAMD,EAAE,EAAE,EAAI,SAAW,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMQ,GAAKV,EAAI,CAACS,IAAMR,EAAE,CAAC,EAAI,WAAa,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMT,GAAKE,EAAI,CAACQ,IAAMT,EAAE,EAAE,EAAI,WAAa,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGQ,IAAMR,GAAKO,EAAI,CAACT,IAAMC,EAAE,CAAC,EAAI,UAAY,EAAGS,GAAKA,GAAK,EAAIA,IAAM,IAAMD,EAAI,EAAGT,IAAMS,GAAKC,EAAI,CAACR,IAAMD,EAAE,EAAE,EAAI,WAAa,EAAGD,GAAKA,GAAK,GAAKA,IAAM,IAAMU,EAAI,EAAGR,IAAMQ,GAAKV,EAAI,CAACS,IAAMR,EAAE,CAAC,EAAI,UAAY,EAAGC,GAAKA,GAAK,GAAKA,IAAM,IAAMF,EAAI,EAAGS,IAAMT,GAAKE,EAAI,CAACQ,IAAMT,EAAE,CAAC,EAAI,UAAY,EAAGQ,GAAKA,GAAK,GAAKA,IAAM,IAAMP,EAAI,EAAGoB,EAAE,CAAC,EAAIZ,EAAIY,EAAE,CAAC,EAAI,EAAGA,EAAE,CAAC,EAAIb,EAAIa,EAAE,CAAC,EAAI,EAAGA,EAAE,CAAC,EAAIpB,EAAIoB,EAAE,CAAC,EAAI,EAAGA,EAAE,CAAC,EAAItB,EAAIsB,EAAE,CAAC,EAAI,CAC/+J,CACA,YAAc,EACd,cAAgB,EAChB,OAAS,IAAI,WAAW,CAAC,EACzB,QAAU,IAAI,YAAY,EAAE,EAC5B,SACA,UACA,aAAc,CACZ,KAAK,SAAW,IAAI,WAAW,KAAK,QAAS,EAAG,EAAE,EAAG,KAAK,UAAY,IAAI,YAAY,KAAK,QAAS,EAAG,EAAE,EAAG,KAAK,MAAK,CACxH,CAIA,OAAQ,CACN,OAAO,KAAK,YAAc,EAAG,KAAK,cAAgB,EAAG,KAAK,OAAO,IAAIjB,GAAE,aAAa,EAAG,IACzF,CAQA,UAAUiB,EAAG,CACX,MAAMrB,EAAI,KAAK,SAAUS,EAAI,KAAK,UAClC,IAAID,EAAI,KAAK,cAAeP,EAAGF,EAC/B,IAAKA,EAAI,EAAGA,EAAIsB,EAAE,OAAQtB,GAAK,EAAG,CAChC,GAAIE,EAAIoB,EAAE,WAAWtB,CAAC,EAAGE,EAAI,IAC3BD,EAAEQ,GAAG,EAAIP,UACFA,EAAI,KACXD,EAAEQ,GAAG,GAAKP,IAAM,GAAK,IAAKD,EAAEQ,GAAG,EAAIP,EAAI,GAAK,YACrCA,EAAI,OAASA,EAAI,MACxBD,EAAEQ,GAAG,GAAKP,IAAM,IAAM,IAAKD,EAAEQ,GAAG,EAAIP,IAAM,EAAI,GAAK,IAAKD,EAAEQ,GAAG,EAAIP,EAAI,GAAK,QACvE,CACH,GAAIA,GAAKA,EAAI,OAAS,MAAQoB,EAAE,WAAW,EAAEtB,CAAC,EAAI,OAAS,MAAOE,EAAI,QACpE,MAAM,IAAI,MACR,sDACZ,EACQD,EAAEQ,GAAG,GAAKP,IAAM,IAAM,IAAKD,EAAEQ,GAAG,EAAIP,IAAM,GAAK,GAAK,IAAKD,EAAEQ,GAAG,EAAIP,IAAM,EAAI,GAAK,IAAKD,EAAEQ,GAAG,EAAIP,EAAI,GAAK,GAC1G,CACAO,GAAK,KAAO,KAAK,aAAe,GAAIJ,GAAE,UAAU,KAAK,OAAQK,CAAC,EAAGD,GAAK,GAAIC,EAAE,CAAC,EAAIA,EAAE,EAAE,EACvF,CACA,OAAO,KAAK,cAAgBD,EAAG,IACjC,CAKA,eAAea,EAAG,CAChB,MAAMrB,EAAI,KAAK,SAAUS,EAAI,KAAK,UAClC,IAAID,EAAI,KAAK,cAAeP,EAAGF,EAAI,EACnC,OAAW,CACT,IAAKE,EAAI,KAAK,IAAIoB,EAAE,OAAStB,EAAG,GAAKS,CAAC,EAAGP,KACvCD,EAAEQ,GAAG,EAAIa,EAAE,WAAWtB,GAAG,EAC3B,GAAIS,EAAI,GACN,MACF,KAAK,aAAe,GAAIJ,GAAE,UAAU,KAAK,OAAQK,CAAC,EAAGD,EAAI,CAC3D,CACA,OAAO,KAAK,cAAgBA,EAAG,IACjC,CAKA,gBAAgBa,EAAG,CACjB,MAAMrB,EAAI,KAAK,SAAUS,EAAI,KAAK,UAClC,IAAID,EAAI,KAAK,cAAeP,EAAGF,EAAI,EACnC,OAAW,CACT,IAAKE,EAAI,KAAK,IAAIoB,EAAE,OAAStB,EAAG,GAAKS,CAAC,EAAGP,KACvCD,EAAEQ,GAAG,EAAIa,EAAEtB,GAAG,EAChB,GAAIS,EAAI,GACN,MACF,KAAK,aAAe,GAAIJ,GAAE,UAAU,KAAK,OAAQK,CAAC,EAAGD,EAAI,CAC3D,CACA,OAAO,KAAK,cAAgBA,EAAG,IACjC,CAIA,UAAW,CACT,MAAMa,EAAI,KAAK,OACf,MAAO,CACL,OAAQ,OAAO,aAAa,MAAM,KAAM,MAAM,KAAK,KAAK,QAAQ,CAAC,EACjE,OAAQ,KAAK,cACb,OAAQ,KAAK,YACb,MAAO,CAACA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,CACpC,CACE,CAKA,SAASA,EAAG,CACV,MAAMrB,EAAIqB,EAAE,OAAQZ,EAAIY,EAAE,MAAOb,EAAI,KAAK,OAC1C,IAAIP,EACJ,IAAK,KAAK,YAAcoB,EAAE,OAAQ,KAAK,cAAgBA,EAAE,OAAQb,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAGD,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAGD,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAGD,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAGR,EAAI,EAAGA,EAAID,EAAE,OAAQC,GAAK,EAC7I,KAAK,SAASA,CAAC,EAAID,EAAE,WAAWC,CAAC,CACrC,CAKA,IAAIoB,EAAI,GAAI,CACV,MAAMrB,EAAI,KAAK,cAAeS,EAAI,KAAK,SAAUD,EAAI,KAAK,UAAWP,GAAKD,GAAK,GAAK,EACpF,KAAK,aAAeA,EACpB,MAAMD,EAAI,KAAK,YAAc,EAC7B,GAAIU,EAAET,CAAC,EAAI,IAAKS,EAAET,EAAI,CAAC,EAAIS,EAAET,EAAI,CAAC,EAAIS,EAAET,EAAI,CAAC,EAAI,EAAGQ,EAAE,IAAIJ,GAAE,iBAAiB,SAASH,CAAC,EAAGA,CAAC,EAAGD,EAAI,KAAOI,GAAE,UAAU,KAAK,OAAQI,CAAC,EAAGA,EAAE,IAAIJ,GAAE,gBAAgB,GAAIL,GAAK,WACrKS,EAAE,EAAE,EAAIT,MACL,CACH,MAAMD,EAAIC,EAAE,SAAS,EAAE,EAAE,MAAM,gBAAgB,EAC/C,GAAID,IAAM,KAAM,OAAOuB,EAAIa,GAAI,GAC/B,MAAMD,EAAI,SAASnC,EAAE,CAAC,EAAG,EAAE,EAAGO,EAAI,SAASP,EAAE,CAAC,EAAG,EAAE,GAAK,EACxDU,EAAE,EAAE,EAAIyB,EAAGzB,EAAE,EAAE,EAAIH,CACrB,CACA,OAAOD,GAAE,UAAU,KAAK,OAAQI,CAAC,EAAGa,EAAI,KAAK,OAASjB,GAAE,KAAK,KAAK,MAAM,CAC1E,CACF,CACA,GAAIA,GAAE,QAAQ,OAAO,IAAM,mCACzB,MAAM,IAAI,MAAM,uBAAuB,ECrKzCkd,GAAS4lB,EAAE,EACX,MAAMC,EAAM,CAOV,YAAYpjC,EAAGI,EAAGI,EAAGsI,EAAM,CACzB,KAAK,EAAI9I,EACT,KAAK,EAAII,EACT,KAAK,EAAII,EACT,KAAK,KAAOsI,EACZ,KAAK,EAAI,KAAK,IAAI9I,EAAG,GAAG,EACxB,KAAK,EAAI,KAAK,IAAII,EAAG,GAAG,EACxB,KAAK,EAAI,KAAK,IAAII,EAAG,GAAG,EACxB,KAAK,KAAOsI,CACd,CACA,EACA,EACA,EACA,KAIA,IAAI,OAAQ,CACV,MAAMu6B,EAASC,GAAQ,KAAKA,EAAI,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,EACvD,MAAO,IAAID,EAAM,KAAK,CAAC,CAAC,GAAGA,EAAM,KAAK,CAAC,CAAC,GAAGA,EAAM,KAAK,CAAC,CAAC,EAC1D,CACF,CACA,SAASE,GAAuBC,EAAOC,EAAQC,EAAQ,CACrD,MAAO,CACL,GAAIA,EAAO,EAAID,EAAO,GAAKD,EAC3B,GAAIE,EAAO,EAAID,EAAO,GAAKD,EAC3B,GAAIE,EAAO,EAAID,EAAO,GAAKD,CAC/B,CACA,CACA,SAASG,GAAWH,EAAOC,EAAQC,EAAQ,CACzC,MAAME,EAAU,CAAA,EAChBA,EAAQ,KAAKH,CAAM,EACnB,MAAMI,EAAYN,GAAuBC,EAAOC,EAAQC,CAAM,EAC9D,QAASpiC,EAAI,EAAGA,EAAIkiC,EAAOliC,IAAK,CAC9B,MAAMtB,EAAI,KAAK,MAAMyjC,EAAO,EAAII,EAAU,EAAIviC,CAAC,EACzClB,EAAI,KAAK,MAAMqjC,EAAO,EAAII,EAAU,EAAIviC,CAAC,EACzCd,EAAI,KAAK,MAAMijC,EAAO,EAAII,EAAU,EAAIviC,CAAC,EAC/CsiC,EAAQ,KAAK,IAAIR,GAAMpjC,EAAGI,EAAGI,CAAC,CAAC,CACjC,CACA,OAAOojC,CACT,CACA,MAAME,GAAY,IAAIV,GAAM,IAAK,GAAI,IAAK1iC,EAAE,QAAQ,CAAC,EAC/CqjC,GAAe,IAAIX,GAAM,IAAK,IAAK,GAAI1iC,EAAE,MAAM,CAAC,EAChDsjC,GAAa,IAAIZ,GAAM,EAAG,IAAK,IAAK1iC,EAAE,gBAAgB,CAAC,EACzC,IAAI0iC,GAAM,EAAG,EAAG,EAAG1iC,EAAE,OAAO,CAAC,EAC7B,IAAI0iC,GAAM,IAAK,IAAK,IAAK1iC,EAAE,OAAO,CAAC,EAGrD,IAAI0iC,GACE,IAAK,IAAK,IACd1iC,EAAE,YAAY,CAElB,EACE,IAAI0iC,GACE,IAAK,IAAK,IACd1iC,EAAE,UAAU,CAEhB,EACE,IAAI0iC,GACE,IAAK,IAAK,IACd1iC,EAAE,SAAS,CAEf,EAEE,IAAI0iC,GACE,IAAK,IAAK,IACd1iC,EAAE,SAAS,CAEf,EACE,IAAI0iC,GACE,IAAK,IAAK,IACd1iC,EAAE,UAAU,CAEhB,EACE,IAAI0iC,GACE,GAAI,IAAK,IACb1iC,EAAE,aAAa,CAEnB,EAEE,IAAI0iC,GACE,GAAI,IAAK,IACb1iC,EAAE,SAAS,CAEf,EACE,IAAI0iC,GACE,GAAI,IAAK,IACb1iC,EAAE,aAAa,CAEnB,EACE,IAAI0iC,GACE,IAAK,GAAI,IACb1iC,EAAE,QAAQ,CAEd,EAEA,SAASujC,GAAgBT,EAAO,CAC9B,MAAMU,EAAWP,GAAWH,EAAOM,GAAWC,EAAY,EACpDI,EAAWR,GAAWH,EAAOO,GAAcC,EAAU,EACrDI,EAAWT,GAAWH,EAAOQ,GAAYF,EAAS,EACxD,OAAOI,EAAS,OAAOC,CAAQ,EAAE,OAAOC,CAAQ,CAClD,CC5GA,SAASC,GAAStL,EAAK,CACrB,IAAIrzB,EAAOqzB,EACPA,EAAI,MAAM,sBAAsB,IAAM,OACxCrzB,EAAO4+B,GAAI,QAAQvL,CAAG,GAExBrzB,EAAOA,EAAK,QAAQ,aAAc,EAAE,EACpC,IAAI6+B,EAAW,EACf,QAASjjC,EAAI,EAAGA,EAAIoE,EAAK,OAAQpE,IAC/BijC,GAAY,SAAS7+B,EAAK,OAAOpE,CAAC,EAAG,EAAE,EAEzC,OAAOijC,CACT,CACA,SAASC,GAAgBC,EAAU,CAEjC,MAAMC,EAAeT,GAAgB,CAAK,EACpCv+B,EAAO2+B,GAASI,EAAS,kBAAiB,CAAE,EAClD,OAAOC,EAAah/B,EAAOg/B,EAAa,MAAM,CAChD,mFCjBC,SAAUC,EAAQ,CAGf,GAAI,OAAOC,GAAW,WAAY,CAC9B,IAAIA,EAAS,SAAS97B,EAAM,CACxB,OAAOA,CACnB,EAEQ87B,EAAO,UAAY,EAC3B,CAEI,MAAMC,EAAkBD,EAAO,WAAW,EACpCE,EAAkBF,EAAO,MAAM,EAC/BG,EAAkBH,EAAO,SAAS,EAElCI,EAAsB,WACtBC,EAAsB,kBAE5B,SAASC,EAAUC,EAAMC,EAAgBC,EAAiB,CACtDF,EAAkBA,GAAQ,GAC1BC,EAAkBA,GAAkB,CAAA,EACpCC,EAAkBA,GAAmB,GAErC,IAAIC,EAAUC,EAAaH,EAAgBC,CAAe,EAE1D,OAAOG,EAAmBL,EAAMG,CAAO,CAC/C,CAEI,SAASG,EAAsBL,EAAgBC,EAAiB,CAC5DD,EAAkBA,GAAkB,CAAA,EACpCC,EAAkBA,GAAmB,GAErC,IAAIC,EAAUC,EAAaH,EAAgBC,CAAe,EAE1D,OAAO,SAA0BF,EAAM,CACnC,OAAOK,EAAmBL,GAAQ,GAAIG,CAAO,CACzD,CACA,CAEIJ,EAAU,oBAAsBO,EAEhC,SAASF,EAAaH,EAAgBC,EAAiB,CACnD,OAAAD,EAAiBM,EAAqBN,CAAc,EAE7C,CACH,eAAiBA,EACjB,gBAAiBC,EAEjB,MAAgBR,EAChB,WAAgB,GAChB,MAAgB,EAChB,cAAgB,GAE5B,CAEI,SAASW,EAAmBL,EAAMG,EAAS,CACvC,GAAI,OAAOH,GAAQ,SACf,MAAM,IAAI,UAAU,mCAAmC,EAG3D,IAAIC,EAAkBE,EAAQ,eAC1BD,EAAkBC,EAAQ,gBAE1Bj5B,EAAgBi5B,EAAQ,MACxBK,EAAgBL,EAAQ,WACxBxuB,EAAgBwuB,EAAQ,MACxBM,GAAgBN,EAAQ,cACxBO,GAAgB,GAEpB,QAASC,GAAM,EAAGlxB,GAASuwB,EAAK,OAAQW,GAAMlxB,GAAQkxB,KAAO,CACzD,IAAIh3B,GAAOq2B,EAAKW,EAAG,EAEnB,GAAIz5B,IAAUw4B,EACF/1B,KACC,KACDzC,EAAcy4B,EACda,GAAc72B,IAId+2B,IAAU/2B,WAKbzC,IAAUy4B,EACf,OAAQh2B,GAAI,CACR,IAAK,IAED,GAAI82B,GACA,MAIJ9uB,IACA,MAEJ,IAAK,IAED,GAAI8uB,GACA,MAIJ,GAAI9uB,EAAO,CACPA,IAEA,KAC5B,CAGwB8uB,GAAgB,GAChBv5B,EAAgBw4B,EAChBc,GAAgB,IAEZP,EAAe,IAAIW,EAAcJ,CAAU,CAAC,EAC5CE,IAAUF,EAEVE,IAAUR,EAGdM,EAAa,GACb,MAEJ,IAAK,IACL,IAAK,IAGG72B,KAAS82B,GACTA,GAAgB,GAEhBA,GAAgBA,IAAiB92B,GAGrC62B,GAAc72B,GACd,MAEJ,IAAK,IACG62B,IAAe,QACft5B,EAAQ04B,GAGZY,GAAc72B,GACd,MAEJ,IAAK,IACL,IAAK;AAAA,EACD,GAAI62B,IAAe,IAAK,CACpBt5B,EAAaw4B,EACbgB,IAAa,KACbF,EAAa,GAEb,KAC5B,CAEwBA,GAAc72B,GACd,MAEJ,QACI62B,GAAc72B,GACd,KACxB,MAGqBzC,IAAU04B,IACPj2B,KACC,KACG62B,EAAW,MAAM,EAAE,GAAK,OAExBt5B,EAAQw4B,GAGZc,EAAa,IAIbA,GAAc72B,GAItC,CAGQ,OAAAw2B,EAAQ,MAAgBj5B,EACxBi5B,EAAQ,WAAgBK,EACxBL,EAAQ,MAAgBxuB,EACxBwuB,EAAQ,cAAgBM,GAEjBC,EACf,CAEI,SAASH,EAAqBN,EAAgB,CAC1C,IAAIY,EAAU,IAAI,IAElB,GAAI,OAAOZ,GAAmB,SAAU,CACpC,IAAI/0B,EAEJ,KAAQA,EAAQ20B,EAAmB,KAAKI,CAAc,GAClDY,EAAQ,IAAI31B,EAAM,CAAC,CAAC,CAEpC,KAEiB,CAACu0B,EAAO,WACR,OAAOQ,EAAeR,EAAO,QAAQ,GAAM,WAEhDoB,EAAU,IAAI,IAAIZ,CAAc,EAG3B,OAAOA,EAAe,SAAY,YAEvCA,EAAe,QAAQY,EAAQ,IAAKA,CAAO,EAG/C,OAAOA,CACf,CAEI,SAASD,EAAcJ,EAAY,CAC/B,IAAIt1B,EAAQ40B,EAAoB,KAAKU,CAAU,EAE/C,OAAOt1B,EAAQA,EAAM,CAAC,EAAE,YAAW,EAAK,IAChD,CAO2C41B,EAAO,QAE1CA,UAAiBf,EAKjBP,EAAO,UAAYO,CAE3B,GAAEgB,EAAI,yBC3ON,SAASC,GAAaC,EAAM52B,EAAS,CACnC,MAAM62B,GAAQ72B,GAAS,MAAQ,KAAO,GAAK,GAAK,IAC1C82B,EAAW92B,GAAS,QAAU,SAAW,GACzC+2B,EAAW/2B,GAAS,aAAe6Z,GAAiB,SAAS,IAAI,EAAI,QAAU,GACrF,OAAO+E,GAAY,UAAUkY,CAAQ,iBAAiBC,CAAQ,sBAAuB,CACnF,KAAAH,EACA,KAAAC,CACJ,CAAG,CACH,CCHA,MAAMG,GAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACVC,GAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACVC,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACTC,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACfC,GAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAClBrpB,GAASspB,EAAG,EACZtpB,GAASupB,EAAG,EACZ,SAASC,GAAkBlZ,EAAQ,CACjC,OAAQA,EAAM,CACZ,IAAK,OACH,OAAOntB,EAAE,MAAM,EAEjB,IAAK,OACH,OAAOA,EAAE,MAAM,EACjB,IAAK,MACH,OAAOA,EAAE,gBAAgB,EAC3B,IAAK,SACH,OAAOA,EAAE,QAAQ,EACnB,IAAK,YACH,OAAOA,EAAE,WAAW,EACtB,IAAK,UACH,OAAOA,EAAE,SAAS,EACpB,QACE,OAAOmtB,CACb,CACA,CACA,MAAMjO,GAAa,CAAC,cAAe,aAAc,WAAW,EACtDV,GAA4BzJ,GAAgB,CAChD,OAAQ,mBACR,MAAuBuU,GAAY,CACjC,KAAM,CAAE,QAAS,MAAM,EACvB,WAAY,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,EAAK,CACzD,EAAK,CACD,OAAU,CAAA,EACV,gBAAmB,CAAA,CACvB,CAAG,EACD,MAAO,CAAC,eAAe,EACvB,MAAMtM,EAAS,CACb,MAAMmQ,EAASrM,GAAS9D,EAAS,QAAQ,EACnC/J,EAAQ+J,EACRspB,EAAcvyB,EAAS,IAAMoZ,EAAO,OAAS,CAAC,YAAa,SAAS,EAAE,SAASA,EAAO,KAAK,CAAC,EAC5FoZ,EAAYxyB,EAAS,IAAMoZ,EAAO,QAAU,CAACla,EAAM,YAAcA,EAAM,aAAe,SAAWjT,EAAE,wBAAyB,CAAE,OAAQqmC,GAAkBlZ,EAAO,KAAK,EAAG,EAAI,MAAM,EACvLvW,GAAM,IAAM3D,EAAM,KAAM,MAAOyyB,GAAS,CACtC,GAAI,CAACvY,EAAO,OAASuY,GAAQxmC,GAAe,GAAI,aAAa,QAC3D,GAAI,CACF,KAAM,CAAE,KAAA+N,GAAS,MAAMu5B,GAAM,IAAIC,GAAe,2CAA4C,CAAE,KAAAf,CAAI,CAAE,CAAC,EACrGvY,EAAO,MAAQlgB,EAAK,KAAK,MAAM,MACjC,OAAS8M,EAAO,CACdqC,GAAO,MAAM,mCAAoC,CAAE,MAAArC,CAAK,CAAE,CAC5D,CAEJ,EAAG,CAAE,UAAW,GAAM,EACtB,MAAM2sB,EAAW,CACf,OAAQR,GACR,KAAMJ,GACN,KAAMC,GACN,IAAKC,GACL,UAAWC,GACX,QAASA,EACf,EACUU,EAAY5yB,EAAS,IAAMoZ,EAAO,OAASuZ,EAASvZ,EAAO,KAAK,CAAC,EACvE,MAAO,CAAC1P,EAAMC,IACLyP,EAAO,OAASxP,EAAS,EAAImC,EAAmB,OAAQ,CAC7D,IAAK,EACL,MAAOhC,EAAe,CAAC,mBAAoB,CACzC,8BAA+BwoB,EAAY,KACrD,CAAS,CAAC,EACF,cAAe,CAACC,EAAU,OAAS,OACnC,aAAcA,EAAU,MACxB,KAAM,MACN,UAAWI,EAAU,KAC7B,EAAS,KAAM,GAAIznB,EAAU,GAAKc,EAAmB,GAAI,EAAI,CAE3D,CACF,CAAC,EACK4mB,GAAmCxoB,GAAYI,GAAW,CAAC,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC9E5FA,GAAY,CAChB,KAAM,eACN,OAAQ,CAACyF,EAAe,EACxB,OAAQ,CACN,iBAAkB,CAChB,KAAME,GACN,QAAS,EACf,CACA,EACE,MAAO,CAIL,KAAM,CACJ,KAAM,OACN,SAAU,GACV,UAAYje,GAAU,CACpB,GAAI,CACF,OAAO,IAAI,IAAIA,CAAK,CACtB,MAAQ,CACN,OAAOA,EAAM,WAAW,GAAG,GAAKA,EAAM,WAAW,GAAG,CACtD,CACF,CACN,EAII,SAAU,CACR,KAAM,OACN,QAAS,IACf,EAII,OAAQ,CACN,KAAM,OACN,QAAS,QACT,UAAYA,GACHA,IAAU,CAACA,EAAM,WAAW,GAAG,GAAK,CAAC,SAAU,QAAS,UAAW,MAAM,EAAE,QAAQA,CAAK,EAAI,GAE3G,EAII,MAAO,CACL,KAAM,OACN,QAAS,IACf,CACA,CACA,EACMgZ,GAAa,CAAC,MAAM,EACpBC,GAAa,CAAC,WAAY,OAAQ,aAAc,SAAU,QAAS,MAAM,EACzEC,GAAa,CACjB,IAAK,EACL,MAAO,+BACT,EACMgE,GAAa,CAAE,MAAO,mBAAmB,EACzCoB,GAAa,CAAC,aAAa,EAC3BC,GAAa,CAAC,aAAa,EAC3BC,GAAa,CACjB,IAAK,EACL,MAAO,mBACT,EACA,SAASrF,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAO9B,EAAS,EAAImC,EAAmB,KAAM,CAC3C,MAAO,SACP,KAAML,EAAS,kBAAoB,cACvC,EAAK,CACDW,EAAmB,IAAK,CACtB,SAAUd,EAAO,SACjB,KAAMA,EAAO,KACb,aAAc7B,EAAK,UACnB,OAAQ6B,EAAO,OACf,MAAOA,EAAO,MACd,MAAO,wBACP,IAAK,+BACL,KAAMG,EAAS,kBAAoB,WACnC,QAAS/B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwB,EAAK,SAAWA,EAAK,QAAQ,GAAGxB,CAAI,EAC1F,EAAO,CACDoE,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,IAAM,CACxC2C,EAAmB,OAAQ,CACzB,cAAe,OACf,MAAOtC,EAAe,CAAC,oBAAqB,CAACL,EAAK,UAAY,yBAA2BA,EAAK,IAAI,CAAC,CAAC,EACpG,MAAOoH,GAAe,CAAE,gBAAiBpH,EAAK,UAAY,OAAOA,EAAK,IAAI,IAAM,IAAI,CAAE,CAChG,EAAW,KAAM,CAAC,CAClB,EAAS,EAAI,EACPA,EAAK,MAAQE,EAAS,EAAImC,EAAmB,OAAQV,GAAY,CAC/DgB,EAAmB,SAAUgD,GAAYrD,EAAgBtC,EAAK,IAAI,EAAG,CAAC,EACtEC,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI0C,EAAmB,KAAM,KAAM,KAAM,EAAE,GACjEA,EAAmB,OAAQ,CACzB,MAAO,wBACP,YAAaL,EAAgBtC,EAAK,IAAI,CAChD,EAAW,KAAM,EAAG+G,EAAU,CAC9B,CAAO,GAAK/G,EAAK,YAAcE,EAAS,EAAImC,EAAmB,OAAQ,CAC/D,IAAK,EACL,MAAO,wBACP,YAAaC,EAAgBtC,EAAK,IAAI,CAC9C,EAAS,KAAM,EAAGgH,EAAU,IAAM9G,EAAS,EAAImC,EAAmB,OAAQ4E,GAAY3E,EAAgBtC,EAAK,IAAI,EAAG,CAAC,GAC7GuC,EAAmB,GAAI,EAAI,CACjC,EAAO,EAAGb,EAAU,CACpB,EAAK,EAAGD,EAAU,CAClB,CACA,MAAM2nB,GAA+BzoB,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECtGjHb,GAAY,CAChB,KAAM,iBACN,OAAQ,CAACyF,EAAe,EACxB,OAAQ,CACN,iBAAkB,CAChB,KAAME,GACN,QAAS,EACf,CACA,EACE,MAAO,CAIL,GAAI,CACF,KAAM,CAAC,OAAQ,MAAM,EACrB,SAAU,EAChB,CACA,CACA,EACMjF,GAAa,CAAC,MAAM,EACpBC,GAAa,CACjB,IAAK,EACL,MAAO,iCACT,EACMC,GAAa,CAAE,MAAO,qBAAqB,EAC3CgE,GAAa,CAAC,aAAa,EAC3BoB,GAAa,CAAC,aAAa,EAC3BC,GAAa,CACjB,IAAK,EACL,MAAO,qBACT,EACA,SAASpF,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMqnB,EAAwBnnB,EAAiB,YAAY,EAC3D,OAAOhC,EAAS,EAAImC,EAAmB,KAAM,CAC3C,MAAO,SACP,KAAML,EAAS,kBAAoB,cACvC,EAAK,CACDzB,EAAY8oB,EAAuB,CACjC,aAAcrpB,EAAK,UACnB,MAAO,0BACP,IAAK,+BACL,KAAMgC,EAAS,kBAAoB,WACnC,MAAOhC,EAAK,MACZ,GAAI6B,EAAO,GACX,QAAS7B,EAAK,OACpB,EAAO,CACD,QAASM,EAAQ,IAAM,CACrBsC,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,IAAM,CACxC2C,EAAmB,OAAQ,CACzB,cAAe,OACf,MAAOtC,EAAe,CAAC,sBAAuB,CAACL,EAAK,UAAY,2BAA6BA,EAAK,IAAI,CAAC,CAAC,EACxG,MAAOoH,GAAe,CAAE,gBAAiBpH,EAAK,UAAY,OAAOA,EAAK,IAAI,IAAM,IAAI,CAAE,CAClG,EAAa,KAAM,CAAC,CACpB,EAAW,EAAI,EACPA,EAAK,MAAQE,EAAS,EAAImC,EAAmB,OAAQX,GAAY,CAC/DiB,EAAmB,SAAUhB,GAAYW,EAAgBtC,EAAK,IAAI,EAAG,CAAC,EACtEC,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI0C,EAAmB,KAAM,KAAM,KAAM,EAAE,GACjEA,EAAmB,OAAQ,CACzB,MAAO,0BACP,YAAaL,EAAgBtC,EAAK,IAAI,CAClD,EAAa,KAAM,EAAG2F,EAAU,CAChC,CAAS,GAAK3F,EAAK,YAAcE,EAAS,EAAImC,EAAmB,OAAQ,CAC/D,IAAK,EACL,MAAO,0BACP,YAAaC,EAAgBtC,EAAK,IAAI,CAChD,EAAW,KAAM,EAAG+G,EAAU,IAAM7G,EAAS,EAAImC,EAAmB,OAAQ2E,GAAY1E,EAAgBtC,EAAK,IAAI,EAAG,CAAC,GAC7GuC,EAAmB,GAAI,EAAI,CACnC,CAAO,EACD,EAAG,CACT,EAAO,EAAG,CAAC,aAAc,OAAQ,QAAS,KAAM,SAAS,CAAC,CAC1D,EAAK,EAAGd,EAAU,CAClB,CACA,MAAM6nB,GAAiC3oB,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECxEnHb,GAAY,CAChB,KAAM,eACN,OAAQ,CAACyF,EAAe,EACxB,OAAQ,CACN,iBAAkB,CAChB,KAAME,GACN,QAAS,EACf,CACA,CACA,EACMjF,GAAa,CAAC,MAAM,EACpBC,GAAa,CACjB,IAAK,EACL,MAAO,+BACT,EACMC,GAAa,CAAE,MAAO,mBAAmB,EACzCgE,GAAa,CAAC,aAAa,EAC3BoB,GAAa,CAAC,aAAa,EAC3BC,GAAa,CACjB,IAAK,EACL,MAAO,mBACT,EACA,SAASpF,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAO9B,EAAS,EAAImC,EAAmB,KAAM,CAC3C,MAAO,SACP,KAAML,EAAS,kBAAoB,cACvC,EAAK,CACDW,EAAmB,OAAQ,CACzB,MAAO,cACP,QAAS1C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwB,EAAK,SAAWA,EAAK,QAAQ,GAAGxB,CAAI,EAC1F,EAAO,CACDoE,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,IAAM,CACxCA,EAAK,OAAS,IAAME,EAAS,EAAImC,EAAmB,OAAQ,CAC1D,IAAK,EACL,cAAe,OACf,MAAOhC,EAAe,CAAC,oBAAqB,CAACL,EAAK,UAAY,yBAA2BA,EAAK,IAAI,CAAC,CAAC,EACpG,MAAOoH,GAAe,CAAE,gBAAiBpH,EAAK,UAAY,OAAOA,EAAK,IAAI,IAAM,IAAI,CAAE,CAChG,EAAW,KAAM,CAAC,GAAKuC,EAAmB,GAAI,EAAI,CAClD,EAAS,EAAI,EACPvC,EAAK,MAAQE,EAAS,EAAImC,EAAmB,OAAQX,GAAY,CAC/DiB,EAAmB,SAAUhB,GAAYW,EAAgBtC,EAAK,IAAI,EAAG,CAAC,EACtE2C,EAAmB,OAAQ,CACzB,MAAO,wBACP,YAAaL,EAAgBtC,EAAK,IAAI,CAChD,EAAW,KAAM,EAAG2F,EAAU,CAC9B,CAAO,GAAK3F,EAAK,YAAcE,EAAS,EAAImC,EAAmB,OAAQ,CAC/D,IAAK,EACL,MAAO,wBACP,YAAaC,EAAgBtC,EAAK,IAAI,CAC9C,EAAS,KAAM,EAAG+G,EAAU,IAAM7G,EAAS,EAAImC,EAAmB,OAAQ2E,GAAY1E,EAAgBtC,EAAK,IAAI,EAAG,CAAC,GAC7GuC,EAAmB,GAAI,EAAI,CACjC,CAAK,CACL,EAAK,EAAGd,EAAU,CAClB,CACA,MAAM8nB,GAA+B5oB,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC3BvHxC,GAASoqB,EAAG,EACZ,MAAMC,GAAa,CACjB,MAAO,CACL,MAAO,CACL,UAAW,GACX,WAAY,CACV,OAAQ,KACR,QAAS,KACT,KAAM,IACd,CACA,CACE,EACA,QAAS,CAQP,MAAM,gBAAgBC,EAAQ,CAC5B,GAAI,CAACA,EACH,OAEF,MAAMC,EAAeloC,GAAe,EACpC,GAAI,EAAA,CAAC,OAAO,OAAOkoC,EAAc,aAAa,GAAK,CAACA,EAAa,YAAY,UAGxEC,GAAc,EAGnB,GAAI,CACF,KAAM,CAAE,KAAAp6B,GAAS,MAAMu5B,GAAM,IAAIC,GAAe,4CAA6C,CAAE,OAAAU,CAAM,CAAE,CAAC,EACxG,KAAK,cAAcl6B,EAAK,IAAI,IAAI,CAClC,OAASlN,EAAG,CACV,GAAIA,EAAE,SAAS,SAAW,KAAOA,EAAE,SAAS,KAAK,KAAK,MAAM,SAAW,EACrE,OAEFqc,GAAO,MAAM,8BAA+B,CAAE,MAAOrc,CAAC,CAAE,CAC1D,CACF,EASA,cAAc,CAAE,OAAAotB,EAAQ,QAAApf,EAAS,KAAA6hB,CAAI,EAAI,CACvC,KAAK,WAAW,OAASzC,GAAU,GACnC,KAAK,WAAW,QAAUpf,GAAW,GACrC,KAAK,WAAW,KAAO6hB,GAAQ,GAC/B,KAAK,UAAY,CAAC,CAACzC,CACrB,CACJ,CACA,EACM9O,GAAiBC,GAAW,WAAW,EAAE,QAAO,EAAG,MAAK,EAC9D,SAASgpB,GAAiBH,EAAQ,CAChC,MAAMI,EAAOlpB,GAAe,QAAQ,mBAAqB8oB,CAAM,EAC/D,OAAI,OAAOI,GAAS,SACX,CAAA,CAAQA,EAEV,IACT,CACA,SAASC,GAAiBL,EAAQI,EAAM,CAClCJ,GACF9oB,GAAe,QAAQ,mBAAqB8oB,EAAQI,CAAI,CAE5D,CACA,MAAM/oB,GAAY,CAChB,KAAM,WACN,WAAY,CAEV,aAAckS,EAClB,EACE,WAAY,CACV,mBAAA+W,GACA,UAAA/kB,GACA,SAAA7E,GACA,iBAAAI,GACA,cAAAmI,GACA,iBAAAwgB,EACJ,EACE,OAAQ,CAACM,EAAU,EACnB,MAAO,CAKL,IAAK,CACH,KAAM,OACN,QAAS,MACf,EAII,UAAW,CACT,KAAM,OACN,QAAS,MACf,EAKI,KAAM,CACJ,KAAM,OACN,QAAS,MACf,EAII,WAAY,CACV,KAAM,QACN,QAAS,EACf,EAII,cAAe,CACb,KAAM,QACN,QAAS,EACf,EAMI,oBAAqB,CACnB,KAAM,OACN,QAAS,MACf,EAII,QAAS,CACP,KAAM,QACN,QAAS,EACf,EAOI,YAAa,CACX,KAAM,OACN,QAAS,MACf,EAII,KAAM,CACJ,KAAM,OACN,QAAS,EACf,EAII,cAAe,CACb,KAAM,QACN,QAAS,EACf,EAII,eAAgB,CACd,KAAM,QACN,QAAS,EACf,EAII,YAAa,CACX,KAAM,QACN,QAAS,EACf,EAOI,eAAgB,CACd,KAAM,OACN,QAAS,IACf,EAMI,SAAU,CACR,KAAM,QACN,QAAS,EACf,EAII,cAAe,CACb,KAAM,CAAC,QAAS,OAAQ,OAAQ,OAAO,EACvC,QAAS,MACf,CACA,EACE,OAAQ,CAEN,MAAO,CACL,YAFkB/d,GAAc,CAGtC,CACE,EACA,MAAO,CACL,MAAO,CACL,gBAAiB,KACjB,mBAAoB,KACpB,iBAAkB,GAClB,eAAgB,GAChB,aAAc,GACd,oBAAqB,GACrB,iBAAkB,CAAA,EAClB,oBAAqB,CAAA,EACrB,sBAAuB,EAC7B,CACE,EACA,SAAU,CACR,iBAAkB,CAChB,GAAK,KAAK,QAGV,OAAI,KAAK,sBAAwB,KAAK,2BAC7BnpB,EAAE,oCAAqC,CAAE,YAAa,KAAK,aAAe,KAAK,KAAM,OAAQqmC,GAAkB,KAAK,WAAW,MAAM,CAAC,CAAE,EAE1IrmC,EAAE,0BAA2B,CAAE,YAAa,KAAK,aAAe,KAAK,KAAM,CACpF,EACA,sBAAuB,CACrB,MAAO,CAAC,KAAK,YAAc,KAAK,WAAa,CAAC,SAAU,OAAQ,OAAQ,KAAK,EAAE,SAAS,KAAK,WAAW,MAAM,CAChH,EACA,4BAA6B,CAC3B,MAAO,CAAC,KAAK,YAAc,CAAC,KAAK,eAAiB,KAAK,WAAa,KAAK,WAAW,SAAW,OAAS,KAAK,WAAW,IAC1H,EAKA,gBAAiB,CACf,OAAI,KAAK,qBACA,KAAK,YAEV,KAAK,cACA,KAAK,KAEP,EACT,EACA,eAAgB,CACd,OAAO,OAAO,KAAK,KAAS,GAC9B,EACA,sBAAuB,CACrB,OAAO,OAAO,KAAK,YAAgB,GACrC,EACA,cAAe,CACb,OAAO,OAAO,KAAK,IAAQ,GAC7B,EACA,SAAU,CACR,OAAI,KAAK,YACA,GAEL,KAAK,aACA,KAAK,KAAK,OAAS,EAErB,EAAE,KAAK,OAASqnC,GAAc,GAAI,KAAO,KAAK,kBAAoB,KAAK,IAChF,EAIA,cAAe,CACb,MAAO,CAAC,KAAK,eAAiB,KAAK,kBAAoB,EAAE,KAAK,WAAa,KAAK,OAAO,KACzF,EACA,aAAc,CACZ,MAAO,CACL,gBAAiB,KAAK,KAAO,KAC7B,WAAY,KAAK,aAAe,KAAK,KAAO,KAAO,EACnD,SAAU,KAAK,MAAM,KAAK,KAAO,GAAI,EAAI,IACjD,CACI,EACA,sBAAuB,CACrB,KAAM,CAAE,EAAA/nC,EAAG,EAAAI,EAAG,EAAAI,CAAC,EAAKgkC,GAAgB,KAAK,cAAc,EACvD,MAAO,CACL,gBAAiB,QAAQxkC,CAAC,KAAKI,CAAC,KAAKI,CAAC,QAC9C,CACI,EACA,eAAgB,CACd,KAAM,CAAE,EAAAR,EAAG,EAAAI,EAAG,EAAAI,CAAC,EAAKgkC,GAAgB,KAAK,cAAc,EACvD,MAAO,CACL,MAAO,OAAOxkC,CAAC,KAAKI,CAAC,KAAKI,CAAC,GACnC,CACI,EACA,SAAU,CACR,OAAI,KAAK,eACA,KAEL,KAAK,eACA,KAAK,eAEP,KAAK,WACd,EAIA,UAAW,CACT,IAAI4nC,EAAW,IACf,GAAI,KAAK,aAAc,CACrB,MAAMhC,EAAO,KAAK,eAAe,KAAI,EACrC,GAAIA,IAAS,GACX,OAAOgC,EAET,MAAMC,EAAgBjC,EAAK,MAAM,kBAAkB,EACnD,GAAI,CAACiC,EACH,OAAOD,EAET,MAAME,EAAWD,EAAc,KAAK,EAAE,EAChCvC,EAAMwC,EAAS,YAAY,GAAG,EACpCF,EAAW,OAAO,cAAcE,EAAS,YAAY,CAAC,CAAC,EACnDxC,IAAQ,KACVsC,EAAWA,EAAS,OAAO,OAAO,cAAcE,EAAS,YAAYxC,EAAM,CAAC,CAAC,CAAC,EAElF,CACA,OAAOsC,EAAS,kBAAiB,CACnC,EACA,MAAO,CACL,MAAMG,EAAU,KAAK,oBAAoB,IAAKC,GAAS,CACrD,MAAM5/B,EAAQu5B,GAAS,KAAK,QAASqG,EAAK,SAAS,EACnD,MAAO,CACL,kBAAmB5/B,EAAQ6+B,GAAiBF,GAC5C,uBAAwB3+B,EAAQ,CAC9B,GAAIA,EACJ,KAAM4/B,EAAK,IACvB,EAAc,CACF,KAAMA,EAAK,UACX,KAAMA,EAAK,IACvB,EACU,KAAMA,EAAK,KACrB,CACM,CAAC,EACD,UAAWtF,KAAUF,GAA8B,KAAK,gBAAgB,EACtE,GAAI,CACFuF,EAAQ,KAAK,CACX,kBAAmB/iB,GACnB,uBAAwB,CACtB,QAAS,IAAM0d,EAAO,SAAS,KAAK,gBAAgB,CAClE,EACY,KAAMA,EAAO,YAAY,KAAK,gBAAgB,EAC9C,QAASA,EAAO,QAAQ,KAAK,gBAAgB,CACzD,CAAW,CACH,OAASzoB,EAAO,CACdqC,GAAO,MAAM,wCAAwComB,EAAO,EAAE,GAAI,CAChE,MAAAzoB,EACA,OAAAyoB,CACZ,CAAW,CACH,CAEF,SAASuF,EAAOtD,EAAM,CACpB,MAAMzgC,EAAO,SAAS,eAAeygC,CAAI,EACnChlC,EAAI,SAAS,cAAc,GAAG,EACpC,OAAAA,EAAE,YAAYuE,CAAI,EACXvE,EAAE,SACX,CACA,GAAI,CAAC,KAAK,aAAe,KAAK,WAAW,MAAQ,KAAK,WAAW,SAAU,CACzE,MAAMuoC,EAAY;AAAA,qGAC2ED,EAAO,KAAK,WAAW,IAAI,CAAC;AAAA,YAEzH,MAAO,CAAC,CACN,kBAAmBf,GACnB,uBAAwB,CAAA,EACxB,QAAS,KAAK,WAAW,KAAOgB,EAAY,OAC5C,KAAM,GAAG,KAAK,WAAW,OAAO,EAC1C,CAAS,EAAE,OAAOH,CAAO,CACnB,CACA,OAAOA,CACT,CACJ,EACE,MAAO,CACL,KAAM,CACJ,KAAK,iBAAmB,GACxB,KAAK,cAAa,CACpB,EACA,MAAO,CACL,KAAK,iBAAmB,GACxB,KAAK,aAAe,GACpB,KAAK,cAAa,CACpB,CACJ,EACE,SAAU,CACR,KAAK,cAAa,EAClBjmB,GAAU,0BAA2B,KAAK,aAAa,EACvDA,GAAU,gCAAiC,KAAK,aAAa,EACzD,CAAC,KAAK,YAAc,KAAK,MAAQ,CAAC,KAAK,UACpC,KAAK,oBAGR,KAAK,cAAc,KAAK,mBAAmB,EAF3C,KAAK,gBAAgB,KAAK,IAAI,EAIhCA,GAAU,6BAA8B,KAAK,uBAAuB,GAC3D,CAAC,KAAK,YAAc,KAAK,qBAClC,KAAK,cAAc,KAAK,mBAAmB,CAE/C,EACA,eAAgB,CACdM,GAAY,0BAA2B,KAAK,aAAa,EACzDA,GAAY,gCAAiC,KAAK,aAAa,EAC/DA,GAAY,6BAA8B,KAAK,uBAAuB,CACxE,EACA,QAAS,CACP,EAAAliB,EACA,wBAAwB2L,EAAO,CACzB,KAAK,OAASA,EAAM,SACtB,KAAK,WAAa,CAChB,OAAQA,EAAM,OACd,KAAMA,EAAM,KACZ,QAASA,EAAM,OACzB,EACQ,KAAK,UAAYA,EAAM,SAAW,KAEtC,EAMA,MAAM,WAAWqT,EAAO,CAClBA,EAAM,OAAS,WAAaA,EAAM,MAAQ,UAGzC,KAAK,uBACR,MAAM,KAAK,kBAAiB,EAE9B,KAAK,sBAAwB,CAAC,KAAK,sBACrC,EACA,WAAY,CACV,KAAK,sBAAwB,EAC/B,EACA,MAAM,mBAAoB,CACxB,KAAK,oBAAsB,GAC3B,GAAI,CACF,MAAM0mB,EAAO,mBAAmB,KAAK,IAAI,EACnC,CAAE,KAAAz4B,CAAI,EAAK,MAAMu5B,GAAM,KAAK9Y,GAAY,sBAAsB,EAAG,yBAAyBgY,CAAI,EAAE,EACtG,KAAK,iBAAmBz4B,EACxB,KAAK,oBAAsBA,EAAK,UAAY,CAACA,EAAK,SAAS,EAAE,OAAOA,EAAK,OAAO,EAAIA,EAAK,OAC3F,MAAQ,CACN,KAAK,sBAAwB,EAC/B,CACA,KAAK,oBAAsB,GAC3B,KAAK,aAAe,EACtB,EAIA,eAAgB,CAEd,GADA,KAAK,eAAiB,GAClB,CAAC,KAAK,eAAiB,CAAC,KAAK,eAAiB,KAAK,UAAY,KAAK,WAAa,KAAK,OAAO,MAAO,CACtG,KAAK,eAAiB,GACtB,KAAK,iBAAmB,GACxB,MACF,CACA,GAAI,KAAK,aAAc,CACrB,KAAK,mBAAmB,KAAK,GAAG,EAChC,MACF,CACA,GAAI,KAAK,MAAQ,GAAI,CACnB,MAAMg7B,EAAY,KAAK,mBAAmB,KAAK,KAAM,EAAE,EACjDC,EAAS,CACbD,EAAY,MACZ,KAAK,mBAAmB,KAAK,KAAM,GAAG,EAAI,KACpD,EAAU,KAAK,IAAI,EACX,KAAK,mBAAmBA,EAAWC,CAAM,CAC3C,KAAO,CACL,MAAMD,EAAY,KAAK,mBAAmB,KAAK,KAAM,GAAG,EACxD,KAAK,mBAAmBA,CAAS,CACnC,CACF,EAQA,mBAAmBvC,EAAMC,EAAM,CAC7B,IAAIsC,EAAYxC,GAAaC,EAAM,CACjC,KAAAC,EACA,YAAa,KAAK,YAClB,QAAS,KAAK,OACtB,CAAO,EACD,OAAID,IAAS2B,GAAc,GAAI,KAAO,OAAO,cAAkB,MAC7DY,GAAa,MAAQ,OAAO,cAAc,OAAO,SAE5CA,CACT,EAOA,mBAAmBj7B,EAAKk7B,EAAS,KAAM,CACrC,MAAMC,EAAgBb,GAAiB,KAAK,IAAI,EAChD,GAAI,KAAK,eAAiB,OAAOa,GAAkB,UAAW,CAC5D,KAAK,eAAiB,GACtB,KAAK,gBAAkBn7B,EACnBk7B,IACF,KAAK,mBAAqBA,GAExBC,IAAkB,KACpB,KAAK,iBAAmB,IAE1B,MACF,CACA,MAAMC,EAAM,IAAI,MAChBA,EAAI,OAAS,IAAM,CACjB,KAAK,gBAAkBp7B,EACnBk7B,IACF,KAAK,mBAAqBA,GAE5B,KAAK,eAAiB,GACtBV,GAAiB,KAAK,KAAM,EAAI,CAClC,EACAY,EAAI,QAAWruB,GAAU,CACvBqC,GAAO,MAAM,gCAAiC,CAAE,MAAArC,EAAO,IAAA/M,CAAG,CAAE,EAC5D,KAAK,gBAAkB,KACvB,KAAK,mBAAqB,KAC1B,KAAK,iBAAmB,GACxB,KAAK,eAAiB,GACtBw6B,GAAiB,KAAK,KAAM,EAAK,CACnC,EACIU,IACFE,EAAI,OAASF,GAEfE,EAAI,IAAMp7B,CACZ,CACJ,CACA,EACMkS,GAAa,CAAC,OAAO,EACrBC,GAAa,CAAC,MAAO,QAAQ,EAC7BC,GAAa,CACjB,IAAK,EACL,MAAO,qDACT,EACA,SAASC,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMgH,EAA2B9G,EAAiB,eAAe,EAC3D0oB,EAAgC1oB,EAAiB,oBAAoB,EACrEiE,EAAsBjE,EAAiB,UAAU,EACjDiF,EAA8BjF,EAAiB,kBAAkB,EACjEmD,EAAuBnD,EAAiB,WAAW,EACnD2oB,EAA8B3oB,EAAiB,kBAAkB,EACjE0hB,EAA2BD,GAAiB,eAAe,EACjE,OAAOjhB,IAAgBxC,IAAamC,EAAmB,OAAQ,CAC7D,MAAOhC,EAAe,CAAC,gCAAiC,CACtD,qBAAsB0B,EAAM,iBAC5B,uBAAwBC,EAAS,QACjC,+BAAgCD,EAAM,mBAC5C,CAAK,CAAC,EACF,MAAOqF,GAAepF,EAAS,WAAW,EAC1C,MAAOA,EAAS,OACpB,EAAK,CACDY,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,IAAM,CACxC6B,EAAO,WAAa3B,IAAamC,EAAmB,OAAQ,CAC1D,IAAK,EACL,MAAOhC,EAAe,CAACwB,EAAO,UAAW,mBAAmB,CAAC,CACrE,EAAS,KAAM,CAAC,GAAKE,EAAM,gBAAkB,CAACA,EAAM,kBAAoB7B,IAAamC,EAAmB,MAAO,CACvG,IAAK,EACL,IAAKN,EAAM,gBACX,OAAQA,EAAM,mBACd,IAAK,EACb,EAAS,KAAM,EAAGL,EAAU,GAAKa,EAAmB,GAAI,EAAI,CAC5D,EAAO,EAAI,EACPP,EAAS,SAAWA,EAAS,KAAK,SAAW,GAAK9B,EAAS,EAAIC,EAAYgG,EAAqB,CAC9F,IAAK,EACL,aAAcnE,EAAS,gBACvB,MAAO,sCACP,QAAS,yBACT,QAASA,EAAS,UACxB,EAAO,CACD,KAAM1B,EAAQ,IAAM,CAClByB,EAAM,qBAAuB7B,IAAaC,EAAY6I,EAA0B,CAAE,IAAK,CAAC,CAAE,IAAM9I,IAAaC,EAAYyqB,EAA+B,CACtJ,IAAK,EACL,KAAM,EAChB,CAAS,EACT,CAAO,EACD,EAAG,CACT,EAAO,EAAG,CAAC,aAAc,SAAS,CAAC,GAAK5oB,EAAS,SAAW9B,EAAS,EAAIC,EAAYkF,EAAsB,CACrG,IAAK,EACL,KAAMtD,EAAM,sBACZ,gBAAiB9B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWxB,EAAM,sBAAwBwB,GACrF,aAAcvB,EAAS,gBACvB,UAAWH,EAAO,cAClB,UAAW,GACX,WAAY,GACZ,QAAS,yBACT,QAASG,EAAS,UACxB,EAAOyM,GAAY,CACb,QAASnO,EAAQ,IAAM,EACpBJ,EAAU,EAAI,EAAGmC,EAAmBG,EAAU,KAAMmgB,GAAW3gB,EAAS,KAAM,CAACqoB,EAAMhiC,KAC7E6X,EAAS,EAAIC,EAAYmF,GAAwB+kB,EAAK,iBAAiB,EAAGzkB,EAAW,CAAE,IAAAvd,CAAG,EAAI,CAAE,QAAS,EAAI,EAAIgiC,EAAK,sBAAsB,EAAG5b,GAAY,CAChK,QAASnO,EAAQ,IAAM,CACrBiF,EAAgB,IAAMjD,EAAgB+nB,EAAK,IAAI,EAAG,CAAC,CACjE,CAAa,EACD,EAAG,CACf,EAAa,CACDA,EAAK,QAAU,CACb,KAAM,OACN,GAAI/pB,EAAQ,IAAM,CAChBC,EAAY4G,EAA6B,CACvC,IAAKkjB,EAAK,OAC5B,EAAmB,KAAM,EAAG,CAAC,KAAK,CAAC,CACnC,CAAe,EACD,IAAK,GACnB,EAAgB,MAChB,CAAW,EAAG,IAAI,EACT,EAAG,GAAG,EACf,CAAO,EACD,EAAG,CACT,EAAO,CACDtoB,EAAM,oBAAsB,CAC1B,KAAM,OACN,GAAIzB,EAAQ,IAAM,CAChBC,EAAYyI,CAAwB,CAC9C,CAAS,EACD,IAAK,GACb,EAAU,MACV,CAAK,EAAG,KAAM,CAAC,OAAQ,aAAc,YAAa,SAAS,CAAC,GAAKzG,EAAmB,GAAI,EAAI,EACxFP,EAAS,4BAA8B9B,EAAS,EAAImC,EAAmB,OAAQV,GAAYW,EAAgBtC,EAAK,WAAW,IAAI,EAAG,CAAC,GAAKgC,EAAS,sBAAwB9B,EAAS,EAAIC,EAAY0qB,EAA6B,CAC7N,IAAK,EACL,MAAO,yBACP,OAAQ7qB,EAAK,WAAW,OACxB,cAAe,OAAOgC,EAAS,OAAO,CAC5C,EAAO,KAAM,EAAG,CAAC,SAAU,aAAa,CAAC,GAAKO,EAAmB,GAAI,EAAI,EACrEP,EAAS,cAAgB9B,IAAamC,EAAmB,OAAQ,CAC/D,IAAK,EACL,MAAO+E,GAAepF,EAAS,oBAAoB,EACnD,MAAO,6BACb,EAAO,CACDW,EAAmB,OAAQ,CACzB,MAAOyE,GAAepF,EAAS,aAAa,EAC5C,MAAO,qBACf,EAASM,EAAgBN,EAAS,QAAQ,EAAG,CAAC,CAC9C,EAAO,CAAC,GAAKO,EAAmB,GAAI,EAAI,CACxC,EAAK,GAAId,EAAU,GAAI,CACnB,CAACmiB,EAA0B5hB,EAAS,SAAS,CACjD,CAAG,CACH,CACA,MAAM8oB,GAA2BnqB,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,ECppB9Gb,GAAU,CACb,KAAM,aACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,wOAAwO,iDAXpP8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,mCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,YACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,yDAAyD,iDAXrE8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,kCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,YACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,+GAA+G,iDAX3H8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,kCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,qBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,iLAAiL,iDAX7L8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,4CACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,cACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,uOAAuO,iDAXnP8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,oCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,yBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,yMAAyM,iDAXrN8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,gDACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,aACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,qJAAqJ,iDAXjK8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,mCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCC/Bd,GAAU,CACd,KAAM,aACN,MAAO,CACN,OAAQ,CAAE,KAAM,OAAQ,SAAU,KAGnC,SAAU,CACT,MAAO,CACN,OAAO0O,GAAW,KAAK,MAAM,CAC9B,EAEF,MAnBQ,MAAM,mBAAmB,cAAY,4CAD5ChF,EAGO,OAAA,CAHD,MAAM,cAAe,wBAAwBzI,EAAA,KAAK,KAAI,cAAiBA,EAAA,KAAK,IAAI,CAAA,IACrF2I,EAAwE,OAAxElJ,GAAwEqQ,EAAnB9P,EAAA,KAAK,IAAI,EAAA,CAAA,IAAU,IACxE8P,EAAG9P,EAAA,KAAK,KAAK,EAAA,CAAA,qECoCVjB,GAAU,CACd,KAAM,gBACN,WAAY,CAAE,SAAA+pB,GAAU,eAAA9J,GAAgB,WAAAlR,GAAY,aAAAib,GAAc,WAAAC,IAClE,MAAO,CACN,SAAU,CAAE,KAAM,OAAQ,SAAU,KAGrC,QAAS,CAAA,EAAEzoC,CAAA,CACZ,EA9CMkf,GAAA,CAAA,MAAM,SAAS,EAQfC,GAAA,CAAA,MAAM,gBAAgB,YAGQ,MAAM,WAOhCiE,GAAA,CAAA,MAAM,eAAe,+HAlB9B,OAAAiF,EAAA,EAAAH,EA2BM,MA3BNhJ,GA2BM,CA1BaI,EAAA,SAAS,cAA3B+P,EAEaG,EAAA,OAFwB,KAAK,sBACzC,IAAoK,CAAjKU,EAAAX,EAAA9P,EAAA,kGAAsGH,EAAA,SAAS,cAAa,UAAaA,EAAA,SAAS,SAAS,CAAA,CAAA,EAAA,CAAA,gBAE/J+P,EAEaG,EAAA,OAFM,KAAK,sBACvB,IAAoI,CAAjIU,EAAAX,EAAA9P,EAAA,uEAA2EH,EAAA,SAAS,eAAiBA,EAAA,SAAS,aAAa,CAAA,CAAA,EAAA,CAAA,WAG/H8I,EAEK,KAFLjJ,GAEKoQ,EADD9P,EAAA,EAAC,UAAA,qCAAA,CAAA,EAAA,CAAA,EAEKH,EAAA,SAAS,OAAO,QAA1B+I,IAAAH,EAUK,KAVL9I,GAUK,EATJiJ,EAAA,EAAA,EAAAH,EAQK+H,EAAA,KAAAyY,GARYppB,EAAA,SAAS,OAAfqpB,QAAXzgB,EAQK,KAAA,CAR8B,IAAKygB,EAAG,UAAW,MAAM,kBAC3DlZ,EAIcmZ,EAAA,CAHZ,KAAMD,EAAG,YACT,YAAaA,EAAG,YAChB,KAAM,GACP,WAAA,mCACDvgB,EAAuD,OAAvDhF,GAAuDmM,EAAxBoZ,EAAG,WAAW,EAAA,CAAA,EAC7ClZ,EAAkCoZ,EAAA,CAArB,OAAQF,EAAG,6CAG1BtZ,EAIiB6R,EAAA,OAJO,KAAMzhB,EAAA,EAAC,UAAA,uBAAA,IACnB,OACV,IAA2B,CAA3BgQ,EAA2BqZ,EAAA,CAAZ,KAAM,EAAE,CAAA,uFCftBtqB,GAAU,CACd,KAAM,gBACN,MAAO,CACN,OAAQ,CAAE,KAAM,OAAQ,SAAU,KAGnC,SAAU,CACT,MAAO,CACN,OAAO+N,EAAM,UAAU,KAAK,MAAM,CACnC,EAEF,MAnBQ,MAAM,kBAAkB,cAAY,4CAD3CrE,EAGO,OAAA,CAHD,MAAM,YAAa,MAAK6gB,GAAA,CAAA,eAAoBtpB,EAAA,KAAK,KAAK,CAAA,IAC3D2I,EAAuE,OAAvElJ,GAAuEqQ,EAAnB9P,EAAA,KAAK,IAAI,EAAA,CAAA,IAAU,IACvE8P,EAAG9P,EAAA,KAAK,KAAK,EAAA,CAAA,qECgBVjB,GAAU,CACd,KAAM,iBACN,MAAO,CACN,OAAQ,CAAE,KAAM,OAAQ,SAAU,KAGnC,SAAU,CACT,OAAQ,CACP,MAAMhf,EAAI,KAAK,OACTwpC,EAAY,CAAE,MAAOhpC,EAAE,UAAW,WAAW,EAAG,MAAO,OAAQ,KAAM,UAAW,KAAM,IAAG,EAE/F,IAAIipC,EACA,CAAC,UAAW,YAAa,oBAAoB,EAAE,SAASzpC,CAAC,EAC5DypC,EAAS,CAAE,MAAOzpC,IAAM,YAAcQ,EAAE,UAAW,SAAS,EAAIA,EAAE,UAAW,WAAW,EAAG,MAAO,UAAW,KAAM,UAAW,KAAM,GAAE,EAEtIipC,EAAS,CAAE,MAAOjpC,EAAE,UAAW,UAAU,EAAG,MAAO,OAAQ,KAAM,UAAW,KAAM,IAAG,EAGtF,IAAIkpC,EACJ,OAAQ1pC,EAAC,CACR,IAAK,WACJ0pC,EAAU,CAAE,MAAOlpC,EAAE,UAAW,UAAU,EAAG,MAAO,OAAQ,KAAM,UAAW,KAAM,GAAE,EACrF,MACD,IAAK,WACJkpC,EAAU,CAAE,MAAOlpC,EAAE,UAAW,UAAU,EAAG,MAAO,OAAQ,KAAM,QAAS,KAAM,GAAE,EACnF,MACD,IAAK,YACJkpC,EAAU,CAAE,MAAOlpC,EAAE,UAAW,WAAW,EAAG,MAAO,OAAQ,KAAM,QAAS,KAAM,IAAG,EACrF,MACD,IAAK,qBACJkpC,EAAU,CAAE,MAAOlpC,EAAE,UAAW,aAAa,EAAG,MAAO,UAAW,KAAM,UAAW,KAAM,IAAG,EAC5F,MACD,QACCkpC,EAAU,CAAE,MAAOlpC,EAAE,UAAW,UAAU,EAAG,MAAO,SAAU,KAAM,UAAW,KAAM,GAAE,CACzF,CAEA,MAAO,CAACgpC,EAAWC,EAAQC,CAAO,CACnC,GAGD,QAAS,CAAA,EAAElpC,CAAA,CACZ,wBAnDS,MAAM,eAAe,cAAY,QACjCof,GAAA,CAAA,MAAM,gBAAgB,YACM,MAAM,eAAe,cAAY,4CARrE8I,EAUK,KAAA,CAVD,MAAM,UAAW,aAAYzI,EAAA,EAAC,UAAA,kBAAA,KACjC4I,EAAA,EAAA,EAAAH,EAQK+H,EAAA,KAAAyY,GAPgBjpB,EAAA,MAAK,CAAjB0pB,EAAMvoC,SADfsnB,EAQK,KAAA,CANH,IAAKtnB,EACN,MAAKwoC,EAAA,CAAC,gBAAe,CAAA,kBACMD,EAAK,KAAK,GAAA,kBAAsBA,EAAK,IAAI,EAAA,CAAA,CAAA,IACpE/gB,EAAoE,OAApEjJ,GAAoEoQ,EAAnB4Z,EAAK,IAAI,EAAA,CAAA,EAC1D/gB,EAAoD,OAApDhJ,GAAoDmQ,EAApB4Z,EAAK,KAAK,EAAA,CAAA,EAC9BvoC,EAAI6e,EAAA,MAAM,OAAM,GAA5B4I,IAAAH,EAA4E,OAA5E9E,EAA4E,8FCgM1E5E,GAAU,CACd,KAAM,iBACN,WAAY,CACX,aAAA+iB,GACA,gBAAAC,GACA,SAAA+G,GACA,SAAA1qB,GACA,WAAAyN,GACA,eAAAmT,GACA,WAAAgK,GACA,cAAAY,GACA,cAAAC,GACA,eAAAC,GACA,mBAAAC,GACA,aAAAhB,GACA,eAAAiB,GACA,QAAAC,GACA,MAAAC,GACA,MAAAC,GACA,OAAAvkB,GACA,WAAAwkB,IAGD,MAAO,CAAC,QAAS,OAAQ,SAAS,EAClC,MAAO,CACN,MAAO,CACN,OAAQ,KACR,KAAM,GACN,UAAW,GACX,cAAe,GACf,WAAY,EACb,CACD,EAEA,SAAU,CACT,MAAO,CACN,OAAO,KAAK,OAAStd,EAAM,UAAU,KAAK,OAAO,MAAM,EAAI,CAAA,CAC5D,EAEA,YAAa,CACZ,OAAO,KAAK,OAASud,GAAY,KAAK,OAAO,UAAW,KAAK,OAAO,OAAO,EAAI,EAChF,EAEA,gBAAiB,CAChB,OAAO,KAAK,QAAU,KAAK,OAAO,UAAY,KAAK,eAAe,KAAK,OAAO,SAAS,EAAI,EAC5F,EAEA,YAAa,CACZ,OAAO,KAAK,OAASvd,EAAM,cAAc,KAAK,MAAM,EAAI,EACzD,EAEA,aAAc,CACb,MAAO,CAAC,UAAW,YAAa,oBAAoB,EAAE,SAAS,KAAK,OAAO,MAAM,CAClF,EAEA,cAAe,CACd,MAAO,CAAC,CAAC,WAAY,WAAW,EAAE,SAAS,KAAK,OAAO,MAAM,CAC9D,EAEA,SAAU,CACT,MAAO,CAAC,UAAW,YAAa,UAAU,EAAE,SAAS,KAAK,OAAO,MAAM,CACxE,EAEA,cAAe,CACd,OAAO,KAAK,OAAO,SAAW,oBAC/B,EAEA,oBAAqB,CACpB,OAAO,KAAK,aAAevsB,EAAE,UAAW,oBAAoB,EAAIA,EAAE,UAAW,SAAS,CACvF,EAEA,mBAAoB,CACnB,OAAO,KAAK,aAAeA,EAAE,UAAW,YAAY,EAAIA,EAAE,UAAW,SAAS,CAC/E,EAEA,aAAc,CACb,OAAO,KAAK,OAAO,SAAW,WAAaA,EAAE,UAAW,oBAAoB,EAAIA,EAAE,UAAW,gBAAgB,CAC9G,GAGD,SAAU,CAGT,KAAK,KAAI,CACV,EAEA,QAAS,GACRA,EACA,UAAUysB,EAAM,CAef,MAdY,CACX,gBAAiB,CAAE,MAAOzsB,EAAE,UAAW,WAAW,EAAG,KAAM,IAAG,EAC9D,gBAAiB,CAAE,MAAOA,EAAE,UAAW,QAAQ,EAAG,KAAM,IAAG,EAC3D,2BAA4B,CAAE,MAAOA,EAAE,UAAW,4BAA4B,EAAG,KAAM,MACvF,kBAAmB,CAAE,MAAOA,EAAE,UAAW,gBAAgB,EAAG,KAAM,OAClE,qBAAsB,CAAE,MAAOA,EAAE,UAAW,sBAAsB,EAAG,KAAM,MAC3E,kBAAmB,CAAE,MAAOA,EAAE,UAAW,WAAW,EAAG,KAAM,IAAG,EAChE,oBAAqB,CAAE,MAAOA,EAAE,UAAW,qBAAqB,EAAG,KAAM,MACzE,iBAAkB,CAAE,MAAOA,EAAE,UAAW,UAAU,EAAG,KAAM,GAAE,EAC7D,iBAAkB,CAAE,MAAOA,EAAE,UAAW,UAAU,EAAG,KAAM,GAAE,EAC7D,oBAAqB,CAAE,MAAOA,EAAE,UAAW,qBAAqB,EAAG,KAAM,KACzE,kBAAmB,CAAE,MAAOA,EAAE,UAAW,iBAAiB,EAAG,KAAM,KACnE,cAAe,CAAE,MAAOA,EAAE,UAAW,SAAS,EAAG,KAAM,IAAG,CAC3D,EACWysB,CAAI,GAAK,CAAE,MAAOA,EAAM,KAAM,GAAE,CAC5C,EAEA,eAAesd,EAAK,CACnB,OAAKA,EAGE,IAAI,KAAKA,CAAG,EAAE,eAAe,OAAW,CAC9C,KAAM,UACN,MAAO,QACP,IAAK,UACL,KAAM,UACN,OAAQ,UACR,EARO,EAST,EAEA,MAAM,MAAO,CACZ,GAAI,CAACxd,EAAM,WAAY,CACtB,KAAK,OAAS,KACd,MACD,CACA,GAAI,CACH,KAAK,OAAS,MAAMG,GAAI,WAAWH,EAAM,UAAU,EACnD,KAAK,UAAY,GACjB,KAAK,cAAgB,EACtB,MAAQ,CACPI,GAAU3sB,EAAE,UAAW,4BAA4B,CAAC,EACpD,KAAK,MAAM,OAAO,CACnB,CACD,EAEA,MAAM,SAAU,CACf,KAAK,KAAO,GACZ,GAAI,CACH,MAAMusB,EAAM,eAAe,KAAK,OAAO,EAAE,EACzC,KAAK,MAAM,SAAS,CACrB,OAAS,EAAG,CACXI,GAAU,EAAE,UAAU,MAAM,SAAW3sB,EAAE,UAAW,mBAAmB,CAAC,CACzE,QAAA,CACC,KAAK,KAAO,EACb,CACD,EAEA,aAAc,CACb,KAAK,UAAY,EAClB,EAEA,MAAM,QAAS,CACd,KAAK,KAAO,GACZ,GAAI,CACH,MAAMusB,EAAM,cAAc,KAAK,OAAO,GAAI,KAAK,aAAa,EAC5D,KAAK,MAAM,SAAS,CACrB,OAAS,EAAG,CACXI,GAAU,EAAE,UAAU,MAAM,SAAW3sB,EAAE,UAAW,mBAAmB,CAAC,CACzE,QAAA,CACC,KAAK,KAAO,EACb,CACD,EAEA,MAAM,QAAS,CACd,KAAK,KAAO,GACZ,GAAI,CACH,MAAMusB,EAAM,cAAc,KAAK,OAAO,EAAE,EACxC,KAAK,MAAM,SAAS,CACrB,OAAS,EAAG,CACXI,GAAU,EAAE,UAAU,MAAM,SAAW3sB,EAAE,UAAW,kBAAkB,CAAC,CACxE,QAAA,CACC,KAAK,KAAO,EACb,CACD,EAEA,MAAM,aAAc,CACnB,KAAK,KAAO,GACZ,GAAI,CACH,MAAM0sB,GAAI,WAAW,KAAK,OAAO,GAAI,KAAK,UAAU,EACpD,KAAK,WAAa,GAClB,MAAM,KAAK,KAAI,CAChB,MAAQ,CACPC,GAAU3sB,EAAE,UAAW,uBAAuB,CAAC,CAChD,QAAA,CACC,KAAK,KAAO,EACb,CACD,EAEF,EAxXQkf,GAAA,CAAA,MAAM,SAAS,EAEfC,GAAA,CAAA,MAAM,OAAO,EAWXC,GAAA,CAAA,MAAM,gBAAgB,EAWtBgE,GAAA,CAAA,MAAM,gBAAgB,YAEyB,MAAM,gBAStDqB,GAAA,CAAA,MAAM,SAAS,YAmCE,MAAM,UAKtBE,GAAA,CAAA,MAAM,iBAAiB,EA2BzB0J,GAAA,CAAA,MAAM,SAAS,YACe,MAAM,YAEjCyB,GAAA,CAAA,MAAM,gBAAgB,EAYxBvB,GAAA,CAAA,MAAM,aAAa,EAapBC,GAAA,CAAA,MAAM,SAAS,YACgC,MAAM,gBAEjD,MAAM,mBAAmB,cAAY,QACtCG,GAAA,CAAA,MAAM,gBAAgB,EACrBC,GAAA,CAAA,MAAM,gBAAgB,EAEpBC,GAAA,CAAA,MAAM,gBAAgB,EAExBC,GAAA,CAAA,MAAM,eAAe,YASN,MAAM,+YAhKzBtP,EAAA,YADP6P,EA8Ke2a,GAAA,OA5Kb,KAAMvqB,EAAA,KAAK,MACX,QAASA,EAAA,WACT,wBAAOhC,EAAA,MAAK,OAAA,kBAKb,IAyFkB,CAzFlBgS,EAyFkBwa,EAAA,CAzFD,GAAG,UAAW,KAAMxqB,EAAA,EAAC,UAAA,SAAA,EAAyB,MAAO,IAC1D,OACV,IAAiC,CAAjCgQ,EAAiCya,EAAA,CAAZ,KAAM,EAAE,CAAA,cAE9B,IAoFM,CApFN9hB,EAoFM,MApFNlJ,GAoFM,CAnFiBO,EAAA,gBAAtB4P,EAAqF8a,EAAA,OAAlD,OAAQ3qB,EAAA,OAAO,OAAQ,MAAM,iDAChE4I,EA+BK,KA/BLjJ,GA+BK,CA9BJiJ,EAAuC,YAAhC3I,EAAA,EAAC,UAAA,UAAA,CAAA,EAAA,CAAA,EACR2I,EAAiC,KAAA,KAAAmH,EAA1B/P,EAAA,OAAO,WAAW,EAAA,CAAA,EACzB4I,EAAmC,YAA5B3I,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,EACR2I,EAAkD,KAAA,KAAA,CAA9CqH,EAAyC2a,EAAA,CAAzB,OAAQ5qB,EAAA,OAAO,6BACnC4I,EAAoC,YAA7B3I,EAAA,EAAC,UAAA,OAAA,CAAA,EAAA,CAAA,EACR2I,EAAyB,YAAlB3I,EAAA,UAAU,EAAA,CAAA,EACjB2I,EAA2C,YAApC3I,EAAA,EAAC,UAAA,cAAA,CAAA,EAAA,CAAA,EACR2I,EAAiC,KAAA,KAAAmH,EAA1B/P,EAAA,OAAO,WAAW,EAAA,CAAA,EACTA,EAAA,OAAO,oBAAvB0I,EAMW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CALV7H,EAA0C,YAAnC3I,EAAA,EAAC,UAAA,aAAA,CAAA,EAAA,CAAA,EACR2I,EAGK,KAHLhJ,GAGK,CAFJqQ,EAAgEmZ,EAAA,CAArD,KAAMppB,EAAA,OAAO,eAAiB,KAAM,GAAI,WAAA,qBAAa0Q,EAAA,MAC7D1Q,EAAA,OAAO,iBAAmBA,EAAA,OAAO,cAAc,EAAA,CAAA,mBAGpCA,EAAA,OAAO,YAAvB0I,EAGW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CAFV7H,EAAqC,YAA9B3I,EAAA,EAAC,UAAA,QAAA,CAAA,EAAA,CAAA,EACR2I,EAA4B,KAAA,KAAAmH,EAArB/P,EAAA,OAAO,MAAM,EAAA,CAAA,iBAELA,EAAA,OAAO,eAAvB0I,EAMW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CALV7H,EAAyC,YAAlC3I,EAAA,EAAC,UAAA,YAAA,CAAA,EAAA,CAAA,EACR2I,EAGK,KAHLhF,GAGK,CAFJqM,EAA2DmZ,EAAA,CAAhD,KAAMppB,EAAA,OAAO,UAAY,KAAM,GAAI,WAAA,uBAAa,IAC3D+P,EAAG/P,EAAA,OAAO,SAAS,EAAA,CAAA,EAAeC,EAAA,gBAAZ4I,EAAA,EAAAH,EAA+E,OAA/E1D,GAAiD,QAAM/E,EAAA,cAAc,EAAA,CAAA,6BAG7ED,EAAA,OAAO,qBAAvB0I,EAGW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CAFV7H,EAA4C,YAArC3I,EAAA,EAAC,UAAA,eAAA,CAAA,EAAA,CAAA,EACR2I,EAAqC,KAAA,KAAAmH,EAA9B/P,EAAA,OAAO,eAAe,EAAA,CAAA,mBAI/B4I,EAiCM,MAjCN3D,GAiCM,CAhCWjF,EAAA,OAAO,WAAaC,EAAA,iBAApCyI,EAaW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CAZVR,EAKW7L,EAAA,CALD,QAAQ,UAAW,SAAUpE,EAAA,KAAO,QAAOC,EAAA,UACzC,OACV,IAAoB,CAApBgQ,EAAoB4a,EAAA,CAAZ,KAAM,EAAE,CAAA,cACN,IACX,CADWna,EAAA,MACRzQ,EAAA,kBAAkB,EAAA,CAAA,mCAEtBgQ,EAKW7L,EAAA,CALD,QAAQ,QAAS,SAAUpE,EAAA,KAAO,QAAOC,EAAA,cACvC,OACV,IAAoB,CAApBgQ,EAAoB6a,EAAA,CAAZ,KAAM,EAAE,CAAA,cACN,IACX,CADWpa,EAAA,MACRzQ,EAAA,iBAAiB,EAAA,CAAA,kDAGND,EAAA,OAAO,WAAaC,EAAA,kBAApCyI,EAiBW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CAfHxQ,EAAA,aADP4P,EASWzL,EAAA,OAPV,QAAQ,YACP,SAAUpE,EAAA,KACV,QAAK9B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,IAAEvD,EAAA,MAAK,OAAS+B,EAAA,MAAM,KACjB,OACV,IAAqB,CAArBiQ,EAAqB9I,EAAA,CAAZ,KAAM,EAAE,CAAA,cACP,IACX,CADWuJ,EAAA,MACRzQ,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,mCAELgQ,EAKW7L,EAAA,CALD,QAAQ,WAAY,SAAUpE,EAAA,KAAO,QAAOC,EAAA,SAC1C,OACV,IAAyB,CAAzBgQ,EAAyB8a,EAAA,CAAZ,KAAM,EAAE,CAAA,cACX,IACX,CADWra,EAAA,MACRzQ,EAAA,WAAW,EAAA,CAAA,oDAKND,EAAA,WAAX6I,IAAAH,EAaM,MAbNxD,GAaM,CAZL+K,EAGYc,EAAA,YAFF/Q,EAAA,oDAAAA,EAAA,cAAawB,IACrB,MAAOvB,EAAA,EAAC,UAAA,sBAAA,EACT,KAAK,oCACN2I,EAOM,MAPNzD,GAOM,CANL8K,EAEW7L,EAAA,CAFD,QAAQ,WAAY,wBAAOpE,EAAA,UAAS,gBAC7C,IAA0B,KAAvBC,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,UAELgQ,EAEW7L,EAAA,CAFD,QAAQ,QAAS,SAAUpE,EAAA,cAAc,KAAI,QAAaA,EAAA,KAAO,QAAOC,EAAA,mBACjF,IAAqC,KAAlCA,EAAA,EAAC,UAAA,iBAAA,CAAA,EAAA,CAAA,sEAQFD,EAAA,OAAO,cADd6P,EASkB4a,EAAA,OAPjB,GAAG,WACF,KAAMxqB,EAAA,EAAC,UAAA,UAAA,EACP,MAAO,IACG,OACV,IAA2B,CAA3BgQ,EAA2BqZ,EAAA,CAAZ,KAAM,EAAE,CAAA,cAExB,IAA6C,CAA7CrZ,EAA6C+a,EAAA,CAA7B,SAAUhrB,EAAA,OAAO,4DAGlCiQ,EA0BkBwa,EAAA,CA1BD,GAAG,WAAY,KAAMxqB,EAAA,EAAC,UAAA,UAAA,EAA0B,MAAO,IAC5D,OACV,IAA6B,CAA7BgQ,EAA6Bgb,EAAA,CAAZ,KAAM,EAAE,CAAA,cAE1B,IAqBM,CArBNriB,EAqBM,MArBNiG,GAqBM,CApBK7O,EAAA,OAAO,SAAS,QAA1B6I,IAAAH,EAQK,KARLoG,GAQK,EAPJjG,EAAA,EAAA,EAAAH,EAMK+H,EAAA,KAAAyY,GANWlpB,EAAA,OAAO,SAAZ/d,SAAXymB,EAMK,KAAA,CAN6B,IAAKzmB,GAAE,GAAI,MAAM,mBAClD2mB,EAGM,MAHN0H,GAGM,CAFLL,EAAsDmZ,EAAA,CAA3C,KAAMnnC,GAAE,UAAY,KAAM,GAAI,WAAA,qBACzC2mB,EAAkC,SAAA,KAAAmH,EAAvB9tB,GAAE,SAAS,EAAA,CAAA,IAEvB2mB,EAAmB,IAAA,KAAAmH,EAAb9tB,GAAE,IAAI,EAAA,CAAA,oBAGd4tB,EAIiB6R,GAAA,OAJO,KAAMzhB,EAAA,EAAC,UAAA,iBAAA,EAAiC,YAAaA,EAAA,EAAC,UAAA,+BAAA,IAClE,OACV,IAA6B,CAA7BgQ,EAA6Bgb,EAAA,CAAZ,KAAM,EAAE,CAAA,oCAG3BriB,EAKM,MALNmG,GAKM,CAJLkB,EAA0Fc,EAAA,YAArE/Q,EAAA,iDAAAA,EAAA,WAAUwB,IAAG,YAAavB,EAAA,EAAC,UAAA,gBAAA,EAA+B,KAAK,0CACpFgQ,EAEW7L,EAAA,CAFD,QAAQ,YAAa,SAAUpE,EAAA,WAAW,KAAI,QAAaA,EAAA,KAAO,QAAOC,EAAA,wBAClF,IAA0B,KAAvBA,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,0DAMRgQ,EAkCkBwa,EAAA,CAlCD,GAAG,UAAW,KAAMxqB,EAAA,EAAC,UAAA,SAAA,EAAyB,MAAO,IAC1D,OACV,IAAsB,CAAtBgQ,EAAsBib,GAAA,CAAZ,KAAM,EAAE,CAAA,cAEnB,IA6BM,CA7BNtiB,EA6BM,MA7BNoG,GA6BM,CA5BKhP,EAAA,OAAO,SAAWA,SAAO,QAAQ,QAA3C6I,IAAAH,EAsBK,KAtBLuG,GAsBK,EArBJpG,EAAA,EAAA,EAAAH,EAoBK+H,EAAA,KAAAyY,GApBYlpB,EAAA,OAAO,QAAbmpB,SAAXzgB,EAoBK,KAAA,CApB6B,IAAKygB,GAAG,GAAI,MAAM,mBACnDvgB,EAA2F,OAA3FsG,GAA2Fa,EAAtC9P,EAAA,UAAUkpB,GAAG,SAAS,EAAE,IAAI,EAAA,CAAA,EACjFvgB,EAiBM,MAjBNuG,GAiBM,CAhBLvG,EAGM,MAHNwG,GAGM,CAFLxG,EAAoD,gBAAzC3I,EAAA,UAAUkpB,GAAG,SAAS,EAAE,KAAK,EAAA,CAAA,EACxCvgB,EAAsE,OAAtEyG,GAAsEU,EAAtC9P,iBAAekpB,GAAG,SAAS,CAAA,EAAA,CAAA,IAE5DvgB,EAQM,MARN0G,GAQM,CAPW6Z,GAAG,WAAQ,cAA3BzgB,EAEW+H,EAAA,CAAA,IAAA,CAAA,EAAA,KADPxQ,EAAA,EAAC,UAAA,eAAA,CAAA,EAAA,CAAA,aAELyI,EAGW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CAFVR,EAAsDmZ,EAAA,CAA3C,KAAMD,GAAG,SAAW,KAAM,GAAI,WAAA,uBAAa,IACtDpZ,EAAGoZ,GAAG,QAAQ,EAAA,CAAA,UAGPA,GAAG,QAAZtgB,EAAA,EAAAH,EAEI,IAFJ6G,GAEIQ,EADAoZ,GAAG,MAAM,EAAA,CAAA,gCAKhBtZ,EAIiB6R,GAAA,OAJO,KAAMzhB,EAAA,EAAC,UAAA,gBAAA,IACnB,OACV,IAAsB,CAAtBgQ,EAAsBib,GAAA,CAAZ,KAAM,EAAE,CAAA,mDApKNjrB,EAAA,iBAAa,mBAC5B,IAAsC,CAAtCgQ,EAAsCoZ,EAAA,CAAzB,OAAQrpB,EAAA,OAAO,iJC2G1BhB,GAAU,CACd,KAAM,MACN,WAAY,CACX,UAAAoJ,GACA,aAAArH,GACA,gBAAAkC,GACA,mBAAAuE,GACA,oBAAAD,GACA,uBAAA5D,GACA,gBAAA8E,GACA,cAAA0iB,GACA,eAAAC,GACA,KAAAC,GACA,uBAAAC,GACA,eAAAC,GACA,aAAAvC,GACA,aAAAwC,GACA,SAAAC,GACA,cAAAC,GACA,SAAAC,GACA,qBAAAC,IAGD,OAAQ,CAEP,OAAA50B,GAAQ,kBAAmB,IAAM,OAAO,cAAc,IAAI,YAAY,kBAAkB,CAAC,CAAC,EAC1FA,GAAQ,mBAAqBlX,GAAM,OAAO,cAAc,IAAI,YAAY,oBAAqB,CAAE,OAAQA,CAAA,CAAG,CAAC,CAAC,EACrG,CAAE,MAAAitB,CAAI,CACd,EAEA,MAAO,CACN,MAAO,CACN,WAAY,GACZ,YAAa,KACb,WAAY,EACb,CACD,EAEA,SAAU,CACT,SAAU,CACT,OAAOA,EAAM,OACd,EAEA,cAAe,CACd,OAAOA,EAAM,QAAQ,kBAAoB,CAC1C,GAGD,SAAU,CACT,OAAO,iBAAiB,mBAAoB,KAAK,cAAc,EAC/D,OAAO,iBAAiB,oBAAqB,KAAK,eAAe,EAE7D,KAAK,OAAO,OAAO,IACtBA,EAAM,OAAO,OAAO,KAAK,OAAO,OAAO,EAAE,CAAC,CAE5C,EAEA,eAAgB,CACf,OAAO,oBAAoB,mBAAoB,KAAK,cAAc,EAClE,OAAO,oBAAoB,oBAAqB,KAAK,eAAe,CACrE,EAEA,QAAS,CACR,gBAAiB,CAChB,KAAK,YAAc,KACnB,KAAK,WAAa,GAClB,KAAK,WAAa,EACnB,EAEA,YAAa,CACZ,KAAK,YAAc,KACnB,KAAK,WAAa,GAClB,KAAK,WAAa,EACnB,EAEA,gBAAgB,EAAG,CAClB,KAAK,gBAAgB,EAAE,MAAM,CAC9B,EAEA,gBAAgBC,EAAS,CACxB,KAAK,YAAcA,EACnB,KAAK,WAAa,GAClB,KAAK,WAAa,GAClBD,EAAM,OAAO,IAAI,CAClB,EAEA,aAAc,CACb,KAAK,WAAa,GAClB,KAAK,YAAc,KACnB,KAAK,WAAa,EACnB,EAEA,WAAY,CACX,KAAK,YAAW,EAEhBA,EAAM,OAAO,IAAI,EACjB,OAAO,cAAc,IAAI,YAAY,iBAAiB,CAAC,CACxD,EAEF,6cApNC8C,EAwFYgc,GAAA,CAxFD,QAAQ,WAAS,WAC3B,IAoEkB,CApElB5b,EAoEkB6b,EAAA,KAAA,CAnEN,OACV,IAIqB,CAJrB7b,EAIqB8b,EAAA,CAJA,KAAM9tB,EAAA,EAAC,UAAA,aAAA,EAA6B,QAAOgC,EAAA,iBACpD,OACV,IAAmB,CAAnBgQ,EAAmB+b,EAAA,CAAZ,KAAM,EAAE,CAAA,+BAIjB/b,EAMsBgc,EAAA,CALpB,KAAMhuB,EAAA,EAAC,UAAA,UAAA,EACP,GAAI,CAAA,KAAA,IAAA,IACM,OACV,IAAqC,CAArCgS,EAAqCic,EAAA,CAAZ,KAAM,EAAE,CAAA,qBAK5BjsB,EAAA,QAAQ,WAAaA,EAAA,QAAQ,UADpC4P,EAUsBoc,EAAA,OARpB,KAAMhuB,EAAA,EAAC,UAAA,WAAA,EACP,GAAI,CAAA,KAAA,WAAA,OACM,OACV,IAA6B,CAA7BgS,EAA6Bkc,EAAA,CAAZ,KAAM,EAAE,CAAA,UAEVlsB,EAAA,aAAY,QAAO,eAClC,IAA4D,CAA5DgQ,EAA4Dmc,EAAA,CAA1C,MAAOnsB,EAAA,aAAc,KAAK,8EAI9CgQ,EAMsBgc,EAAA,CALpB,KAAMhuB,EAAA,EAAC,UAAA,MAAA,EACP,GAAI,CAAA,KAAA,MAAA,IACM,OACV,IAA2B,CAA3BgS,EAA2BqZ,EAAA,CAAZ,KAAM,EAAE,CAAA,qBAITrpB,EAAA,QAAQ,UAAxByI,EA8BW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CA7BVR,EAAqDoc,EAAA,CAA5B,KAAMpuB,EAAA,EAAC,UAAA,IAAA,oBAChCgS,EAIsBgc,EAAA,CAJA,KAAMhuB,EAAA,EAAC,UAAA,gBAAA,EAAgC,QAAOgC,EAAA,aACxD,OACV,IAAmC,CAAnCgQ,EAAmCqc,EAAA,CAAZ,KAAM,EAAE,CAAA,+BAGjCrc,EAIsBgc,EAAA,CAJA,KAAMhuB,EAAA,EAAC,UAAA,UAAA,EAA0B,GAAI,CAAA,KAAA,aAAA,IAC/C,OACV,IAA2B,CAA3BgS,EAA2Bsc,EAAA,CAAZ,KAAM,EAAE,CAAA,qBAGzBtc,EAIsBgc,EAAA,CAJA,KAAMhuB,EAAA,EAAC,UAAA,YAAA,EAA4B,GAAI,CAAA,KAAA,eAAA,IACjD,OACV,IAAuB,CAAvBgS,EAAuBuc,EAAA,CAAZ,KAAM,EAAE,CAAA,qBAGrBvc,EAOsBgc,EAAA,CAPA,KAAMhuB,EAAA,EAAC,UAAA,WAAA,EAA4B,GAAI,CAAA,KAAA,aAAA,OACjD,OACV,IAA4B,CAA5BgS,EAA4Bwc,EAAA,CAAZ,KAAM,EAAE,CAAA,UAETxsB,EAAA,QAAQ,eAAc,QAAO,eAC5C,IAAmD,CAAnDgQ,EAAmDmc,EAAA,CAAjC,MAAOnsB,EAAA,QAAQ,qEAGnCgQ,EAIsBgc,EAAA,CAJA,KAAMhuB,EAAA,EAAC,UAAA,SAAA,EAAyB,GAAI,CAAA,KAAA,YAAA,IAC9C,OACV,IAAuB,CAAvBgS,EAAuByc,EAAA,CAAZ,KAAM,EAAE,CAAA,4CAOxBzc,EAEe0c,GAAA,KAAA,WADd,IAAe,CAAf1c,EAAe2c,CAAA,UAIT7sB,EAAA,MAAM,gBADb8P,EAKwBgd,GAAA,CAHtB,IAAK9sB,EAAA,MAAM,WACX,QAAK7B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,IAAEzB,EAAA,MAAM,OAAM,IAAA,GACnB,OAAME,EAAA,gBACN,UAASA,EAAA,oDAGJD,EAAA,gBADP6P,EAKsBid,GAAA,OAHpB,QAAS9sB,EAAA,YACT,OAAQA,EAAA,WACR,QAAOC,EAAA,YACP,QAAOA,EAAA,6ICxENjB,GAAU,CACb,KAAM,eACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,6IAA6I,iDAXzJ8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,sCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCN9Bd,GAAY,CAChB,KAAM,aACN,WAAY,CACV,UAAAkE,GACA,gBAAAuF,GACA,SAAUlL,EACd,EACE,aAAc,GACd,MAAO,CAIL,QAAS,CACP,KAAM,OACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,OACN,QAAS,MACf,EAII,GAAI,CACF,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,IACf,EAII,KAAM,CACJ,KAAM,OACN,QAAS,GACf,EAII,OAAQ,CACN,KAAM,OACN,QAAS,EACf,EAII,SAAU,CACR,KAAM,OACN,QAAS,EACf,EAII,KAAM,CACJ,KAAM,QACN,QAAS,EACf,EAII,QAAS,CACP,KAAM,QACN,QAAS,EACf,EAII,OAAQ,CACN,KAAM,QACN,QAAS,MACf,EAII,cAAe,CACb,KAAM,OACN,QAAS,EACf,EAII,iBAAkB,CAChB,KAAM,OACN,QAAS,MACf,EAKI,cAAe,CACb,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,CACf,EAII,YAAa,CACX,KAAM,OACN,QAAS,GACT,UAAU7W,EAAO,CACf,MAAO,CAAC,cAAe,WAAY,EAAE,EAAE,QAAQA,CAAK,IAAM,EAC5D,CACN,EAII,oBAAqB,CACnB,KAAM,QACN,QAAS,EACf,EAII,UAAW,CACT,KAAM,QACN,QAAS,EACf,EAII,QAAS,CACP,KAAM,QACN,QAAS,EACf,CACA,EACE,MAAO,CACL,QACA,YACA,iBACJ,EACE,OAAQ,CACN,MAAO,CAAE,WAAAqc,EAAU,CACrB,EACA,MAAO,CACL,MAAO,CACL,QAAS,GACT,WAAY,GACZ,WAAY,GACZ,2BAA4B,GAC5B,SAAU,GACV,aAAc,GACd,WAAY,EAClB,CACE,EACA,SAAU,CACR,wBAAyB,CACvB,MAAO,CAAC,KAAK,4BAA8B,KAAK,mBAClD,EACA,aAAc,CACZ,OAAQ,KAAK,UAAY,IAAM,KAAK,cAAgB,CAAC,KAAK,4BAA8B,KAAK,oBAC/F,CACJ,EACE,MAAO,CACL,SAASmB,EAAU,CACb,CAACA,GAAY,CAAC,KAAK,UACrB,KAAK,2BAA6B,GAEtC,CACJ,EACE,SAAU,CACR,KAAK,WAAU,CACjB,EACA,SAAU,CACR,KAAK,WAAU,CACjB,EACA,QAAS,CAQP,QAAQ1E,EAAOtK,EAAU8R,EAAgB,CACvC,KAAK,MAAM,QAASxH,CAAK,EACrB,EAAAA,EAAM,SAAWA,EAAM,QAAUA,EAAM,SAAWA,EAAM,WAGxDwH,IACF9R,IAAWsK,CAAK,EAChBA,EAAM,eAAc,EAExB,EACA,aAAc,CACR,KAAK,aACP,KAAK,2BAA6B,IAEpC,KAAK,QAAU,EACjB,EACA,aAAc,CACZ,KAAK,2BAA6B,EACpC,EAIA,WAAWA,EAAO,CACZ,KAAK,UAGL,KAAK,MAAM,WAAW,GAAG,SAASA,EAAM,aAAa,GAGzD,KAAK,YAAW,CAClB,EAIA,kBAAmB,CACZ,KAAK,WACR,KAAK,2BAA6B,IAEpC,KAAK,QAAU,EACjB,EACA,iBAAkB,CAChB,KAAK,YAAW,EAChB,KAAK,QAAU,EACjB,EACA,wBAAwB,EAAG,CACzB,KAAK,SAAW,EAChB,KAAK,MAAM,kBAAmB,CAAC,CACjC,EAEA,YAAa,CACP,KAAK,aAAe,CAAC,CAAC,KAAK,OAAO,UACpC,KAAK,WAAa,CAAC,CAAC,KAAK,OAAO,SAE9B,KAAK,aAAe,CAAC,CAAC,KAAK,OAAO,UACpC,KAAK,WAAa,CAAC,CAAC,KAAK,OAAO,SAE9B,KAAK,eAAiB,CAAC,CAAC,KAAK,OAAO,YACtC,KAAK,aAAe,CAAC,CAAC,KAAK,OAAO,WAEhC,KAAK,aAAe,CAAC,CAAC,KAAK,OAAO,UACpC,KAAK,WAAa,CAAC,CAAC,KAAK,OAAO,QAEpC,CACJ,CACA,EACME,GAAa,CAAC,KAAM,aAAc,OAAQ,SAAU,MAAO,SAAS,EACpEC,GAAa,CAAE,MAAO,mBAAmB,EACzCC,GAAa,CAAE,MAAO,yBAAyB,EAC/CgE,GAAa,CAAE,MAAO,yBAAyB,EAC/CoB,GAAa,CAAE,MAAO,4BAA4B,EAClDC,GAAa,CACjB,IAAK,EACL,MAAO,4BACT,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,0BACT,EACMC,GAAa,CACjB,IAAK,EACL,MAAO,8BACT,EACM0J,GAAa,CACjB,IAAK,EACL,MAAO,kCACT,EACMC,GAAc,CAClB,IAAK,EACL,MAAO,kBACT,EACA,SAASjP,GAAY5B,EAAMC,EAAQ4B,EAAQC,EAAQC,EAAOC,EAAU,CAClE,MAAMmsB,EAA6BjsB,EAAiB,iBAAiB,EAC/DmD,EAAuBnD,EAAiB,WAAW,EACzD,OAAOhC,EAAS,EAAIC,EAAYmF,GAAwBzD,EAAO,GAAK,cAAgB,UAAU,EAAG2D,GAAeC,GAAmB,CAAE,GAAG5D,EAAO,IAAM,CAAE,OAAQ,GAAM,GAAIA,EAAO,GAAI,CAAE,CAAC,EAAG,CACxL,QAASvB,EAAQ,CAAC,CAAE,KAAMyI,EAAgB,SAAA9R,EAAU,SAAAH,KAAe,CACjE6L,EAAmB,KAAMiD,EAAW,CAClC,MAAO,CAAC,qBAAsB,CAC5B,6BAA8B/D,EAAO,QAAU/K,EAC/C,6BAA8BgL,EAAO,UAC/C,CAAS,CACT,EAAS9B,EAAK,MAAM,EAAG,CACf2C,EAAmB,MAAO,CACxB,IAAK,YACL,MAAOtC,EAAe,CAAC,YAAa,CAClC,qBAAsBwB,EAAO,QAC7B,sBAAuBA,EAAO,OAC1C,CAAW,CAAC,EACF,YAAa5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,iBAAmBA,EAAS,gBAAgB,GAAGxD,CAAI,GAChH,aAAcyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,kBAAoBA,EAAS,iBAAiB,GAAGxD,CAAI,EAC7H,EAAW,CACDmE,EAAmB,IAAK,CACtB,GAAId,EAAO,UAAY,OACvB,aAAcA,EAAO,cACrB,MAAO,oBACP,KAAMkH,GAAkBlH,EAAO,KAC/B,OAAQA,EAAO,SAAWA,EAAO,OAAS,IAAM,OAAS,UACzD,IAAKA,EAAO,OAAS,IAAM,OAAS,sBACpC,QAAS5B,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,aAAeA,EAAS,YAAY,GAAGxD,CAAI,GACpG,WAAYyB,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,YAAcA,EAAS,WAAW,GAAGxD,CAAI,GACrG,QAAU+E,GAAWvB,EAAS,QAAQuB,EAAQtM,EAAU8R,CAAc,EACtE,YAAa9I,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAKsD,GAAWvD,EAAK,MAAM,YAAauD,CAAM,GACjF,UAAWtD,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI8E,GAAS,IAAIvG,IAASwD,EAAS,aAAeA,EAAS,YAAY,GAAGxD,CAAI,EAAG,CAAC,KAAK,CAAC,EACrI,EAAa,CACDoE,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,OAAQ,EAAI,EAChD2C,EAAmB,MAAOjB,GAAY,CACpCiB,EAAmB,MAAOhB,GAAY,CACpCgB,EAAmB,MAAOgD,GAAY,CACpC/C,EAAW5C,EAAK,OAAQ,OAAQ,CAAA,EAAI,IAAM,CACxCuF,EAAgBjD,EAAgBT,EAAO,IAAI,EAAG,CAAC,CACnE,EAAqB,EAAI,CACzB,CAAiB,EACDE,EAAM,YAAc7B,IAAamC,EAAmB,MAAO,CACzD,IAAK,EACL,MAAOhC,EAAe,CAAC,6BAA8B,CAAE,mCAAoCwB,EAAO,KAAM,CAAC,CAC3H,EAAmB,CACDe,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACrE,EAAmB,CAAC,GAAKuC,EAAmB,GAAI,EAAI,CACpD,CAAe,EACDI,EAAmB,MAAOoE,GAAY,CACpC/E,EAAS,aAAe9B,EAAS,EAAImC,EAAmB,MAAO2E,GAAY,CACzEpE,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,IAAM,CAC3CuF,EAAgBjD,EAAgBT,EAAO,OAAO,EAAG,CAAC,CACtE,EAAqB,EAAI,CACzB,CAAiB,GAAKU,EAAmB,GAAI,EAAI,EACjCV,EAAO,gBAAkB,GAAKE,EAAM,aAAeW,IAAgBxC,IAAamC,EAAmB,MAAO4E,GAAY,CACpHpF,EAAO,gBAAkB,GAAK3B,EAAS,EAAIC,EAAYguB,EAA4B,CACjF,IAAK,EACL,MAAOtsB,EAAO,cACd,OAAQC,EAAO,WAAaD,EAAO,QAAU/K,EAAW,GACxD,MAAO,6BACP,KAAM+K,EAAO,WACjC,EAAqB,KAAM,EAAG,CAAC,QAAS,SAAU,MAAM,CAAC,GAAKU,EAAmB,GAAI,EAAI,EACvER,EAAM,cAAgB7B,EAAS,EAAImC,EAAmB,OAAQ6E,GAAY,CACxEtE,EAAW5C,EAAK,OAAQ,YAAa,CAAA,EAAI,OAAQ,EAAI,CACzE,CAAmB,GAAKuC,EAAmB,GAAI,EAAI,CACnD,EAAmB,GAAG,GAAI,CACR,CAACM,GAAOb,EAAS,sBAAsB,CACzD,CAAiB,EAAIO,EAAmB,GAAI,EAAI,CAChD,CAAe,CACf,CAAa,CACb,EAAa,GAAId,EAAU,EACjBzB,EAAK,OAAO,eAAe,GAAKE,EAAS,EAAImC,EAAmB,MAAOuO,GAAY,CACjFhO,EAAW5C,EAAK,OAAQ,gBAAiB,CAAA,EAAI,OAAQ,EAAI,CACrE,CAAW,GAAKuC,EAAmB,GAAI,EAAI,EACjCV,EAAO,qBAAuBE,EAAM,4BAA8B7B,EAAS,EAAImC,EAAmB,MAAO,CACvG,IAAK,EACL,MAAO,6BACP,WAAYpC,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAIzB,IAASwD,EAAS,YAAcA,EAAS,WAAW,GAAGxD,CAAI,EACjH,EAAa,CACD+B,EAAY8E,EAAsB,CAChC,IAAK,UACL,QAASvD,EAAO,WAAaD,EAAO,QAAU/K,EAAW,GACzD,UAAW+K,EAAO,UAClB,aAAcA,EAAO,iBACrB,gBAAiBG,EAAS,uBACxC,EAAeyM,GAAY,CACb,QAASnO,EAAQ,IAAM,CACrBsC,EAAW5C,EAAK,OAAQ,UAAW,CAAA,EAAI,OAAQ,EAAI,CACnE,CAAe,EACD,EAAG,CACjB,EAAe,CACDA,EAAK,OAAO,cAAc,EAAI,CAC5B,KAAM,OACN,GAAIM,EAAQ,IAAM,CAChBsC,EAAW5C,EAAK,OAAQ,eAAgB,CAAA,EAAI,OAAQ,EAAI,CAC1E,CAAiB,EACD,IAAK,GACrB,EAAkB,MAClB,CAAa,EAAG,KAAM,CAAC,UAAW,YAAa,aAAc,eAAe,CAAC,CAC7E,EAAa,EAAE,GAAKuC,EAAmB,GAAI,EAAI,EACrCvC,EAAK,OAAO,OAASE,EAAS,EAAImC,EAAmB,MAAOwO,GAAa,CACvEjO,EAAW5C,EAAK,OAAQ,QAAS,CAAA,EAAI,OAAQ,EAAI,CAC7D,CAAW,GAAKuC,EAAmB,GAAI,EAAI,CAC3C,EAAW,EAAE,CACb,EAAS,EAAE,CACX,CAAK,EACD,EAAG,CACP,EAAK,EAAE,CACP,CACA,MAAMusB,GAA6BnuB,GAAYI,GAAW,CAAC,CAAC,SAAUa,EAAW,EAAG,CAAC,YAAa,iBAAiB,CAAC,CAAC,EC7VhHb,GAAU,CACd,KAAM,kBACN,WAAY,CAAE,WAAA+tB,GAAY,WAAA9D,IAC1B,MAAO,CACN,QAAS,CAAE,KAAM,OAAQ,SAAU,IACnC,OAAQ,CAAE,KAAM,QAAS,QAAS,IAClC,aAAc,CAAE,KAAM,QAAS,QAAS,KAGzC,MAAO,CAAC,QAAQ,EAChB,SAAU,CACT,MAAO,CACN,OAAOlc,EAAM,UAAU,KAAK,QAAQ,MAAM,CAC3C,EAEA,YAAa,CACZ,OAAOA,EAAM,cAAc,KAAK,OAAO,CACxC,EAEA,WAAY,CACX,MAAO,sBAAsB,KAAK,KAAK,KAAK,oBAC7C,EAEA,OAAQ,CACP,OAAI,KAAK,aACD,GAAG,KAAK,QAAQ,WAAW,MAAM,KAAK,KAAK,KAAK,GAEjD,KAAK,KAAK,KAClB,EAEA,UAAW,CACV,MAAMigB,EAAQ1C,GAAY,KAAK,QAAQ,UAAW,KAAK,QAAQ,OAAO,EAChE2C,EAAOptC,GAAE,UAAW,SAAU,UAAW,KAAK,QAAQ,WAAW,EACvE,MAAO,GAAGmtC,CAAK,MAAMC,CAAI,EAC1B,GAGD,QAAS,CAAA,EAAEzsC,EAAC,EAAEX,EAAA,CACf,gFAhEC6oB,EAgBM,MAAA,CAhBD,MAAKkhB,EAAA,CAAC,MAAK,CAAA,cAA0B9pB,EAAA,MAAM,CAAA,CAAA,EAAK,MAAKypB,GAAA,CAAA,eAAoBtpB,EAAA,KAAK,KAAK,CAAA,IACvFgQ,EAcaid,EAAA,CAbX,KAAMjtB,EAAA,MACN,OAAQH,EAAA,OACR,oBAAqB,GACrB,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,SAAW6B,EAAA,QAAQ,EAAE,QACvB,OACV,IAAoG,CAApG8I,EAAoG,OAAA,CAA9F,MAAM,YAAa,qBAAqB3I,EAAA,SAAS,CAAA,EAAI,cAAY,MAAU,EAAA8P,EAAA9P,EAAA,KAAK,IAAI,EAAA,CAAA,IAEhF,UACV,IAAc,KAAXA,EAAA,QAAQ,EAAA,CAAA,UAEIA,EAAA,iBAAa,iBAC5B,IAAuC,CAAvCgQ,EAAuCoZ,EAAA,CAA1B,OAAQvpB,EAAA,QAAQ,0ICI5Bd,GAAU,CACd,KAAM,eACN,MAAO,CACN,KAAM,CAAE,KAAM,OAAQ,QAAS,CAAA,GAGhC,QAAS,CAAA,EAAExe,CAAA,CACZ,wDAtBCkoB,EASM,MAAA,CATD,MAAM,WAAY,aAAYzI,EAAA,EAAC,UAAA,UAAA,EAAyB,KAAK,kBACjEyI,EAOM+H,EAAA,KAAAyY,GAPWppB,EAAA,KAAL1e,QAAZsnB,EAOM,MAAA,CAPkB,IAAKtnB,EAAG,MAAM,8aC0DlC+rC,GAAa,CAAC,UAAW,YAAa,oBAAoB,EAE3DnuB,GAAU,CACd,KAAM,YACN,WAAY,CAAE,eAAAigB,GAAgB,SAAAmO,GAAU,gBAAAC,GAAiB,aAAAC,IACzD,OAAQ,CAEP,MAAO,CAAE,MAAAvgB,CAAI,CACd,EAEA,MAAO,CACN,MAAO,CACN,QAAS,GACT,UAAW,CAAA,EACX,UAAW,CAAA,CACZ,CACD,EAEA,SAAU,CACT,KAAK,OAAM,EACX,OAAO,iBAAiB,kBAAmB,KAAK,MAAM,CACvD,EAEA,eAAgB,CACf,OAAO,oBAAoB,kBAAmB,KAAK,MAAM,CAC1D,EAEA,QAAS,GACRvsB,EACA,MAAM,QAAS,CACd,KAAK,QAAU,GACf,GAAI,CACH,MAAM+sC,EAAU,MAAMrgB,GAAI,aAAa,CAAE,MAAO,SAAQ,CAAG,EAC3D,KAAK,UAAYqgB,EAAQ,OAAQztC,GAAMqtC,GAAW,SAASrtC,EAAE,MAAM,CAAC,EAChEitB,EAAM,QAAQ,OACjB,KAAK,UAAY,MAAMG,GAAI,aAAa,CAAE,MAAO,KAAM,OAAQ,YAAa,EAE9E,QAAA,CACC,KAAK,QAAU,EAChB,CACD,EAEF,EAvGMxN,GAAA,CAAA,MAAM,MAAM,EACRC,GAAA,CAAA,MAAM,cAAc,EACvBC,GAAA,CAAA,MAAM,aAAa,YAQU,MAAM,SAClCoF,GAAA,CAAA,MAAM,cAAc,YAcQ,MAAM,SAClCE,GAAA,CAAA,MAAM,cAAc,kHA1B3B,OAAA2D,EAAA,EAAAH,EAiDM,MAjDNhJ,GAiDM,CAhDLkJ,EAIS,SAJTjJ,GAIS,CAHRiJ,EAEK,KAFLhJ,GAEKmQ,EADD9P,EAAA,EAAC,UAAA,WAAA,CAAA,EAAA,CAAA,IAIcD,EAAA,aAApB6P,EAAyC2d,EAAA,OAAX,KAAM,UAEpC9kB,EAuCW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CAtCKzQ,EAAA,UAAU,QAAzB6I,IAAAH,EAaU,UAbV9E,GAaU,CAZTgF,EAEK,KAFL5D,GAEK+K,EADD9P,EAAA,EAAC,UAAA,wBAAA,CAAA,EAAA,CAAA,EAELgQ,EAQkBwd,GAAA,CARD,IAAI,KAAK,KAAK,MAAM,MAAM,mBAEzC,IAAsB,QADvB/kB,EAMkC+H,EAAA,KAAAyY,GALrBlpB,EAAA,UAALlgB,QADR+vB,EAMkC6d,EAAA,CAJhC,IAAK5tC,EAAE,GACP,QAASA,EACT,aAAc,GACd,OAAQigB,EAAA,MAAM,aAAejgB,EAAE,GAC/B,SAAMoe,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEzB,EAAA,MAAM,OAAOyB,CAAM,6DAIhBxB,EAAA,UAAU,QAAzB6I,IAAAH,EAaU,UAbVzD,GAaU,CAZT2D,EAEK,KAFL1D,GAEK6K,EADD9P,EAAA,gCAAkC,MACtC,CAAA,EACAgQ,EAQkBwd,GAAA,CARD,IAAI,KAAK,KAAK,MAAM,MAAM,mBAEzC,IAAsB,QADvB/kB,EAMkC+H,EAAA,KAAAyY,GALrBlpB,EAAA,UAALlgB,QADR+vB,EAMkC6d,EAAA,CAJhC,IAAK5tC,EAAE,GACP,QAASA,EACT,aAAc,GACd,OAAQigB,EAAA,MAAM,aAAejgB,EAAE,GAC/B,SAAMoe,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEzB,EAAA,MAAM,OAAOyB,CAAM,6DAKvB,CAAAxB,EAAA,UAAU,QAAM,CAAKA,EAAA,UAAU,YADvC6P,EAOiB6R,EAAA,OALf,KAAMzhB,EAAA,EAAC,UAAA,gBAAA,EACP,YAAaA,EAAA,EAAC,UAAA,uCAAA,IACJ,OACV,IAAuB,CAAvBgQ,EAAuB0d,EAAA,CAAZ,KAAM,EAAE,CAAA,oHC9BnB3uB,GAAU,CACb,KAAM,cACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,mQAAmQ,iDAX/Q8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,oCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCgI/Bd,GAAU,CACd,KAAM,aACN,WAAY,CAAE,SAAA+pB,GAAU,SAAA1qB,GAAU,eAAA4gB,GAAgB,QAAArR,GAAS,SAAAC,GAAQ,YAAEC,GAAa,QAAA8f,GAAS,OAAA/nB,GAAQ,aAAA2lB,GAAc,aAAA8B,EAAW,EAC5H,MAAO,CACN,MAAM1tC,EAAI,IAAI,KAAI,EAAG,YAAW,EAChC,MAAO,CACN,QAAS,GACT,KAAM,CAAA,EACN,OAAQ,GACR,KAAMA,EACN,MAAO,CAACA,EAAI,EAAGA,EAAGA,EAAI,CAAC,EACvB,QAAS,KACT,OAAQ,GACR,KAAM,CAAE,SAAU,EAAG,iBAAkB,EAAG,eAAgB,EAAC,CAC5D,CACD,EAEA,SAAU,CACT,UAAW,CACV,MAAM+C,EAAI,KAAK,OAAO,KAAI,EAAG,YAAW,EACxC,OAAKA,EAGE,KAAK,KAAK,OAAQ7C,GAAMA,EAAE,YAAY,YAAW,EAAG,SAAS6C,CAAC,GAAK7C,EAAE,YAAY,YAAW,EAAG,SAAS6C,CAAC,CAAC,EAFzG,KAAK,IAGd,GAGD,MAAO,CACN,MAAO,CACN,KAAK,OAAM,CACZ,GAGD,SAAU,CACT,KAAK,OAAM,CACZ,EAEA,QAAS,GACRnC,EACA,IAAI4C,EAAG,CACN,OAAOA,GAAM,KAA0B,IAAM,OAAOA,CAAC,EAAE,eAAe,OAAW,CAAE,sBAAuB,EAAG,CAC9G,EAEA,MAAM,QAAS,CACd,KAAK,QAAU,GACf,GAAI,CACH,KAAK,KAAO,MAAM8pB,GAAI,eAAe,KAAK,IAAI,CAC/C,MAAQ,CACPC,GAAU3sB,EAAE,UAAW,yBAAyB,CAAC,CAClD,QAAA,CACC,KAAK,QAAU,EAChB,CACD,EAEA,MAAM,KAAKqtC,EAAK,CACf,KAAK,QAAUA,EAEf,GAAI,CAEH,MAAMC,GADO,MAAM5gB,GAAI,iBAAiB2gB,EAAI,YAAa,KAAK,IAAI,GACjD,KAAMttC,GAAMA,EAAE,SAAWstC,EAAI,MAAM,EACpD,KAAK,KAAO,CACX,SAAUC,EAAMA,EAAI,SAAWD,EAAI,SACnC,iBAAkBC,EAAMA,EAAI,iBAAmB,EAC/C,eAAgB,GAChB,cAAeA,EAAMA,EAAI,GAAKD,EAAI,aACnC,CACD,MAAQ,CACP,KAAK,KAAO,CAAE,SAAUA,EAAI,SAAU,iBAAkB,EAAG,eAAgB,GAAI,cAAeA,EAAI,aAAY,CAC/G,CACD,EAEA,MAAM,MAAO,CACZ,KAAK,OAAS,GACd,GAAI,CACH,MAAMpgC,EAAO,CACZ,SAAU,OAAO,KAAK,KAAK,QAAQ,EACnC,iBAAkB,OAAO,KAAK,KAAK,gBAAgB,EACnD,eAAgB,KAAK,KAAK,cAC3B,EACI,KAAK,KAAK,cACb,MAAMyf,GAAI,kBAAkB,KAAK,KAAK,cAAezf,CAAI,EAEzD,MAAMyf,GAAI,kBAAkB,CAC3B,YAAa,KAAK,QAAQ,YAC1B,KAAM,KAAK,KACX,OAAQ,KAAK,QAAQ,OACrB,GAAGzf,EACH,EAEF6f,GAAY9sB,EAAE,UAAW,qBAAqB,CAAC,EAC/C,KAAK,QAAU,KACf,MAAM,KAAK,OAAM,CAClB,OAAS,EAAG,CACX2sB,GAAU,EAAE,UAAU,MAAM,SAAW3sB,EAAE,UAAW,8BAA8B,CAAC,CACpF,QAAA,CACC,KAAK,OAAS,EACf,CACD,EAEF,EA3OMkf,GAAA,CAAA,MAAM,MAAM,EACRC,GAAA,CAAA,MAAM,cAAc,EACvBC,GAAA,CAAA,MAAM,aAAa,EAGlBgE,GAAA,CAAA,MAAM,aAAa,YAmBb,MAAM,cACVqB,GAAA,CAAA,MAAM,KAAK,EAKXC,GAAA,CAAA,MAAM,KAAK,EAGXC,GAAA,CAAA,MAAM,KAAK,EAGX0J,GAAA,CAAA,MAAM,KAAK,EAGXC,GAAA,CAAA,MAAM,KAAK,EAGXwB,GAAA,CAAA,MAAM,KAAK,EASTvB,GAAA,CAAA,MAAM,KAAK,EAQPC,GAAA,CAAA,MAAM,MAAM,EAAOC,GAAA,CAAA,cAAY,MAAM,EAC3CC,GAAA,CAAA,MAAM,KAAK,EAGXC,GAAA,CAAA,MAAM,KAAK,EAGXC,GAAA,CAAA,MAAM,KAAK,EAGXC,GAAA,CAAA,MAAM,KAAK,EA+BbC,GAAA,CAAA,MAAM,MAAM,EAQXC,GAAA,CAAA,MAAM,eAAe,8MA5G7B,OAAA1G,EAAA,EAAAH,EAsHM,MAtHNhJ,GAsHM,CArHLkJ,EAmBS,SAnBTjJ,GAmBS,CAlBRiJ,EAEK,KAFLhJ,GAEKmQ,EADD9P,EAAA,EAAC,UAAA,UAAA,CAAA,EAAA,CAAA,EAEL2I,EAcM,MAdNhF,GAcM,CAbLqM,EAOcO,EAAA,YANJxQ,EAAA,4CAAAA,EAAA,OAAMwB,GACd,MAAOvB,EAAA,EAAC,UAAA,iBAAA,EACT,MAAM,iBACK,OACV,IAAsB,CAAtBgQ,EAAsB8d,EAAA,CAAZ,KAAM,EAAE,CAAA,mCAGpB9d,EAI+CC,EAAA,YAHrClQ,EAAA,0CAAAA,EAAA,KAAIwB,GACZ,QAASxB,EAAA,MACT,UAAW,GACX,sBAAqBC,EAAA,EAAC,UAAA,MAAA,8DAIND,EAAA,aAApB6P,EAAyC2d,EAAA,OAAX,KAAM,MAEpC3kB,IAAAH,EAyEM,MAzEN1D,GAyEM,CAxEL4D,EA+DQ,QA/DR3D,GA+DQ,CA9DP2D,EAqBQ,QAAA,KAAA,CApBPA,EAmBK,KAAA,KAAA,CAlBJA,EAAuC,YAAhC3I,EAAA,EAAC,UAAA,UAAA,CAAA,EAAA,CAAA,EACR2I,EAAmC,YAA5B3I,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,EACR2I,EAEK,KAFL1D,GAEK6K,EADD9P,EAAA,EAAC,UAAA,aAAA,CAAA,EAAA,CAAA,EAEL2I,EAEK,KAFLzD,GAEK4K,EADD9P,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,EAEL2I,EAEK,KAFLiG,GAEKkB,EADD9P,EAAA,EAAC,UAAA,SAAA,CAAA,EAAA,CAAA,EAEL2I,EAEK,KAFLkG,GAEKiB,EADD9P,EAAA,EAAC,UAAA,WAAA,CAAA,EAAA,CAAA,EAEL2I,EAEK,KAFL0H,GAEKP,EADD9P,EAAA,EAAC,UAAA,WAAA,CAAA,EAAA,CAAA,cAEL2I,EAAM,KAAA,KAAA,KAAA,EAAA,OAGRA,EAuCQ,QAAA,KAAA,QAtCPF,EAqCK+H,EAAA,KAAAyY,GArCajpB,EAAA,SAAP4tB,QAAXnlB,EAqCK,KAAA,CArCwB,IAAKmlB,EAAI,YAAW,IAASA,EAAI,SAC7DjlB,EAQK,KAAA,KAAA,CAPJA,EAMM,MANNmG,GAMM,CALLkB,EAIcmZ,EAAA,CAHZ,KAAMyE,EAAI,YACV,YAAaA,EAAI,YACjB,KAAM,GACP,WAAA,qCAAa,IAAC9d,EAAG8d,EAAI,WAAW,EAAA,CAAA,MAGnCjlB,EAAyG,KAAA,KAAA,CAArGA,EAAgG,OAAhGoG,GAAgG,CAA7EpG,EAAkD,OAAlDqG,GAAkDc,EAAtB8d,EAAI,QAAQ,EAAA,CAAA,IAAU,IAAC9d,EAAG8d,EAAI,SAAS,EAAA,CAAA,MAC1FjlB,EAEK,KAFLsG,GAEKa,EADD9P,MAAI4tB,EAAI,WAAW,CAAA,EAAA,CAAA,EAEvBjlB,EAEK,KAFLuG,GAEKY,EADD9P,MAAI4tB,EAAI,IAAI,CAAA,EAAA,CAAA,EAEhBjlB,EAEK,KAFLwG,GAEKW,EADD9P,MAAI4tB,EAAI,OAAO,CAAA,EAAA,CAAA,EAEnBjlB,EAEK,KAFLyG,GAEKU,EADD9P,MAAI4tB,EAAI,SAAS,CAAA,EAAA,CAAA,EAErBjlB,EAEK,KAAA,CAFD,MAAKghB,EAAA,CAAC,MAAK,CAAA,KAAiBiE,EAAI,WAAS,GAAA,EAAA,CAAA,KACzC5tB,EAAA,IAAI4tB,EAAI,SAAS,CAAA,EAAA,CAAA,EAErBjlB,EAUK,KAAA,KAAA,CARGilB,EAAI,0BADXhe,EAQWzL,EAAA,OANV,QAAQ,WACP,aAAYnE,EAAA,EAAC,UAAA,kBAAA,EACb,QAAKuB,GAAEvB,EAAA,KAAK4tB,CAAG,IACL,OACV,IAAqB,CAArB5d,EAAqB9I,EAAA,CAAZ,KAAM,EAAE,CAAA,+DAQflH,EAAA,SAAS,qBADjB4P,EAOiB6R,EAAA,OALf,KAAM1hB,EAAA,OAASC,EAAA,0BAA6BA,EAAA,EAAC,UAAA,iBAAA,EAC7C,YAAaD,SAASC,EAAA,oDAAwDD,EAAA,OAAM,EAAMC,EAAA,EAAC,UAAA,oEAAA,CAAA,KAAmFD,EAAA,IAAI,CAAA,IACxK,OACV,IAA2B,CAA3BiQ,EAA2Bsc,EAAA,CAAZ,KAAM,EAAE,CAAA,uCAKXvsB,EAAA,aAAf6P,EAkBUC,EAAA,OAlBe,KAAM7P,EAAA,EAAC,UAAA,kBAAA,EAAkC,uBAAOD,EAAA,QAAO,kBAC/E,IAgBM,CAhBN4I,EAgBM,MAhBN0G,GAgBM,CAfL1G,EAAyE,KAAA,KAAAmH,EAAlE/P,EAAA,QAAQ,WAAW,EAAG,MAAG+P,EAAG/P,EAAA,QAAQ,SAAS,EAAG,QAAMA,EAAA,IAAI,EAAA,CAAA,EACjE4I,EAA8C,eAApC3I,EAAA,EAAC,UAAA,WAAA,CAAA,EAAA,CAAA,EACXgQ,EAAqDO,EAAA,CAA/B,WAAAxQ,EAAA,KAAK,SAAL,sBAAA9B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAAxB,EAAA,KAAK,SAAQwB,GAAE,KAAK,iCAC1CoH,EAA4D,eAAlD3I,EAAA,EAAC,UAAA,yBAAA,CAAA,EAAA,CAAA,EACXgQ,EAA6DO,EAAA,CAAvC,WAAAxQ,EAAA,KAAK,iBAAL,sBAAA9B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAAxB,EAAA,KAAK,iBAAgBwB,GAAE,KAAK,iCAClDoH,EAAoD,eAA1C3I,EAAA,EAAC,UAAA,iBAAA,CAAA,EAAA,CAAA,EACXgQ,EAAwGO,EAAA,CAAlF,WAAAxQ,EAAA,KAAK,eAAL,sBAAA9B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAAxB,EAAA,KAAK,eAAcwB,GAAG,YAAavB,EAAA,EAAC,UAAA,6BAAA,wCAC1D2I,EAOM,MAPN2G,GAOM,CANLU,EAEW7L,EAAA,CAFD,QAAQ,WAAY,uBAAOpE,EAAA,QAAO,kBAC3C,IAA4B,KAAzBC,EAAA,EAAC,UAAA,QAAA,CAAA,EAAA,CAAA,UAELgQ,EAEW7L,EAAA,CAFD,QAAQ,UAAW,SAAUpE,EAAA,OAAS,QAAOC,EAAA,iBACtD,IAA0B,KAAvBA,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,qIC5DLjB,GAAU,CACd,KAAM,YACN,WAAY,CAAE,SAAAX,GAAU,uBAAA6M,GAAwB,SAAA2C,GAAU,SAAA8d,EAAO,EACjE,MAAO,CACN,MAAMqC,EAAM,IAAI,KAChB,MAAO,CACN,KAAM,IAAI,KAAKA,EAAI,YAAW,EAAI,EAAG,CAAC,EACtC,GAAI,IAAI,KAAKA,EAAI,YAAW,EAAI,GAAI,EAAE,EACtC,KAAMA,EAAI,YAAW,EACrB,MAAO,CAACA,EAAI,YAAW,EAAK,EAAGA,EAAI,cAAeA,EAAI,YAAW,EAAK,CAAC,CACxE,CACD,EAEA,SAAU,CACT,aAAc,CACb,OAAO9gB,GAAI,kBAAkBe,GAAM,KAAK,IAAI,EAAGA,GAAM,KAAK,EAAE,CAAC,CAC9D,EAEA,aAAc,CACb,OAAOf,GAAI,kBAAkB,KAAK,IAAI,CACvC,GAGD,QAAS,CAAA,EAAE1sB,CAAA,CACZ,EA7EMkf,GAAA,CAAA,MAAM,MAAM,EACRC,GAAA,CAAA,MAAM,cAAc,EACvBC,GAAA,CAAA,MAAM,aAAa,EAKnBgE,GAAA,CAAA,MAAM,OAAO,EACZoB,GAAA,CAAA,MAAM,MAAM,EAGXC,GAAA,CAAA,MAAM,WAAW,cAYlBE,GAAA,CAAA,MAAM,MAAM,EAGX0J,GAAA,CAAA,MAAM,WAAW,2HA1BzB,OAAAhG,EAAA,EAAAH,EAyCM,MAzCNhJ,GAyCM,CAxCLkJ,EAIS,SAJTjJ,GAIS,CAHRiJ,EAEK,KAFLhJ,GAEKmQ,EADD9P,EAAA,EAAC,UAAA,SAAA,CAAA,EAAA,CAAA,IAIN2I,EAiCM,MAjCNhF,GAiCM,CAhCLgF,EAaM,MAbN5D,GAaM,CAZL4D,EAAuC,YAAhC3I,EAAA,EAAC,UAAA,UAAA,CAAA,EAAA,CAAA,EACR2I,EAA4F,WAAtF3I,EAAA,EAAC,UAAA,iEAAA,CAAA,EAAA,CAAA,EACP2I,EAGM,MAHN3D,GAGM,CAFLgL,EAAmFM,EAAA,YAAlDvQ,EAAA,0CAAAA,EAAA,KAAIwB,GAAE,KAAK,OAAQ,MAAOvB,EAAA,EAAC,UAAA,MAAA,kCAC5DgQ,EAA+EM,EAAA,YAA9CvQ,EAAA,wCAAAA,EAAA,GAAEwB,GAAE,KAAK,OAAQ,MAAOvB,EAAA,EAAC,UAAA,IAAA,oCAE3D2I,EAKI,IAAA,CALA,KAAM3I,EAAA,YAAa,MAAM,OAC5BgQ,EAGW7L,EAAA,CAHD,QAAQ,SAAS,EAAA,CACf,OAAK,IAAuB,CAAvB6L,EAAuByc,EAAA,CAAZ,KAAM,EAAE,CAAA,cAAe,IAClD,CADkDhc,EAAA,MAC/CzQ,EAAA,EAAC,UAAA,uBAAA,CAAA,EAAA,CAAA,mBAKP2I,EAgBM,MAhBNzD,GAgBM,CAfLyD,EAAuC,YAAhC3I,EAAA,EAAC,UAAA,UAAA,CAAA,EAAA,CAAA,EACR2I,EAAiG,WAA3F3I,EAAA,EAAC,UAAA,sEAAA,CAAA,EAAA,CAAA,EACP2I,EAMM,MANNiG,GAMM,CALLoB,EAI+CC,EAAA,YAHrClQ,EAAA,0CAAAA,EAAA,KAAIwB,GACZ,QAASxB,EAAA,MACT,UAAW,GACX,sBAAqBC,EAAA,EAAC,UAAA,MAAA,4DAEzB2I,EAKI,IAAA,CALA,KAAM3I,EAAA,YAAa,MAAM,OAC5BgQ,EAGW7L,EAAA,CAHD,QAAQ,SAAS,EAAA,CACf,OAAK,IAAuB,CAAvB6L,EAAuByc,EAAA,CAAZ,KAAM,EAAE,CAAA,cAAe,IAClD,CADkDhc,EAAA,MAC/CzQ,EAAA,EAAC,UAAA,uBAAA,CAAA,EAAA,CAAA,sFCrBLjB,GAAU,CACb,KAAM,gBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,kGAAkG,iDAX9G8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,uCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCuC/Bd,GAAU,CACd,KAAM,aACN,MAAO,CACN,MAAO,CAAE,KAAM,OAAQ,QAAS,EAAC,EACjC,KAAM,CAAE,KAAM,MAAO,SAAU,EAAG,GAGnC,MAAO,CACN,MAAO,CAAE,OAAQ,GAAI,SAAU,EAAI,CACpC,EAEA,SAAU,CACT,eAAgB,CACf,MAAO,GAAI,KAAK,GAAK,KAAK,MAC3B,EAEA,OAAQ,CACP,OAAO,KAAK,KAAK,OAAO,CAAChf,EAAGsD,IAAMtD,EAAIsD,EAAE,MAAO,CAAC,CACjD,EAEA,UAAW,CACV,MAAM2qC,EAAQ,KAAK,OAAS,EAC5B,IAAI3L,EAAM,EACV,OAAO,KAAK,KAAK,OAAQh/B,GAAMA,EAAE,MAAQ,CAAC,EAAE,IAAKA,GAAM,CACtD,MAAM4qC,EAAO5qC,EAAE,MAAQ2qC,EAAS,IAC1B5iC,EAAO/H,EAAE,MAAQ2qC,EAAS,KAAK,cAC/BE,EAAM,CAAE,GAAG7qC,EAAG,IAAA4qC,EAAK,IAAA7iC,EAAK,OAAQi3B,CAAE,EACxC,OAAAA,GAAOj3B,EACA8iC,CACR,CAAC,CACF,GAGD,SAAU,CACT,GAAI,OAAO,WAAW,kCAAkC,EAAE,QAAS,CAClE,KAAK,SAAW,GAChB,MACD,CACA,sBAAsB,IAAM,CAC3B,KAAK,SAAW,EACjB,CAAC,CACF,EAEA,QAAS,GACR3tC,EACA,IAAI4C,EAAG,CAAE,OAAO,OAAOA,CAAC,EAAE,eAAe,OAAW,CAAE,sBAAuB,CAAA,CAAG,CAAE,EAEpF,EA5FSsc,GAAA,CAAA,MAAM,OAAO,YACK,MAAM,gBAG1BE,GAAA,CAAA,MAAM,aAAa,0FAwBhB,EAAE,KAAK,EAAE,KAAK,MAAM,oBACpB,EAAE,KAAK,EAAE,KAAK,MAAM,eAEvBiP,GAAA,CAAA,MAAM,eAAe,EAGjBC,GAAA,CAAA,MAAM,cAAc,EACpBwB,GAAA,CAAA,MAAM,cAAc,2BAnC9B,OAAAzH,EAAA,EAAAH,EAuCS,SAvCThJ,GAuCS,CAtCUI,EAAA,WAAlB4I,EAEa,aAFb/I,GAEaoQ,EADTjQ,EAAA,KAAK,EAAA,CAAA,YAET8I,EAkCM,MAlCNhJ,GAkCM,MAjCL8I,EAyBM,MAAA,CAxBL,QAAQ,cACR,MAAM,aACN,KAAK,MACJ,aAAY5I,EAAA,QACb8I,EAIe,SAAA,CAHd,MAAM,eACN,GAAG,KACH,GAAG,KACF,EAAG5I,EAAA,oBACL6I,EAAA,EAAA,EAAAH,EAYS+H,EAAA,KAAAyY,GAXWjpB,EAAA,SAAQ,CAAnBkuB,EAAK/sC,SADdsnB,EAYS,SAAA,CAVP,IAAKtnB,EACN,MAAM,aACN,GAAG,KACH,GAAG,KACF,EAAG4e,EAAA,OACH,OAAQmuB,EAAI,MACZ,sBAAqBnuB,EAAA,SAAWmuB,EAAI,SAAWluB,EAAA,aAAa,GAC5D,oBAAiB,CAAGkuB,EAAI,OACzB,UAAU,sBACVvlB,EAAoD,QAAA,KAAAmH,EAA1Coe,EAAI,KAAK,EAAG,KAAEpe,EAAG9P,EAAA,IAAIkuB,EAAI,KAAK,CAAA,EAAA,CAAA,iBAEzCvlB,EAAgE,OAAhE1D,GAAgE6K,EAApB9P,EAAA,IAAIA,EAAA,KAAK,CAAA,EAAA,CAAA,EACrD2I,EAAyE,OAAzEzD,GAAyE4K,EAA9B9P,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,UAE7C2I,EAMK,KANLiG,GAMK,EALJhG,EAAA,EAAA,EAAAH,EAIK+H,EAAA,KAAAyY,GAJkBjpB,EAAA,SAAQ,CAAnBkuB,EAAK/sC,SAAjBsnB,EAIK,KAAA,CAJ6B,IAAKtnB,GAAC,CACvCwnB,EAAiE,OAAA,CAA3D,MAAM,gBAAiB,MAAK2gB,GAAA,CAAA,WAAgB4E,EAAI,KAAK,CAAA,WAC3DvlB,EAAiD,OAAjDkG,GAAiDiB,EAAnBoe,EAAI,KAAK,EAAA,CAAA,EACvCvlB,EAAmF,OAAnF0H,GAAmFP,EAArD9P,MAAIkuB,EAAI,KAAK,CAAA,EAAI,MAAGpe,EAAG,KAAK,MAAMoe,EAAI,GAAG,GAAI,IAAC,CAAA,iFCG5EnvB,GAAU,CACd,KAAM,YACN,MAAO,CACN,MAAO,CAAE,KAAM,OAAQ,QAAS,EAAC,EACjC,KAAM,CAAE,KAAM,MAAO,SAAU,EAAG,GAGnC,MAAO,CACN,MAAO,CAAE,MAAO,IAAK,OAAQ,IAAK,KAAM,GAAI,OAAQ,GAAI,UAAW,EAAC,CACrE,EAEA,SAAU,CACT,KAAM,CAAE,OAAO,KAAK,IAAI,EAAG,GAAG,KAAK,KAAK,IAAK1b,GAAMA,EAAE,KAAK,CAAC,CAAE,EAC7D,QAAS,CACR,MAAMzD,EAAI,KAAK,KAAK,OACduuC,EAAU,KAAK,MAAQ,KAAK,KAAO,EACnCC,EAAU,KAAK,OAAS,KAAK,OAAS,KAAK,UACjD,OAAO,KAAK,KAAK,IAAI,CAAC/qC,EAAGlC,KAAO,CAC/B,EAAG,KAAK,MAAQvB,GAAK,EAAIuuC,EAAU,EAAKA,EAAUhtC,GAAMvB,EAAI,IAC5D,EAAG,KAAK,OAASwuC,GAAW,EAAI/qC,EAAE,MAAQ,KAAK,KAC/C,MAAOA,EAAE,MACT,MAAOA,EAAE,KACV,EAAE,CACH,EAEA,UAAW,CACV,OAAO,KAAK,OAAO,IAAI,CAACrD,EAAGmB,IAAM,GAAGA,IAAM,EAAI,IAAM,GAAG,GAAGnB,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAIA,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG,CACvG,EAEA,UAAW,CACV,GAAI,CAAC,KAAK,OAAO,OAChB,MAAO,GAER,MAAM+F,EAAO,KAAK,OAAS,KAAK,UAC1BuzB,EAAQ,KAAK,OAAO,CAAC,EACrBxoB,EAAO,KAAK,OAAO,KAAK,OAAO,OAAS,CAAC,EAC/C,MAAO,IAAIwoB,EAAM,CAAC,IAAIvzB,CAAI,IAAM,KAAK,OAAO,IAAK/F,GAAM,IAAIA,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAIA,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG,EAAI,KAAK8Q,EAAK,CAAC,IAAI/K,CAAI,IAC/H,EAEA,WAAY,CACX,MAAMqoC,EAAU,KAAK,OAAS,KAAK,OAAS,KAAK,UACjD,MAAO,CAAC,EAAG,GAAK,CAAC,EAAE,IAAKhuC,GAAM,KAAK,OAASguC,EAAUhuC,CAAC,CACxD,GAGD,QAAS,CACR,UAAUe,EAAG,CAEZ,MAAMuoC,EAAO,KAAK,KAAK,OAAS,EAAI,EAAI,EACxC,OAAOvoC,EAAIuoC,IAAS,CACrB,EAEF,EA1FSjqB,GAAA,CAAA,MAAM,MAAM,YACM,MAAM,2IADhC,OAAAmJ,EAAA,EAAAH,EAkCS,SAlCThJ,GAkCS,CAjCUI,EAAA,WAAlB4I,EAEa,aAFb/I,GAEaoQ,EADTjQ,EAAA,KAAK,EAAA,CAAA,iBAET4I,EA6BM,MAAA,CA5BJ,QAAO,OAAS1I,EAAA,KAAK,IAAIA,EAAA,MAAM,GAChC,MAAM,YACN,KAAK,MACJ,aAAYF,EAAA,MACb,oBAAoB,UACpB+I,EAAA,EAAA,EAAAH,EAOW+H,EAAA,KAAAyY,GANOjpB,EAAA,UAAS,CAAlB/f,EAAGkB,SADZsnB,EAOW,OAAA,CALT,QAAWtnB,EACZ,MAAM,aACL,GAAI4e,EAAA,KACJ,GAAIA,EAAA,MAAQA,EAAA,KACZ,GAAI9f,EACJ,GAAIA,sBACN0oB,EAAyC,OAAA,CAAnC,MAAM,aAAc,EAAG3I,EAAA,qBAC7B2I,EAAsD,OAAA,CAAhD,IAAI,OAAO,MAAM,eAAgB,EAAG3I,EAAA,sBAC1C4I,EAAA,EAAA,EAAAH,EAYI+H,EAAA,KAAAyY,GAZgBjpB,EAAA,OAAM,CAAfhgB,EAAGmB,SAAdsnB,EAYI,IAAA,CAZyB,QAAWtnB,IACvCwnB,EAIS,SAAA,CAHR,MAAM,YACL,GAAI3oB,EAAE,EACN,GAAIA,EAAE,EACP,EAAE,gBAEIggB,EAAA,UAAU7e,CAAC,OADlBsnB,EAK0C,OAAA,OAHzC,MAAM,eACL,EAAGzoB,EAAE,EACL,EAAG+f,EAAA,OAAM,EACV,cAAY,QAAY,EAAA+P,EAAA9vB,EAAE,KAAK,EAAA,EAAAklB,EAAA,+FC8B/BnG,GAAU,CACd,KAAM,eACN,WAAY,CAAE,uBAAAkM,GAAwB,eAAA+T,GAAgB,UAAAqP,GAAW,UAAAC,GAAW,WAAAC,GAAY,aAAAlB,IACxF,MAAO,CACN,MAAMU,EAAM,IAAI,KAChB,MAAO,CACN,QAAS,GACT,KAAM,IAAI,KAAKA,EAAI,YAAW,EAAI,EAAG,CAAC,EACtC,GAAI,IAAI,KAAKA,EAAI,YAAW,EAAI,GAAI,EAAE,EACtC,OAAQ,CAAE,QAAS,CAAA,EAAI,OAAQ,CAAA,EAAI,MAAO,EAC3C,CACD,EAEA,SAAU,CACT,WAAY,CACX,OAAO,OAAO,QAAQ,KAAK,OAAO,OAAO,EAAE,IAAI,CAAC,CAACS,EAAO/nC,CAAK,KAAO,CACnE,MAAO+nC,EAAM,MAAM,CAAC,EACpB,MAAA/nC,CACD,EAAE,CACH,EAEA,UAAW,CACV,OAAO,KAAK,OAAO,OAAO,IAAK0sB,IAAQ,CACtC,MAAO,GAAGA,EAAG,UAAY,EAAE,IAAIA,EAAG,SAAS,GAAG,KAAI,EAClD,MAAOA,EAAG,KACV,MAAOA,EAAG,SACX,EAAE,CACH,EAEA,aAAc,CACb,MAAMsb,EAAS,OAAO,KAAK,KAAK,OAAO,OAAO,EAAE,OAChD,OAAOA,EAAS,KAAK,OAAO,MAAQA,EAAS,CAC9C,GAGD,MAAO,CACN,MAAO,CAAE,KAAK,OAAM,CAAG,EACvB,IAAK,CAAE,KAAK,OAAM,CAAG,GAGtB,SAAU,CACT,KAAK,OAAM,CACZ,EAEA,QAAS,GACRluC,EACA,IAAI4C,EAAG,CAAE,OAAO,OAAOA,CAAC,EAAE,eAAe,OAAW,CAAE,sBAAuB,CAAA,CAAG,CAAE,EAClF,MAAM,QAAS,CACd,KAAK,QAAU,GACf,GAAI,CACH,KAAK,OAAS,MAAM8pB,GAAI,aAAae,GAAM,KAAK,IAAI,EAAGA,GAAM,KAAK,EAAE,CAAC,CACtE,QAAA,CACC,KAAK,QAAU,EAChB,CACD,EAEF,EAvHMvO,GAAA,CAAA,MAAM,MAAM,EACRC,GAAA,CAAA,MAAM,cAAc,EACvBC,GAAA,CAAA,MAAM,aAAa,EAGlBgE,GAAA,CAAA,MAAM,OAAO,EASboB,GAAA,CAAA,MAAM,OAAO,EACZC,GAAA,CAAA,MAAM,MAAM,EAEVC,GAAA,CAAA,MAAM,aAAa,EACnBC,GAAA,CAAA,MAAM,aAAa,EAErB0J,GAAA,CAAA,MAAM,MAAM,EAEVC,GAAA,CAAA,MAAM,aAAa,EACnBwB,GAAA,CAAA,MAAM,aAAa,EAErBvB,GAAA,CAAA,MAAM,MAAM,EAEVC,GAAA,CAAA,MAAM,aAAa,EACnBC,GAAA,CAAA,MAAM,aAAa,EAarBC,GAAA,CAAA,MAAM,OAAO,EAGbC,GAAA,CAAA,MAAM,OAAO,6JA5CrB,OAAAtG,EAAA,EAAAH,EAiDM,MAjDNhJ,GAiDM,CAhDLkJ,EAQS,SARTjJ,GAQS,CAPRiJ,EAEK,KAFLhJ,GAEKmQ,EADD9P,EAAA,EAAC,UAAA,YAAA,CAAA,EAAA,CAAA,EAEL2I,EAGM,MAHNhF,GAGM,CAFLqM,EAAmFM,EAAA,YAAlDvQ,EAAA,0CAAAA,EAAA,KAAIwB,GAAE,KAAK,OAAQ,MAAOvB,EAAA,EAAC,UAAA,MAAA,kCAC5DgQ,EAA+EM,EAAA,YAA9CvQ,EAAA,wCAAAA,EAAA,GAAEwB,GAAE,KAAK,OAAQ,MAAOvB,EAAA,EAAC,UAAA,IAAA,sCAIxCD,EAAA,aAApB6P,EAAyC2d,EAAA,OAAX,KAAM,UAEpC9kB,EAmCW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CAlCV7H,EAgBM,MAhBN5D,GAgBM,CAfL4D,EAIM,MAJN3D,GAIM,aAHL2D,EAAsD,OAAA,CAAhD,MAAM,aAAa,cAAY,QAAO,MAAG,EAAA,GAC/CA,EAAwD,OAAxD1D,GAAwD6K,EAA3B9P,MAAID,EAAA,OAAO,KAAK,CAAA,EAAA,CAAA,EAC7C4I,EAA0E,OAA1EzD,GAA0E4K,EAA7C9P,EAAA,EAAC,UAAA,qBAAA,CAAA,EAAA,CAAA,IAE/B2I,EAIM,MAJNiG,GAIM,aAHLjG,EAAqD,OAAA,CAA/C,MAAM,aAAa,cAAY,QAAO,KAAE,EAAA,GAC9CA,EAAuD,OAAvDkG,GAAuDiB,EAA1B9P,EAAA,IAAIA,EAAA,WAAW,CAAA,EAAA,CAAA,EAC5C2I,EAA0E,OAA1E0H,GAA0EP,EAA7C9P,EAAA,EAAC,UAAA,qBAAA,CAAA,EAAA,CAAA,IAE/B2I,EAIM,MAJNmG,GAIM,aAHLnG,EAAsD,OAAA,CAAhD,MAAM,aAAa,cAAY,QAAO,MAAG,EAAA,GAC/CA,EAA2D,OAA3DoG,GAA2De,EAA9B/P,SAAO,OAAO,MAAM,EAAA,CAAA,EACjD4I,EAAuE,OAAvEqG,GAAuEc,EAA1C9P,EAAA,EAAC,UAAA,kBAAA,CAAA,EAAA,CAAA,MAKzBD,EAAA,OAAO,QAAK,OADnB6P,EAOiB6R,EAAA,OALf,KAAMzhB,EAAA,EAAC,UAAA,iCAAA,EACP,YAAaA,EAAA,EAAC,UAAA,sEAAA,IACJ,OACV,IAAwB,CAAxBgQ,EAAwB0e,EAAA,CAAZ,KAAM,EAAE,CAAA,yCAGtBjmB,EAOW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CANV7H,EAEM,MAFNsG,GAEM,CADLe,EAA+E2e,EAAA,CAAnE,MAAO3uB,EAAA,EAAC,UAAA,wBAAA,EAAwC,KAAMA,EAAA,sCAEnE2I,EAEM,MAFNuG,GAEM,CADLc,EAA2E4e,EAAA,CAA9D,MAAO5uB,EAAA,EAAC,UAAA,oBAAA,EAAoC,KAAMA,EAAA,kHC9B/DjB,GAAU,CACb,KAAM,oBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,kHAAkH,iDAX9H8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,2CACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,kBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,+DAA+D,iDAX3E8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,yCACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCO/Bd,GAAU,CACb,KAAM,mBACN,MAAO,CAAC,OAAO,EACf,MAAO,CACL,MAAO,CACL,KAAM,QAER,UAAW,CACT,KAAM,OACN,QAAS,gBAEX,KAAM,CACJ,KAAM,OACN,QAAS,EACX,CACF,CACF,+DAxBYY,GAAA,CAAA,EAAE,6DAA6D,iDAXzE8I,EAeO,OAfPC,EAAc1K,EAAA,OAAM,CACb,cAAa6B,EAAA,MAAK,KAAA,OAClB,aAAYA,EAAA,MACb,MAAM,0CACN,KAAK,MACJ,QAAK5B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEvD,EAAA,MAAK,QAAUuD,CAAM,WACjCkH,EAQM,MAAA,CARA,KAAM5I,EAAA,UACP,MAAM,4BACL,MAAOA,EAAA,KACP,OAAQA,EAAA,KACT,QAAQ,cACX8I,EAEO,OAFPhJ,GAEO,CADQE,EAAA,OAAb+I,EAAA,EAAAH,EAAuC,aAAhB5I,EAAA,KAAK,EAAA,CAAA,6DCiG9BgvB,GAAS,MAEV9vB,GAAU,CACd,KAAM,eACN,WAAY,CAAE,SAAA+pB,GAAU,SAAA1qB,GAAU,eAAA4gB,GAAgB,YAAA8P,GAAa,aAAAC,GAAc,cAAAC,GAAe,aAAA3B,EAAW,EACvG,MAAO,CACN,MAAO,CAAE,KAAM,OAAQ,QAAS,SAGjC,MAAO,CACN,MAAMU,EAAM,IAAI,KAChB,MAAO,CACN,KAAMA,EAAI,YAAW,EACrB,MAAOA,EAAI,SAAQ,EACnB,OAAQ,CAAA,EACR,SAAU,GACV,QAAS,EACV,CACD,EAEA,SAAU,CACT,UAAW,CACV,OAAO,IAAI,KAAK,KAAK,KAAM,KAAK,MAAO,CAAC,CACzC,EAEA,SAAU,CACT,OAAO,IAAI,KAAK,KAAK,KAAM,KAAK,MAAQ,EAAG,CAAC,CAC7C,EAEA,YAAa,CACZ,OAAO,KAAK,SAAS,mBAAmB,OAAW,CAAE,MAAO,OAAQ,KAAM,UAAW,CACtF,EAEA,MAAO,CACN,MAAMkB,EAAM,CAAA,EACZ,QAAS9tC,EAAI,EAAGA,GAAK,KAAK,QAAQ,UAAWA,IAAK,CACjD,MAAM+tC,EAAK,IAAI,KAAK,KAAK,KAAM,KAAK,MAAO/tC,CAAC,EACtCguC,EAAMD,EAAG,OAAM,EACrBD,EAAI,KAAK,CAAE,IAAK9tC,EAAG,MAAOA,EAAI,EAAG,QAASguC,IAAQ,GAAKA,IAAQ,EAAG,IAAKnhB,GAAMkhB,CAAE,EAAG,CACnF,CACA,OAAOD,CACR,EAEA,YAAa,CACZ,MAAMlB,EAAM,IAAI,KAChB,OAAIA,EAAI,YAAW,IAAO,KAAK,MAAQA,EAAI,SAAQ,IAAO,KAAK,MACvDA,EAAI,UAAY,EAEjB,EACR,EAEA,MAAO,CACN,MAAMqB,EAAQ,CAAA,EACRC,EAAa,KAAK,SAClBC,EAAY,KAAK,QAAQ,QAAO,EAAK,EAC3C,UAAWpG,KAAM,KAAK,OAAQ,CACxBkG,EAAMlG,EAAG,WAAW,IACxBkG,EAAMlG,EAAG,WAAW,EAAI,CAAE,IAAKA,EAAG,YAAa,KAAMA,EAAG,YAAa,SAAU,CAAA,CAAC,GAEjF,MAAM9K,EAAW,KAAK,IAAI,EAAG,KAAK,OAAO,IAAI,KAAK8K,EAAG,MAAQ,WAAW,EAAImG,GAAcR,EAAM,CAAC,EAC3FxQ,EAAS,KAAK,IAAIiR,EAAW,KAAK,OAAO,IAAI,KAAKpG,EAAG,IAAM,WAAW,EAAImG,GAAcR,EAAM,CAAC,EACrG,GAAIxQ,EAAS,GAAKD,EAAWkR,EAC5B,SAED,MAAMtiB,EAAOF,EAAM,UAAUoc,EAAG,MAAM,EACtCkG,EAAMlG,EAAG,WAAW,EAAE,SAAS,KAAK,CACnC,KAAM9K,EAAW,KAAK,SAAW,EACjC,OAAQC,EAASD,EAAW,GAAK,KAAK,SAAW,EACjD,MAAOpR,EAAK,MACZ,KAAMA,EAAK,KACX,QAASkc,EAAG,SAAW,WACvB,MAAO,GAAGlc,EAAK,KAAK,MAAMqd,GAAYnB,EAAG,MAAOA,EAAG,GAAG,CAAC,GAAGA,EAAG,SAAW,WAAa,KAAOA,EAAG,OAAS,IAAM,EAAE,GAChH,CACF,CACA,OAAO,OAAO,OAAOkG,CAAK,EAAE,KAAK,CAACtvC,EAAGO,IAAMP,EAAE,KAAK,cAAcO,EAAE,IAAI,CAAC,CACxE,EAEA,aAAc,CACb,MAAMkvC,EAAM,IAAI,IAAI,KAAK,OAAO,IAAKjvC,GAAMA,EAAE,MAAM,CAAC,EACpD,OAAOwsB,EAAM,WAAW,OAAQ0iB,GAAOD,EAAI,IAAIC,EAAG,EAAE,CAAC,CACtD,GAGD,MAAO,CACN,OAAQ,CACP,KAAK,KAAI,CACV,GAGD,SAAU,CACT,KAAK,KAAI,CACV,EAEA,QAAS,GACRjvC,EACA,MAAM,MAAO,CACZ,KAAK,QAAU,GACf,GAAI,CACH,KAAK,QAAU,MAAM0sB,GAAI,YAAYe,GAAM,KAAK,QAAQ,EAAGA,GAAM,KAAK,OAAO,EAAG,KAAK,KAAK,GAAG,MAC9F,MAAQ,CACP,KAAK,OAAS,CAAA,CACf,QAAA,CACC,KAAK,QAAU,EAChB,CACD,EAEA,MAAM9lB,EAAO,CACZ,IAAI5E,EAAI,KAAK,MAAQ4E,EACjBvI,EAAI,KAAK,KACT2D,EAAI,IACPA,EAAI,GACJ3D,KAEG2D,EAAI,KACPA,EAAI,EACJ3D,KAED,KAAK,MAAQ2D,EACb,KAAK,KAAO3D,EACZ,KAAK,KAAI,CACV,EAEA,SAAU,CACT,MAAMouC,EAAM,IAAI,KAChB,KAAK,KAAOA,EAAI,YAAW,EAC3B,KAAK,MAAQA,EAAI,SAAQ,EACzB,KAAK,KAAI,CACV,EAEF,EAvOMtuB,GAAA,CAAA,MAAM,OAAO,EACZC,GAAA,CAAA,MAAM,gBAAgB,EAMlBC,GAAA,CAAA,MAAM,cAAc,YAajB,MAAM,iBAGXoF,GAAA,CAAA,MAAM,6BAA6B,EAClCC,GAAA,CAAA,MAAM,+BAA+B,EAGrCC,GAAA,CAAA,MAAM,cAAc,EAYpBC,GAAA,CAAA,MAAM,aAAa,EAMjB0J,GAAA,CAAA,MAAM,kBAAkB,EAE1BC,GAAA,CAAA,MAAM,cAAc,mBAejB,MAAM,mBAAmB,cAAY,QAgB3CE,GAAA,CAAA,MAAM,QAAQ,EAIZC,GAAA,CAAA,MAAM,kCAAkC,uKAlFhD,OAAApG,EAAA,EAAAH,EAsFM,MAtFNhJ,GAsFM,CArFLkJ,EAeM,MAfNjJ,GAeM,CAdLsQ,EAIW7L,EAAA,CAJD,QAAQ,WAAY,aAAYnE,EAAA,EAAC,UAAA,gBAAA,EAAgC,uBAAOA,EAAA,MAAK,EAAA,KAC3E,OACV,IAA0B,CAA1BgQ,EAA0Byf,EAAA,CAAZ,KAAM,EAAE,CAAA,2BAGxB9mB,EAAsD,SAAtDhJ,GAAsDmQ,EAAtB9P,EAAA,UAAU,EAAA,CAAA,EAC1CgQ,EAIW7L,EAAA,CAJD,QAAQ,WAAY,aAAYnE,EAAA,EAAC,UAAA,YAAA,EAA4B,uBAAOA,EAAA,MAAK,CAAA,KACvE,OACV,IAA2B,CAA3BgQ,EAA2B0f,EAAA,CAAZ,KAAM,EAAE,CAAA,2BAGzB1f,EAEW7L,EAAA,CAFD,QAAQ,WAAY,QAAOnE,EAAA,oBACpC,IAA2B,KAAxBA,EAAA,EAAC,UAAA,OAAA,CAAA,EAAA,CAAA,0BAIcD,EAAA,aAApB6P,EAAgE2d,EAAA,OAAlC,KAAM,EAAG,MAAM,qBAE7C3kB,IAAAH,EAwDM,MAxDN9E,GAwDM,CAvDLgF,EA6CM,MAAA,CA7CD,MAAM,cAAe,MAAK2gB,GAAA,CAAA,UAAevpB,EAAA,SAAQ,KAAA,SAAmBC,EAAA,KAAK,MAAM,CAAA,IAEnF2I,EAYM,MAZN5D,GAYM,CAXL4D,EAEM,MAFN3D,GAEM8K,EADF9P,EAAA,EAAC,UAAA,QAAA,CAAA,EAAA,CAAA,EAEL2I,EAOM,MAPN1D,GAOM,QANLwD,EAKgE+H,EAAA,KAAAyY,GAJnDjpB,EAAA,KAAL3c,QADRolB,EAKgE,OAAA,CAH9D,IAAG,IAAQplB,EAAE,IACd,MAAKsmC,EAAA,CAAC,gBAAe,CAAA,yBACetmC,EAAE,QAAO,uBAA0BA,EAAE,QAAU2c,EAAA,UAAU,CAAA,CAAA,EAC5F,MAAKspB,GAAA,CAAA,KAAUjmC,EAAE,MAAQ0c,EAAA,SAAQ,IAAA,CAAA,CAAc,EAAA+P,EAAAzsB,EAAE,GAAG,EAAA,CAAA,qBAKxDolB,EA2BM+H,EAAA,KAAAyY,GA3BajpB,EAAA,KAAP4tB,QAAZnlB,EA2BM,MAAA,CA3BoB,IAAKmlB,EAAI,IAAK,MAAM,eAC7CjlB,EAOM,MAPNzD,GAOM,CANL8K,EAIcmZ,EAAA,CAHZ,KAAMyE,EAAI,IACV,YAAaA,EAAI,KACjB,KAAM,GACP,WAAA,mCACDjlB,EAAoD,OAApDiG,GAAoDkB,EAAlB8d,EAAI,IAAI,EAAA,CAAA,IAE3CjlB,EAiBM,MAjBNkG,GAiBM,QAhBLpG,EAKgD+H,EAAA,KAAAyY,GAJnCjpB,EAAA,KAAL3c,QADRolB,EAKgD,OAAA,CAH9C,QAAWmlB,EAAI,IAAMvqC,EAAE,IACxB,MAAKsmC,EAAA,CAAC,aAAY,CAAA,sBACetmC,EAAE,OAAO,CAAA,CAAA,EACzC,MAAKimC,GAAA,CAAA,KAAUjmC,EAAE,MAAQ0c,EAAA,SAAQ,IAAA,CAAA,mBACvBC,EAAA,YAAU,OAAtByI,EAAsG,OAAA,OAAzE,MAAM,eAAgB,MAAK6gB,GAAA,CAAA,KAAWtpB,EAAA,WAAaD,EAAA,SAAQ,IAAA,CAAA,sBACxF6I,EAAA,EAAA,EAAAH,EAQO+H,UAPaod,EAAI,SAAQ,CAAvBM,EAAK/sC,SADdsnB,EAQO,OAAA,CANL,IAAKtnB,EACN,MAAKwoC,EAAA,CAAC,cAAa,CAAA,uBACeuE,EAAI,OAAO,CAAA,CAAA,EAC5C,MAAK5E,GAAA,CAAA,KAAU4E,EAAI,KAAI,KAAA,MAAgBA,EAAI,MAAK,KAAA,SAAmBA,EAAI,KAAK,CAAA,EAC5E,MAAOA,EAAI,QACZvlB,EAAuE,OAAvEmG,GAAuEgB,EAAlBoe,EAAI,IAAI,EAAA,CAAA,kCAOzDluB,EAAA,KAAK,qBADb4P,EAOiB6R,EAAA,OALf,KAAMzhB,EAAA,EAAC,UAAA,wBAAA,EACP,YAAaA,EAAA,EAAC,UAAA,gCAAA,IACJ,OACV,IAA4B,CAA5BgQ,EAA4B2f,EAAA,CAAZ,KAAM,EAAE,CAAA,uCAK3BhnB,EAOM,MAPNoG,GAOM,QANLtG,EAEO+H,EAAA,KAAAyY,GAFYjpB,EAAA,YAANwvB,QAAb/mB,EAEO,OAAA,CAF0B,IAAK+mB,EAAG,GAAI,MAAM,iBAClD7mB,EAAiE,OAAA,CAA3D,MAAM,iBAAkB,MAAK2gB,GAAA,CAAA,WAAgBkG,EAAG,KAAK,CAAA,WAAS/e,EAAAX,EAAA0f,EAAG,IAAI,EAAG,IAAC1f,EAAG0f,EAAG,KAAK,EAAA,CAAA,YAE3F7mB,EAEO,OAFPqG,GAEO,aADNrG,EAAuD,OAAA,CAAjD,MAAM,wCAAwC,EAAA,KAAA,EAAA,OAAM3I,EAAA,EAAC,UAAA,4BAAA,CAAA,EAAA,CAAA,uECxE1DjB,GAAU,CACd,KAAM,YACN,WAAY,CAAE,aAAA6wB,EAAW,EACzB,QAAS,CAAA,EAAErvC,CAAA,CACZ,EAlBMkf,GAAA,CAAA,MAAM,MAAM,EACRC,GAAA,CAAA,MAAM,cAAc,EACvBC,GAAA,CAAA,MAAM,aAAa,qDAFzB,OAAAiJ,EAAA,EAAAH,EAOM,MAPNhJ,GAOM,CANLkJ,EAIS,SAJTjJ,GAIS,CAHRiJ,EAEK,KAFLhJ,GAEKmQ,EADD9P,EAAA,EAAC,UAAA,WAAA,CAAA,EAAA,CAAA,IAGNgQ,EAAgC6f,EAAA,CAAlB,MAAM,SAAS,CAAA,mECgC1B9wB,GAAU,CACd,KAAM,cACN,MAAO,CACN,IAAK,CAAE,KAAM,OAAQ,SAAU,KAGhC,MAAO,CACN,MAAO,CACN,OAAQ,GACR,SAAU,GACV,MAAO,CACR,CACD,EAEA,SAAU,CACT,eAAgB,CACf,MAAO,GAAI,KAAK,GAAK,KAAK,MAC3B,EAEA,UAAW,CACV,MAAI,CAAC,KAAK,IAAI,aAAe,KAAK,IAAI,aAAe,EAC7C,KAAK,IAAI,KAAO,EAAI,EAAI,EAEzB,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI,KAAO,KAAK,IAAI,WAAW,CAAC,CACrE,EAEA,YAAa,CAEZ,OAAO,KAAK,SAAW,KAAK,eAAiB,EAAI,KAAK,UAAY,KAAK,aACxE,EAEA,aAAc,CACb,OAAI,KAAK,IAAI,YAAc,MAAQ,KAAK,IAAI,YAAc,OAClD,OAAO,KAAK,IAAI,SAAS,EAE1B,OAAO,KAAK,IAAI,IAAI,CAC5B,EAEA,gBAAiB,CAChB,OAAO,KAAK,OAAO,KAAK,KAAK,CAC9B,EAEA,WAAY,CACX,MAAO,GAAG,KAAK,IAAI,SAAS,KAAK,KAAK,cAAc,IAAI,KAAK,EAAE,UAAW,WAAW,CAAC,EACvF,GAGD,SAAU,CACT,GAAI,OAAO,WAAW,kCAAkC,EAAE,QAAS,CAClE,KAAK,SAAW,GAChB,KAAK,MAAQ,KAAK,YAClB,MACD,CACA,sBAAsB,IAAM,CAC3B,KAAK,SAAW,EACjB,CAAC,EACD,KAAK,QAAO,CACb,EAEA,QAAS,CACR,SAAU,CACT,MAAMnJ,EAAS,KAAK,YACdk6B,EAAW,IACXnX,EAAQ,YAAY,IAAG,EACvB+Q,EAAQqE,GAAQ,CACrB,MAAM/tC,EAAI,KAAK,IAAI,GAAI+tC,EAAMpV,GAASmX,CAAQ,EAExCC,EAAQ,EAAI,KAAK,IAAI,EAAI/vC,EAAG,CAAC,EACnC,KAAK,MAAQ,KAAK,MAAM4V,EAASm6B,EAAQ,EAAE,EAAI,GAC3C/vC,EAAI,EACP,sBAAsB0pC,CAAI,EAE1B,KAAK,MAAQ9zB,CAEf,EACA,sBAAsB8zB,CAAI,CAC3B,EAEA,OAAOvmC,EAAG,CACT,OAAO,OAAOA,CAAC,EAAE,eAAe,OAAW,CAAE,sBAAuB,EAAG,CACxE,EAEF,wBArHO,QAAQ,cAAc,MAAM,mFAe1B,EAAE,KAAK,EAAE,KAAK,MAAM,mBACpB,EAAE,KAAK,EAAE,KAAK,MAAM,cAEtB8hB,GAAA,CAAA,MAAM,aAAa,MACjB,MAAM,aAAa,cAAY,QAC/B2J,GAAA,CAAA,MAAM,YAAY,EAEpBC,GAAA,CAAA,MAAM,YAAY,YAOO,MAAM,qDA9BrCpG,EAgCM,MAAA,CAhCD,MAAM,OAAO,KAAK,QAAS,aAAYzI,EAAA,aAC3C4I,IAAAH,EAiBM,MAjBN/I,GAiBM,CAhBLiJ,EAIe,SAAA,CAHd,MAAM,cACN,GAAG,KACH,GAAG,KACF,EAAG5I,EAAA,mBACL4I,EAQiC,SAAA,CAPhC,MAAM,aACN,GAAG,KACH,GAAG,KACF,EAAG5I,EAAA,OACH,OAAQF,EAAA,IAAI,UACZ,mBAAkBG,EAAA,cAClB,oBAAmBA,EAAA,WACpB,UAAU,gCACX2I,EAAmE,OAAnE5D,GAAmE+K,EAAxB9P,EAAA,cAAc,EAAA,CAAA,EACzD2I,EAAwE,OAAxE3D,GAAwE8K,EAA9B9R,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,KAE5C2K,EAGM,MAHN1D,GAGM,CAFL0D,EAAqE,OAArEzD,GAAqE4K,EAAtBjQ,EAAA,IAAI,QAAQ,EAAA,CAAA,EAC3D8I,EAAmD,OAAnDiG,GAAmDkB,EAAvBjQ,EAAA,IAAI,SAAS,EAAA,CAAA,IAE1C8I,EAQM,MARNkG,GAQM,CAPWhP,EAAA,IAAI,cAAW,UAA/B4I,EAEW+H,EAAA,CAAA,IAAA,CAAA,EAAA,KADPxS,EAAA,EAAC,UAAA,yBAAA,CAAA,KAA8CgC,EAAA,OAAOH,EAAA,IAAI,IAAI,EAAA,MAAUG,EAAA,OAAOH,EAAA,IAAI,WAAW,EAAA,CAAA,EAAA,CAAA,aAElG4I,EAEW+H,EAAA,CAAA,IAAA,CAAA,EAAA,CADPC,EAAAX,EAAA9R,EAAA,EAAC,UAAA,eAAA,CAAA,KAAoCgC,EAAA,OAAOH,EAAA,IAAI,IAAI,CAAA,CAAA,CAAA,EAAA,CAAA,QAE5CA,EAAA,IAAI,QAAO,OAAvB4I,EAAyH,OAAzH4H,GAAmD,KAAEP,EAAG9R,EAAA,EAAC,UAAA,cAAA,CAAA,EAAgCgC,EAAA,OAAOH,EAAA,IAAI,OAAO,CAAA,CAAA,CAAA,EAAA,CAAA,oFCUzGd,GAAU,CACd,KAAM,cACN,WAAY,CAAE,YAAAixB,EAAU,EACxB,MAAO,CACN,IAAK,CAAE,KAAM,OAAQ,SAAU,KAGhC,QAAS,GACRzvC,EACA,OAAO4C,EAAG,CACT,OAAO,OAAOA,CAAC,EAAE,eAAe,OAAW,CAAE,sBAAuB,EAAG,CACxE,EAEA,OAAOA,EAAG,CACT,MAAMvD,EAAI,OAAOuD,CAAC,EAClB,OAAQvD,GAAK,EAAI,IAAM,KAAO,KAAK,OAAO,KAAK,IAAIA,CAAC,CAAC,CACtD,EAEF,EAzDM6f,GAAA,CAAA,MAAM,MAAM,YAEoB,MAAM,UACpCE,GAAA,CAAA,MAAM,aAAa,YAIM,MAAM,yBAIH,MAAM,eAIlCqF,GAAA,CAAA,MAAM,gCAAgC,EAItCC,GAAA,CAAA,MAAM,aAAa,YAIA,MAAM,sFAvBhC,OAAA2D,EAAA,EAAAH,EAgCM,MAhCNhJ,GAgCM,CA/BLuQ,EAA0BigB,EAAA,CAAZ,IAAKpwB,EAAA,GAAG,EAAA,KAAA,EAAA,CAAA,KAAA,CAAA,EACZA,EAAA,IAAI,cAAW,MAAzB+I,IAAAH,EA6BK,KA7BL/I,GA6BK,CA5BJiJ,EAGM,MAHNhJ,GAGM,CAFLgJ,EAA6C,YAAtC3I,EAAA,EAAC,UAAA,gBAAA,CAAA,EAAA,CAAA,EACR2I,EAAmC,KAAA,KAAAmH,EAA5B9P,EAAA,OAAOH,EAAA,IAAI,QAAQ,CAAA,EAAA,CAAA,IAEhBA,EAAA,IAAI,eAAf+I,IAAAH,EAGM,MAHN9E,GAGM,CAFLgF,EAA2C,YAApC3I,EAAA,EAAC,UAAA,cAAA,CAAA,EAAA,CAAA,EACR2I,EAAwC,KAAA,KAAAmH,EAAjC9P,EAAA,OAAOH,EAAA,IAAI,aAAa,CAAA,EAAA,CAAA,cAErBA,EAAA,IAAI,kBAAf+I,IAAAH,EAGM,MAHN1D,GAGM,CAFL4D,EAAyC,YAAlC3I,EAAA,EAAC,UAAA,YAAA,CAAA,EAAA,CAAA,EACR2I,EAA2C,KAAA,KAAAmH,EAApC9P,EAAA,OAAOH,EAAA,IAAI,gBAAgB,CAAA,EAAA,CAAA,cAEnC8I,EAGM,MAHN3D,GAGM,CAFL2D,EAA0C,YAAnC3I,EAAA,EAAC,UAAA,aAAA,CAAA,EAAA,CAAA,EACR2I,EAAsC,KAAA,KAAAmH,EAA/B9P,EAAA,OAAOH,EAAA,IAAI,WAAW,CAAA,EAAA,CAAA,IAE9B8I,EAGM,MAHN1D,GAGM,CAFL0D,EAAmC,YAA5B3I,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,EACR2I,EAA4D,KAAA,KAAAmH,EAArDjQ,EAAA,IAAI,KAAI,IAASG,EAAA,OAAOH,EAAA,IAAI,IAAI,EAAIG,EAAA,OAAM,CAAA,CAAA,EAAA,CAAA,IAEvCH,EAAA,IAAI,SAAf+I,IAAAH,EAGM,MAHNvD,GAGM,CAFLyD,EAA+C,YAAxC3I,EAAA,EAAC,UAAA,kBAAA,CAAA,EAAA,CAAA,EACR2I,EAAwC,KAAA,KAAAmH,EAAA,IAA3B9P,EAAA,OAAOH,EAAA,IAAI,OAAO,CAAA,EAAA,CAAA,cAEhC8I,EAGM,MAAA,CAHD,MAAM,qCAAsC,MAAK2gB,GAAA,CAAA,eAAoBzpB,EAAA,IAAI,SAAS,CAAA,IACtF8I,EAAwC,YAAjC3I,EAAA,EAAC,UAAA,WAAA,CAAA,EAAA,CAAA,EACR2I,EAAoC,KAAA,KAAAmH,EAA7B9P,EAAA,OAAOH,EAAA,IAAI,SAAS,CAAA,EAAA,CAAA,mFCK1Bd,GAAU,CACd,KAAM,WACN,MAAO,CACN,MAAO,CAAE,KAAM,OAAQ,QAAS,EAAC,EACjC,KAAM,CAAE,KAAM,MAAO,SAAU,EAAG,GAGnC,MAAO,CACN,MAAO,CAAE,MAAO,IAAK,OAAQ,IAAK,SAAU,EAAI,CACjD,EAEA,SAAU,CACT,QAAS,CAAE,MAAO,GAAG,EACrB,UAAW,CAAE,OAAO,KAAK,OAAS,EAAG,EACrC,KAAM,CAAE,OAAO,KAAK,IAAI,EAAG,GAAG,KAAK,KAAK,IAAK1b,GAAMA,EAAE,KAAK,CAAC,CAAE,EAC7D,MAAO,CAAE,OAAO,KAAK,KAAK,OAAS,KAAK,MAAQ,KAAK,KAAK,OAAS,KAAK,KAAM,EAC9E,UAAW,CAAE,OAAO,KAAK,IAAI,GAAI,KAAK,KAAO,EAAG,CAAE,EAClD,MAAO,CACN,OAAO,KAAK,KAAK,IAAI,CAACA,EAAGlC,IAAM,CAC9B,MAAMjB,EAAKmD,EAAE,MAAQ,KAAK,KAAQ,KAAK,SAAW,KAAK,QACjD7C,EAAIW,EAAI,KAAK,MAAQ,KAAK,KAAO,KAAK,UAAY,EACxD,MAAO,CACN,EAAAX,EACA,GAAIA,EAAI,KAAK,SAAW,EACxB,EAAG,KAAK,SAAWN,EACnB,EAAAA,EACA,MAAOmD,EAAE,MACT,MAAOA,EAAE,MACT,MAAOA,EAAE,OAAS,8BACnB,CACD,CAAC,CACF,GAGD,SAAU,CACT,GAAI,OAAO,WAAW,kCAAkC,EAAE,QAAS,CAClE,KAAK,SAAW,GAChB,MACD,CACA,sBAAsB,IAAM,CAC3B,KAAK,SAAW,EACjB,CAAC,CACF,EAEA,QAAS,CACR,IAAIF,EAAG,CAAE,OAAO,OAAOA,CAAC,EAAE,eAAe,OAAW,CAAE,sBAAuB,CAAA,CAAG,CAAE,EAEpF,EAlFSsc,GAAA,CAAA,MAAM,OAAO,YACK,MAAM,oIADhC,OAAAmJ,EAAA,EAAAH,EA+BS,SA/BThJ,GA+BS,CA9BUI,EAAA,WAAlB4I,EAEa,aAFb/I,GAEaoQ,EADTjQ,EAAA,KAAK,EAAA,CAAA,iBAET4I,EA0BM,MAAA,CAzBJ,QAAO,OAAS1I,EAAA,KAAK,IAAIA,EAAA,MAAM,GAChC,MAAM,aACN,KAAK,MACJ,aAAYF,EAAA,SACb+I,EAAA,EAAA,EAAAH,EAoBI+H,EAAA,KAAAyY,GApBkBjpB,EAAA,KAAI,CAAfkwB,EAAK/uC,SAAhBsnB,EAoBI,IAAA,CApByB,IAAKtnB,GAAC,CAClCwnB,EAOsB,OAAA,CANpB,EAAGunB,EAAI,EACP,EAAGnwB,EAAA,SAAWmwB,EAAI,EAAIlwB,EAAA,SACtB,MAAOA,EAAA,SACP,OAAQD,EAAA,SAAWmwB,EAAI,EAAC,EACxB,KAAMA,EAAI,MACX,GAAG,IACH,MAAM,yBACPvnB,EAI4C,OAAA,CAH1C,EAAGunB,EAAI,GACP,EAAGnwB,EAAA,OAAM,EACV,cAAY,SACZ,MAAM,cAAkB,EAAA+P,EAAAogB,EAAI,KAAK,EAAA,EAAAnrB,EAAA,EAE3BmrB,EAAI,MAAK,OADhBznB,EAKiD,OAAA,OAH/C,EAAGynB,EAAI,GACP,EAAGA,EAAI,EAAC,EACT,cAAY,SACZ,MAAM,kBAAkBlwB,EAAA,IAAIkwB,EAAI,KAAK,CAAA,EAAA,EAAAlrB,EAAA,kGCoBxB,CAAE,KAAM,kBAAgB,MA9CxC,MAAM,OACN,QAAQ,cACR,MAAM,MACN,OAAO,MACP,KAAK,MACL,cAAY,iCANb,OAAA4D,EAAA,EAAAH,EA2CM,MA3CNhJ,GA2CM,CAAA,GAAAxB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,onCCoCFc,GAAU,CACd,KAAM,UACN,WAAY,CAAE,SAAAX,GAAU,eAAA4gB,GAAgB,KAAAoM,GAAM,YAAA+E,GAAa,SAAAC,GAAU,gBAAAhD,GAAiB,aAAAC,GAAc,iBAAAgD,EAAe,EACnH,OAAQ,CAAC,iBAAiB,EAC1B,MAAO,CACN,GAAI,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,OAGxC,OAAQ,CAEP,MAAO,CAAE,MAAAvjB,CAAI,CACd,EAEA,SAAU,CACT,MAAO,CACN,OAAO,IAAI,KAAI,EAAG,YAAW,CAC9B,EAEA,OAAQ,CACP,OAAOA,EAAM,QAAQ,SAAS,OAAQzsB,GAAMA,EAAE,OAAS,KAAK,MAAQA,EAAE,oBAAoB,CAC3F,EAGA,cAAe,CACd,OAAO,KAAK,WAAY2sB,GAASA,EAAK,uBAAyB,IAASA,EAAK,MAAQ,OAAQ,IAAI,CAClG,EAGA,aAAc,CACb,MAAMsjB,EAAWxjB,EAAM,WAAW,KAAME,GAASA,EAAK,MAAQ,MAAM,EACpE,OAAKsjB,EAGE,KAAK,WAAYtjB,GAASA,EAAK,MAAQ,OAAQsjB,EAAS,KAAK,EAF5D,IAGT,EAGA,WAAY,CACX,MAAM/hB,EAAQP,GAAM,IAAI,IAAM,EACxBuiB,EAAWzjB,EAAM,SACrB,OAAQjtB,GAAMA,EAAE,SAAW,YAAcA,EAAE,SAAW0uB,CAAK,EAC3D,KAAK,CAACzuB,EAAGO,IAAMP,EAAE,UAAU,cAAcO,EAAE,SAAS,CAAC,EACvD,GAAI,CAACkwC,EAAS,OACb,OAAO,KAER,MAAM1wC,EAAI0wC,EAAS,CAAC,EACdvjB,EAAOF,EAAM,UAAUjtB,EAAE,MAAM,EAC/BktC,EAAQ1C,GAAYxqC,EAAE,UAAWA,EAAE,OAAO,EAChD,GAAIA,EAAE,WAAa0uB,EAClB,MAAO,CACN,KAAMvB,EAAK,KACX,MAAOA,EAAK,MACZ,QAASzsB,EAAE,UAAW,uBAAuB,EAC7C,SAAUA,EAAE,UAAW,wBAAyB,CAAE,KAAMysB,EAAK,MAAM,YAAW,EAAI,EAClF,IAAK+f,CACN,EAED,MAAMC,EAAO,KAAK,IAAI,EAAG,KAAK,OAAO,IAAI,KAAKntC,EAAE,UAAY,WAAW,EAAI,IAAI,KAAK0uB,EAAQ,WAAW,GAAK,KAAQ,CAAC,EACrH,MAAO,CACN,KAAMvB,EAAK,KACX,MAAOA,EAAK,MACZ,QAASzsB,EAAE,UAAW,iBAAiB,EACvC,SAAUX,GAAE,UAAW,eAAgB,gBAAiBotC,CAAI,EAC5D,IAAK,GAAGhgB,EAAK,KAAK,MAAM+f,CAAK,EAC9B,CACD,GAGD,SAAU,CACT,KAAK,OAAM,EACX,OAAO,iBAAiB,kBAAmB,KAAK,MAAM,EAClD,KAAK,IACRjgB,EAAM,OAAO,OAAO,KAAK,EAAE,CAAC,CAE9B,EAEA,eAAgB,CACf,OAAO,oBAAoB,kBAAmB,KAAK,MAAM,CAC1D,EAEA,QAAS,GACRvsB,EASA,WAAWiwC,EAAaC,EAAO,CAC9B,MAAMC,EAAU,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,EACpC,UAAW7wC,KAAKitB,EAAM,SACjBjtB,EAAE,SAAW,YAAc,CAAC2wC,EAAY1jB,EAAM,UAAUjtB,EAAE,MAAM,CAAC,GAGrE8wC,GAAsBD,EAAS7wC,EAAE,UAAWA,EAAE,QAASA,EAAE,YAAa,KAAK,IAAI,EAEhF,OAAO6wC,EAAQ,IAAI,CAACjqC,EAAO+nC,KAAW,CACrC,MAAO,IAAI,KAAK,KAAK,KAAMA,EAAO,CAAC,EAAE,mBAAmB,OAAW,CAAE,MAAO,OAAM,CAAG,EACrF,MAAO,KAAK,MAAM/nC,EAAQ,EAAE,EAAI,GAChC,GAAIgqC,EAAQ,CAAE,MAAAA,CAAI,EAAM,EACzB,EAAE,CACH,EAEA,SAAU,CACT,KAAK,iBAAiB,EAAC,CACxB,EAEA,MAAM,QAAS,CACd,MAAM,QAAQ,IAAI,CACjB3jB,EAAM,aAAa,CAAE,MAAO,MAAK,CAAG,EACpCA,EAAM,cAAa,EACnB,CACF,EAEF,EAtMMrN,GAAA,CAAA,MAAM,MAAM,EACRC,GAAA,CAAA,MAAM,cAAc,EACvBC,GAAA,CAAA,MAAM,aAAa,MAYjB,MAAM,cAAc,cAAY,QACjCoF,GAAA,CAAA,MAAM,YAAY,EAChBC,GAAA,CAAA,MAAM,eAAe,EACnBC,GAAA,CAAA,MAAM,gBAAgB,EACxBC,GAAA,CAAA,MAAM,WAAW,YAII,MAAM,sBAIS,MAAM,oBACxB,MAAM,0BAGP,MAAM,gBAKtB6J,GAAA,CAAA,MAAM,UAAU,EACpBC,GAAA,CAAA,MAAM,iBAAiB,yLApC7B,OAAApG,EAAA,EAAAH,EAkEM,MAlENhJ,GAkEM,CAjELkJ,EAUS,SAVTjJ,GAUS,CATRiJ,EAEK,KAFLhJ,GAEKmQ,EADD9P,EAAA,EAAC,UAAA,UAAA,CAAA,EAAA,CAAA,EAELgQ,EAKW7L,EAAA,CALD,QAAQ,UAAW,QAAOnE,EAAA,UACxB,OACV,IAAmB,CAAnBgQ,EAAmB+b,EAAA,CAAZ,KAAM,EAAE,CAAA,cACL,IACX,CADWtb,EAAA,MACRzQ,EAAA,EAAC,UAAA,aAAA,CAAA,EAAA,CAAA,0BAISA,EAAA,eAAfyI,EAOU,UAAA,OAPgB,MAAM,OAAQ,MAAK6gB,GAAA,CAAA,WAAgBtpB,EAAA,UAAU,KAAK,CAAA,IAC3E2I,EAAwE,OAAxEhF,GAAwEmM,EAAxB9P,EAAA,UAAU,IAAI,EAAA,CAAA,EAC9D2I,EAIM,MAJN5D,GAIM,CAHL4D,EAA0D,OAA1D3D,GAA0D8K,EAA3B9P,EAAA,UAAU,OAAO,EAAA,CAAA,EAChD2I,EAAgE,SAAhE1D,GAAgE6K,EAA9B9P,EAAA,UAAU,QAAQ,EAAA,CAAA,EACpD2I,EAAkD,OAAlDzD,GAAkD4K,EAAvB9P,EAAA,UAAU,GAAG,EAAA,CAAA,kBAI3BA,EAAA,MAAM,QAArB4I,IAAAH,EAEU,UAFVmG,GAEU,QADTnG,EAAkF+H,EAAA,KAAAyY,GAAvDjpB,EAAA,MAAP4tB,QAApBhe,EAAkFghB,EAAA,CAA/C,IAAKhD,EAAI,OAAM,IAASA,EAAI,KAAO,IAAKA,uCAG7D5tB,EAAA,cAAgBA,EAAA,aAA/B4I,IAAAH,EAOU,UAPVoG,GAOU,CANE7O,EAAA,cAAX4I,IAAAH,EAEM,MAFN4H,GAEM,CADLL,EAAkG6gB,EAAA,CAAvF,MAAO7wB,EAAA,EAAC,UAAA,gCAAA,CAAA,KAA+CA,EAAA,KAAI,EAAM,KAAMA,EAAA,mDAExEA,EAAA,aAAX4I,IAAAH,EAEM,MAFNqG,GAEM,CADLkB,EAA+F6gB,EAAA,CAApF,MAAO7wB,EAAA,EAAC,UAAA,8BAAA,CAAA,KAA6CA,EAAA,KAAI,EAAM,KAAMA,EAAA,8DAIlF2I,EA8BU,UA9BVoG,GA8BU,CA7BTpG,EAEK,KAFLqG,GAEKc,EADD9P,EAAA,EAAC,UAAA,UAAA,CAAA,EAAA,CAAA,EAEeF,EAAA,MAAM,aAA1B8P,EAA+C2d,EAAA,OAAX,KAAM,KAE9BztB,EAAA,MAAM,SAAS,YAD3B8P,EAWkB4d,GAAA,OATjB,IAAI,KACJ,KAAK,MACL,MAAM,6BAEL,IAA2B,EAD5B5kB,EAAA,EAAA,EAAAH,EAKkC+H,EAAA,KAAAyY,GAJrBnpB,EAAA,MAAM,SAAXjgB,QADR+vB,EAKkC6d,EAAA,CAHhC,IAAK5tC,EAAE,GACP,QAASA,EACT,OAAQigB,EAAA,MAAM,aAAejgB,EAAE,GAC/B,SAAMoe,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAsD,GAAEzB,EAAA,MAAM,OAAOyB,CAAM,uDAE9BqO,EAYiB6R,EAAA,OAVf,KAAMzhB,EAAA,EAAC,UAAA,uBAAA,EACP,YAAaA,EAAA,EAAC,UAAA,2DAAA,IACJ,OACV,IAAoB,CAApBgQ,EAAoB8gB,CAAA,IAEV,SACV,IAEW,CAFX9gB,EAEW7L,EAAA,CAFD,QAAQ,UAAW,QAAOnE,EAAA,oBACnC,IAAsC,KAAnCA,EAAA,EAAC,UAAA,kBAAA,CAAA,EAAA,CAAA,6HC/CLjB,GAAU,CACd,KAAM,OACN,WAAY,CAAE,aAAA6wB,EAAW,EACzB,QAAS,CAAA,EAAErvC,CAAA,CACZ,EAlBMkf,GAAA,CAAA,MAAM,MAAM,EACRC,GAAA,CAAA,MAAM,cAAc,EACvBC,GAAA,CAAA,MAAM,aAAa,qDAFzB,OAAAiJ,EAAA,EAAAH,EAOM,MAPNhJ,GAOM,CANLkJ,EAIS,SAJTjJ,GAIS,CAHRiJ,EAEK,KAFLhJ,GAEKmQ,EADD9P,EAAA,EAAC,UAAA,MAAA,CAAA,EAAA,CAAA,IAGNgQ,EAA6B6f,EAAA,CAAf,MAAM,MAAM,CAAA,mECEtBx+B,GAAS,CACd,CAAE,KAAM,IAAK,SAAU,KAAK,EAC5B,CAAE,KAAM,MAAO,KAAM,KAAM,UAAW0/B,EAAO,EAC7C,CAAE,KAAM,aAAc,KAAM,YAAa,UAAWC,EAAS,EAC7D,CAAE,KAAM,QAAS,KAAM,OAAQ,UAAWC,EAAI,EAC9C,CAAE,KAAM,eAAgB,KAAM,cAAe,UAAWC,EAAU,EAClE,CAAE,KAAM,iBAAkB,KAAM,gBAAiB,UAAWC,EAAY,EACxE,CAAE,KAAM,eAAgB,KAAM,cAAe,UAAWC,EAAS,EACjE,CAAE,KAAM,cAAe,KAAM,aAAc,UAAWC,EAAS,EAE/D,CAAE,KAAM,gBAAiB,KAAM,UAAW,UAAWN,GAAS,MAAO,EAAI,CAC1E,EAEA98B,GAAegE,GAAa,CAC3B,QAAShK,GAAoB,EAC7B,OAAAoD,EACD,CAAC,ECpBKwJ,GAAMy2B,GAAUC,EAAG,EACzB12B,GAAI,OAAO,iBAAiB,EAAIta,EAChCsa,GAAI,OAAO,iBAAiB,EAAIjb,GAChCib,GAAI,IAAI5G,EAAM,EACd4G,GAAI,MAAM,cAAc","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,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,72,73,77,80,84,85,86]} \ No newline at end of file diff --git a/js/absence-personal-settings.mjs b/js/absence-personal-settings.mjs index fd6b375..7cce87c 100644 --- a/js/absence-personal-settings.mjs +++ b/js/absence-personal-settings.mjs @@ -1,5 +1,5 @@ -(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".material-design-icon[data-v-5ca1e30f]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-content[data-v-5ca1e30f]{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-5ca1e30f]{flex:1 0 0;max-width:100%}.checkbox-content__text[data-v-5ca1e30f]:empty{display:none}.checkbox-content-checkbox:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-5ca1e30f],.checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-5ca1e30f],.checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-5ca1e30f]{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-5ca1e30f],.checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-5ca1e30f],.checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-5ca1e30f]{display:flex;align-items:center;margin-block-end:0;align-self:start}.checkbox-content__icon[data-v-5ca1e30f]>*{width:var(--icon-size);height:var(--icon-height);color:var(--color-primary-element)}.checkbox-content__description[data-v-5ca1e30f]{display:block;color:var(--color-text-maxcontrast);font-weight:var(--font-weight-default, normal)}.checkbox-content--button-variant .checkbox-content__icon[data-v-5ca1e30f]:not(.checkbox-content__icon--checked)>*{color:var(--color-primary-element)}.checkbox-content--button-variant .checkbox-content__icon--checked[data-v-5ca1e30f]>*{color:var(--color-primary-element-text)}.checkbox-content--has-text[data-v-5ca1e30f]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.checkbox-content[data-v-5ca1e30f],.checkbox-content[data-v-5ca1e30f] *{cursor:pointer;flex-shrink:0}.material-design-icon[data-v-c34c63a4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-radio-switch[data-v-c34c63a4]{--icon-size: var(--v5ac25550);--icon-height: var(--d98ce684);--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);font-weight:var(--font-weight-element, normal);line-height:var(--default-line-height);padding:0;position:relative}.checkbox-radio-switch__input[data-v-c34c63a4]{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-c34c63a4],.checkbox-radio-switch__input[data-v-c34c63a4]: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-c34c63a4]{opacity:.5}.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-c34c63a4] .checkbox-radio-switch__icon>*{color:var(--color-main-text)}.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-c34c63a4],.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-c34c63a4] *: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-c34c63a4],.checkbox-radio-switch:not(.checkbox-radio-switch--disabled,.checkbox-radio-switch--checked) .checkbox-radio-switch__content[data-v-c34c63a4]:hover{background-color:var(--color-background-hover)}.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-c34c63a4],.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-c34c63a4]: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-c34c63a4],.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-c34c63a4]:hover{background-color:var(--color-primary-element-light-hover)}.checkbox-radio-switch-switch[data-v-c34c63a4]: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-c34c63a4] .checkbox-radio-switch__icon>*{color:var(--color-primary-element-light)}.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-c34c63a4]{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-c34c63a4]{font-weight:var(--font-weight-element, bold)}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content[data-v-c34c63a4]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.checkbox-radio-switch--button-variant[data-v-c34c63a4] .checkbox-radio-switch__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.checkbox-radio-switch--button-variant[data-v-c34c63a4]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon>*{color:var(--color-main-text)}.checkbox-radio-switch--button-variant[data-v-c34c63a4] .checkbox-radio-switch__icon:empty{display:none}.checkbox-radio-switch--button-variant[data-v-c34c63a4]: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-c34c63a4]{border-radius:var(--checkbox-radio-switch--border-radius)}.checkbox-radio-switch--button-variant-v-grouped .checkbox-radio-switch__content[data-v-c34c63a4]{flex-basis:100%;max-width:unset}.checkbox-radio-switch--button-variant-v-grouped[data-v-c34c63a4]: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-c34c63a4]: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-c34c63a4]: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-c34c63a4]{margin-bottom:2px}.checkbox-radio-switch--button-variant-v-grouped[data-v-c34c63a4]:not(:first-of-type){border-top:0!important}.checkbox-radio-switch--button-variant-h-grouped[data-v-c34c63a4]: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-c34c63a4]: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-c34c63a4]: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-c34c63a4]{margin-inline-end:2px}.checkbox-radio-switch--button-variant-h-grouped[data-v-c34c63a4]:not(:first-of-type){border-inline-start:0!important}.checkbox-radio-switch--button-variant-h-grouped[data-v-c34c63a4] .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-c34c63a4]{flex-direction:column;justify-content:center;width:100%;margin:0;gap:0}._material-design-icon_tLFaA{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_CPPoW{color:var(--v6bd152af);transition:color var(--animation-quick) ease}._iconToggleSwitch_CPPoW svg{height:auto!important}._iconToggleSwitch_CPPoW circle{cx:var(--v16fd8ca9);transition:cx var(--animation-quick) ease}.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}.subheading[data-v-f72d4596]{font-weight:600;margin-bottom:8px}.subheading[data-v-f72d4596]:not(:first-child){margin-top:24px}.hint[data-v-f72d4596]{color:var(--color-text-maxcontrast);font-size:.9rem;margin:8px 0}.weekdays[data-v-f72d4596]{display:flex;flex-wrap:wrap;gap:8px 20px;margin:8px 0}.actions-row[data-v-f72d4596]{display:flex;gap:8px;margin-top:12px}.field[data-v-f72d4596]{display:flex;flex-direction:column;gap:4px;max-width:320px;margin-bottom:12px}.field label[data-v-f72d4596]{font-weight:600;font-size:.85rem}")),document.head.appendChild(t)}}catch(c){console.error("vite-plugin-css-injected-by-js",c)}})(); -import{_ as b,d as R,bl as D,c as A,o as n,D as y,B as T,ap as Z,i as F,ac as E,bm as G,ae as q,z as m,E as p,f as o,q as v,bn as $,j as u,x as _,J as Y,g as w,k,t as r,M as P,aN as J,e as z,au as X,m as d,bo as K,u as N,l as Q,v as h,aJ as ee,bb as te,a1 as ie,F as ae,A as ne,V as le,W as oe,X as L,bp as se,bq as re,Y as ce,bc as de,bk as ue}from"./holidays-CFk3bEGH.chunk.mjs";const he=`*{width:var(--icon-size);height:var(--icon-height);color:var(--color-primary-element)}.checkbox-content__description[data-v-5ca1e30f]{display:block;color:var(--color-text-maxcontrast);font-weight:var(--font-weight-default, normal)}.checkbox-content--button-variant .checkbox-content__icon[data-v-5ca1e30f]:not(.checkbox-content__icon--checked)>*{color:var(--color-primary-element)}.checkbox-content--button-variant .checkbox-content__icon--checked[data-v-5ca1e30f]>*{color:var(--color-primary-element-text)}.checkbox-content--has-text[data-v-5ca1e30f]{padding-inline-end:calc((var(--default-clickable-area) - 16px) / 2)}.checkbox-content[data-v-5ca1e30f],.checkbox-content[data-v-5ca1e30f] *{cursor:pointer;flex-shrink:0}.material-design-icon[data-v-c34c63a4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-radio-switch[data-v-c34c63a4]{--icon-size: var(--v5ac25550);--icon-height: var(--d98ce684);--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);font-weight:var(--font-weight-element, normal);line-height:var(--default-line-height);padding:0;position:relative}.checkbox-radio-switch__input[data-v-c34c63a4]{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-c34c63a4],.checkbox-radio-switch__input[data-v-c34c63a4]: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-c34c63a4]{opacity:.5}.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-c34c63a4] .checkbox-radio-switch__icon>*{color:var(--color-main-text)}.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-c34c63a4],.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-c34c63a4] *: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-c34c63a4],.checkbox-radio-switch:not(.checkbox-radio-switch--disabled,.checkbox-radio-switch--checked) .checkbox-radio-switch__content[data-v-c34c63a4]:hover{background-color:var(--color-background-hover)}.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-c34c63a4],.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-c34c63a4]: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-c34c63a4],.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-c34c63a4]:hover{background-color:var(--color-primary-element-light-hover)}.checkbox-radio-switch-switch[data-v-c34c63a4]: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-c34c63a4] .checkbox-radio-switch__icon>*{color:var(--color-primary-element-light)}.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-c34c63a4]{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-c34c63a4]{font-weight:var(--font-weight-element, bold)}.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content[data-v-c34c63a4]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.checkbox-radio-switch--button-variant[data-v-c34c63a4] .checkbox-radio-switch__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.checkbox-radio-switch--button-variant[data-v-c34c63a4]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon>*{color:var(--color-main-text)}.checkbox-radio-switch--button-variant[data-v-c34c63a4] .checkbox-radio-switch__icon:empty{display:none}.checkbox-radio-switch--button-variant[data-v-c34c63a4]: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-c34c63a4]{border-radius:var(--checkbox-radio-switch--border-radius)}.checkbox-radio-switch--button-variant-v-grouped .checkbox-radio-switch__content[data-v-c34c63a4]{flex-basis:100%;max-width:unset}.checkbox-radio-switch--button-variant-v-grouped[data-v-c34c63a4]: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-c34c63a4]: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-c34c63a4]: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-c34c63a4]{margin-bottom:2px}.checkbox-radio-switch--button-variant-v-grouped[data-v-c34c63a4]:not(:first-of-type){border-top:0!important}.checkbox-radio-switch--button-variant-h-grouped[data-v-c34c63a4]: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-c34c63a4]: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-c34c63a4]: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-c34c63a4]{margin-inline-end:2px}.checkbox-radio-switch--button-variant-h-grouped[data-v-c34c63a4]:not(:first-of-type){border-inline-start:0!important}.checkbox-radio-switch--button-variant-h-grouped[data-v-c34c63a4] .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-c34c63a4]{flex-direction:column;justify-content:center;width:100%;margin:0;gap:0}._material-design-icon_63AMQ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_IKWaj{color:var(--v6bd152af);transition:color var(--animation-quick) ease}._iconToggleSwitch_IKWaj svg{height:auto!important}._iconToggleSwitch_IKWaj circle{cx:var(--v16fd8ca9);transition:cx var(--animation-quick) ease}.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}.subheading[data-v-35c7818d]{font-weight:600;margin-bottom:8px}.subheading[data-v-35c7818d]:not(:first-child){margin-top:24px}.hint[data-v-35c7818d]{color:var(--color-text-maxcontrast);font-size:.9rem;margin:8px 0}.weekdays[data-v-35c7818d]{display:flex;flex-wrap:wrap;gap:8px 20px;margin:8px 0}.actions-row[data-v-35c7818d]{display:flex;gap:8px;margin-top:12px}.field[data-v-35c7818d]{display:flex;flex-direction:column;gap:4px;max-width:320px;margin-bottom:12px}.field label[data-v-35c7818d]{font-weight:600;font-size:.85rem}")),document.head.appendChild(c)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})(); +import{_ as b,H as R,bv as D,h as A,m as n,c as y,S as T,a3 as Z,i as G,N as E,bw as Y,a5 as U,a2 as m,Y as p,d as o,aq as v,bx as $,Q as u,X as _,aU as F,e as w,an as k,P as r,r as q,o as Q,aC as B,aB as X,W as d,by as K,f as N,aI as J,aZ as h,b0 as ee,a$ as te,a6 as ie,R as ae,bd as ne,aX as le,aY as oe,a_ as H,bz as se,bA as re,l as ce,b3 as de,bu as ue}from"./holidays-BoDDj6rx.chunk.mjs";const he=` @@ -7,5 +7,5 @@ import{_ as b,d as R,bl as D,c as A,o as n,D as y,B as T,ap as Z,i as F,ac as E, cy="6" r="3" fill="var(--color-main-background)" /> -`,pe=R({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(t){D(s=>({v6bd152af:a.value,v16fd8ca9:e.value}));const a=A(()=>t.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),e=A(()=>t.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(s,l)=>(n(),y(Z,{class:T(s.$style.iconToggleSwitch),svg:he,size:t.size,inline:t.inline},null,8,["class","size","inline"]))}}),ye="_iconToggleSwitch_CPPoW",be={"material-design-icon":"_material-design-icon_tLFaA",iconToggleSwitch:ye},ge={$style:be},ke=b(pe,[["__cssModules",ge]]),fe=Symbol.for("insideRadioGroup");function me(){return F(fe,void 0)}const ve={name:"CheckboxBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ce=["aria-hidden","aria-label"],we=["fill","width","height"],Se={d:"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z"},_e={key:0};function xe(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon checkbox-blank-outline-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",Se,[e.title?(n(),o("title",_e,r(e.title),1)):u("",!0)])],8,we))],16,Ce)}const Ve=b(ve,[["render",xe]]),Te={name:"CheckboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ae=["aria-hidden","aria-label"],Ie=["fill","width","height"],ze={d:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},Be={key:0};function Me(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon checkbox-marked-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",ze,[e.title?(n(),o("title",Be,r(e.title),1)):u("",!0)])],8,Ie))],16,Ae)}const $e=b(Te,[["render",Me]]),Ne={name:"MinusBoxIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Le=["aria-hidden","aria-label"],Oe=["fill","width","height"],He={d:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},We={key:0};function Re(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon minus-box-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",He,[e.title?(n(),o("title",We,r(e.title),1)):u("",!0)])],8,Oe))],16,Le)}const De=b(Ne,[["render",Re]]),Ee={name:"RadioboxBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},qe=["aria-hidden","aria-label"],Pe=["fill","width","height"],Ue={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},je={key:0};function Ze(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon radiobox-blank-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",Ue,[e.title?(n(),o("title",je,r(e.title),1)):u("",!0)])],8,Pe))],16,qe)}const Fe=b(Ee,[["render",Ze]]),Ge={name:"RadioboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ye=["aria-hidden","aria-label"],Je=["fill","width","height"],Xe={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,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,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z"},Ke={key:0};function Qe(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon radiobox-marked-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",Xe,[e.title?(n(),o("title",Ke,r(e.title),1)):u("",!0)])],8,Je))],16,Ye)}const et=b(Ge,[["render",Qe]]),S="checkbox",C="radio",f="switch",x="button",tt={name:"NcCheckboxContent",components:{NcLoadingIcon:X,NcIconToggleSwitch:ke},props:{iconClass:{type:[String,Object],default:null},textClass:{type:[String,Object],default:null},type:{type:String,default:"checkbox",validator:t=>[S,C,f,x].includes(t)},buttonVariant:{type:Boolean,default:!1},isChecked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},iconSize:{type:Number,default:24},labelId:{type:String,required:!0},descriptionId:{type:String,required:!0}},computed:{isButtonType(){return this.type===x},isSwitchType(){return this.type===f},checkboxRadioIconElement(){return this.type===C?this.isChecked?et:Fe:this.indeterminate?De:this.isChecked?$e:Ve}}},it={key:0,class:"checkbox-content__wrapper"},at=["id"],nt=["id"];function lt(t,a,e,s,l,i){const c=m("NcLoadingIcon"),I=m("NcIconToggleSwitch");return n(),o("span",{class:T(["checkbox-content",{["checkbox-content-"+e.type]:!0,"checkbox-content--button-variant":e.buttonVariant,"checkbox-content--has-text":!!t.$slots.default}])},[d("span",{class:T(["checkbox-content__icon",{"checkbox-content__icon--checked":e.isChecked,"checkbox-content__icon--has-description":!i.isButtonType&&t.$slots.description,[e.iconClass]:!0}]),"aria-hidden":!0,inert:""},[w(t.$slots,"icon",{checked:e.isChecked,loading:e.loading},()=>[e.loading?(n(),y(c,{key:0})):i.isSwitchType?(n(),y(I,{key:1,checked:e.isChecked,size:e.iconSize,inline:""},null,8,["checked","size"])):e.buttonVariant?u("",!0):(n(),y(P(i.checkboxRadioIconElement),{key:2,size:e.iconSize},null,8,["size"]))],!0)],2),t.$slots.default||t.$slots.description?(n(),o("span",it,[t.$slots.default?(n(),o("span",{key:0,id:e.labelId,class:T(["checkbox-content__text",e.textClass])},[w(t.$slots,"default",{},void 0,!0)],10,at)):u("",!0),!i.isButtonType&&t.$slots.description?(n(),o("span",{key:1,id:e.descriptionId,class:"checkbox-content__description"},[w(t.$slots,"description",{},void 0,!0)],8,nt)):u("",!0)])):u("",!0)],2)}const ot=b(tt,[["render",lt],["__scopeId","data-v-5ca1e30f"]]);E();const B={name:"NcCheckboxRadioSwitch",components:{NcCheckboxContent:ot},inheritAttrs:!1,props:{id:{type:String,default:()=>"checkbox-radio-switch-"+z(),validator:t=>t.trim()!==""},wrapperId:{type:String,default:null},name:{type:String,default:null},ariaLabel:{type:String,default:""},type:{type:String,default:"checkbox",validator:t=>[S,C,f,x].includes(t)},buttonVariant:{type:Boolean,default:!1},buttonVariantGrouped:{type:String,default:"no",validator:t=>["no","vertical","horizontal"].includes(t)},modelValue:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},required:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:null},class:{type:[String,Array,Object],default:""},style:{type:[String,Array,Object],default:""},description:{type:String,default:null}},emits:["update:modelValue"],setup(t,{emit:a}){const e=me();J(()=>e?.value.register(!1));const s=A(()=>e?.value?C:t.type),l=A({get(){return e?.value?e.value.modelValue:t.modelValue},set(i){e?.value?e.value.onUpdate(i):a("update:modelValue",i)}});return{internalType:s,internalModelValue:l,labelId:z(),descriptionId:z()}},computed:{isButtonType(){return this.internalType===x},computedWrapperElement(){return this.isButtonType?"button":this.wrapperElement!==null?this.wrapperElement:"span"},listeners(){return this.isButtonType?{click:this.onToggle}:{change:this.onToggle}},iconSize(){return this.internalType===f?36:20},cssIconSize(){return this.iconSize+"px"},cssIconHeight(){return this.internalType===f?"16px":this.cssIconSize},inputType(){return[S,C,x].includes(this.internalType)?this.internalType:S},isChecked(){return this.value!==null?Array.isArray(this.internalModelValue)?[...this.internalModelValue].indexOf(this.value)>-1:this.internalModelValue===this.value:this.internalModelValue===!0},hasIndeterminate(){return[S,C].includes(this.inputType)}},mounted(){if(this.name&&this.internalType===S&&!Array.isArray(this.internalModelValue))throw new Error("When using groups of checkboxes, the updated value will be an array.");if(this.name&&this.internalType===f)throw new Error("Switches are not made to be used for data sets. Please use checkboxes instead.");if(typeof this.internalModelValue!="boolean"&&this.internalType===f)throw new Error("Switches can only be used with boolean as modelValue prop.")},methods:{t:q,n:G,onToggle(t){if(!(this.disabled||t.target.tagName.toLowerCase()==="a")){if(this.internalType===C){this.internalModelValue=this.value;return}if(this.internalType===f){this.internalModelValue=!this.isChecked;return}if(typeof this.internalModelValue=="boolean"){this.internalModelValue=!this.internalModelValue;return}this.isChecked?this.internalModelValue=this.internalModelValue.filter(a=>a!==this.value):this.internalModelValue=[...this.internalModelValue,this.value]}}}},O=()=>{D(t=>({v5ac25550:t.cssIconSize,d98ce684:t.cssIconHeight}))},H=B.setup;B.setup=H?(t,a)=>(O(),H(t,a)):O;const st=["id","aria-labelledby","aria-describedby","aria-label","disabled","type","value","checked",".indeterminate","required","name"];function rt(t,a,e,s,l,i){const c=m("NcCheckboxContent");return n(),y(P(i.computedWrapperElement),v({id:e.wrapperId??(i.isButtonType?e.id:null),"aria-label":i.isButtonType&&e.ariaLabel?e.ariaLabel:void 0,class:["checkbox-radio-switch",[t.$props.class,{["checkbox-radio-switch-"+s.internalType]:s.internalType,"checkbox-radio-switch--checked":i.isChecked,"checkbox-radio-switch--disabled":e.disabled,"checkbox-radio-switch--indeterminate":i.hasIndeterminate?e.indeterminate:!1,"checkbox-radio-switch--button-variant":e.buttonVariant,"checkbox-radio-switch--button-variant-v-grouped":e.buttonVariant&&e.buttonVariantGrouped==="vertical","checkbox-radio-switch--button-variant-h-grouped":e.buttonVariant&&e.buttonVariantGrouped==="horizontal","button-vue":i.isButtonType}]],style:e.style,type:i.isButtonType?"button":null},i.isButtonType?t.$attrs:{},$(i.isButtonType?i.listeners:{})),{default:p(()=>[i.isButtonType?u("",!0):(n(),o("input",v({key:0,id:e.id,"aria-labelledby":!i.isButtonType&&!e.ariaLabel?s.labelId:null,"aria-describedby":!i.isButtonType&&(e.description||t.$slots.description)?s.descriptionId:null,"aria-label":e.ariaLabel||void 0,class:"checkbox-radio-switch__input",disabled:e.disabled,type:i.inputType,value:e.value,checked:i.isChecked,".indeterminate":i.hasIndeterminate?e.indeterminate:null,required:e.required,name:e.name},t.$attrs,$(i.listeners,!0)),null,48,st)),_(c,{id:i.isButtonType?void 0:`${e.id}-label`,class:"checkbox-radio-switch__content",iconClass:"checkbox-radio-switch__icon",textClass:"checkbox-radio-switch__text",type:s.internalType,indeterminate:i.hasIndeterminate?e.indeterminate:!1,buttonVariant:e.buttonVariant,isChecked:i.isChecked,loading:e.loading,labelId:s.labelId,descriptionId:s.descriptionId,iconSize:i.iconSize,onClick:i.onToggle},Y({icon:p(()=>[w(t.$slots,"icon",{},void 0,!0)]),_:2},[t.$slots.description||e.description?{name:"description",fn:p(()=>[w(t.$slots,"description",{},()=>[k(r(e.description),1)],!0)]),key:"0"}:void 0,t.$slots.default?{name:"default",fn:p(()=>[w(t.$slots,"default",{},void 0,!0)]),key:"1"}:void 0]),1032,["id","type","indeterminate","buttonVariant","isChecked","loading","labelId","descriptionId","iconSize","onClick"])]),_:3},16,["id","aria-label","class","style","type"])}const ct=b(B,[["render",rt],["__scopeId","data-v-c34c63a4"]]),dt={name:"HelpCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ut=["aria-hidden","aria-label"],ht=["fill","width","height"],pt={d:"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z"},yt={key:0};function bt(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon help-circle-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",pt,[e.title?(n(),o("title",yt,r(e.title),1)):u("",!0)])],8,ht))],16,ut)}const gt=b(dt,[["render",bt]]);E(K);const kt={class:"settings-section"},ft={class:"settings-section__name"},mt=["aria-label","href","title"],vt={key:0,class:"settings-section__desc"},Ct=R({__name:"NcSettingsSection",props:{name:{},description:{default:""},docUrl:{default:""}},setup(t){const a=q("External documentation");return(e,s)=>(n(),o("div",kt,[d("h2",ft,[k(r(t.name)+" ",1),t.docUrl?(n(),o("a",{key:0,"aria-label":N(a),class:"settings-section__info",href:t.docUrl,rel:"noreferrer nofollow",target:"_blank",title:N(a)},[_(gt,{size:20})],8,mt)):u("",!0)]),t.description?(n(),o("p",vt,r(t.description),1)):u("",!0),w(e.$slots,"default",{},void 0,!0)]))}}),wt=b(Ct,[["__scopeId","data-v-9cedb949"]]),St={name:"PersonalSettings",components:{NcButton:ie,NcCheckboxRadioSwitch:ct,NcNoteCard:te,NcSelect:ee,NcSettingsSection:wt},data(){const t=ce("absence","personalConfig");return{config:t,weekdayList:[{iso:1,label:h("absence","Monday")},{iso:2,label:h("absence","Tuesday")},{iso:3,label:h("absence","Wednesday")},{iso:4,label:h("absence","Thursday")},{iso:5,label:h("absence","Friday")},{iso:6,label:h("absence","Saturday")},{iso:7,label:h("absence","Sunday")}],weekdays:[...de(t.workWeekdays)].sort(),overriding:!t.availabilitySet||t.workWeekdaysOverride!=="",country:null,region:null,countryOptions:[],regionOptions:[],loadingCountries:!1,saving:!1}},computed:{weekdaysDisabled(){return this.config.availabilitySet&&!this.overriding},detectedWeekdayLabels(){return(this.config.workWeekdaysDetected||[]).map(t=>this.weekdayList.find(a=>a.iso===t)?.label).filter(Boolean).join(", ")},countryPlaceholder(){return this.config.holidayCountryDetected?h("absence","Detected: {country}",{country:this.config.holidayCountryDetected}):h("absence","Select a country…")}},async mounted(){this.loadingCountries=!0;try{this.countryOptions=await re(),this.country=this.countryOptions.find(t=>t.id===this.config.holidayCountry)||null,await this.reloadRegions()}catch{L(h("absence","Could not load the country list"))}finally{this.loadingCountries=!1}},methods:{t:h,toggleWeekday(t,a){const e=new Set(this.weekdays);a?e.add(t):e.delete(t),this.weekdays=[...e].sort()},cancelOverride(){this.overriding=!1,this.weekdays=[...this.config.workWeekdaysDetected||[]].sort()},async onCountryChange(){this.region=null,await this.reloadRegions()},async reloadRegions(){this.regionOptions=this.country?await se(this.country.id):[],this.region=this.regionOptions.find(t=>t.id===this.config.holidayRegion)||null},save(){this.saving=!0;const t=this.weekdays.join(","),a=(this.config.workWeekdaysDetected||[]).join(","),e=this.config.availabilitySet&&t===a?"":t,s=this.country?this.country.id:"",l=s===(this.config.holidayCountryDetected||"")?"":s,i={work_weekdays:e,holiday_country:l,holiday_region:this.region?this.region.id:""};le.updatePersonalConfig(i).then(c=>{this.config=c,oe(h("absence","Settings saved"))}).catch(()=>L(h("absence","Could not save settings"))).finally(()=>{this.saving=!1})}}},_t={class:"subheading"},xt={class:"weekdays"},Vt={class:"actions-row"},Tt={class:"subheading"},At={class:"hint"},It={class:"field"},zt={key:2,class:"field"};function Bt(t,a,e,s,l,i){const c=m("NcNoteCard"),I=m("NcCheckboxRadioSwitch"),V=m("NcButton"),M=m("NcSelect"),U=m("NcSettingsSection");return n(),y(U,{name:i.t("absence","Absence"),description:i.t("absence","These settings prefill the “Working days” field when you request time off. You can always change the number on the request itself.")},{default:p(()=>[d("h3",_t,r(i.t("absence","Working days")),1),l.config.availabilitySet?(n(),y(c,{key:0,type:"success"},{default:p(()=>[k(r(i.t("absence","Detected from your Availability: {days}.",{days:i.detectedWeekdayLabels})),1)]),_:1})):(n(),y(c,{key:1,type:"info"},{default:p(()=>[k(r(i.t("absence","You have not set your working hours yet. Set your Availability so your working days are filled in automatically — until then Monday–Friday is assumed.")),1)]),_:1})),d("div",xt,[(n(!0),o(ae,null,ne(l.weekdayList,g=>(n(),y(I,{key:g.iso,"model-value":l.weekdays.includes(g.iso),disabled:i.weekdaysDisabled,"onUpdate:modelValue":j=>i.toggleWeekday(g.iso,j)},{default:p(()=>[k(r(g.label),1)]),_:2},1032,["model-value","disabled","onUpdate:modelValue"]))),128))]),d("div",Vt,[_(V,{variant:"secondary",href:"#settings-personal-availability"},{default:p(()=>[k(r(l.config.availabilitySet?i.t("absence","Change availability"):i.t("absence","Set availability")),1)]),_:1}),l.config.availabilitySet&&!l.overriding?(n(),y(V,{key:0,variant:"tertiary",onClick:a[0]||(a[0]=g=>l.overriding=!0)},{default:p(()=>[k(r(i.t("absence","Override")),1)]),_:1})):l.config.availabilitySet&&l.overriding?(n(),y(V,{key:1,variant:"tertiary",onClick:i.cancelOverride},{default:p(()=>[k(r(i.t("absence","Cancel override")),1)]),_:1},8,["onClick"])):u("",!0)]),d("h3",Tt,r(i.t("absence","Public holidays")),1),d("p",At,r(i.t("absence","Public holidays for your location are not counted as working days. Choose your country and region so the right holidays apply.")),1),d("div",It,[d("label",null,r(i.t("absence","Country")),1),_(M,{modelValue:l.country,"onUpdate:modelValue":[a[1]||(a[1]=g=>l.country=g),i.onCountryChange],options:l.countryOptions,loading:l.loadingCountries,label:"label",placeholder:i.countryPlaceholder},null,8,["modelValue","options","loading","placeholder","onUpdate:modelValue"])]),l.regionOptions.length?(n(),o("div",zt,[d("label",null,r(i.t("absence","Region")),1),_(M,{modelValue:l.region,"onUpdate:modelValue":a[2]||(a[2]=g=>l.region=g),options:l.regionOptions,label:"label",placeholder:i.t("absence","Whole country")},null,8,["modelValue","options","placeholder"])])):u("",!0),_(V,{variant:"primary",disabled:l.saving,onClick:i.save},{default:p(()=>[k(r(i.t("absence","Save settings")),1)]),_:1},8,["disabled","onClick"])]),_:1},8,["name","description"])}const Mt=Q(St,[["render",Bt],["__scopeId","data-v-f72d4596"]]),W=ue(Mt);W.config.globalProperties.t=h,W.mount("#absence-personal-settings"); +`,pe=R({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(t){D(s=>({v6bd152af:a.value,v16fd8ca9:e.value}));const a=A(()=>t.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),e=A(()=>t.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(s,l)=>(n(),y(Z,{class:T(s.$style.iconToggleSwitch),svg:he,size:t.size,inline:t.inline},null,8,["class","size","inline"]))}}),ye="_iconToggleSwitch_IKWaj",be={"material-design-icon":"_material-design-icon_63AMQ",iconToggleSwitch:ye},ge={$style:be},ke=b(pe,[["__cssModules",ge]]),fe=Symbol.for("insideRadioGroup");function me(){return G(fe,void 0)}const ve={name:"CheckboxBlankOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ce=["aria-hidden","aria-label"],we=["fill","width","height"],Se={d:"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z"},_e={key:0};function xe(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon checkbox-blank-outline-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",Se,[e.title?(n(),o("title",_e,r(e.title),1)):u("",!0)])],8,we))],16,Ce)}const Ve=b(ve,[["render",xe]]),Te={name:"CheckboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ae=["aria-hidden","aria-label"],Ie=["fill","width","height"],Be={d:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},ze={key:0};function Me(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon checkbox-marked-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",Be,[e.title?(n(),o("title",ze,r(e.title),1)):u("",!0)])],8,Ie))],16,Ae)}const $e=b(Te,[["render",Me]]),Ne={name:"MinusBoxIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},He=["aria-hidden","aria-label"],Le=["fill","width","height"],Oe={d:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z"},We={key:0};function Re(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon minus-box-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",Oe,[e.title?(n(),o("title",We,r(e.title),1)):u("",!0)])],8,Le))],16,He)}const De=b(Ne,[["render",Re]]),Ee={name:"RadioboxBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ue=["aria-hidden","aria-label"],qe=["fill","width","height"],Pe={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},je={key:0};function Ze(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon radiobox-blank-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",Pe,[e.title?(n(),o("title",je,r(e.title),1)):u("",!0)])],8,qe))],16,Ue)}const Ge=b(Ee,[["render",Ze]]),Ye={name:"RadioboxMarkedIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Fe=["aria-hidden","aria-label"],Qe=["fill","width","height"],Xe={d:"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,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,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z"},Ke={key:0};function Je(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon radiobox-marked-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",Xe,[e.title?(n(),o("title",Ke,r(e.title),1)):u("",!0)])],8,Qe))],16,Fe)}const et=b(Ye,[["render",Je]]),S="checkbox",C="radio",f="switch",x="button",tt={name:"NcCheckboxContent",components:{NcLoadingIcon:X,NcIconToggleSwitch:ke},props:{iconClass:{type:[String,Object],default:null},textClass:{type:[String,Object],default:null},type:{type:String,default:"checkbox",validator:t=>[S,C,f,x].includes(t)},buttonVariant:{type:Boolean,default:!1},isChecked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},iconSize:{type:Number,default:24},labelId:{type:String,required:!0},descriptionId:{type:String,required:!0}},computed:{isButtonType(){return this.type===x},isSwitchType(){return this.type===f},checkboxRadioIconElement(){return this.type===C?this.isChecked?et:Ge:this.indeterminate?De:this.isChecked?$e:Ve}}},it={key:0,class:"checkbox-content__wrapper"},at=["id"],nt=["id"];function lt(t,a,e,s,l,i){const c=m("NcLoadingIcon"),I=m("NcIconToggleSwitch");return n(),o("span",{class:T(["checkbox-content",{["checkbox-content-"+e.type]:!0,"checkbox-content--button-variant":e.buttonVariant,"checkbox-content--has-text":!!t.$slots.default}])},[d("span",{class:T(["checkbox-content__icon",{"checkbox-content__icon--checked":e.isChecked,"checkbox-content__icon--has-description":!i.isButtonType&&t.$slots.description,[e.iconClass]:!0}]),"aria-hidden":!0,inert:""},[w(t.$slots,"icon",{checked:e.isChecked,loading:e.loading},()=>[e.loading?(n(),y(c,{key:0})):i.isSwitchType?(n(),y(I,{key:1,checked:e.isChecked,size:e.iconSize,inline:""},null,8,["checked","size"])):e.buttonVariant?u("",!0):(n(),y(q(i.checkboxRadioIconElement),{key:2,size:e.iconSize},null,8,["size"]))],!0)],2),t.$slots.default||t.$slots.description?(n(),o("span",it,[t.$slots.default?(n(),o("span",{key:0,id:e.labelId,class:T(["checkbox-content__text",e.textClass])},[w(t.$slots,"default",{},void 0,!0)],10,at)):u("",!0),!i.isButtonType&&t.$slots.description?(n(),o("span",{key:1,id:e.descriptionId,class:"checkbox-content__description"},[w(t.$slots,"description",{},void 0,!0)],8,nt)):u("",!0)])):u("",!0)],2)}const ot=b(tt,[["render",lt],["__scopeId","data-v-5ca1e30f"]]);E();const z={name:"NcCheckboxRadioSwitch",components:{NcCheckboxContent:ot},inheritAttrs:!1,props:{id:{type:String,default:()=>"checkbox-radio-switch-"+B(),validator:t=>t.trim()!==""},wrapperId:{type:String,default:null},name:{type:String,default:null},ariaLabel:{type:String,default:""},type:{type:String,default:"checkbox",validator:t=>[S,C,f,x].includes(t)},buttonVariant:{type:Boolean,default:!1},buttonVariantGrouped:{type:String,default:"no",validator:t=>["no","vertical","horizontal"].includes(t)},modelValue:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},required:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:null},class:{type:[String,Array,Object],default:""},style:{type:[String,Array,Object],default:""},description:{type:String,default:null}},emits:["update:modelValue"],setup(t,{emit:a}){const e=me();Q(()=>e?.value.register(!1));const s=A(()=>e?.value?C:t.type),l=A({get(){return e?.value?e.value.modelValue:t.modelValue},set(i){e?.value?e.value.onUpdate(i):a("update:modelValue",i)}});return{internalType:s,internalModelValue:l,labelId:B(),descriptionId:B()}},computed:{isButtonType(){return this.internalType===x},computedWrapperElement(){return this.isButtonType?"button":this.wrapperElement!==null?this.wrapperElement:"span"},listeners(){return this.isButtonType?{click:this.onToggle}:{change:this.onToggle}},iconSize(){return this.internalType===f?36:20},cssIconSize(){return this.iconSize+"px"},cssIconHeight(){return this.internalType===f?"16px":this.cssIconSize},inputType(){return[S,C,x].includes(this.internalType)?this.internalType:S},isChecked(){return this.value!==null?Array.isArray(this.internalModelValue)?[...this.internalModelValue].indexOf(this.value)>-1:this.internalModelValue===this.value:this.internalModelValue===!0},hasIndeterminate(){return[S,C].includes(this.inputType)}},mounted(){if(this.name&&this.internalType===S&&!Array.isArray(this.internalModelValue))throw new Error("When using groups of checkboxes, the updated value will be an array.");if(this.name&&this.internalType===f)throw new Error("Switches are not made to be used for data sets. Please use checkboxes instead.");if(typeof this.internalModelValue!="boolean"&&this.internalType===f)throw new Error("Switches can only be used with boolean as modelValue prop.")},methods:{t:U,n:Y,onToggle(t){if(!(this.disabled||t.target.tagName.toLowerCase()==="a")){if(this.internalType===C){this.internalModelValue=this.value;return}if(this.internalType===f){this.internalModelValue=!this.isChecked;return}if(typeof this.internalModelValue=="boolean"){this.internalModelValue=!this.internalModelValue;return}this.isChecked?this.internalModelValue=this.internalModelValue.filter(a=>a!==this.value):this.internalModelValue=[...this.internalModelValue,this.value]}}}},L=()=>{D(t=>({v5ac25550:t.cssIconSize,d98ce684:t.cssIconHeight}))},O=z.setup;z.setup=O?(t,a)=>(L(),O(t,a)):L;const st=["id","aria-labelledby","aria-describedby","aria-label","disabled","type","value","checked",".indeterminate","required","name"];function rt(t,a,e,s,l,i){const c=m("NcCheckboxContent");return n(),y(q(i.computedWrapperElement),v({id:e.wrapperId??(i.isButtonType?e.id:null),"aria-label":i.isButtonType&&e.ariaLabel?e.ariaLabel:void 0,class:["checkbox-radio-switch",[t.$props.class,{["checkbox-radio-switch-"+s.internalType]:s.internalType,"checkbox-radio-switch--checked":i.isChecked,"checkbox-radio-switch--disabled":e.disabled,"checkbox-radio-switch--indeterminate":i.hasIndeterminate?e.indeterminate:!1,"checkbox-radio-switch--button-variant":e.buttonVariant,"checkbox-radio-switch--button-variant-v-grouped":e.buttonVariant&&e.buttonVariantGrouped==="vertical","checkbox-radio-switch--button-variant-h-grouped":e.buttonVariant&&e.buttonVariantGrouped==="horizontal","button-vue":i.isButtonType}]],style:e.style,type:i.isButtonType?"button":null},i.isButtonType?t.$attrs:{},$(i.isButtonType?i.listeners:{})),{default:p(()=>[i.isButtonType?u("",!0):(n(),o("input",v({key:0,id:e.id,"aria-labelledby":!i.isButtonType&&!e.ariaLabel?s.labelId:null,"aria-describedby":!i.isButtonType&&(e.description||t.$slots.description)?s.descriptionId:null,"aria-label":e.ariaLabel||void 0,class:"checkbox-radio-switch__input",disabled:e.disabled,type:i.inputType,value:e.value,checked:i.isChecked,".indeterminate":i.hasIndeterminate?e.indeterminate:null,required:e.required,name:e.name},t.$attrs,$(i.listeners,!0)),null,48,st)),_(c,{id:i.isButtonType?void 0:`${e.id}-label`,class:"checkbox-radio-switch__content",iconClass:"checkbox-radio-switch__icon",textClass:"checkbox-radio-switch__text",type:s.internalType,indeterminate:i.hasIndeterminate?e.indeterminate:!1,buttonVariant:e.buttonVariant,isChecked:i.isChecked,loading:e.loading,labelId:s.labelId,descriptionId:s.descriptionId,iconSize:i.iconSize,onClick:i.onToggle},F({icon:p(()=>[w(t.$slots,"icon",{},void 0,!0)]),_:2},[t.$slots.description||e.description?{name:"description",fn:p(()=>[w(t.$slots,"description",{},()=>[k(r(e.description),1)],!0)]),key:"0"}:void 0,t.$slots.default?{name:"default",fn:p(()=>[w(t.$slots,"default",{},void 0,!0)]),key:"1"}:void 0]),1032,["id","type","indeterminate","buttonVariant","isChecked","loading","labelId","descriptionId","iconSize","onClick"])]),_:3},16,["id","aria-label","class","style","type"])}const ct=b(z,[["render",rt],["__scopeId","data-v-c34c63a4"]]),dt={name:"HelpCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ut=["aria-hidden","aria-label"],ht=["fill","width","height"],pt={d:"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z"},yt={key:0};function bt(t,a,e,s,l,i){return n(),o("span",v(t.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon help-circle-icon",role:"img",onClick:a[0]||(a[0]=c=>t.$emit("click",c))}),[(n(),o("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[d("path",pt,[e.title?(n(),o("title",yt,r(e.title),1)):u("",!0)])],8,ht))],16,ut)}const gt=b(dt,[["render",bt]]);E(K);const kt={class:"settings-section"},ft={class:"settings-section__name"},mt=["aria-label","href","title"],vt={key:0,class:"settings-section__desc"},Ct=R({__name:"NcSettingsSection",props:{name:{},description:{default:""},docUrl:{default:""}},setup(t){const a=U("External documentation");return(e,s)=>(n(),o("div",kt,[d("h2",ft,[k(r(t.name)+" ",1),t.docUrl?(n(),o("a",{key:0,"aria-label":N(a),class:"settings-section__info",href:t.docUrl,rel:"noreferrer nofollow",target:"_blank",title:N(a)},[_(gt,{size:20})],8,mt)):u("",!0)]),t.description?(n(),o("p",vt,r(t.description),1)):u("",!0),w(e.$slots,"default",{},void 0,!0)]))}}),wt=b(Ct,[["__scopeId","data-v-9cedb949"]]),St={name:"PersonalSettings",components:{NcButton:ie,NcCheckboxRadioSwitch:ct,NcNoteCard:te,NcSelect:ee,NcSettingsSection:wt},data(){const t=ce("absence","personalConfig");return{config:t,weekdayList:[{iso:1,label:h("absence","Monday")},{iso:2,label:h("absence","Tuesday")},{iso:3,label:h("absence","Wednesday")},{iso:4,label:h("absence","Thursday")},{iso:5,label:h("absence","Friday")},{iso:6,label:h("absence","Saturday")},{iso:7,label:h("absence","Sunday")}],weekdays:[...de(t.workWeekdays)].sort(),overriding:!t.availabilitySet||t.workWeekdaysOverride!=="",country:null,region:null,countryOptions:[],regionOptions:[],loadingCountries:!1,saving:!1}},computed:{weekdaysDisabled(){return this.config.availabilitySet&&!this.overriding},detectedWeekdayLabels(){return(this.config.workWeekdaysDetected||[]).map(t=>this.weekdayList.find(a=>a.iso===t)?.label).filter(Boolean).join(", ")},countryPlaceholder(){return this.config.holidayCountryDetected?h("absence","Detected: {country}",{country:this.config.holidayCountryDetected}):h("absence","Select a country…")}},async mounted(){this.loadingCountries=!0;try{this.countryOptions=await re(),this.country=this.countryOptions.find(t=>t.id===this.config.holidayCountry)||null,await this.reloadRegions()}catch{H(h("absence","Could not load the country list"))}finally{this.loadingCountries=!1}},methods:{t:h,toggleWeekday(t,a){const e=new Set(this.weekdays);a?e.add(t):e.delete(t),this.weekdays=[...e].sort()},cancelOverride(){this.overriding=!1,this.weekdays=[...this.config.workWeekdaysDetected||[]].sort()},async onCountryChange(){this.region=null,await this.reloadRegions()},async reloadRegions(){this.regionOptions=this.country?await se(this.country.id):[],this.region=this.regionOptions.find(t=>t.id===this.config.holidayRegion)||null},save(){this.saving=!0;const t=this.weekdays.join(","),a=(this.config.workWeekdaysDetected||[]).join(","),e=this.config.availabilitySet&&t===a?"":t,s=this.country?this.country.id:"",l=s===(this.config.holidayCountryDetected||"")?"":s,i={work_weekdays:e,holiday_country:l,holiday_region:this.region?this.region.id:""};le.updatePersonalConfig(i).then(c=>{this.config=c,oe(h("absence","Settings saved"))}).catch(()=>H(h("absence","Could not save settings"))).finally(()=>{this.saving=!1})}}},_t={class:"subheading"},xt={class:"weekdays"},Vt={class:"actions-row"},Tt={class:"subheading"},At={class:"hint"},It={class:"field"},Bt={key:2,class:"field"};function zt(t,a,e,s,l,i){const c=m("NcNoteCard"),I=m("NcCheckboxRadioSwitch"),V=m("NcButton"),M=m("NcSelect"),P=m("NcSettingsSection");return n(),y(P,{name:i.t("absence","Absence"),description:i.t("absence","These settings prefill the “Working days” field when you request time off. You can always change the number on the request itself.")},{default:p(()=>[d("h3",_t,r(i.t("absence","Working days")),1),l.config.availabilitySet?(n(),y(c,{key:0,type:"success"},{default:p(()=>[k(r(i.t("absence","Detected from your Availability: {days}.",{days:i.detectedWeekdayLabels})),1)]),_:1})):(n(),y(c,{key:1,type:"info"},{default:p(()=>[k(r(i.t("absence","You have not set your working hours yet. Set your Availability so your working days are filled in automatically — until then Monday–Friday is assumed.")),1)]),_:1})),d("div",xt,[(n(!0),o(ae,null,ne(l.weekdayList,g=>(n(),y(I,{key:g.iso,modelValue:l.weekdays.includes(g.iso),disabled:i.weekdaysDisabled,"onUpdate:modelValue":j=>i.toggleWeekday(g.iso,j)},{default:p(()=>[k(r(g.label),1)]),_:2},1032,["modelValue","disabled","onUpdate:modelValue"]))),128))]),d("div",Vt,[_(V,{variant:"secondary",href:"#settings-personal-availability"},{default:p(()=>[k(r(l.config.availabilitySet?i.t("absence","Change availability"):i.t("absence","Set availability")),1)]),_:1}),l.config.availabilitySet&&!l.overriding?(n(),y(V,{key:0,variant:"tertiary",onClick:a[0]||(a[0]=g=>l.overriding=!0)},{default:p(()=>[k(r(i.t("absence","Override")),1)]),_:1})):l.config.availabilitySet&&l.overriding?(n(),y(V,{key:1,variant:"tertiary",onClick:i.cancelOverride},{default:p(()=>[k(r(i.t("absence","Cancel override")),1)]),_:1},8,["onClick"])):u("",!0)]),d("h3",Tt,r(i.t("absence","Public holidays")),1),d("p",At,r(i.t("absence","Public holidays for your location are not counted as working days. Choose your country and region so the right holidays apply.")),1),d("div",It,[d("label",null,r(i.t("absence","Country")),1),_(M,{modelValue:l.country,"onUpdate:modelValue":[a[1]||(a[1]=g=>l.country=g),i.onCountryChange],options:l.countryOptions,loading:l.loadingCountries,label:"label",placeholder:i.countryPlaceholder},null,8,["modelValue","options","loading","placeholder","onUpdate:modelValue"])]),l.regionOptions.length?(n(),o("div",Bt,[d("label",null,r(i.t("absence","Region")),1),_(M,{modelValue:l.region,"onUpdate:modelValue":a[2]||(a[2]=g=>l.region=g),options:l.regionOptions,label:"label",placeholder:i.t("absence","Whole country")},null,8,["modelValue","options","placeholder"])])):u("",!0),_(V,{variant:"primary",disabled:l.saving,onClick:i.save},{default:p(()=>[k(r(i.t("absence","Save settings")),1)]),_:1},8,["disabled","onClick"])]),_:1},8,["name","description"])}const Mt=J(St,[["render",zt],["__scopeId","data-v-35c7818d"]]),W=ue(Mt);W.config.globalProperties.t=h,W.mount("#absence-personal-settings"); //# sourceMappingURL=absence-personal-settings.mjs.map diff --git a/js/absence-personal-settings.mjs.license b/js/absence-personal-settings.mjs.license index e80865a..6c06bdd 100644 --- a/js/absence-personal-settings.mjs.license +++ b/js/absence-personal-settings.mjs.license @@ -4,7 +4,7 @@ SPDX-FileCopyrightText: absence developers This file is generated from multiple sources. Included packages: - @nextcloud/vue - - version: 9.8.2 + - version: 9.9.0 - license: AGPL-3.0-or-later - absence - version: 1.0.0 diff --git a/js/absence-personal-settings.mjs.map b/js/absence-personal-settings.mjs.map index 64eced2..d84321a 100644 --- a/js/absence-personal-settings.mjs.map +++ b/js/absence-personal-settings.mjs.map @@ -1 +1 @@ -{"version":3,"file":"absence-personal-settings.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcIconToggleSwitch-CWzIC2ar.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcRadioGroup-D6llQmAl.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCheckboxRadioSwitch-BVTMQSAg.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSection-DmfxX2se.mjs","../src/views/settings/PersonalSettings.vue","../src/personal-settings.js"],"sourcesContent":["import '../assets/NcIconToggleSwitch-BrjPjGQL.css';\nimport { defineComponent, useCssVars, computed, openBlock, createBlock, normalizeClass } from \"vue\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst svg = `\n\t\n\t\n`;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconToggleSwitch\",\n props: {\n checked: { type: Boolean },\n size: { default: 34 },\n inline: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v6bd152af\": color.value,\n \"v16fd8ca9\": cx.value\n }));\n const color = computed(() => __props.checked ? \"var(--color-primary-element)\" : \"var(--color-text-maxcontrast)\");\n const cx = computed(() => __props.checked ? \"calc(17 / 24 * 100%)\" : \"calc(7 / 24 * 100%)\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcIconSvgWrapper, {\n class: normalizeClass(_ctx.$style.iconToggleSwitch),\n svg,\n size: __props.size,\n inline: __props.inline\n }, null, 8, [\"class\", \"size\", \"inline\"]);\n };\n }\n});\nconst iconToggleSwitch = \"_iconToggleSwitch_CPPoW\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_tLFaA\",\n iconToggleSwitch\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcIconToggleSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcIconToggleSwitch as N\n};\n//# sourceMappingURL=NcIconToggleSwitch-CWzIC2ar.mjs.map\n","import { inject } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INSIDE_RADIO_GROUP_KEY = /* @__PURE__ */ Symbol.for(\"insideRadioGroup\");\nfunction useInsideRadioGroup() {\n return inject(INSIDE_RADIO_GROUP_KEY, void 0);\n}\nexport {\n INSIDE_RADIO_GROUP_KEY as I,\n useInsideRadioGroup as u\n};\n//# sourceMappingURL=useNcRadioGroup-D6llQmAl.mjs.map\n","import '../assets/NcCheckboxRadioSwitch-BlQSZVW0.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, normalizeClass, renderSlot, createBlock, resolveDynamicComponent, toHandlers, withCtx, createVNode, createSlots, createTextVNode, onMounted, computed, useCssVars } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch-CWzIC2ar.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { r as register, K as n, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u as useInsideRadioGroup } from \"./useNcRadioGroup-D6llQmAl.mjs\";\nconst _sfc_main$6 = {\n name: \"CheckboxBlankOutlineIcon\",\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: \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\" };\nconst _hoisted_4$4 = { 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 checkbox-blank-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$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$6);\n}\nconst CheckboxBlankOutline = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n name: \"CheckboxMarkedIcon\",\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: \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$3 = { 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 checkbox-marked-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$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$5);\n}\nconst CheckboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n name: \"MinusBoxIcon\",\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$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$2 = { 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 minus-box-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$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$4);\n}\nconst MinusBox = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$3 = {\n name: \"RadioboxBlankIcon\",\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: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\" };\nconst _hoisted_4$1 = { 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 radiobox-blank-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$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst RadioboxBlank = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"RadioboxMarkedIcon\",\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: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,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,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\" };\nconst _hoisted_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 radiobox-marked-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, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst RadioboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst TYPE_CHECKBOX = \"checkbox\";\nconst TYPE_RADIO = \"radio\";\nconst TYPE_SWITCH = \"switch\";\nconst TYPE_BUTTON = \"button\";\nconst _sfc_main$1 = {\n name: \"NcCheckboxContent\",\n components: {\n NcLoadingIcon,\n NcIconToggleSwitch\n },\n props: {\n /**\n * Class for the icon element\n */\n iconClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Class for the text element\n */\n textClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * True if the entry is checked\n */\n isChecked: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Icon size\n */\n iconSize: {\n type: Number,\n default: 24\n },\n /**\n * Label id attribute\n */\n labelId: {\n type: String,\n required: true\n },\n /**\n * Description id attribute\n */\n descriptionId: {\n type: String,\n required: true\n }\n },\n computed: {\n isButtonType() {\n return this.type === TYPE_BUTTON;\n },\n isSwitchType() {\n return this.type === TYPE_SWITCH;\n },\n /**\n * Returns the proper Material icon depending on the select case\n *\n * @return {object}\n */\n checkboxRadioIconElement() {\n if (this.type === TYPE_RADIO) {\n if (this.isChecked) {\n return RadioboxMarked;\n }\n return RadioboxBlank;\n }\n if (this.indeterminate) {\n return MinusBox;\n }\n if (this.isChecked) {\n return CheckboxMarked;\n }\n return CheckboxBlankOutline;\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"checkbox-content__wrapper\"\n};\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"id\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcIconToggleSwitch = resolveComponent(\"NcIconToggleSwitch\");\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"checkbox-content\", {\n [\"checkbox-content-\" + $props.type]: true,\n \"checkbox-content--button-variant\": $props.buttonVariant,\n \"checkbox-content--has-text\": !!_ctx.$slots.default\n }])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"checkbox-content__icon\", {\n \"checkbox-content__icon--checked\": $props.isChecked,\n \"checkbox-content__icon--has-description\": !$options.isButtonType && _ctx.$slots.description,\n [$props.iconClass]: true\n }]),\n \"aria-hidden\": true,\n inert: \"\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {\n checked: $props.isChecked,\n loading: $props.loading\n }, () => [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $options.isSwitchType ? (openBlock(), createBlock(_component_NcIconToggleSwitch, {\n key: 1,\n checked: $props.isChecked,\n size: $props.iconSize,\n inline: \"\"\n }, null, 8, [\"checked\", \"size\"])) : !$props.buttonVariant ? (openBlock(), createBlock(resolveDynamicComponent($options.checkboxRadioIconElement), {\n key: 2,\n size: $props.iconSize\n }, null, 8, [\"size\"])) : createCommentVNode(\"\", true)\n ], true)\n ], 2),\n _ctx.$slots.default || _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", _hoisted_1$1, [\n _ctx.$slots.default ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: $props.labelId,\n class: normalizeClass([\"checkbox-content__text\", $props.textClass])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n !$options.isButtonType && _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n id: $props.descriptionId,\n class: \"checkbox-content__description\"\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcCheckboxContent = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-5ca1e30f\"]]);\nregister();\nconst _sfc_main = {\n name: \"NcCheckboxRadioSwitch\",\n components: {\n NcCheckboxContent\n },\n // We need to pass attributes to the input element\n inheritAttrs: false,\n props: {\n /**\n * Unique id attribute of the input\n */\n id: {\n type: String,\n default: () => \"checkbox-radio-switch-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Unique id attribute of the wrapper element\n */\n wrapperId: {\n type: String,\n default: null\n },\n /**\n * Input name. Required for radio, optional for checkbox, and ignored\n * for button.\n */\n name: {\n type: String,\n default: null\n },\n /**\n * Required if no text is set.\n * The aria-label is forwarded to the input or button.\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n *\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * Are the elements are all direct siblings?\n * If so they will be grouped horizontally or vertically\n *\n * @type {'no'|'horizontal'|'vertical'}\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariantGrouped: {\n type: String,\n default: \"no\",\n validator: (v) => [\"no\", \"vertical\", \"horizontal\"].includes(v)\n },\n /**\n * Checked state. To be used with `v-model:value`\n */\n modelValue: {\n type: [Boolean, Array, String],\n default: false\n },\n /**\n * Value to be synced on check\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Disabled state\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Required state\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Wrapping element tag\n *\n * When `type` is set to `button` this will be ignored\n *\n * Defaults to `span`\n */\n wrapperElement: {\n type: String,\n default: null\n },\n /**\n * The class(es) to pass to the wrapper / root element of the component\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * The style to pass to the wrapper / root element of the component\n */\n style: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Description\n *\n * This is unsupported when using button has type.\n */\n description: {\n type: String,\n default: null\n }\n },\n emits: [\"update:modelValue\"],\n setup(props, { emit }) {\n const radioGroup = useInsideRadioGroup();\n onMounted(() => radioGroup?.value.register(false));\n const internalType = computed(() => radioGroup?.value ? TYPE_RADIO : props.type);\n const internalModelValue = computed({\n get() {\n if (radioGroup?.value) {\n return radioGroup.value.modelValue;\n }\n return props.modelValue;\n },\n set(value) {\n if (radioGroup?.value) {\n radioGroup.value.onUpdate(value);\n } else {\n emit(\"update:modelValue\", value);\n }\n }\n });\n return {\n internalType,\n internalModelValue,\n labelId: createElementId(),\n descriptionId: createElementId()\n };\n },\n computed: {\n isButtonType() {\n return this.internalType === TYPE_BUTTON;\n },\n computedWrapperElement() {\n if (this.isButtonType) {\n return \"button\";\n }\n if (this.wrapperElement !== null) {\n return this.wrapperElement;\n }\n return \"span\";\n },\n listeners() {\n if (this.isButtonType) {\n return {\n click: this.onToggle\n };\n }\n return {\n change: this.onToggle\n };\n },\n iconSize() {\n return this.internalType === TYPE_SWITCH ? 36 : 20;\n },\n cssIconSize() {\n return this.iconSize + \"px\";\n },\n cssIconHeight() {\n return this.internalType === TYPE_SWITCH ? \"16px\" : this.cssIconSize;\n },\n /**\n * Return the input type.\n * Switch is not an official type\n *\n * @return {string}\n */\n inputType() {\n const nativeTypes = [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_BUTTON\n ];\n if (nativeTypes.includes(this.internalType)) {\n return this.internalType;\n }\n return TYPE_CHECKBOX;\n },\n /**\n * Check if that entry is checked\n * If value is defined, we use that as the checked value\n * If not, we expect true/false in this.checked\n *\n * @return {boolean}\n */\n isChecked() {\n if (this.value !== null) {\n if (Array.isArray(this.internalModelValue)) {\n return [...this.internalModelValue].indexOf(this.value) > -1;\n }\n return this.internalModelValue === this.value;\n }\n return this.internalModelValue === true;\n },\n hasIndeterminate() {\n return [\n TYPE_CHECKBOX,\n TYPE_RADIO\n ].includes(this.inputType);\n }\n },\n mounted() {\n if (this.name && this.internalType === TYPE_CHECKBOX) {\n if (!Array.isArray(this.internalModelValue)) {\n throw new Error(\"When using groups of checkboxes, the updated value will be an array.\");\n }\n }\n if (this.name && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches are not made to be used for data sets. Please use checkboxes instead.\");\n }\n if (typeof this.internalModelValue !== \"boolean\" && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches can only be used with boolean as modelValue prop.\");\n }\n },\n methods: {\n t,\n n,\n onToggle(event) {\n if (this.disabled || event.target.tagName.toLowerCase() === \"a\") {\n return;\n }\n if (this.internalType === TYPE_RADIO) {\n this.internalModelValue = this.value;\n return;\n }\n if (this.internalType === TYPE_SWITCH) {\n this.internalModelValue = !this.isChecked;\n return;\n }\n if (typeof this.internalModelValue === \"boolean\") {\n this.internalModelValue = !this.internalModelValue;\n return;\n }\n if (this.isChecked) {\n this.internalModelValue = this.internalModelValue.filter((v) => v !== this.value);\n } else {\n this.internalModelValue = [...this.internalModelValue, this.value];\n }\n }\n }\n};\nconst __injectCSSVars__ = () => {\n useCssVars((_ctx) => ({\n \"v5ac25550\": _ctx.cssIconSize,\n \"d98ce684\": _ctx.cssIconHeight\n }));\n};\nconst __setup__ = _sfc_main.setup;\n_sfc_main.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\nconst _hoisted_1 = [\"id\", \"aria-labelledby\", \"aria-describedby\", \"aria-label\", \"disabled\", \"type\", \"value\", \"checked\", \".indeterminate\", \"required\", \"name\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCheckboxContent = resolveComponent(\"NcCheckboxContent\");\n return openBlock(), createBlock(resolveDynamicComponent($options.computedWrapperElement), mergeProps({\n id: $props.wrapperId ?? ($options.isButtonType ? $props.id : null),\n \"aria-label\": $options.isButtonType && $props.ariaLabel ? $props.ariaLabel : void 0,\n class: [\"checkbox-radio-switch\", [\n _ctx.$props.class,\n {\n [\"checkbox-radio-switch-\" + $setup.internalType]: $setup.internalType,\n \"checkbox-radio-switch--checked\": $options.isChecked,\n \"checkbox-radio-switch--disabled\": $props.disabled,\n \"checkbox-radio-switch--indeterminate\": $options.hasIndeterminate ? $props.indeterminate : false,\n \"checkbox-radio-switch--button-variant\": $props.buttonVariant,\n \"checkbox-radio-switch--button-variant-v-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"vertical\",\n \"checkbox-radio-switch--button-variant-h-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"horizontal\",\n \"button-vue\": $options.isButtonType\n }\n ]],\n style: $props.style,\n type: $options.isButtonType ? \"button\" : null\n }, $options.isButtonType ? _ctx.$attrs : {}, toHandlers($options.isButtonType ? $options.listeners : {})), {\n default: withCtx(() => [\n !$options.isButtonType ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n id: $props.id,\n \"aria-labelledby\": !$options.isButtonType && !$props.ariaLabel ? $setup.labelId : null,\n \"aria-describedby\": !$options.isButtonType && ($props.description || _ctx.$slots.description) ? $setup.descriptionId : null,\n \"aria-label\": $props.ariaLabel || void 0,\n class: \"checkbox-radio-switch__input\",\n disabled: $props.disabled,\n type: $options.inputType,\n value: $props.value,\n checked: $options.isChecked,\n \".indeterminate\": $options.hasIndeterminate ? $props.indeterminate : null,\n required: $props.required,\n name: $props.name\n }, _ctx.$attrs, toHandlers($options.listeners, true)), null, 48, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcCheckboxContent, {\n id: !$options.isButtonType ? `${$props.id}-label` : void 0,\n class: \"checkbox-radio-switch__content\",\n iconClass: \"checkbox-radio-switch__icon\",\n textClass: \"checkbox-radio-switch__text\",\n type: $setup.internalType,\n indeterminate: $options.hasIndeterminate ? $props.indeterminate : false,\n buttonVariant: $props.buttonVariant,\n isChecked: $options.isChecked,\n loading: $props.loading,\n labelId: $setup.labelId,\n descriptionId: $setup.descriptionId,\n iconSize: $options.iconSize,\n onClick: $options.onToggle\n }, createSlots({\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots.description || $props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString($props.description), 1)\n ], true)\n ]),\n key: \"0\"\n } : void 0,\n !!_ctx.$slots.default ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"id\", \"type\", \"indeterminate\", \"buttonVariant\", \"isChecked\", \"loading\", \"labelId\", \"descriptionId\", \"iconSize\", \"onClick\"])\n ]),\n _: 3\n }, 16, [\"id\", \"aria-label\", \"class\", \"style\", \"type\"]);\n}\nconst NcCheckboxRadioSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-c34c63a4\"]]);\nexport {\n NcCheckboxRadioSwitch as N\n};\n//# sourceMappingURL=NcCheckboxRadioSwitch-BVTMQSAg.mjs.map\n","import '../assets/NcSettingsSection-f5rBJsKJ.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, createTextVNode, unref, createVNode, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { r as register, E as t26, a as t } from \"./_l10n-CG4CuN3H.mjs\";\nconst _sfc_main$1 = {\n name: \"HelpCircleIcon\",\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$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\" };\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 help-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$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$1);\n}\nconst HelpCircle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nregister(t26);\nconst _hoisted_1 = { class: \"settings-section\" };\nconst _hoisted_2 = { class: \"settings-section__name\" };\nconst _hoisted_3 = [\"aria-label\", \"href\", \"title\"];\nconst _hoisted_4 = {\n key: 0,\n class: \"settings-section__desc\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSettingsSection\",\n props: {\n name: {},\n description: { default: \"\" },\n docUrl: { default: \"\" }\n },\n setup(__props) {\n const ariaLabel = t(\"External documentation\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"h2\", _hoisted_2, [\n createTextVNode(toDisplayString(__props.name) + \" \", 1),\n __props.docUrl ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n \"aria-label\": unref(ariaLabel),\n class: \"settings-section__info\",\n href: __props.docUrl,\n rel: \"noreferrer nofollow\",\n target: \"_blank\",\n title: unref(ariaLabel)\n }, [\n createVNode(HelpCircle, { size: 20 })\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n __props.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, toDisplayString(__props.description), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n };\n }\n});\nconst NcSettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-9cedb949\"]]);\nexport {\n NcSettingsSection as N\n};\n//# sourceMappingURL=NcSettingsSection-DmfxX2se.mjs.map\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createApp } from 'vue'\nimport { translate as t } from '@nextcloud/l10n'\nimport PersonalSettings from './views/settings/PersonalSettings.vue'\n\nconst app = createApp(PersonalSettings)\napp.config.globalProperties.t = t\napp.mount('#absence-personal-settings')\n"],"names":["svg","_sfc_main","defineComponent","__props","useCssVars","_ctx","color","cx","computed","_cache","openBlock","createBlock","NcIconSvgWrapper","normalizeClass","iconToggleSwitch","style0","cssModules","NcIconToggleSwitch","_export_sfc","INSIDE_RADIO_GROUP_KEY","useInsideRadioGroup","inject","_sfc_main$6","_hoisted_1$6","_hoisted_2$5","_hoisted_3$5","_hoisted_4$4","_sfc_render$6","$props","$setup","$data","$options","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","CheckboxBlankOutline","_sfc_main$5","_hoisted_1$5","_hoisted_2$4","_hoisted_3$4","_hoisted_4$3","_sfc_render$5","CheckboxMarked","_sfc_main$4","_hoisted_1$4","_hoisted_2$3","_hoisted_3$3","_hoisted_4$2","_sfc_render$4","MinusBox","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$1","_sfc_render$3","RadioboxBlank","_sfc_main$2","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4","_sfc_render$2","RadioboxMarked","TYPE_CHECKBOX","TYPE_RADIO","TYPE_SWITCH","TYPE_BUTTON","_sfc_main$1","NcLoadingIcon","type","_hoisted_1$1","_hoisted_2","_hoisted_3","_sfc_render$1","_component_NcLoadingIcon","resolveComponent","_component_NcIconToggleSwitch","renderSlot","resolveDynamicComponent","NcCheckboxContent","register","createElementId","id","v","props","emit","radioGroup","onMounted","internalType","internalModelValue","value","t","n","event","__injectCSSVars__","__setup__","ctx","_hoisted_1","_sfc_render","_component_NcCheckboxContent","toHandlers","withCtx","createVNode","createSlots","createTextVNode","NcCheckboxRadioSwitch","HelpCircle","t26","ariaLabel","unref","NcSettingsSection","NcButton","NcNoteCard","NcSelect","config","loadState","parseWeekdays","iso","d","listCountries","c","showError","on","set","listRegions","r","csv","detectedCsv","weekdaysValue","countryCode","countryValue","values","api","updated","showSuccess","_hoisted_5","_hoisted_6","_createBlock","_component_NcSettingsSection","_createElementVNode","_toDisplayString","_component_NcNoteCard","_createTextVNode","_createElementBlock","_Fragment","_renderList","_component_NcCheckboxRadioSwitch","_createVNode","_component_NcButton","_component_NcSelect","_openBlock","_hoisted_7","app","createApp","PersonalSettings"],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file +{"version":3,"file":"absence-personal-settings.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcIconToggleSwitch-CRvGt4su.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcRadioGroup-D6llQmAl.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCheckboxRadioSwitch-DVdt5Hkq.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSettingsSection-Caz1fuWt.mjs","../src/views/settings/PersonalSettings.vue","../src/personal-settings.js"],"sourcesContent":["import '../assets/NcIconToggleSwitch-zUXkaJHv.css';\nimport { defineComponent, useCssVars, computed, openBlock, createBlock, normalizeClass } from \"vue\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst svg = `\n\t\n\t\n`;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconToggleSwitch\",\n props: {\n checked: { type: Boolean },\n size: { default: 34 },\n inline: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v6bd152af\": color.value,\n \"v16fd8ca9\": cx.value\n }));\n const color = computed(() => __props.checked ? \"var(--color-primary-element)\" : \"var(--color-text-maxcontrast)\");\n const cx = computed(() => __props.checked ? \"calc(17 / 24 * 100%)\" : \"calc(7 / 24 * 100%)\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcIconSvgWrapper, {\n class: normalizeClass(_ctx.$style.iconToggleSwitch),\n svg,\n size: __props.size,\n inline: __props.inline\n }, null, 8, [\"class\", \"size\", \"inline\"]);\n };\n }\n});\nconst iconToggleSwitch = \"_iconToggleSwitch_IKWaj\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_63AMQ\",\n iconToggleSwitch\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcIconToggleSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcIconToggleSwitch as N\n};\n//# sourceMappingURL=NcIconToggleSwitch-CRvGt4su.mjs.map\n","import { inject } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INSIDE_RADIO_GROUP_KEY = /* @__PURE__ */ Symbol.for(\"insideRadioGroup\");\nfunction useInsideRadioGroup() {\n return inject(INSIDE_RADIO_GROUP_KEY, void 0);\n}\nexport {\n INSIDE_RADIO_GROUP_KEY as I,\n useInsideRadioGroup as u\n};\n//# sourceMappingURL=useNcRadioGroup-D6llQmAl.mjs.map\n","import '../assets/NcCheckboxRadioSwitch-BlQSZVW0.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, resolveComponent, normalizeClass, renderSlot, createBlock, resolveDynamicComponent, toHandlers, withCtx, createVNode, createSlots, createTextVNode, onMounted, computed, useCssVars } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch-CRvGt4su.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-BOVpFVQz.mjs\";\nimport { r as register, K as n, a as t } from \"./_l10n-wdIzZwir.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { u as useInsideRadioGroup } from \"./useNcRadioGroup-D6llQmAl.mjs\";\nconst _sfc_main$6 = {\n name: \"CheckboxBlankOutlineIcon\",\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: \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\" };\nconst _hoisted_4$4 = { 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 checkbox-blank-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$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$6);\n}\nconst CheckboxBlankOutline = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n name: \"CheckboxMarkedIcon\",\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: \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$3 = { 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 checkbox-marked-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$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$5);\n}\nconst CheckboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n name: \"MinusBoxIcon\",\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$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\" };\nconst _hoisted_4$2 = { 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 minus-box-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$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$4);\n}\nconst MinusBox = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$3 = {\n name: \"RadioboxBlankIcon\",\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: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\" };\nconst _hoisted_4$1 = { 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 radiobox-blank-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$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$3);\n}\nconst RadioboxBlank = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"RadioboxMarkedIcon\",\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: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,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,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\" };\nconst _hoisted_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 radiobox-marked-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, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$2);\n}\nconst RadioboxMarked = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst TYPE_CHECKBOX = \"checkbox\";\nconst TYPE_RADIO = \"radio\";\nconst TYPE_SWITCH = \"switch\";\nconst TYPE_BUTTON = \"button\";\nconst _sfc_main$1 = {\n name: \"NcCheckboxContent\",\n components: {\n NcLoadingIcon,\n NcIconToggleSwitch\n },\n props: {\n /**\n * Class for the icon element\n */\n iconClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Class for the text element\n */\n textClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * True if the entry is checked\n */\n isChecked: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Icon size\n */\n iconSize: {\n type: Number,\n default: 24\n },\n /**\n * Label id attribute\n */\n labelId: {\n type: String,\n required: true\n },\n /**\n * Description id attribute\n */\n descriptionId: {\n type: String,\n required: true\n }\n },\n computed: {\n isButtonType() {\n return this.type === TYPE_BUTTON;\n },\n isSwitchType() {\n return this.type === TYPE_SWITCH;\n },\n /**\n * Returns the proper Material icon depending on the select case\n *\n * @return {object}\n */\n checkboxRadioIconElement() {\n if (this.type === TYPE_RADIO) {\n if (this.isChecked) {\n return RadioboxMarked;\n }\n return RadioboxBlank;\n }\n if (this.indeterminate) {\n return MinusBox;\n }\n if (this.isChecked) {\n return CheckboxMarked;\n }\n return CheckboxBlankOutline;\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"checkbox-content__wrapper\"\n};\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"id\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcIconToggleSwitch = resolveComponent(\"NcIconToggleSwitch\");\n return openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"checkbox-content\", {\n [\"checkbox-content-\" + $props.type]: true,\n \"checkbox-content--button-variant\": $props.buttonVariant,\n \"checkbox-content--has-text\": !!_ctx.$slots.default\n }])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"checkbox-content__icon\", {\n \"checkbox-content__icon--checked\": $props.isChecked,\n \"checkbox-content__icon--has-description\": !$options.isButtonType && _ctx.$slots.description,\n [$props.iconClass]: true\n }]),\n \"aria-hidden\": true,\n inert: \"\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {\n checked: $props.isChecked,\n loading: $props.loading\n }, () => [\n $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : $options.isSwitchType ? (openBlock(), createBlock(_component_NcIconToggleSwitch, {\n key: 1,\n checked: $props.isChecked,\n size: $props.iconSize,\n inline: \"\"\n }, null, 8, [\"checked\", \"size\"])) : !$props.buttonVariant ? (openBlock(), createBlock(resolveDynamicComponent($options.checkboxRadioIconElement), {\n key: 2,\n size: $props.iconSize\n }, null, 8, [\"size\"])) : createCommentVNode(\"\", true)\n ], true)\n ], 2),\n _ctx.$slots.default || _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", _hoisted_1$1, [\n _ctx.$slots.default ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: $props.labelId,\n class: normalizeClass([\"checkbox-content__text\", $props.textClass])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n !$options.isButtonType && _ctx.$slots.description ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n id: $props.descriptionId,\n class: \"checkbox-content__description\"\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, void 0, true)\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst NcCheckboxContent = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-5ca1e30f\"]]);\nregister();\nconst _sfc_main = {\n name: \"NcCheckboxRadioSwitch\",\n components: {\n NcCheckboxContent\n },\n // We need to pass attributes to the input element\n inheritAttrs: false,\n props: {\n /**\n * Unique id attribute of the input\n */\n id: {\n type: String,\n default: () => \"checkbox-radio-switch-\" + createElementId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Unique id attribute of the wrapper element\n */\n wrapperId: {\n type: String,\n default: null\n },\n /**\n * Input name. Required for radio, optional for checkbox, and ignored\n * for button.\n */\n name: {\n type: String,\n default: null\n },\n /**\n * Required if no text is set.\n * The aria-label is forwarded to the input or button.\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Type of the input. checkbox, radio, switch, or button.\n *\n * Only use button when used in a `tablist` container and the\n * `tab` role is set.\n *\n * @type {'checkbox'|'radio'|'switch'|'button'}\n */\n type: {\n type: String,\n default: \"checkbox\",\n validator: (type) => [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_SWITCH,\n TYPE_BUTTON\n ].includes(type)\n },\n /**\n * Toggle the alternative button style\n *\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariant: {\n type: Boolean,\n default: false\n },\n /**\n * Are the elements are all direct siblings?\n * If so they will be grouped horizontally or vertically\n *\n * @type {'no'|'horizontal'|'vertical'}\n * @deprecated - Use `NcRadioGroup` instead\n */\n buttonVariantGrouped: {\n type: String,\n default: \"no\",\n validator: (v) => [\"no\", \"vertical\", \"horizontal\"].includes(v)\n },\n /**\n * Checked state. To be used with `v-model:value`\n */\n modelValue: {\n type: [Boolean, Array, String],\n default: false\n },\n /**\n * Value to be synced on check\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Disabled state\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Indeterminate state\n */\n indeterminate: {\n type: Boolean,\n default: false\n },\n /**\n * Required state\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Loading state\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Wrapping element tag\n *\n * When `type` is set to `button` this will be ignored\n *\n * Defaults to `span`\n */\n wrapperElement: {\n type: String,\n default: null\n },\n /**\n * The class(es) to pass to the wrapper / root element of the component\n */\n class: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * The style to pass to the wrapper / root element of the component\n */\n style: {\n type: [String, Array, Object],\n default: \"\"\n },\n /**\n * Description\n *\n * This is unsupported when using button has type.\n */\n description: {\n type: String,\n default: null\n }\n },\n emits: [\"update:modelValue\"],\n setup(props, { emit }) {\n const radioGroup = useInsideRadioGroup();\n onMounted(() => radioGroup?.value.register(false));\n const internalType = computed(() => radioGroup?.value ? TYPE_RADIO : props.type);\n const internalModelValue = computed({\n get() {\n if (radioGroup?.value) {\n return radioGroup.value.modelValue;\n }\n return props.modelValue;\n },\n set(value) {\n if (radioGroup?.value) {\n radioGroup.value.onUpdate(value);\n } else {\n emit(\"update:modelValue\", value);\n }\n }\n });\n return {\n internalType,\n internalModelValue,\n labelId: createElementId(),\n descriptionId: createElementId()\n };\n },\n computed: {\n isButtonType() {\n return this.internalType === TYPE_BUTTON;\n },\n computedWrapperElement() {\n if (this.isButtonType) {\n return \"button\";\n }\n if (this.wrapperElement !== null) {\n return this.wrapperElement;\n }\n return \"span\";\n },\n listeners() {\n if (this.isButtonType) {\n return {\n click: this.onToggle\n };\n }\n return {\n change: this.onToggle\n };\n },\n iconSize() {\n return this.internalType === TYPE_SWITCH ? 36 : 20;\n },\n cssIconSize() {\n return this.iconSize + \"px\";\n },\n cssIconHeight() {\n return this.internalType === TYPE_SWITCH ? \"16px\" : this.cssIconSize;\n },\n /**\n * Return the input type.\n * Switch is not an official type\n *\n * @return {string}\n */\n inputType() {\n const nativeTypes = [\n TYPE_CHECKBOX,\n TYPE_RADIO,\n TYPE_BUTTON\n ];\n if (nativeTypes.includes(this.internalType)) {\n return this.internalType;\n }\n return TYPE_CHECKBOX;\n },\n /**\n * Check if that entry is checked\n * If value is defined, we use that as the checked value\n * If not, we expect true/false in this.checked\n *\n * @return {boolean}\n */\n isChecked() {\n if (this.value !== null) {\n if (Array.isArray(this.internalModelValue)) {\n return [...this.internalModelValue].indexOf(this.value) > -1;\n }\n return this.internalModelValue === this.value;\n }\n return this.internalModelValue === true;\n },\n hasIndeterminate() {\n return [\n TYPE_CHECKBOX,\n TYPE_RADIO\n ].includes(this.inputType);\n }\n },\n mounted() {\n if (this.name && this.internalType === TYPE_CHECKBOX) {\n if (!Array.isArray(this.internalModelValue)) {\n throw new Error(\"When using groups of checkboxes, the updated value will be an array.\");\n }\n }\n if (this.name && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches are not made to be used for data sets. Please use checkboxes instead.\");\n }\n if (typeof this.internalModelValue !== \"boolean\" && this.internalType === TYPE_SWITCH) {\n throw new Error(\"Switches can only be used with boolean as modelValue prop.\");\n }\n },\n methods: {\n t,\n n,\n onToggle(event) {\n if (this.disabled || event.target.tagName.toLowerCase() === \"a\") {\n return;\n }\n if (this.internalType === TYPE_RADIO) {\n this.internalModelValue = this.value;\n return;\n }\n if (this.internalType === TYPE_SWITCH) {\n this.internalModelValue = !this.isChecked;\n return;\n }\n if (typeof this.internalModelValue === \"boolean\") {\n this.internalModelValue = !this.internalModelValue;\n return;\n }\n if (this.isChecked) {\n this.internalModelValue = this.internalModelValue.filter((v) => v !== this.value);\n } else {\n this.internalModelValue = [...this.internalModelValue, this.value];\n }\n }\n }\n};\nconst __injectCSSVars__ = () => {\n useCssVars((_ctx) => ({\n \"v5ac25550\": _ctx.cssIconSize,\n \"d98ce684\": _ctx.cssIconHeight\n }));\n};\nconst __setup__ = _sfc_main.setup;\n_sfc_main.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\nconst _hoisted_1 = [\"id\", \"aria-labelledby\", \"aria-describedby\", \"aria-label\", \"disabled\", \"type\", \"value\", \"checked\", \".indeterminate\", \"required\", \"name\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCheckboxContent = resolveComponent(\"NcCheckboxContent\");\n return openBlock(), createBlock(resolveDynamicComponent($options.computedWrapperElement), mergeProps({\n id: $props.wrapperId ?? ($options.isButtonType ? $props.id : null),\n \"aria-label\": $options.isButtonType && $props.ariaLabel ? $props.ariaLabel : void 0,\n class: [\"checkbox-radio-switch\", [\n _ctx.$props.class,\n {\n [\"checkbox-radio-switch-\" + $setup.internalType]: $setup.internalType,\n \"checkbox-radio-switch--checked\": $options.isChecked,\n \"checkbox-radio-switch--disabled\": $props.disabled,\n \"checkbox-radio-switch--indeterminate\": $options.hasIndeterminate ? $props.indeterminate : false,\n \"checkbox-radio-switch--button-variant\": $props.buttonVariant,\n \"checkbox-radio-switch--button-variant-v-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"vertical\",\n \"checkbox-radio-switch--button-variant-h-grouped\": $props.buttonVariant && $props.buttonVariantGrouped === \"horizontal\",\n \"button-vue\": $options.isButtonType\n }\n ]],\n style: $props.style,\n type: $options.isButtonType ? \"button\" : null\n }, $options.isButtonType ? _ctx.$attrs : {}, toHandlers($options.isButtonType ? $options.listeners : {})), {\n default: withCtx(() => [\n !$options.isButtonType ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n id: $props.id,\n \"aria-labelledby\": !$options.isButtonType && !$props.ariaLabel ? $setup.labelId : null,\n \"aria-describedby\": !$options.isButtonType && ($props.description || _ctx.$slots.description) ? $setup.descriptionId : null,\n \"aria-label\": $props.ariaLabel || void 0,\n class: \"checkbox-radio-switch__input\",\n disabled: $props.disabled,\n type: $options.inputType,\n value: $props.value,\n checked: $options.isChecked,\n \".indeterminate\": $options.hasIndeterminate ? $props.indeterminate : null,\n required: $props.required,\n name: $props.name\n }, _ctx.$attrs, toHandlers($options.listeners, true)), null, 48, _hoisted_1)) : createCommentVNode(\"\", true),\n createVNode(_component_NcCheckboxContent, {\n id: !$options.isButtonType ? `${$props.id}-label` : void 0,\n class: \"checkbox-radio-switch__content\",\n iconClass: \"checkbox-radio-switch__icon\",\n textClass: \"checkbox-radio-switch__text\",\n type: $setup.internalType,\n indeterminate: $options.hasIndeterminate ? $props.indeterminate : false,\n buttonVariant: $props.buttonVariant,\n isChecked: $options.isChecked,\n loading: $props.loading,\n labelId: $setup.labelId,\n descriptionId: $setup.descriptionId,\n iconSize: $options.iconSize,\n onClick: $options.onToggle\n }, createSlots({\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots.description || $props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString($props.description), 1)\n ], true)\n ]),\n key: \"0\"\n } : void 0,\n !!_ctx.$slots.default ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"id\", \"type\", \"indeterminate\", \"buttonVariant\", \"isChecked\", \"loading\", \"labelId\", \"descriptionId\", \"iconSize\", \"onClick\"])\n ]),\n _: 3\n }, 16, [\"id\", \"aria-label\", \"class\", \"style\", \"type\"]);\n}\nconst NcCheckboxRadioSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-c34c63a4\"]]);\nexport {\n NcCheckboxRadioSwitch as N\n};\n//# sourceMappingURL=NcCheckboxRadioSwitch-DVdt5Hkq.mjs.map\n","import '../assets/NcSettingsSection-f5rBJsKJ.css';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, defineComponent, createTextVNode, unref, createVNode, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { r as register, E as t26, a as t } from \"./_l10n-wdIzZwir.mjs\";\nconst _sfc_main$1 = {\n name: \"HelpCircleIcon\",\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$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\" };\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 help-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$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$1);\n}\nconst HelpCircle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nregister(t26);\nconst _hoisted_1 = { class: \"settings-section\" };\nconst _hoisted_2 = { class: \"settings-section__name\" };\nconst _hoisted_3 = [\"aria-label\", \"href\", \"title\"];\nconst _hoisted_4 = {\n key: 0,\n class: \"settings-section__desc\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSettingsSection\",\n props: {\n name: {},\n description: { default: \"\" },\n docUrl: { default: \"\" }\n },\n setup(__props) {\n const ariaLabel = t(\"External documentation\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"h2\", _hoisted_2, [\n createTextVNode(toDisplayString(__props.name) + \" \", 1),\n __props.docUrl ? (openBlock(), createElementBlock(\"a\", {\n key: 0,\n \"aria-label\": unref(ariaLabel),\n class: \"settings-section__info\",\n href: __props.docUrl,\n rel: \"noreferrer nofollow\",\n target: \"_blank\",\n title: unref(ariaLabel)\n }, [\n createVNode(HelpCircle, { size: 20 })\n ], 8, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n __props.description ? (openBlock(), createElementBlock(\"p\", _hoisted_4, toDisplayString(__props.description), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]);\n };\n }\n});\nconst NcSettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-9cedb949\"]]);\nexport {\n NcSettingsSection as N\n};\n//# sourceMappingURL=NcSettingsSection-Caz1fuWt.mjs.map\n","\n\n\n\n\n\n","import { translate as t } from '@nextcloud/l10n'\n/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createApp } from 'vue'\nimport PersonalSettings from './views/settings/PersonalSettings.vue'\n\nconst app = createApp(PersonalSettings)\napp.config.globalProperties.t = t\napp.mount('#absence-personal-settings')\n"],"names":["svg","_sfc_main","defineComponent","__props","useCssVars","_ctx","color","cx","computed","_cache","openBlock","createBlock","NcIconSvgWrapper","normalizeClass","iconToggleSwitch","style0","cssModules","NcIconToggleSwitch","_export_sfc","INSIDE_RADIO_GROUP_KEY","useInsideRadioGroup","inject","_sfc_main$6","_hoisted_1$6","_hoisted_2$5","_hoisted_3$5","_hoisted_4$4","_sfc_render$6","$props","$setup","$data","$options","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","CheckboxBlankOutline","_sfc_main$5","_hoisted_1$5","_hoisted_2$4","_hoisted_3$4","_hoisted_4$3","_sfc_render$5","CheckboxMarked","_sfc_main$4","_hoisted_1$4","_hoisted_2$3","_hoisted_3$3","_hoisted_4$2","_sfc_render$4","MinusBox","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$1","_sfc_render$3","RadioboxBlank","_sfc_main$2","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4","_sfc_render$2","RadioboxMarked","TYPE_CHECKBOX","TYPE_RADIO","TYPE_SWITCH","TYPE_BUTTON","_sfc_main$1","NcLoadingIcon","type","_hoisted_1$1","_hoisted_2","_hoisted_3","_sfc_render$1","_component_NcLoadingIcon","resolveComponent","_component_NcIconToggleSwitch","renderSlot","resolveDynamicComponent","NcCheckboxContent","register","createElementId","id","v","props","emit","radioGroup","onMounted","internalType","internalModelValue","value","t","n","event","__injectCSSVars__","__setup__","ctx","_hoisted_1","_sfc_render","_component_NcCheckboxContent","toHandlers","withCtx","createVNode","createSlots","createTextVNode","NcCheckboxRadioSwitch","HelpCircle","t26","ariaLabel","unref","NcSettingsSection","NcButton","NcNoteCard","NcSelect","config","loadState","parseWeekdays","iso","d","listCountries","c","showError","on","set","listRegions","r","csv","detectedCsv","weekdaysValue","countryCode","countryValue","values","api","updated","showSuccess","_hoisted_5","_hoisted_6","_createBlock","_component_NcSettingsSection","_createElementVNode","_toDisplayString","_component_NcNoteCard","_createTextVNode","_createElementBlock","_Fragment","_renderList","_component_NcCheckboxRadioSwitch","_createVNode","_component_NcButton","_component_NcSelect","_openBlock","_hoisted_7","app","createApp","PersonalSettings"],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/js/holidays-BoDDj6rx.chunk.mjs b/js/holidays-BoDDj6rx.chunk.mjs new file mode 100644 index 0000000..ae20b78 --- /dev/null +++ b/js/holidays-BoDDj6rx.chunk.mjs @@ -0,0 +1,23 @@ +(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(`.material-design-icon[data-v-00a99684]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-00a99684]{--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:var(--font-weight-element, bold)}.button-vue--size-small[data-v-00a99684]{--button-size: var(--clickable-area-small)}.button-vue--size-large[data-v-00a99684]{--button-size: var(--clickable-area-large)}.button-vue[data-v-00a99684] *{cursor:pointer}.button-vue[data-v-00a99684]:focus{outline:none}.button-vue[data-v-00a99684]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-00a99684]:disabled *{cursor:default}.button-vue[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-00a99684]:active:not(:disabled){background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-00a99684]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-00a99684]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-00a99684]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-00a99684]{flex-direction:row-reverse}.button-vue--reverse[data-v-00a99684]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-00a99684]{--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-00a99684]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-00a99684]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-00a99684] svg{height:16px;width:16px}.button-vue__text[data-v-00a99684]{font-weight:var(--font-weight-element, bold);margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-00a99684]:empty{display:none}.button-vue[data-v-00a99684]:has(.button-vue__text:empty):not(.button-vue--wide){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-00a99684]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-00a99684]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-00a99684]{width:100%}.button-vue[data-v-00a99684]: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-00a99684]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-00a99684]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-00a99684]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-00a99684]{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-00a99684]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-00a99684]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary[data-v-00a99684]:not(.button-vue--legacy34):hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.button-vue--tertiary-no-background[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-00a99684]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-00a99684]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-00a99684]:active{background-color:var(--color-success)}.button-vue--warning[data-v-00a99684]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-00a99684]:active{background-color:var(--color-warning)}.button-vue--error[data-v-00a99684]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-00a99684]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-00a99684]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-00a99684],.button-vue--legacy.button-vue--success[data-v-00a99684],.button-vue--legacy.button-vue--warning[data-v-00a99684]{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-23e5cae7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-23e5cae7]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-23e5cae7]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-23e5cae7]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-23e5cae7]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-23e5cae7]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-23e5cae7]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-23e5cae7]{background-color:var(--open-background-color)}.action-item.action-item--wide[data-v-23e5cae7]{width:100%}.action-item__menutoggle__icon[data-v-23e5cae7]{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_bkeq-{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_zfWgY.v-popper--theme-nc-popover-9,._ncPopover_zfWgY.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_zfWgY.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_zfWgY.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_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_zfWgY.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_zfWgY.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_zfWgY.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_zfWgY.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_zfWgY.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_zfWgY.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_zfWgY.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_zfWgY.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_zfWgY.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-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}@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-3c357e2d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-3c357e2d]{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-3c357e2d],.modal-mask[data-v-3c357e2d] *{box-sizing:border-box}.modal-mask--opaque[data-v-3c357e2d]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-3c357e2d]{--backdrop-color: 255, 255, 255}.modal-header[data-v-3c357e2d]{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-3c357e2d]{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-3c357e2d]{padding-inline-start:calc(var(--header-height) * var(--v046d2bb2));text-align:center}}.modal-header .icons-menu[data-v-3c357e2d]{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end}.modal-header .icons-menu .header-close[data-v-3c357e2d]{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-3c357e2d]{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-3c357e2d],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d]{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-3c357e2d] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-3c357e2d] .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-3c357e2d] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-wrapper[data-v-3c357e2d]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper .prev[data-v-3c357e2d],.modal-wrapper .next[data-v-3c357e2d]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,.modal-wrapper .next[data-v-3c357e2d]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-3c357e2d]{inset-inline-start:2px}.modal-wrapper .next[data-v-3c357e2d]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-3c357e2d]{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-3c357e2d]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-3c357e2d]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-3c357e2d]{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-3c357e2d]{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-3c357e2d]{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-3c357e2d]{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-3c357e2d]{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-3c357e2d],.fade-leave-active[data-v-3c357e2d]{transition:opacity .25s}.fade-enter-from[data-v-3c357e2d],.fade-leave-to[data-v-3c357e2d]{opacity:0}.fade-visibility-enter-from[data-v-3c357e2d],.fade-visibility-leave-to[data-v-3c357e2d]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-3c357e2d],.modal-in-leave-active[data-v-3c357e2d],.modal-out-enter-active[data-v-3c357e2d],.modal-out-leave-active[data-v-3c357e2d]{transition:opacity .25s}.modal-in-enter-from[data-v-3c357e2d],.modal-in-leave-to[data-v-3c357e2d],.modal-out-enter-from[data-v-3c357e2d],.modal-out-leave-to[data-v-3c357e2d]{opacity:0}.modal-in-enter .modal-container[data-v-3c357e2d],.modal-in-leave-to .modal-container[data-v-3c357e2d]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-3c357e2d],.modal-out-leave-to .modal-container[data-v-3c357e2d]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-3c357e2d linear var(--v71f7c020) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d]{animation:breath-3c357e2d 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d]{animation-play-state:paused!important}@keyframes progressring-3c357e2d{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-3c357e2d{0%{opacity:1}50%{opacity:0}to{opacity:1}}.material-design-icon[data-v-6be9fa31]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-6be9fa31]{--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-6be9fa31]{font-size:var(--note-card-icon-size);font-weight:var(--font-weight-heading, 600)}.notecard__icon[data-v-6be9fa31]{color:var(--note-theme)}.notecard__icon--heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-6be9fa31]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-6be9fa31]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-6be9fa31]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-6be9fa31]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-6be9fa31]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important}.material-design-icon{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 + */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: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-inline-end: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;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}: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}@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__dropdown-toggle,.vs__open-indicator,.vs__open-indicator-button,.vs__search,.vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}}.v-select[dir=rtl]{.vs__actions{padding:0 3px 0 6px}.vs__clear{margin-left:6px;margin-right:0}.vs__deselect{margin-left:0;margin-right:2px}.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{background-color:transparent;border:0;cursor:pointer;fill:var(--vs-controls-color);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{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;fill:var(--vs-controls-color);margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single{.vs__selected{background-color:transparent;border-color:transparent}&.vs--loading .vs__selected,&.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}&.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::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable{.vs__search{opacity:1}&: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;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39.2%,.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-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}`)),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})(); +const bc=(e,u,t)=>{const s=Object.assign({ocsVersion:2},{}).ocsVersion===1?1:2;return Dc()+"/ocs/v"+s+".php"+Zo(e,u)},Zo=(e,u,t)=>{const s=Object.assign({escape:!0},{}),n=function(i,o){return o=o||{},i.replace(/{([^{}]*)}/g,function(r,a){const m=o[a];return s.escape?encodeURIComponent(typeof m=="string"||typeof m=="number"?m.toString():r):typeof m=="string"||typeof m=="number"?m.toString():r})};return e.charAt(0)!=="/"&&(e="/"+e),n(e,u||{})},Z4=(e,u,t)=>{const s=Object.assign({noRewrite:!1},{}),n=X4();return window?.OC?.config?.modRewriteWorking===!0&&!s.noRewrite?n+Zo(e,u):n+"/index.php"+Zo(e,u)},Dc=()=>window.location.protocol+"//"+window.location.host+X4();function X4(){let e=window._oc_webroot;if(typeof e>"u"){e=location.pathname;const u=e.indexOf("/index.php/");if(u!==-1)e=e.slice(0,u);else{const t=e.indexOf("/",1);e=e.slice(0,t>0?t:void 0)}}return e}function Sa(e,u){(u==null||u>e.length)&&(u=e.length);for(var t=0,s=Array(u);t2?t-2:0),n=2;n1?u-1:0),s=1;s"u"?null:nu(BigInt.prototype.toString),Ra=typeof Symbol>"u"?null:nu(Symbol.prototype.toString),ru=nu(Object.prototype.hasOwnProperty),En=nu(Object.prototype.toString),ou=nu(RegExp.prototype.test),rs=Mc(TypeError);function nu(e){return function(u){u instanceof RegExp&&(u.lastIndex=0);for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:Dn;if(_a&&_a(e,null),!Yt(u))return e;let s=u.length;for(;s--;){let n=u[s];if(typeof n=="string"){const i=t(n);i!==n&&(Oc(u)||(u[s]=i),n=i)}e[n]=!0}return e}function $c(e){for(let u=0;u/g),qc=hu(/\${[\w\W]*/g),Yc=hu(/^data-[\-\w.\u00B7-\uFFFF]+$/),Zc=hu(/^aria-[\-\w]+$/),$a=hu(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Xc=hu(/^(?:\w+script|data):/i),Jc=hu(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Qc=hu(/^html$/i),eg=hu(/^[a-z][.\w]*(-[.\w]+)+$/i),Ua=hu(/<[/\w!]/g),Va=hu(/<[/\w]/g),ug=hu(/<\/no(script|embed|frames)/i),tg=hu(/\/>/i),Pu={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},sg=function(){return typeof window>"u"?null:window},ng=function(e,u){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let t=null;const s="data-tt-policy-suffix";u&&u.hasAttribute(s)&&(t=u.getAttribute(s));const n="dompurify"+(t?"#"+t:"");try{return e.createPolicy(n,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+n+" could not be created."),null}},Wa=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Ut=function(e,u,t,s){return ru(e,u)&&Yt(e[u])?be(s.base?bu(s.base):{},e[u],s.transform):t};function ed(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:sg();const u=v=>ed(v);if(u.version="3.4.12",u.removed=[],!e||!e.document||e.document.nodeType!==Pu.document||!e.Element)return u.isSupported=!1,u;let t=e.document;const s=t,n=s.currentScript;e.DocumentFragment;const i=e.HTMLTemplateElement,o=e.Node,r=e.Element,a=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;const l=e.DOMParser,g=e.trustedTypes,p=r.prototype,h=ot(p,"cloneNode"),y=ot(p,"remove"),E=ot(p,"nextSibling"),F=ot(p,"childNodes"),B=ot(p,"parentNode"),A=ot(p,"shadowRoot"),O=ot(p,"attributes"),N=o&&o.prototype?ot(o.prototype,"nodeType"):null,K=o&&o.prototype?ot(o.prototype,"nodeName"):null;if(typeof i=="function"){const v=t.createElement("template");v.content&&v.content.ownerDocument&&(t=v.content.ownerDocument)}let I,Y="",se,G=!1,M=0;const ne=function(){if(M>0)throw rs('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},b=function(v){ne(),M++;try{return I.createHTML(v)}finally{M--}},T=function(v){ne(),M++;try{return I.createScriptURL(v)}finally{M--}},V=function(){return G||(se=ng(g,n),G=!0),se},ue=t,Z=ue.implementation,Q=ue.createNodeIterator,te=ue.createDocumentFragment,de=ue.getElementsByTagName,le=s.importNode;let ie=Wa();u.isSupported=typeof J4=="function"&&typeof B=="function"&&Z&&Z.createHTMLDocument!==void 0;const xe=Gc,He=Kc,Se=qc,Pe=Yc,pe=Zc,$e=Xc,Nu=Jc,tt=eg;let $u=$a,C=null;const w=be({},[...La,...go,...fo,...po,...ja]);let _=null;const $=be({},[...Ia,...ho,...Ma,...yi]);let z=Object.seal(Hs(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),S=null,W=null;const U=Object.seal(Hs(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let H=!0,j=!0,re=!1,X=!0,oe=!1,ae=!0,ge=!1,Ae=!1,_e=null,De=null,qe=!1,d=!1,c=!1,f=!1,x=!0,k=!1;const P="user-content-";let q=!0,Oe=!1,Ke={},ye=null;const Re=be({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Ye=null;const va=be({},["audio","video","img","source","image","track"]);let uo=null;const Ea=be({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),pi="http://www.w3.org/1998/Math/MathML",hi="http://www.w3.org/2000/svg",st="http://www.w3.org/1999/xhtml";let Ps=st,to=!1,so=null;const lc=be({},[pi,hi,st],co),Ca=gu(["mi","mo","mn","ms","mtext"]);let no=be({},Ca);const Ba=gu(["annotation-xml"]);let io=be({},Ba);const dc=be({},["title","style","font","a","script"]);let pn=null;const mc=["application/xhtml+xml","text/html"],cc="text/html";let Ze=null,Rs=null;const gc=t.createElement("form"),ya=function(v){return v instanceof RegExp||v instanceof Function},oo=function(){let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Rs&&Rs===v)return;(!v||typeof v!="object")&&(v={}),v=bu(v),pn=mc.indexOf(v.PARSER_MEDIA_TYPE)===-1?cc:v.PARSER_MEDIA_TYPE,Ze=pn==="application/xhtml+xml"?co:Dn,C=Ut(v,"ALLOWED_TAGS",w,{transform:Ze}),_=Ut(v,"ALLOWED_ATTR",$,{transform:Ze}),so=Ut(v,"ALLOWED_NAMESPACES",lc,{transform:co}),uo=Ut(v,"ADD_URI_SAFE_ATTR",Ea,{transform:Ze,base:Ea}),Ye=Ut(v,"ADD_DATA_URI_TAGS",va,{transform:Ze,base:va}),ye=Ut(v,"FORBID_CONTENTS",Re,{transform:Ze}),S=Ut(v,"FORBID_TAGS",bu({}),{transform:Ze}),W=Ut(v,"FORBID_ATTR",bu({}),{transform:Ze}),Ke=ru(v,"USE_PROFILES")?v.USE_PROFILES&&typeof v.USE_PROFILES=="object"?bu(v.USE_PROFILES):v.USE_PROFILES:!1,H=v.ALLOW_ARIA_ATTR!==!1,j=v.ALLOW_DATA_ATTR!==!1,re=v.ALLOW_UNKNOWN_PROTOCOLS||!1,X=v.ALLOW_SELF_CLOSE_IN_ATTR!==!1,oe=v.SAFE_FOR_TEMPLATES||!1,ae=v.SAFE_FOR_XML!==!1,ge=v.WHOLE_DOCUMENT||!1,d=v.RETURN_DOM||!1,c=v.RETURN_DOM_FRAGMENT||!1,f=v.RETURN_TRUSTED_TYPE||!1,qe=v.FORCE_BODY||!1,x=v.SANITIZE_DOM!==!1,k=v.SANITIZE_NAMED_PROPS||!1,q=v.KEEP_CONTENT!==!1,Oe=v.IN_PLACE||!1,$u=Vc(v.ALLOWED_URI_REGEXP)?v.ALLOWED_URI_REGEXP:$a,Ps=typeof v.NAMESPACE=="string"?v.NAMESPACE:st,no=ru(v,"MATHML_TEXT_INTEGRATION_POINTS")&&v.MATHML_TEXT_INTEGRATION_POINTS&&typeof v.MATHML_TEXT_INTEGRATION_POINTS=="object"?bu(v.MATHML_TEXT_INTEGRATION_POINTS):be({},Ca),io=ru(v,"HTML_INTEGRATION_POINTS")&&v.HTML_INTEGRATION_POINTS&&typeof v.HTML_INTEGRATION_POINTS=="object"?bu(v.HTML_INTEGRATION_POINTS):be({},Ba);const R=ru(v,"CUSTOM_ELEMENT_HANDLING")&&v.CUSTOM_ELEMENT_HANDLING&&typeof v.CUSTOM_ELEMENT_HANDLING=="object"?bu(v.CUSTOM_ELEMENT_HANDLING):Hs(null);if(z=Hs(null),ru(R,"tagNameCheck")&&ya(R.tagNameCheck)&&(z.tagNameCheck=R.tagNameCheck),ru(R,"attributeNameCheck")&&ya(R.attributeNameCheck)&&(z.attributeNameCheck=R.attributeNameCheck),ru(R,"allowCustomizedBuiltInElements")&&typeof R.allowCustomizedBuiltInElements=="boolean"&&(z.allowCustomizedBuiltInElements=R.allowCustomizedBuiltInElements),hu(z),oe&&(j=!1),c&&(d=!0),Ke&&(C=be({},ja),_=Hs(null),Ke.html===!0&&(be(C,La),be(_,Ia)),Ke.svg===!0&&(be(C,go),be(_,ho),be(_,yi)),Ke.svgFilters===!0&&(be(C,fo),be(_,ho),be(_,yi)),Ke.mathMl===!0&&(be(C,po),be(_,Ma),be(_,yi))),U.tagCheck=null,U.attributeCheck=null,ru(v,"ADD_TAGS")&&(typeof v.ADD_TAGS=="function"?U.tagCheck=v.ADD_TAGS:Yt(v.ADD_TAGS)&&(C===w&&(C=bu(C)),be(C,v.ADD_TAGS,Ze))),ru(v,"ADD_ATTR")&&(typeof v.ADD_ATTR=="function"?U.attributeCheck=v.ADD_ATTR:Yt(v.ADD_ATTR)&&(_===$&&(_=bu(_)),be(_,v.ADD_ATTR,Ze))),ru(v,"ADD_URI_SAFE_ATTR")&&Yt(v.ADD_URI_SAFE_ATTR)&&be(uo,v.ADD_URI_SAFE_ATTR,Ze),ru(v,"FORBID_CONTENTS")&&Yt(v.FORBID_CONTENTS)&&(ye===Re&&(ye=bu(ye)),be(ye,v.FORBID_CONTENTS,Ze)),ru(v,"ADD_FORBID_CONTENTS")&&Yt(v.ADD_FORBID_CONTENTS)&&(ye===Re&&(ye=bu(ye)),be(ye,v.ADD_FORBID_CONTENTS,Ze)),q&&(C["#text"]=!0),ge&&be(C,["html","head","body"]),C.table&&(be(C,["tbody"]),delete S.tbody),v.TRUSTED_TYPES_POLICY){if(typeof v.TRUSTED_TYPES_POLICY.createHTML!="function")throw rs('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof v.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw rs('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const L=I;I=v.TRUSTED_TYPES_POLICY;try{Y=b("")}catch(J){throw I=L,J}}else v.TRUSTED_TYPES_POLICY===null?(I=void 0,Y=""):(I===void 0&&(I=V()),I&&typeof Y=="string"&&(Y=b("")));gu&&gu(v),Rs=v},xa=be({},[...go,...fo,...Wc]),Aa=be({},[...po,...Hc]),fc=function(v,R,L){return R.namespaceURI===st?v==="svg":R.namespaceURI===pi?v==="svg"&&(L==="annotation-xml"||no[L]):!!xa[v]},pc=function(v,R,L){return R.namespaceURI===st?v==="math":R.namespaceURI===hi?v==="math"&&io[L]:!!Aa[v]},hc=function(v,R,L){return R.namespaceURI===hi&&!io[L]||R.namespaceURI===pi&&!no[L]?!1:!Aa[v]&&(dc[v]||!xa[v])},vc=function(v){let R=B(v);(!R||!R.tagName)&&(R={namespaceURI:Ps,tagName:"template"});const L=Dn(v.tagName),J=Dn(R.tagName);return so[v.namespaceURI]?v.namespaceURI===hi?fc(L,R,J):v.namespaceURI===pi?pc(L,R,J):v.namespaceURI===st?hc(L,R,J):!!(pn==="application/xhtml+xml"&&so[v.namespaceURI]):!1},is=function(v){Is(u.removed,{element:v});try{B(v).removeChild(v)}catch{if(y(v),!B(v))throw rs("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},vi=function(v){ro(v);const R=F(v);if(R){const J=[];js(R,he=>{Is(J,he)}),js(J,he=>{try{y(he)}catch{}})}const L=O(v);if(L)for(let J=L.length-1;J>=0;--J){const he=L[J],ve=he&&he.name;if(typeof ve=="string")try{v.removeAttribute(ve)}catch{}}},os=function(v,R){try{Is(u.removed,{attribute:R.getAttributeNode(v),from:R})}catch{Is(u.removed,{attribute:null,from:R})}if(R.removeAttribute(v),v==="is")if(d||c)try{is(R)}catch{}else try{R.setAttribute(v,"")}catch{}},Ec=function(v){const R=O(v);if(R)for(let L=R.length-1;L>=0;--L){const J=R[L],he=J&&J.name;if(!(typeof he!="string"||_[Ze(he)]))try{v.removeAttribute(he)}catch{}}},ro=function(v){const R=[v];for(;R.length>0;){const L=R.pop();(N?N(L):L.nodeType)===Pu.element&&Ec(L);const J=F(L);if(J)for(let he=J.length-1;he>=0;--he)R.push(J[he])}},Cc=function(v){if(!ae)return;const R=[v];for(;R.length>0;){const L=R.pop(),J=N?N(L):L.nodeType;if(J===Pu.processingInstruction||J===Pu.comment&&ou(Va,L.data)){try{y(L)}catch{}continue}if(J===Pu.element){const ve=L,Le=Ze(K?K(L):L.nodeName);try{ve.hasAttribute&&ve.hasAttribute("patchsrc")&&ve.removeAttribute("patchsrc"),ve.hasAttribute&&ve.hasAttribute("for")&&Le!=="label"&&Le!=="output"&&ve.removeAttribute("for")}catch{}}const he=F(L);if(he)for(let ve=he.length-1;ve>=0;--ve)R.push(he[ve])}},wa=function(v){let R=null,L=null;if(qe)v=""+v;else{const ve=Ta(v,/^[\r\n\t ]+/);L=ve&&ve[0]}pn==="application/xhtml+xml"&&Ps===st&&(v=''+v+"");const J=I?b(v):v;if(Ps===st)try{R=new l().parseFromString(J,pn)}catch{}if(!R||!R.documentElement){R=Z.createDocument(Ps,"template",null);try{R.documentElement.innerHTML=to?Y:J}catch{}}const he=R.body||R.documentElement;return v&&L&&he.insertBefore(t.createTextNode(L),he.childNodes[0]||null),Ps===st?de.call(R,ge?"html":"body")[0]:ge?R.documentElement:he},ba=function(v){return Q.call(v.ownerDocument||v,v,a.SHOW_ELEMENT|a.SHOW_COMMENT|a.SHOW_TEXT|a.SHOW_PROCESSING_INSTRUCTION|a.SHOW_CDATA_SECTION,null)},Ei=function(v){return v=vn(v,xe," "),v=vn(v,He," "),v=vn(v,Se," "),v},ao=function(v){var R;v.normalize();const L=Q.call(v.ownerDocument||v,v,a.SHOW_TEXT|a.SHOW_COMMENT|a.SHOW_CDATA_SECTION|a.SHOW_PROCESSING_INSTRUCTION,null);let J=L.nextNode();for(;J;)J.data=Ei(J.data),J=L.nextNode();const he=(R=v.querySelectorAll)===null||R===void 0?void 0:R.call(v,"template");he&&js(he,ve=>{Ls(ve.content)&&ao(ve.content)})},Ci=function(v){const R=K?K(v):null;return typeof R!="string"||Ze(R)!=="form"?!1:typeof v.nodeName!="string"||typeof v.textContent!="string"||typeof v.removeChild!="function"||v.attributes!==O(v)||typeof v.removeAttribute!="function"||typeof v.setAttribute!="function"||typeof v.namespaceURI!="string"||typeof v.insertBefore!="function"||typeof v.hasChildNodes!="function"||v.nodeType!==N(v)||v.childNodes!==F(v)},Ls=function(v){if(!N||typeof v!="object"||v===null)return!1;try{return N(v)===Pu.documentFragment}catch{return!1}},hn=function(v){if(!N||typeof v!="object"||v===null)return!1;try{return typeof N(v)=="number"}catch{return!1}};function nt(v,R,L){v.length!==0&&js(v,J=>{J.call(u,R,L,Rs)})}const Bc=function(v,R){return!!(ae&&v.hasChildNodes()&&!hn(v.firstElementChild)&&ou(Ua,v.textContent)&&ou(Ua,v.innerHTML)||ae&&v.namespaceURI===st&&R==="style"&&hn(v.firstElementChild)||v.nodeType===Pu.processingInstruction||ae&&v.nodeType===Pu.comment&&ou(Va,v.data))},yc=function(v,R){if(!S[R]&&ka(R)&&(z.tagNameCheck instanceof RegExp&&ou(z.tagNameCheck,R)||z.tagNameCheck instanceof Function&&z.tagNameCheck(R)))return!1;if(q&&!ye[R]){const L=B(v),J=F(v);if(J&&L){const he=J.length;for(let ve=he-1;ve>=0;--ve){const Le=Oe?J[ve]:h(J[ve],!0);L.insertBefore(Le,E(v))}}}return is(v),!0},Da=function(v,R){if(nt(ie.beforeSanitizeElements,v,null),v!==R&&B(v)===null)return!0;if(Ci(v))return is(v),!0;const L=Ze(K?K(v):v.nodeName);if(nt(ie.uponSanitizeElement,v,{tagName:L,allowedTags:C}),v!==R&&B(v)===null)return!0;if(Bc(v,L))return is(v),!0;if(S[L]||!(U.tagCheck instanceof Function&&U.tagCheck(L))&&!C[L]){const J=yc(v,L);return J===!1&&nt(ie.afterSanitizeElements,v,null),J}if((N?N(v):v.nodeType)===Pu.element&&!vc(v)||(L==="noscript"||L==="noembed"||L==="noframes")&&ou(ug,v.innerHTML))return is(v),!0;if(oe&&v.nodeType===Pu.text){const J=Ei(v.textContent);v.textContent!==J&&(Is(u.removed,{element:v.cloneNode()}),v.textContent=J)}return nt(ie.afterSanitizeElements,v,null),!1},Fa=function(v,R,L){if(W[R]||ae&&R==="patchsrc"||ae&&R==="for"&&v!=="label"&&v!=="output"||x&&(R==="id"||R==="name")&&(L in t||L in gc))return!1;const J=_[R]||U.attributeCheck instanceof Function&&U.attributeCheck(R,v);if(!(j&&ou(Pe,R))&&!(H&&ou(pe,R))){if(J){if(!uo[R]&&!ou($u,vn(L,Nu,""))&&!((R==="src"||R==="xlink:href"||R==="href")&&v!=="script"&&za(L,"data:")===0&&Ye[v])&&!(re&&!ou($e,vn(L,Nu,"")))&&L)return!1}else if(!(ka(v)&&(z.tagNameCheck instanceof RegExp&&ou(z.tagNameCheck,v)||z.tagNameCheck instanceof Function&&z.tagNameCheck(v))&&(z.attributeNameCheck instanceof RegExp&&ou(z.attributeNameCheck,R)||z.attributeNameCheck instanceof Function&&z.attributeNameCheck(R,v))||R==="is"&&z.allowCustomizedBuiltInElements&&(z.tagNameCheck instanceof RegExp&&ou(z.tagNameCheck,L)||z.tagNameCheck instanceof Function&&z.tagNameCheck(L))))return!1}return!0},xc=be({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),ka=function(v){return!xc[Dn(v)]&&ou(tt,v)},Ac=function(v,R,L,J){if(I&&typeof g=="object"&&typeof g.getAttributeType=="function"&&!L)switch(g.getAttributeType(v,R)){case"TrustedHTML":return b(J);case"TrustedScriptURL":return T(J)}return J},wc=function(v,R,L,J){try{L?v.setAttributeNS(L,R,J):v.setAttribute(R,J),Ci(v)?is(v):Oa(u.removed)}catch{os(R,v)}},Na=function(v){nt(ie.beforeSanitizeAttributes,v,null);const R=v.attributes;if(!R||Ci(v))return;const L={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:_,forceKeepAttr:void 0};let J=R.length;const he=Ze(v.nodeName);for(;J--;){const ve=R[J],Le=ve.name,$t=ve.namespaceURI,mo=ve.value,zu=Ze(Le),Yu=mo;let Xe=Le==="value"?Yu:Lc(Yu);if(L.attrName=zu,L.attrValue=Xe,L.keepAttr=!0,L.forceKeepAttr=void 0,nt(ie.uponSanitizeAttribute,v,L),Xe=L.attrValue,k&&(zu==="id"||zu==="name")&&za(Xe,P)!==0&&(os(Le,v),Xe=P+Xe),ae&&ou(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Xe)){os(Le,v);continue}if(zu==="attributename"&&Ta(Xe,"href")){os(Le,v);continue}if(!L.forceKeepAttr){if(!L.keepAttr){os(Le,v);continue}if(!X&&ou(tg,Xe)){os(Le,v);continue}if(oe&&(Xe=Ei(Xe)),!Fa(he,zu,Xe)){os(Le,v);continue}Xe=Ac(he,zu,$t,Xe),Xe!==Yu&&wc(v,Le,$t,Xe)}}nt(ie.afterSanitizeAttributes,v,null)},Bi=function(v){let R=null;const L=ba(v);for(nt(ie.beforeSanitizeShadowDOM,v,null);R=L.nextNode();)if(nt(ie.uponSanitizeShadowNode,R,null),Da(R,v),Na(R),Ls(R.content)&&Bi(R.content),(N?N(R):R.nodeType)===Pu.element){const J=A(R);Ls(J)&&(lo(J),Bi(J))}nt(ie.afterSanitizeShadowDOM,v,null)},lo=function(v){const R=[{node:v,shadow:null}];for(;R.length>0;){const L=R.pop();if(L.shadow){Bi(L.shadow);continue}const J=L.node,he=(N?N(J):J.nodeType)===Pu.element,ve=F(J);if(ve)for(let Le=ve.length-1;Le>=0;--Le)R.push({node:ve[Le],shadow:null});if(he){const Le=K?K(J):null;if(typeof Le=="string"&&Ze(Le)==="template"){const $t=J.content;Ls($t)&&R.push({node:$t,shadow:null})}}if(he){const Le=A(J);Ls(Le)&&R.push({node:null,shadow:Le},{node:Le,shadow:null})}}};return u.sanitize=function(v){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},L=null,J=null,he=null,ve=null;if(to=!v,to&&(v=""),typeof v!="string"&&!hn(v)&&(v=Uc(v),typeof v!="string"))throw rs("dirty is not a string, aborting");if(!u.isSupported)return v;Ae?(C=_e,_=De):oo(R),(ie.uponSanitizeElement.length>0||ie.uponSanitizeAttribute.length>0)&&(C=bu(C)),ie.uponSanitizeAttribute.length>0&&(_=bu(_)),u.removed=[];const Le=Oe&&typeof v!="string"&&hn(v);if(Le){Cc(v);const Yu=K?K(v):v.nodeName;if(typeof Yu=="string"){const Xe=Ze(Yu);if(!C[Xe]||S[Xe])throw vi(v),rs("root node is forbidden and cannot be sanitized in-place")}if(Ci(v))throw vi(v),rs("root node is clobbered and cannot be sanitized in-place");try{lo(v)}catch(Xe){throw vi(v),Xe}}else if(hn(v))L=wa(""),J=L.ownerDocument.importNode(v,!0),J.nodeType===Pu.element&&J.nodeName==="BODY"||J.nodeName==="HTML"?L=J:L.appendChild(J),lo(J);else{if(!d&&!oe&&!ge&&v.indexOf("<")===-1)return I&&f?b(v):v;if(L=wa(v),!L)return d?null:f?Y:""}L&&qe&&is(L.firstChild);const $t=Le?v:L,mo=ba($t);try{for(;he=mo.nextNode();)Da(he,$t),Na(he),Ls(he.content)&&Bi(he.content)}catch(Yu){throw Le&&(vi(v),js(u.removed,Xe=>{Xe.element&&ro(Xe.element)})),Yu}if(Le)return js(u.removed,Yu=>{Yu.element&&ro(Yu.element)}),oe&&ao(v),v;if(d){if(oe&&ao(L),c)for(ve=te.call(L.ownerDocument);L.firstChild;)ve.appendChild(L.firstChild);else ve=L;return(_.shadowroot||_.shadowrootmode)&&(ve=le.call(s,ve,!0)),ve}let zu=ge?L.outerHTML:L.innerHTML;return ge&&C["!doctype"]&&L.ownerDocument&&L.ownerDocument.doctype&&L.ownerDocument.doctype.name&&ou(Qc,L.ownerDocument.doctype.name)&&(zu=" +`+zu),oe&&(zu=Ei(zu)),I&&f?b(zu):zu},u.setConfig=function(){let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};oo(v),Ae=!0,_e=C,De=_},u.clearConfig=function(){Rs=null,Ae=!1,_e=null,De=null,I=se,Y=""},u.isValidAttribute=function(v,R,L){Rs||oo({});const J=Ze(v),he=Ze(R);return Fa(J,he,L)},u.addHook=function(v,R){typeof R=="function"&&ru(ie,v)&&Is(ie[v],R)},u.removeHook=function(v,R){if(ru(ie,v)){if(R!==void 0){const L=Pc(ie[v],R);return L===-1?void 0:Rc(ie[v],L,1)[0]}return Oa(ie[v])}},u.removeHooks=function(v){ru(ie,v)&&(ie[v]=[])},u.removeAllHooks=function(){ie=Wa()},u}var ud=ed();function F0(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function yB(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var u=e.default;if(typeof u=="function"){var t=function s(){var n=!1;try{n=this instanceof s}catch{}return n?Reflect.construct(u,arguments,this.constructor):u.apply(this,arguments)};t.prototype=u.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach(function(s){var n=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,n.get?n:{enumerable:!0,get:function(){return e[s]}})}),t}var vo,Ha;function ig(){if(Ha)return vo;Ha=1;var e=/["'&<>]/;vo=u;function u(t){var s=""+t,n=e.exec(s);if(!n)return s;var i,o="",r=0,a=0;for(r=n.index;ru)}}globalThis._oc_l10n_registry_translations??={},globalThis._oc_l10n_registry_plural_functions??={};function Ti(e,u,t,s,n){const i=typeof t=="object"?t:void 0,o=typeof s=="number"?s:typeof t=="number"?t:void 0,r={escape:!0,sanitize:!0,...typeof n=="object"?n:typeof s=="object"?s:{}},a=y=>y,m=(r.sanitize?ud.sanitize:a)||a,l=r.escape?Ga:a,g=y=>typeof y=="string"||typeof y=="number",p=(y,E,F)=>y.replace(/%n/g,""+F).replace(/{([^{}]*)}/g,(B,A)=>{if(E===void 0||!(A in E))return l(B);const O=E[A];return g(O)?l(`${O}`):typeof O=="object"&&g(O.value)?(O.escape!==!1?Ga:a)(`${O.value}`):l(B)});let h=(n?.bundle??td(e)).translations[u]||u;return h=Array.isArray(h)?h[0]:h,m(typeof i=="object"||o!==void 0?p(h,i,o):h)}function lg(e,u,t,s,n,i){const o="_"+u+"_::_"+t+"_",r=i?.bundle??td(e),a=r.translations[o];if(typeof a<"u"){const m=a;if(Array.isArray(m)){const l=r.pluralFunction(s);return Ti(e,m[l],n,s,i)}}return s===1?Ti(e,u,n,s,i):Ti(e,t,n,s,i)}function dg(e,u=k0()){switch(u==="pt-BR"&&(u="xbr"),u.length>3&&(u=u.substring(0,u.lastIndexOf("-"))),u){case"az":case"bo":case"dz":case"id":case"ja":case"jv":case"ka":case"km":case"kn":case"ko":case"ms":case"th":case"tr":case"vi":case"zh":return 0;case"af":case"bn":case"bg":case"ca":case"da":case"de":case"el":case"en":case"eo":case"es":case"et":case"eu":case"fa":case"fi":case"fo":case"fur":case"fy":case"gl":case"gu":case"ha":case"he":case"hu":case"is":case"it":case"ku":case"lb":case"ml":case"mn":case"mr":case"nah":case"nb":case"ne":case"nl":case"nn":case"no":case"oc":case"om":case"or":case"pa":case"pap":case"ps":case"pt":case"so":case"sq":case"sv":case"sw":case"ta":case"te":case"tk":case"ur":case"zu":return e===1?0:1;case"am":case"bh":case"fil":case"fr":case"gun":case"hi":case"hy":case"ln":case"mg":case"nso":case"xbr":case"ti":case"wa":return e===0||e===1?0:1;case"be":case"bs":case"hr":case"ru":case"sh":case"sr":case"uk":return e%10===1&&e%100!==11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2;case"cs":case"sk":return e===1?0:e>=2&&e<=4?1:2;case"ga":return e===1?0:e===2?1:2;case"lt":return e%10===1&&e%100!==11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2;case"sl":return e%100===1?0:e%100===2?1:e%100===3||e%100===4?2:3;case"mk":return e%10===1?0:1;case"mt":return e===1?0:e===0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3;case"lv":return e===0?0:e%10===1&&e%100!==11?1:2;case"pl":return e===1?0:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?1:2;case"cy":return e===1?0:e===2?1:e===8||e===11?2:3;case"ro":return e===1?0:e===0||e%100>0&&e%100<20?1:2;case"ar":return e===0?0:e===1?1:e===2?2:e%100>=3&&e%100<=10?3:e%100>=11&&e%100<=99?4:5;default:return 0}}const Mn=globalThis||void 0||self;function _r(e){const u=Object.create(null);for(const t of e.split(","))u[t]=1;return t=>t in u}const Ne={},Js=[],Gu=()=>{},sd=()=>!1,N0=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),S0=e=>e.startsWith("onUpdate:"),eu=Object.assign,Or=(e,u)=>{const t=e.indexOf(u);t>-1&&e.splice(t,1)},mg=Object.prototype.hasOwnProperty,je=(e,u)=>mg.call(e,u),ce=Array.isArray,Qs=e=>ii(e)==="[object Map]",nd=e=>ii(e)==="[object Set]",Ka=e=>ii(e)==="[object Date]",fe=e=>typeof e=="function",We=e=>typeof e=="string",ju=e=>typeof e=="symbol",ze=e=>e!==null&&typeof e=="object",id=e=>(ze(e)||fe(e))&&fe(e.then)&&fe(e.catch),od=Object.prototype.toString,ii=e=>od.call(e),cg=e=>ii(e).slice(8,-1),rd=e=>ii(e)==="[object Object]",_0=e=>We(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Sn=_r(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),O0=e=>{const u=Object.create(null);return(t=>u[t]||(u[t]=e(t)))},gg=/-\w/g,xu=O0(e=>e.replace(gg,u=>u.slice(1).toUpperCase())),fg=/\B([A-Z])/g,jt=O0(e=>e.replace(fg,"-$1").toLowerCase()),T0=O0(e=>e.charAt(0).toUpperCase()+e.slice(1)),zi=O0(e=>e?`on${T0(e)}`:""),du=(e,u)=>!Object.is(e,u),Pi=(e,...u)=>{for(let t=0;t{Object.defineProperty(e,u,{configurable:!0,enumerable:!1,writable:s,value:t})},Tr=e=>{const u=parseFloat(e);return isNaN(u)?e:u},pg=e=>{const u=We(e)?Number(e):NaN;return isNaN(u)?e:u};let qa;const Ki=()=>qa||(qa=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Mn<"u"?Mn:{});function xs(e){if(ce(e)){const u={};for(let t=0;t{if(t){const s=t.split(vg);s.length>1&&(u[s[0].trim()]=s[1].trim())}}),u}function Iu(e){let u="";if(We(e))u=e;else if(ce(e))for(let t=0;t!!(e&&e.__v_isRef===!0),Mu=e=>We(e)?e:e==null?"":ce(e)||ze(e)&&(e.toString===od||!fe(e.toString))?dd(e)?Mu(e.value):JSON.stringify(e,md,2):String(e),md=(e,u)=>dd(u)?md(e,u.value):Qs(u)?{[`Map(${u.size})`]:[...u.entries()].reduce((t,[s,n],i)=>(t[Eo(s,i)+" =>"]=n,t),{})}:nd(u)?{[`Set(${u.size})`]:[...u.values()].map(t=>Eo(t))}:ju(u)?Eo(u):ze(u)&&!ce(u)&&!rd(u)?String(u):u,Eo=(e,u="")=>{var t;return ju(e)?`Symbol(${(t=e.description)!=null?t:u})`:e};function Ag(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:String(e)}let iu;class cd{constructor(u=!1){this.detached=u,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!u&&iu&&(iu.active?(this.parent=iu,this.index=(iu.scopes||(iu.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let u,t;if(this.scopes){const s=this.scopes.slice();for(u=0,t=s.length;u0&&--this._on===0){if(iu===this)iu=this.prevScope;else{let u=iu;for(;u;){if(u.prevScope===this){u.prevScope=this.prevScope;break}u=u.prevScope}}this.prevScope=void 0}}stop(u){if(this._active){this._active=!1;let t,s;for(t=0,s=this.effects.length;t0)return;if(On){let u=On;for(On=void 0;u;){const t=u.next;u.next=void 0,u.flags&=-9,u=t}}let e;for(;_n;){let u=_n;for(_n=void 0;u;){const t=u.next;if(u.next=void 0,u.flags&=-9,u.flags&1)try{u.trigger()}catch(s){e||(e=s)}u=t}}if(e)throw e}function hd(e){for(let u=e.deps;u;u=u.nextDep)u.version=-1,u.prevActiveLink=u.dep.activeLink,u.dep.activeLink=u}function vd(e){let u,t=e.depsTail,s=t;for(;s;){const n=s.prevDep;s.version===-1?(s===t&&(t=n),jr(s),Dg(s)):u=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=n}e.deps=u,e.depsTail=t}function Qo(e){for(let u=e.deps;u;u=u.nextDep)if(u.dep.version!==u.version||u.dep.computed&&(Ed(u.dep.computed)||u.dep.version!==u.version))return!0;return!!e._dirty}function Ed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===$n)||(e.globalVersion=$n,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Qo(e))))return;e.flags|=2;const u=e.dep,t=Ue,s=Xu;Ue=e,Xu=!0;try{hd(e);const n=e.fn(e._value);(u.version===0||du(n,e._value))&&(e.flags|=128,e._value=n,u.version++)}catch(n){throw u.version++,n}finally{Ue=t,Xu=s,vd(e),e.flags&=-3}}function jr(e,u=!1){const{dep:t,prevSub:s,nextSub:n}=e;if(s&&(s.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=s,e.nextSub=void 0),t.subs===e&&(t.subs=s,!s&&t.computed)){t.computed.flags&=-5;for(let i=t.computed.deps;i;i=i.nextDep)jr(i,!0)}!u&&!--t.sc&&t.map&&t.map.delete(t.key)}function Dg(e){const{prevDep:u,nextDep:t}=e;u&&(u.nextDep=t,e.prevDep=void 0),t&&(t.prevDep=u,e.nextDep=void 0)}let Xu=!0;const Cd=[];function zt(){Cd.push(Xu),Xu=!1}function Pt(){const e=Cd.pop();Xu=e===void 0?!0:e}function Ya(e){const{cleanup:u}=e;if(e.cleanup=void 0,u){const t=Ue;Ue=void 0;try{u()}finally{Ue=t}}}let $n=0;class Fg{constructor(u,t){this.sub=u,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class z0{constructor(u){this.computed=u,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(u){if(!Ue||!Xu||Ue===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==Ue)t=this.activeLink=new Fg(Ue,this),Ue.deps?(t.prevDep=Ue.depsTail,Ue.depsTail.nextDep=t,Ue.depsTail=t):Ue.deps=Ue.depsTail=t,Bd(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const s=t.nextDep;s.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=s),t.prevDep=Ue.depsTail,t.nextDep=void 0,Ue.depsTail.nextDep=t,Ue.depsTail=t,Ue.deps===t&&(Ue.deps=s)}return t}trigger(u){this.version++,$n++,this.notify(u)}notify(u){Rr();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{Lr()}}}function Bd(e){if(e.dep.sc++,e.sub.flags&4){const u=e.dep.computed;if(u&&!e.dep.subs){u.flags|=20;for(let s=u.deps;s;s=s.nextDep)Bd(s)}const t=e.dep.subs;t!==e&&(e.prevSub=t,t&&(t.nextSub=e)),e.dep.subs=e}}const qi=new WeakMap,As=Symbol(""),er=Symbol(""),Un=Symbol("");function Bu(e,u,t){if(Xu&&Ue){let s=qi.get(e);s||qi.set(e,s=new Map);let n=s.get(t);n||(s.set(t,n=new z0),n.map=s,n.key=t),n.track()}}function Dt(e,u,t,s,n,i){const o=qi.get(e);if(!o){$n++;return}const r=a=>{a&&a.trigger()};if(Rr(),u==="clear")o.forEach(r);else{const a=ce(e),m=a&&_0(t);if(a&&t==="length"){const l=Number(s);o.forEach((g,p)=>{(p==="length"||p===Un||!ju(p)&&p>=l)&&r(g)})}else switch((t!==void 0||o.has(void 0))&&r(o.get(t)),m&&r(o.get(Un)),u){case"add":a?m&&r(o.get("length")):(r(o.get(As)),Qs(e)&&r(o.get(er)));break;case"delete":a||(r(o.get(As)),Qs(e)&&r(o.get(er)));break;case"set":Qs(e)&&r(o.get(As));break}}Lr()}function kg(e,u){const t=qi.get(e);return t&&t.get(u)}function Ms(e){const u=ke(e);return u===e?u:(Bu(u,"iterate",Un),Lu(e)?u:u.map(Qu))}function P0(e){return Bu(e=ke(e),"iterate",Un),e}function mt(e,u){return Rt(e)?Hn(ws(e)?Qu(u):u):Qu(u)}const Ng={__proto__:null,[Symbol.iterator](){return Bo(this,Symbol.iterator,e=>mt(this,e))},concat(...e){return Ms(this).concat(...e.map(u=>ce(u)?Ms(u):u))},entries(){return Bo(this,"entries",e=>(e[1]=mt(this,e[1]),e))},every(e,u){return xt(this,"every",e,u,void 0,arguments)},filter(e,u){return xt(this,"filter",e,u,t=>t.map(s=>mt(this,s)),arguments)},find(e,u){return xt(this,"find",e,u,t=>mt(this,t),arguments)},findIndex(e,u){return xt(this,"findIndex",e,u,void 0,arguments)},findLast(e,u){return xt(this,"findLast",e,u,t=>mt(this,t),arguments)},findLastIndex(e,u){return xt(this,"findLastIndex",e,u,void 0,arguments)},forEach(e,u){return xt(this,"forEach",e,u,void 0,arguments)},includes(...e){return yo(this,"includes",e)},indexOf(...e){return yo(this,"indexOf",e)},join(e){return Ms(this).join(e)},lastIndexOf(...e){return yo(this,"lastIndexOf",e)},map(e,u){return xt(this,"map",e,u,void 0,arguments)},pop(){return Cn(this,"pop")},push(...e){return Cn(this,"push",e)},reduce(e,...u){return Za(this,"reduce",e,u)},reduceRight(e,...u){return Za(this,"reduceRight",e,u)},shift(){return Cn(this,"shift")},some(e,u){return xt(this,"some",e,u,void 0,arguments)},splice(...e){return Cn(this,"splice",e)},toReversed(){return Ms(this).toReversed()},toSorted(e){return Ms(this).toSorted(e)},toSpliced(...e){return Ms(this).toSpliced(...e)},unshift(...e){return Cn(this,"unshift",e)},values(){return Bo(this,"values",e=>mt(this,e))}};function Bo(e,u,t){const s=P0(e),n=s[u]();return s!==e&&!Lu(e)&&(n._next=n.next,n.next=()=>{const i=n._next();return i.done||(i.value=t(i.value)),i}),n}const Sg=Array.prototype;function xt(e,u,t,s,n,i){const o=P0(e),r=o!==e&&!Lu(e),a=o[u];if(a!==Sg[u]){const g=a.apply(e,i);return r?Qu(g):g}let m=t;o!==e&&(r?m=function(g,p){return t.call(this,mt(e,g),p,e)}:t.length>2&&(m=function(g,p){return t.call(this,g,p,e)}));const l=a.call(o,m,s);return r&&n?n(l):l}function Za(e,u,t,s){const n=P0(e),i=n!==e&&!Lu(e);let o=t,r=!1;n!==e&&(i?(r=s.length===0,o=function(m,l,g){return r&&(r=!1,m=mt(e,m)),t.call(this,m,mt(e,l),g,e)}):t.length>3&&(o=function(m,l,g){return t.call(this,m,l,g,e)}));const a=n[u](o,...s);return r?mt(e,a):a}function yo(e,u,t){const s=ke(e);Bu(s,"iterate",Un);const n=s[u](...t);return(n===-1||n===!1)&&j0(t[0])?(t[0]=ke(t[0]),s[u](...t)):n}function Cn(e,u,t=[]){zt(),Rr();const s=ke(e)[u].apply(e,t);return Lr(),Pt(),s}const _g=_r("__proto__,__v_isRef,__isVue"),yd=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ju));function Og(e){ju(e)||(e=String(e));const u=ke(this);return Bu(u,"has",e),u.hasOwnProperty(e)}class xd{constructor(u=!1,t=!1){this._isReadonly=u,this._isShallow=t}get(u,t,s){if(t==="__v_skip")return u.__v_skip;const n=this._isReadonly,i=this._isShallow;if(t==="__v_isReactive")return!n;if(t==="__v_isReadonly")return n;if(t==="__v_isShallow")return i;if(t==="__v_raw")return s===(n?i?kd:Fd:i?Dd:bd).get(u)||Object.getPrototypeOf(u)===Object.getPrototypeOf(s)?u:void 0;const o=ce(u);if(!n){let a;if(o&&(a=Ng[t]))return a;if(t==="hasOwnProperty")return Og}const r=Reflect.get(u,t,su(u)?u:s);if((ju(t)?yd.has(t):_g(t))||(n||Bu(u,"get",t),i))return r;if(su(r)){const a=o&&_0(t)?r:r.value;return n&&ze(a)?Wn(a):a}return ze(r)?n?Wn(r):Vn(r):r}}class Ad extends xd{constructor(u=!1){super(!1,u)}set(u,t,s,n){let i=u[t];const o=ce(u)&&_0(t);if(!this._isShallow){const m=Rt(i);if(!Lu(s)&&!Rt(s)&&(i=ke(i),s=ke(s)),!o&&su(i)&&!su(s))return m||(i.value=s),!0}const r=o?Number(t)e,xi=e=>Reflect.getPrototypeOf(e);function Lg(e,u,t){return function(...s){const n=this.__v_raw,i=ke(n),o=Qs(i),r=e==="entries"||e===Symbol.iterator&&o,a=e==="keys"&&o,m=n[e](...s),l=t?ur:u?Hn:Qu;return!u&&Bu(i,"iterate",a?er:As),eu(Object.create(m),{next(){const{value:g,done:p}=m.next();return p?{value:g,done:p}:{value:r?[l(g[0]),l(g[1])]:l(g),done:p}}})}}function Ai(e){return function(...u){return e==="delete"?!1:e==="clear"?void 0:this}}function jg(e,u){const t={get(s){const n=this.__v_raw,i=ke(n),o=ke(s);e||(du(s,o)&&Bu(i,"get",s),Bu(i,"get",o));const{has:r}=xi(i),a=u?ur:e?Hn:Qu;if(r.call(i,s))return a(n.get(s));if(r.call(i,o))return a(n.get(o));n!==i&&n.get(s)},get size(){const s=this.__v_raw;return!e&&Bu(ke(s),"iterate",As),s.size},has(s){const n=this.__v_raw,i=ke(n),o=ke(s);return e||(du(s,o)&&Bu(i,"has",s),Bu(i,"has",o)),s===o?n.has(s):n.has(s)||n.has(o)},forEach(s,n){const i=this,o=i.__v_raw,r=ke(o),a=u?ur:e?Hn:Qu;return!e&&Bu(r,"iterate",As),o.forEach((m,l)=>s.call(n,a(m),a(l),i))}};return eu(t,e?{add:Ai("add"),set:Ai("set"),delete:Ai("delete"),clear:Ai("clear")}:{add(s){const n=ke(this),i=xi(n),o=ke(s),r=!u&&!Lu(s)&&!Rt(s)?o:s;return i.has.call(n,r)||du(s,r)&&i.has.call(n,s)||du(o,r)&&i.has.call(n,o)||(n.add(r),Dt(n,"add",r,r)),this},set(s,n){!u&&!Lu(n)&&!Rt(n)&&(n=ke(n));const i=ke(this),{has:o,get:r}=xi(i);let a=o.call(i,s);a||(s=ke(s),a=o.call(i,s));const m=r.call(i,s);return i.set(s,n),a?du(n,m)&&Dt(i,"set",s,n):Dt(i,"add",s,n),this},delete(s){const n=ke(this),{has:i,get:o}=xi(n);let r=i.call(n,s);r||(s=ke(s),r=i.call(n,s)),o&&o.call(n,s);const a=n.delete(s);return r&&Dt(n,"delete",s,void 0),a},clear(){const s=ke(this),n=s.size!==0,i=s.clear();return n&&Dt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{t[s]=Lg(s,e,u)}),t}function R0(e,u){const t=jg(e,u);return(s,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?s:Reflect.get(je(t,n)&&n in s?t:s,n,i)}const Ig={get:R0(!1,!1)},Mg={get:R0(!1,!0)},$g={get:R0(!0,!1)},Ug={get:R0(!0,!0)},bd=new WeakMap,Dd=new WeakMap,Fd=new WeakMap,kd=new WeakMap;function Vg(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Vn(e){return Rt(e)?e:L0(e,!1,Tg,Ig,bd)}function Wg(e){return L0(e,!1,Pg,Mg,Dd)}function Wn(e){return L0(e,!0,zg,$g,Fd)}function Hg(e){return L0(e,!0,Rg,Ug,kd)}function L0(e,u,t,s,n){if(!ze(e)||e.__v_raw&&!(u&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=n.get(e);if(i)return i;const o=Vg(cg(e));if(o===0)return e;const r=new Proxy(e,o===2?s:t);return n.set(e,r),r}function ws(e){return Rt(e)?ws(e.__v_raw):!!(e&&e.__v_isReactive)}function Rt(e){return!!(e&&e.__v_isReadonly)}function Lu(e){return!!(e&&e.__v_isShallow)}function j0(e){return e?!!e.__v_raw:!1}function ke(e){const u=e&&e.__v_raw;return u?ke(u):e}function Gg(e){return!je(e,"__v_skip")&&Object.isExtensible(e)&&ad(e,"__v_skip",!0),e}const Qu=e=>ze(e)?Vn(e):e,Hn=e=>ze(e)?Wn(e):e;function su(e){return e?e.__v_isRef===!0:!1}function rn(e){return Nd(e,!1)}function bs(e){return Nd(e,!0)}function Nd(e,u){return su(e)?e:new Kg(e,u)}class Kg{constructor(u,t){this.dep=new z0,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?u:ke(u),this._value=t?u:Qu(u),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(u){const t=this._rawValue,s=this.__v_isShallow||Lu(u)||Rt(u);u=s?u:ke(u),du(u,t)&&(this._rawValue=u,this._value=s?u:Qu(u),this.dep.trigger())}}function Fe(e){return su(e)?e.value:e}function Su(e){return fe(e)?e():Fe(e)}const qg={get:(e,u,t)=>u==="__v_raw"?e:Fe(Reflect.get(e,u,t)),set:(e,u,t,s)=>{const n=e[u];return su(n)&&!su(t)?(n.value=t,!0):Reflect.set(e,u,t,s)}};function Sd(e){return ws(e)?e:new Proxy(e,qg)}class Yg{constructor(u){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new z0,{get:s,set:n}=u(t.track.bind(t),t.trigger.bind(t));this._get=s,this._set=n}get value(){return this._value=this._get()}set value(u){this._set(u)}}function Zg(e){return new Yg(e)}class Xg{constructor(u,t,s){this._object=u,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=ju(t)?t:String(t),this._raw=ke(u);let n=!0,i=u;if(!ce(u)||ju(this._key)||!_0(this._key))do n=!j0(i)||Lu(i);while(n&&(i=i.__v_raw));this._shallow=n}get value(){let u=this._object[this._key];return this._shallow&&(u=Fe(u)),this._value=u===void 0?this._defaultValue:u}set value(u){if(this._shallow&&su(this._raw[this._key])){const t=this._object[this._key];if(su(t)){t.value=u;return}}this._object[this._key]=u}get dep(){return kg(this._raw,this._key)}}class Jg{constructor(u){this._getter=u,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Qg(e,u,t){return su(e)?e:fe(e)?new Jg(e):ze(e)&&arguments.length>1?ef(e,u,t):rn(e)}function ef(e,u,t){return new Xg(e,u,t)}class uf{constructor(u,t,s){this.fn=u,this.setter=t,this._value=void 0,this.dep=new z0(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=$n-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Ue!==this)return pd(this,!0),!0}get value(){const u=this.dep.track();return Ed(this),u&&(u.version=this.dep.version),this._value}set value(u){this.setter&&this.setter(u)}}function tf(e,u,t=!1){let s,n;return fe(e)?s=e:(s=e.get,n=e.set),new uf(s,n,t)}const wi={},Yi=new WeakMap;let fs;function sf(e,u=!1,t=fs){if(t){let s=Yi.get(t);s||Yi.set(t,s=[]),s.push(e)}}function nf(e,u,t=Ne){const{immediate:s,deep:n,once:i,scheduler:o,augmentJob:r,call:a}=t,m=N=>n?N:Lu(N)||n===!1||n===0?Ft(N,1):Ft(N);let l,g,p,h,y=!1,E=!1;if(su(e)?(g=()=>e.value,y=Lu(e)):ws(e)?(g=()=>m(e),y=!0):ce(e)?(E=!0,y=e.some(N=>ws(N)||Lu(N)),g=()=>e.map(N=>{if(su(N))return N.value;if(ws(N))return m(N);if(fe(N))return a?a(N,2):N()})):fe(e)?u?g=a?()=>a(e,2):e:g=()=>{if(p){zt();try{p()}finally{Pt()}}const N=fs;fs=l;try{return a?a(e,3,[h]):e(h)}finally{fs=N}}:g=Gu,u&&n){const N=g,K=n===!0?1/0:n;g=()=>Ft(N(),K)}const F=Pr(),B=()=>{l.stop(),F&&F.active&&Or(F.effects,l)};if(i&&u){const N=u;u=(...K)=>{const I=N(...K);return B(),I}}let A=E?new Array(e.length).fill(wi):wi;const O=N=>{if(!(!(l.flags&1)||!l.dirty&&!N))if(u){const K=l.run();if(N||n||y||(E?K.some((I,Y)=>du(I,A[Y])):du(K,A))){p&&p();const I=fs;fs=l;try{const Y=[K,A===wi?void 0:E&&A[0]===wi?[]:A,h];A=K,a?a(u,3,Y):u(...Y)}finally{fs=I}}}else l.run()};return r&&r(O),l=new gd(g),l.scheduler=o?()=>o(O,!1):O,h=N=>sf(N,!1,l),p=l.onStop=()=>{const N=Yi.get(l);if(N){if(a)a(N,4);else for(const K of N)K();Yi.delete(l)}},u?s?O(!0):A=l.run():o?o(O.bind(null,!0),!0):l.run(),B.pause=l.pause.bind(l),B.resume=l.resume.bind(l),B.stop=B,B}function Ft(e,u=1/0,t){if(u<=0||!ze(e)||e.__v_skip||(t=t||new Map,(t.get(e)||0)>=u))return e;if(t.set(e,u),u--,su(e))Ft(e.value,u,t);else if(ce(e))for(let s=0;s{Ft(s,u,t)});else if(rd(e)){for(const s in e)Ft(e[s],u,t);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Ft(e[s],u,t)}return e}function oi(e,u,t,s){try{return s?e(...s):e()}catch(n){I0(n,u,t)}}function Ku(e,u,t,s){if(fe(e)){const n=oi(e,u,t,s);return n&&id(n)&&n.catch(i=>{I0(i,u,t)}),n}if(ce(e)){const n=[];for(let i=0;i>>1,n=ku[s],i=Gn(n);i=Gn(t)?ku.push(e):ku.splice(rf(u),0,e),e.flags|=1,Od()}}function Od(){Zi||(Zi=_d.then(Pd))}function Td(e){ce(e)?en.push(...e):qt&&e.id===-1?qt.splice(Gs+1,0,e):e.flags&1||(en.push(e),e.flags|=1),Od()}function Xa(e,u,t=at+1){for(;tGn(t)-Gn(s));if(en.length=0,qt){qt.push(...u);return}for(qt=u,Gs=0;Gse.id==null?e.flags&2?-1:1/0:e.id;function Pd(e){try{for(at=0;atMe;function Me(e,u=fu,t){if(!u||e._n)return e;const s=(...n)=>{s._d&&u0(-1);const i=Xi(u),o=_t.length;let r;try{r=e(...n)}finally{for(let a=_t.length;a>o;a--)Kr();Xi(i),s._d&&u0(1)}return r};return s._n=!0,s._c=!0,s._d=!0,s}function Es(e,u){if(fu===null)return e;const t=H0(fu),s=e.dirs||(e.dirs=[]);for(let n=0;n1)return t&&fe(u)?u.call(s&&s.proxy):u}}function Rd(){return!!(et()||Ds)}const cf=Symbol.for("v-scx"),gf=()=>Zt(cf);function Ld(e,u){return $0(e,null,u)}function ff(e,u){return $0(e,null,{flush:"sync"})}function St(e,u,t){return $0(e,u,t)}function $0(e,u,t=Ne){const{immediate:s,deep:n,flush:i,once:o}=t,r=eu({},t),a=u&&s||!u&&i!=="post";let m;if(Zn){if(i==="sync"){const h=gf();m=h.__watcherHandles||(h.__watcherHandles=[])}else if(!a){const h=()=>{};return h.stop=Gu,h.resume=Gu,h.pause=Gu,h}}const l=yu;r.call=(h,y,E)=>Ku(h,l,y,E);let g=!1;i==="post"?r.scheduler=h=>{Du(h,l&&l.suspense)}:i!=="sync"&&(g=!0,r.scheduler=(h,y)=>{y?h():Mr(h)}),r.augmentJob=h=>{u&&(h.flags|=4),g&&(h.flags|=2,l&&(h.id=l.uid,h.i=l))};const p=nf(e,u,r);return Zn&&(m?m.push(p):a&&p()),p}function pf(e,u,t){const s=this.proxy,n=We(e)?e.includes(".")?jd(s,e):()=>s[e]:e.bind(s,s);let i;fe(u)?i=u:(i=u.handler,t=u);const o=li(this),r=$0(n,i.bind(s),t);return o(),r}function jd(e,u){const t=u.split(".");return()=>{let s=e;for(let n=0;ne.__isTeleport,ps=e=>e&&(e.disabled||e.disabled===""),hf=e=>e&&(e.defer||e.defer===""),Ja=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Qa=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,tr=(e,u)=>{const t=e&&e.to;return We(t)?u?u(t):null:t},vf={name:"Teleport",__isTeleport:!0,process(e,u,t,s,n,i,o,r,a,m){const{mc:l,pc:g,pbc:p,o:{insert:h,querySelector:y,createText:E,createComment:F,parentNode:B}}=m,A=ps(u.props);let{dynamicChildren:O}=u;const N=(Y,se,G)=>{Y.shapeFlag&16&&l(Y.children,se,G,n,i,o,r,a)},K=(Y=u)=>{const se=ps(Y.props),G=Y.target=tr(Y.props,y),M=sr(G,Y,E,h);G&&(o!=="svg"&&Ja(G)?o="svg":o!=="mathml"&&Qa(G)&&(o="mathml"),n&&n.isCE&&(n.ce._teleportTargets||(n.ce._teleportTargets=new Set)).add(G),se||(N(Y,G,M),Fn(Y,!1)))},I=Y=>{const se=()=>{if(Wt.get(Y)===se){if(Wt.delete(Y),ps(Y.props)){const G=B(Y.el)||t;N(Y,G,Y.anchor),Fn(Y,!0)}K(Y)}};Wt.set(Y,se),Du(se,i)};if(e==null){const Y=u.el=E(""),se=u.anchor=E("");if(h(Y,t,s),h(se,t,s),hf(u.props)||i&&i.pendingBranch){I(u);return}A&&(N(u,t,se),Fn(u,!0)),K()}else{u.el=e.el;const Y=u.anchor=e.anchor,se=Wt.get(e);if(se){se.flags|=8,Wt.delete(e),I(u);return}u.targetStart=e.targetStart;const G=u.target=e.target,M=u.targetAnchor=e.targetAnchor,ne=ps(e.props),b=ne?t:G,T=ne?Y:M;if(o==="svg"||Ja(G)?o="svg":(o==="mathml"||Qa(G))&&(o="mathml"),O?(p(e.dynamicChildren,O,b,n,i,o,r),Gr(e,u,!0)):a||g(e,u,b,T,n,i,o,r,!1),A)ne?u.props&&e.props&&u.props.to!==e.props.to&&(u.props.to=e.props.to):bi(u,t,Y,m,1);else if((u.props&&u.props.to)!==(e.props&&e.props.to)){const V=tr(u.props,y);V&&(u.target=V,bi(u,V,null,m,0))}else ne&&bi(u,G,M,m,1);Fn(u,A)}},remove(e,u,t,{um:s,o:{remove:n}},i){const{shapeFlag:o,children:r,anchor:a,targetStart:m,targetAnchor:l,target:g,props:p}=e,h=ps(p),y=i||!h,E=Wt.get(e);if(E&&(E.flags|=8,Wt.delete(e)),g&&(n(m),n(l)),i&&n(a),!E&&(h||g)&&o&16)for(let F=0;F{e.isMounted=!0}),Zd(()=>{e.isUnmounting=!0}),e}const Uu=[Function,Array],Ud={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Uu,onEnter:Uu,onAfterEnter:Uu,onEnterCancelled:Uu,onBeforeLeave:Uu,onLeave:Uu,onAfterLeave:Uu,onLeaveCancelled:Uu,onBeforeAppear:Uu,onAppear:Uu,onAfterAppear:Uu,onAppearCancelled:Uu},Vd=e=>{const u=e.subTree;return u.component?Vd(u.component):u},Bf={name:"BaseTransition",props:Ud,setup(e,{slots:u}){const t=et(),s=$d();return()=>{const n=u.default&&$r(u.default(),!0),i=n&&n.length?Wd(n):t.subTree?au():void 0;if(!i)return;const o=ke(e),{mode:r}=o;if(s.isLeaving)return xo(i);const a=el(i);if(!a)return xo(i);let m=Kn(a,o,s,t,g=>m=g);a.type!==mu&&Ns(a,m);let l=t.subTree&&el(t.subTree);if(l&&l.type!==mu&&!hs(l,a)&&Vd(t).type!==mu){let g=Kn(l,o,s,t);if(Ns(l,g),r==="out-in"&&a.type!==mu)return s.isLeaving=!0,g.afterLeave=()=>{s.isLeaving=!1,t.job.flags&8||t.update(),delete g.afterLeave,l=void 0},xo(i);r==="in-out"&&a.type!==mu?g.delayLeave=(p,h,y)=>{const E=Hd(s,l);E[String(l.key)]=l,p[Wu]=()=>{h(),p[Wu]=void 0,delete m.delayedLeave,l=void 0},m.delayedLeave=()=>{y(),delete m.delayedLeave,l=void 0}}:l=void 0}else l&&(l=void 0);return i}}};function Wd(e){let u=e[0];if(e.length>1){for(const t of e)if(t.type!==mu){u=t;break}}return u}const yf=Bf;function Hd(e,u){const{leavingVNodes:t}=e;let s=t.get(u.type);return s||(s=Object.create(null),t.set(u.type,s)),s}function Kn(e,u,t,s,n){const{appear:i,mode:o,persisted:r=!1,onBeforeEnter:a,onEnter:m,onAfterEnter:l,onEnterCancelled:g,onBeforeLeave:p,onLeave:h,onAfterLeave:y,onLeaveCancelled:E,onBeforeAppear:F,onAppear:B,onAfterAppear:A,onAppearCancelled:O}=u,N=String(e.key),K=Hd(t,e),I=(G,M)=>{G&&Ku(G,s,9,M)},Y=(G,M)=>{const ne=M[1];I(G,M),ce(G)?G.every(b=>b.length<=1)&&ne():G.length<=1&&ne()},se={mode:o,persisted:r,beforeEnter(G){let M=a;if(!t.isMounted)if(i)M=F||a;else return;G[Wu]&&G[Wu](!0);const ne=K[N];ne&&hs(e,ne)&&ne.el[Wu]&&ne.el[Wu](),I(M,[G])},enter(G){if(K[N]===e)return;let M=m,ne=l,b=g;if(!t.isMounted)if(i)M=B||m,ne=A||l,b=O||g;else return;let T=!1;G[Bn]=ue=>{T||(T=!0,ue?I(b,[G]):I(ne,[G]),se.delayedLeave&&se.delayedLeave(),G[Bn]=void 0)};const V=G[Bn].bind(null,!1);M?Y(M,[G,V]):V()},leave(G,M){const ne=String(e.key);if(G[Bn]&&G[Bn](!0),t.isUnmounting)return M();I(p,[G]);let b=!1;G[Wu]=V=>{b||(b=!0,M(),V?I(E,[G]):I(y,[G]),G[Wu]=void 0,K[ne]===e&&delete K[ne])};const T=G[Wu].bind(null,!1);K[ne]=e,h?Y(h,[G,T]):T()},clone(G){const M=Kn(G,u,t,s,n);return n&&n(M),M}};return se}function xo(e){if(U0(e))return e=us(e),e.children=null,e}function el(e){if(!U0(e))return Md(e.type)&&e.children?Wd(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:u,children:t}=e;if(t){if(u&16)return t[0];if(u&32&&fe(t.default))return t.default()}}function Ns(e,u){e.shapeFlag&6&&e.component?(e.transition=u,Ns(e.component.subTree,u)):e.shapeFlag&128?(e.ssContent.transition=u.clone(e.ssContent),e.ssFallback.transition=u.clone(e.ssFallback)):e.transition=u}function $r(e,u=!1,t){let s=[],n=0;for(let i=0;i1)for(let i=0;it.value,set:n=>t.value=n})}return t}function ul(e,u){let t;return!!((t=Object.getOwnPropertyDescriptor(e,u))&&!t.configurable)}const Ji=new WeakMap;function Tn(e,u,t,s,n=!1){if(ce(e)){e.forEach((E,F)=>Tn(E,u&&(ce(u)?u[F]:u),t,s,n));return}if(un(s)&&!n){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Tn(e,u,t,s.component.subTree);return}const i=s.shapeFlag&4?H0(s.component):s.el,o=n?null:i,{i:r,r:a}=e,m=u&&u.r,l=r.refs===Ne?r.refs={}:r.refs,g=r.setupState,p=ke(g),h=g===Ne?sd:E=>ul(l,E)?!1:je(p,E),y=(E,F)=>!(F&&ul(l,F));if(m!=null&&m!==a){if(tl(u),We(m))l[m]=null,h(m)&&(g[m]=null);else if(su(m)){const E=u;y(m,E.k)&&(m.value=null),E.k&&(l[E.k]=null)}}if(fe(a))oi(a,r,12,[o,l]);else{const E=We(a),F=su(a);if(E||F){const B=()=>{if(e.f){const A=E?h(a)?g[a]:l[a]:y()||!e.k?a.value:l[e.k];if(n)ce(A)&&Or(A,i);else if(ce(A))A.includes(i)||A.push(i);else if(E)l[a]=[i],h(a)&&(g[a]=l[a]);else{const O=[i];y(a,e.k)&&(a.value=O),e.k&&(l[e.k]=O)}}else E?(l[a]=o,h(a)&&(g[a]=o)):F&&(y(a,e.k)&&(a.value=o),e.k&&(l[e.k]=o))};if(o){const A=()=>{B(),Ji.delete(e)};A.id=-1,Ji.set(e,A),Du(A,t)}else tl(e),B()}}}function tl(e){const u=Ji.get(e);u&&(u.flags|=8,Ji.delete(e))}Ki().requestIdleCallback,Ki().cancelIdleCallback;const un=e=>!!e.type.__asyncLoader,U0=e=>e.type.__isKeepAlive;function Af(e,u){Kd(e,"a",u)}function wf(e,u){Kd(e,"da",u)}function Kd(e,u,t=yu){const s=e.__wdc||(e.__wdc=()=>{let n=t;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(V0(u,s,t),t){let n=t.parent;for(;n&&n.parent;)U0(n.parent.vnode)&&bf(s,u,t,n),n=n.parent}}function bf(e,u,t,s){const n=V0(u,e,s,!0);an(()=>{Or(s[u],n)},t)}function V0(e,u,t=yu,s=!1){if(t){const n=t[e]||(t[e]=[]),i=u.__weh||(u.__weh=(...o)=>{zt();const r=li(t),a=Ku(u,t,e,o);return r(),Pt(),a});return s?n.unshift(i):n.push(i),i}}const It=e=>(u,t=yu)=>{(!Zn||e==="sp")&&V0(e,(...s)=>u(...s),t)},Df=It("bm"),ri=It("m"),qd=It("bu"),Yd=It("u"),Zd=It("bum"),an=It("um"),Ff=It("sp"),kf=It("rtg"),Nf=It("rtc");function Sf(e,u=yu){V0("ec",e,u)}const Ur="components",_f="directives";function ft(e,u){return Vr(Ur,e,!0,u)||e}const Xd=Symbol.for("v-ndc");function Ri(e){return We(e)?Vr(Ur,e,!1)||e:e||Xd}function Of(e){return Vr(_f,e)}function Vr(e,u,t=!0,s=!1){const n=fu||yu;if(n){const i=n.type;if(e===Ur){const r=fp(i,!1);if(r&&(r===u||r===xu(u)||r===T0(xu(u))))return i}const o=sl(n[e]||i[e],u)||sl(n.appContext[e],u);return!o&&s?i:o}}function sl(e,u){return e&&(e[u]||e[xu(u)]||e[T0(xu(u))])}function nr(e,u,t,s){let n;const i=t,o=ce(e);if(o||We(e)){const r=o&&ws(e);let a=!1,m=!1;r&&(a=!Lu(e),m=Rt(e),e=P0(e)),n=new Array(e.length);for(let l=0,g=e.length;lu(r,a,void 0,i));else{const r=Object.keys(e);n=new Array(r.length);for(let a=0,m=r.length;a{const i=s.fn(...n);return i&&(i.key=s.key),i}:s.fn)}return e}function Ve(e,u,t={},s,n,i){if(fu.ce||fu.parent&&un(fu.parent)&&fu.parent.ce){const m=t,l=Object.keys(m).length>0;return u!=="default"&&(m.name=u),me(),pu(tu,null,[Ee("slot",m,s&&s())],l?-2:64)}let o=e[u];o&&o._c&&(o._d=!1);const r=_t.length;me();let a;try{const m=o&&Jd(o(t)),l=t.key||i||m&&m.key;a=pu(tu,{key:(l&&!ju(l)?l:`_${u}`)+(!m&&s?"_fb":"")},m||(s?s():[]),m&&e._===1?64:-2)}catch(m){for(let l=_t.length;l>r;l--)Kr();throw m}finally{o&&o._c&&(o._d=!0)}return!n&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function Jd(e){return e.some(u=>Yn(u)?!(u.type===mu||u.type===tu&&!Jd(u.children)):!0)?e:null}function Qd(e,u){const t={};for(const s in e)t[u&&/[A-Z]/.test(s)?`on:${s}`:zi(s)]=e[s];return t}const ir=e=>e?Bm(e)?H0(e):ir(e.parent):null,zn=eu(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ir(e.parent),$root:e=>ir(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>tm(e),$forceUpdate:e=>e.f||(e.f=()=>{Mr(e.update)}),$nextTick:e=>e.n||(e.n=Ir.bind(e.proxy)),$watch:e=>pf.bind(e)}),Ao=(e,u)=>e!==Ne&&!e.__isScriptSetup&&je(e,u),zf={get({_:e},u){if(u==="__v_skip")return!0;const{ctx:t,setupState:s,data:n,props:i,accessCache:o,type:r,appContext:a}=e;if(u[0]!=="$"){const p=o[u];if(p!==void 0)switch(p){case 1:return s[u];case 2:return n[u];case 4:return t[u];case 3:return i[u]}else{if(Ao(s,u))return o[u]=1,s[u];if(n!==Ne&&je(n,u))return o[u]=2,n[u];if(je(i,u))return o[u]=3,i[u];if(t!==Ne&&je(t,u))return o[u]=4,t[u];or&&(o[u]=0)}}const m=zn[u];let l,g;if(m)return u==="$attrs"&&Bu(e.attrs,"get",""),m(e);if((l=r.__cssModules)&&(l=l[u]))return l;if(t!==Ne&&je(t,u))return o[u]=4,t[u];if(g=a.config.globalProperties,je(g,u))return g[u]},set({_:e},u,t){const{data:s,setupState:n,ctx:i}=e;return Ao(n,u)?(n[u]=t,!0):s!==Ne&&je(s,u)?(s[u]=t,!0):je(e.props,u)||u[0]==="$"&&u.slice(1)in e?!1:(i[u]=t,!0)},has({_:{data:e,setupState:u,accessCache:t,ctx:s,appContext:n,props:i,type:o}},r){let a;return!!(t[r]||e!==Ne&&r[0]!=="$"&&je(e,r)||Ao(u,r)||je(i,r)||je(s,r)||je(zn,r)||je(n.config.globalProperties,r)||(a=o.__cssModules)&&a[r])},defineProperty(e,u,t){return t.get!=null?e._.accessCache[u]=0:je(t,"value")&&this.set(e,u,t.value,null),Reflect.defineProperty(e,u,t)}};function Pf(){return em().slots}function AB(){return em().attrs}function em(e){const u=et();return u.setupContext||(u.setupContext=xm(u))}function Qi(e){return ce(e)?e.reduce((u,t)=>(u[t]=null,u),{}):e}function nl(e,u){return!e||!u?e||u:ce(e)&&ce(u)?e.concat(u):eu({},Qi(e),Qi(u))}let or=!0;function Rf(e){const u=tm(e),t=e.proxy,s=e.ctx;or=!1,u.beforeCreate&&il(u.beforeCreate,e,"bc");const{data:n,computed:i,methods:o,watch:r,provide:a,inject:m,created:l,beforeMount:g,mounted:p,beforeUpdate:h,updated:y,activated:E,deactivated:F,beforeDestroy:B,beforeUnmount:A,destroyed:O,unmounted:N,render:K,renderTracked:I,renderTriggered:Y,errorCaptured:se,serverPrefetch:G,expose:M,inheritAttrs:ne,components:b,directives:T,filters:V}=u;if(m&&Lf(m,s,null),o)for(const Z in o){const Q=o[Z];fe(Q)&&(s[Z]=Q.bind(t))}if(n){const Z=n.call(t,t);ze(Z)&&(e.data=Vn(Z))}if(or=!0,i)for(const Z in i){const Q=i[Z],te=fe(Q)?Q.bind(t,t):fe(Q.get)?Q.get.bind(t,t):Gu,de=!fe(Q)&&fe(Q.set)?Q.set.bind(t):Gu,le=Ge({get:te,set:de});Object.defineProperty(s,Z,{enumerable:!0,configurable:!0,get:()=>le.value,set:ie=>le.value=ie})}if(r)for(const Z in r)um(r[Z],s,t,Z);if(a){const Z=fe(a)?a.call(t):a;Reflect.ownKeys(Z).forEach(Q=>{mf(Q,Z[Q])})}l&&il(l,e,"c");function ue(Z,Q){ce(Q)?Q.forEach(te=>Z(te.bind(t))):Q&&Z(Q.bind(t))}if(ue(Df,g),ue(ri,p),ue(qd,h),ue(Yd,y),ue(Af,E),ue(wf,F),ue(Sf,se),ue(Nf,I),ue(kf,Y),ue(Zd,A),ue(an,N),ue(Ff,G),ce(M))if(M.length){const Z=e.exposed||(e.exposed={});M.forEach(Q=>{Object.defineProperty(Z,Q,{get:()=>t[Q],set:te=>t[Q]=te,enumerable:!0})})}else e.exposed||(e.exposed={});K&&e.render===Gu&&(e.render=K),ne!=null&&(e.inheritAttrs=ne),b&&(e.components=b),T&&(e.directives=T),G&&Gd(e)}function Lf(e,u,t=Gu){ce(e)&&(e=rr(e));for(const s in e){const n=e[s];let i;ze(n)?"default"in n?i=Zt(n.from||s,n.default,!0):i=Zt(n.from||s):i=Zt(n),su(i)?Object.defineProperty(u,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):u[s]=i}}function il(e,u,t){Ku(ce(e)?e.map(s=>s.bind(u.proxy)):e.bind(u.proxy),u,t)}function um(e,u,t,s){let n=s.includes(".")?jd(t,s):()=>t[s];if(We(e)){const i=u[e];fe(i)&&St(n,i)}else if(fe(e))St(n,e.bind(t));else if(ze(e))if(ce(e))e.forEach(i=>um(i,u,t,s));else{const i=fe(e.handler)?e.handler.bind(t):u[e.handler];fe(i)&&St(n,i,e)}}function tm(e){const u=e.type,{mixins:t,extends:s}=u,{mixins:n,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,r=i.get(u);let a;return r?a=r:!n.length&&!t&&!s?a=u:(a={},n.length&&n.forEach(m=>e0(a,m,o,!0)),e0(a,u,o)),ze(u)&&i.set(u,a),a}function e0(e,u,t,s=!1){const{mixins:n,extends:i}=u;i&&e0(e,i,t,!0),n&&n.forEach(o=>e0(e,o,t,!0));for(const o in u)if(!(s&&o==="expose")){const r=jf[o]||t&&t[o];e[o]=r?r(e[o],u[o]):u[o]}return e}const jf={data:ol,props:rl,emits:rl,methods:kn,computed:kn,beforeCreate:wu,created:wu,beforeMount:wu,mounted:wu,beforeUpdate:wu,updated:wu,beforeDestroy:wu,beforeUnmount:wu,destroyed:wu,unmounted:wu,activated:wu,deactivated:wu,errorCaptured:wu,serverPrefetch:wu,components:kn,directives:kn,watch:Mf,provide:ol,inject:If};function ol(e,u){return u?e?function(){return eu(fe(e)?e.call(this,this):e,fe(u)?u.call(this,this):u)}:u:e}function If(e,u){return kn(rr(e),rr(u))}function rr(e){if(ce(e)){const u={};for(let t=0;t{let l,g=Ne,p;return ff(()=>{const h=e[n];du(l,h)&&(l=h,m())}),{get(){return a(),t.get?t.get(l):l},set(h){const y=t.set?t.set(h):h;if(!du(y,l)&&!(g!==Ne&&du(h,g)))return;const E=s.vnode.props,F=!!(E&&(u in E||n in E||i in E)&&(`onUpdate:${u}`in E||`onUpdate:${n}`in E||`onUpdate:${i}`in E));F||(l=h,m()),s.emit(`update:${u}`,y),du(h,g)&&(du(h,y)&&!du(y,p)||F&&g!==Ne&&!du(y,l))&&m(),g=h,p=y}}});return r[Symbol.iterator]=()=>{let a=0;return{next(){return a<2?{value:a++?o||Ne:r,done:!1}:{done:!0}}}},r}const nm=(e,u)=>u==="modelValue"||u==="model-value"?e.modelModifiers:e[`${u}Modifiers`]||e[`${xu(u)}Modifiers`]||e[`${jt(u)}Modifiers`];function Wf(e,u,...t){if(e.isUnmounted)return;const s=e.vnode.props||Ne;let n=t;const i=u.startsWith("update:"),o=i&&nm(s,u.slice(7));o&&(o.trim&&(n=t.map(l=>We(l)?l.trim():l)),o.number&&(n=t.map(Tr)));let r,a=s[r=zi(u)]||s[r=zi(xu(u))];!a&&i&&(a=s[r=zi(jt(u))]),a&&Ku(a,e,6,n);const m=s[r+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,Ku(m,e,6,n)}}const Hf=new WeakMap;function im(e,u,t=!1){const s=t?Hf:u.emitsCache,n=s.get(e);if(n!==void 0)return n;const i=e.emits;let o={},r=!1;if(!fe(e)){const a=m=>{const l=im(m,u,!0);l&&(r=!0,eu(o,l))};!t&&u.mixins.length&&u.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!r?(ze(e)&&s.set(e,null),null):(ce(i)?i.forEach(a=>o[a]=null):eu(o,i),ze(e)&&s.set(e,o),o)}function W0(e,u){return!e||!N0(u)?!1:(u=u.slice(2),u=u==="Once"?u:u.replace(/Once$/,""),je(e,u[0].toLowerCase()+u.slice(1))||je(e,jt(u))||je(e,u))}function al(e){const{type:u,vnode:t,proxy:s,withProxy:n,propsOptions:[i],slots:o,attrs:r,emit:a,render:m,renderCache:l,props:g,data:p,setupState:h,ctx:y,inheritAttrs:E}=e,F=Xi(e);let B,A;try{if(t.shapeFlag&4){const N=n||s,K=N;B=ct(m.call(K,N,l,g,h,p,y)),A=r}else{const N=u;B=ct(N.length>1?N(g,{attrs:r,slots:o,emit:a}):N(g,null)),A=u.props?r:Gf(r)}}catch(N){_t.length=0,I0(N,e,1),B=Ee(mu)}let O=B;if(A&&E!==!1){const N=Object.keys(A),{shapeFlag:K}=O;N.length&&K&7&&(i&&N.some(S0)&&(A=Kf(A,i)),O=us(O,A,!1,!0))}return t.dirs&&(O=us(O,null,!1,!0),O.dirs=O.dirs?O.dirs.concat(t.dirs):t.dirs),t.transition&&Ns(O,t.transition),B=O,Xi(F),B}const Gf=e=>{let u;for(const t in e)(t==="class"||t==="style"||N0(t))&&((u||(u={}))[t]=e[t]);return u},Kf=(e,u)=>{const t={};for(const s in e)(!S0(s)||!(s.slice(9)in u))&&(t[s]=e[s]);return t};function qf(e,u,t){const{props:s,children:n,component:i}=e,{props:o,children:r,patchFlag:a}=u,m=i.emitsOptions;if(u.dirs||u.transition)return!0;if(t&&a>=0){if(a&1024)return!0;if(a&16)return s?ll(s,o,m):!!o;if(a&8){const l=u.dynamicProps;for(let g=0;gObject.create(rm),lm=e=>Object.getPrototypeOf(e)===rm;function Zf(e,u,t,s=!1){const n={},i=am();e.propsDefaults=Object.create(null),dm(e,u,n,i);for(const o in e.propsOptions[0])o in n||(n[o]=void 0);t?e.props=s?n:Wg(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function Xf(e,u,t,s){const{props:n,attrs:i,vnode:{patchFlag:o}}=e,r=ke(n),[a]=e.propsOptions;let m=!1;if((s||o>0)&&!(o&16)){if(o&8){const l=e.vnode.dynamicProps;for(let g=0;g{a=!0;const[p,h]=mm(g,u,!0);eu(o,p),h&&r.push(...h)};!t&&u.mixins.length&&u.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}if(!i&&!a)return ze(e)&&s.set(e,Js),Js;if(ce(i))for(let l=0;le==="_"||e==="_ctx"||e==="$stable",Hr=e=>ce(e)?e.map(ct):[ct(e)],Qf=(e,u,t)=>{if(u._n)return u;const s=Me((...n)=>Hr(u(...n)),t);return s._c=!1,s},cm=(e,u,t)=>{const s=e._ctx;for(const n in e){if(Wr(n))continue;const i=e[n];if(fe(i))u[n]=Qf(n,i,s);else if(i!=null){const o=Hr(i);u[n]=()=>o}}},gm=(e,u)=>{const t=Hr(u);e.slots.default=()=>t},fm=(e,u,t)=>{for(const s in u)(t||!Wr(s))&&(e[s]=u[s])},ep=(e,u,t)=>{const s=e.slots=am();if(e.vnode.shapeFlag&32){const n=u._;n?(fm(s,u,t),t&&ad(s,"_",n,!0)):cm(u,s)}else u&&gm(e,u)},up=(e,u,t)=>{const{vnode:s,slots:n}=e;let i=!0,o=Ne;if(s.shapeFlag&32){const r=u._;r?t&&r===1?i=!1:fm(n,u,t):(i=!u.$stable,cm(u,n)),o=u}else u&&(gm(e,u),o={default:1});if(i)for(const r in n)!Wr(r)&&o[r]==null&&delete n[r]},Du=op;function tp(e){return sp(e)}function sp(e,u){const t=Ki();t.__VUE__=!0;const{insert:s,remove:n,patchProp:i,createElement:o,createText:r,createComment:a,setText:m,setElementText:l,parentNode:g,nextSibling:p,setScopeId:h=Gu,insertStaticContent:y}=e,E=(C,w,_,$=null,z=null,S=null,W=void 0,U=null,H=!!w.dynamicChildren)=>{if(C===w)return;C&&!hs(C,w)&&($=$e(C),xe(C,z,S,!0),C=null),w.patchFlag===-2&&(H=!1,w.dynamicChildren=null);const{type:j,ref:re,shapeFlag:X}=w;switch(j){case ai:F(C,w,_,$);break;case mu:B(C,w,_,$);break;case Pn:C==null&&A(w,_,$,W);break;case tu:b(C,w,_,$,z,S,W,U,H);break;default:X&1?K(C,w,_,$,z,S,W,U,H):X&6?T(C,w,_,$,z,S,W,U,H):(X&64||X&128)&&j.process(C,w,_,$,z,S,W,U,H,$u)}re!=null&&z?Tn(re,C&&C.ref,S,w||C,!w):re==null&&C&&C.ref!=null&&Tn(C.ref,null,S,C,!0)},F=(C,w,_,$)=>{if(C==null)s(w.el=r(w.children),_,$);else{const z=w.el=C.el;w.children!==C.children&&m(z,w.children)}},B=(C,w,_,$)=>{C==null?s(w.el=a(w.children||""),_,$):w.el=C.el},A=(C,w,_,$)=>{[C.el,C.anchor]=y(C.children,w,_,$,C.el,C.anchor)},O=({el:C,anchor:w},_,$)=>{let z;for(;C&&C!==w;)z=p(C),s(C,_,$),C=z;s(w,_,$)},N=({el:C,anchor:w})=>{let _;for(;C&&C!==w;)_=p(C),n(C),C=_;n(w)},K=(C,w,_,$,z,S,W,U,H)=>{if(w.type==="svg"?W="svg":w.type==="math"&&(W="mathml"),C==null)I(w,_,$,z,S,W,U,H);else{const j=C.el&&C.el._isVueCE?C.el:null;try{j&&j._beginPatch(),G(C,w,z,S,W,U,H)}finally{j&&j._endPatch()}}},I=(C,w,_,$,z,S,W,U)=>{let H,j;const{props:re,shapeFlag:X,transition:oe,dirs:ae}=C;if(H=C.el=o(C.type,S,re&&re.is,re),X&8?l(H,C.children):X&16&&se(C.children,H,null,$,z,wo(C,S),W,U),ae&&as(C,null,$,"created"),Y(H,C,C.scopeId,W,$),re){for(const Ae in re)Ae!=="value"&&!Sn(Ae)&&i(H,Ae,null,re[Ae],S,$);"value"in re&&i(H,"value",null,re.value,S),(j=re.onVnodeBeforeMount)&&it(j,$,C)}ae&&as(C,null,$,"beforeMount");const ge=np(z,oe);ge&&oe.beforeEnter(H),s(H,w,_),((j=re&&re.onVnodeMounted)||ge||ae)&&Du(()=>{j&&it(j,$,C),ge&&oe.enter(H),ae&&as(C,null,$,"mounted")},z)},Y=(C,w,_,$,z)=>{if(_&&h(C,_),$)for(let S=0;S<$.length;S++)h(C,$[S]);if(z){let S=z.subTree;if(w===S||vm(S.type)&&(S.ssContent===w||S.ssFallback===w)){const W=z.vnode;Y(C,W,W.scopeId,W.slotScopeIds,z.parent)}}},se=(C,w,_,$,z,S,W,U,H=0)=>{for(let j=H;j{const U=w.el=C.el;let{patchFlag:H,dynamicChildren:j,dirs:re}=w;H|=C.patchFlag&16;const X=C.props||Ne,oe=w.props||Ne;let ae;if(_&&ls(_,!1),(ae=oe.onVnodeBeforeUpdate)&&it(ae,_,w,C),re&&as(w,C,_,"beforeUpdate"),_&&ls(_,!0),j&&(!C.dynamicChildren||C.dynamicChildren.length!==j.length)&&(H=0,W=!1,j=null),(X.innerHTML&&oe.innerHTML==null||X.textContent&&oe.textContent==null)&&l(U,""),j?M(C.dynamicChildren,j,U,_,$,wo(w,z),S):W||te(C,w,U,null,_,$,wo(w,z),S,!1),H>0){if(H&16)ne(U,X,oe,_,z);else if(H&2&&X.class!==oe.class&&i(U,"class",null,oe.class,z),H&4&&i(U,"style",X.style,oe.style,z),H&8){const ge=w.dynamicProps;for(let Ae=0;Ae{ae&&it(ae,_,w,C),re&&as(w,C,_,"updated")},$)},M=(C,w,_,$,z,S,W)=>{for(let U=0;U{if(w!==_){if(w!==Ne)for(const S in w)!Sn(S)&&!(S in _)&&i(C,S,w[S],null,z,$);for(const S in _){if(Sn(S))continue;const W=_[S],U=w[S];W!==U&&S!=="value"&&i(C,S,U,W,z,$)}"value"in _&&i(C,"value",w.value,_.value,z)}},b=(C,w,_,$,z,S,W,U,H)=>{const j=w.el=C?C.el:r(""),re=w.anchor=C?C.anchor:r("");let{patchFlag:X,dynamicChildren:oe,slotScopeIds:ae}=w;ae&&(U=U?U.concat(ae):ae),C==null?(s(j,_,$),s(re,_,$),se(w.children||[],_,re,z,S,W,U,H)):X>0&&X&64&&oe&&C.dynamicChildren&&C.dynamicChildren.length===oe.length?(M(C.dynamicChildren,oe,_,z,S,W,U),(w.key!=null||z&&w===z.subTree)&&Gr(C,w,!0)):te(C,w,_,re,z,S,W,U,H)},T=(C,w,_,$,z,S,W,U,H)=>{w.slotScopeIds=U,C==null?w.shapeFlag&512?z.ctx.activate(w,_,$,W,H):V(w,_,$,z,S,W,H):ue(C,w,H)},V=(C,w,_,$,z,S,W)=>{const U=C.component=dp(C,$,z);if(U0(C)&&(U.ctx.renderer=$u),mp(U,!1,W),U.asyncDep){if(z&&z.registerDep(U,Z,W),!C.el){const H=U.subTree=Ee(mu);B(null,H,w,_),C.placeholder=H.el}}else Z(U,C,w,_,z,S,W)},ue=(C,w,_)=>{const $=w.component=C.component;if(qf(C,w,_))if($.asyncDep&&!$.asyncResolved){Q($,w,_);return}else $.next=w,$.update();else w.el=C.el,$.vnode=w},Z=(C,w,_,$,z,S,W)=>{const U=()=>{if(C.isMounted){let{next:X,bu:oe,u:ae,parent:ge,vnode:Ae}=C;{const c=pm(C);if(c){X&&(X.el=Ae.el,Q(C,X,W)),c.asyncDep.then(()=>{Du(()=>{C.isUnmounted||j()},z)});return}}let _e=X,De;ls(C,!1),X?(X.el=Ae.el,Q(C,X,W)):X=Ae,oe&&Pi(oe),(De=X.props&&X.props.onVnodeBeforeUpdate)&&it(De,ge,X,Ae),ls(C,!0);const qe=al(C),d=C.subTree;C.subTree=qe,E(d,qe,g(d.el),$e(d),C,z,S),X.el=qe.el,_e===null&&Yf(C,qe.el),ae&&Du(ae,z),(De=X.props&&X.props.onVnodeUpdated)&&Du(()=>it(De,ge,X,Ae),z)}else{let X;const{el:oe,props:ae}=w,{bm:ge,m:Ae,parent:_e,root:De,type:qe}=C,d=un(w);ls(C,!1),ge&&Pi(ge),!d&&(X=ae&&ae.onVnodeBeforeMount)&&it(X,_e,w),ls(C,!0);{De.ce&&De.ce._hasShadowRoot()&&De.ce._injectChildStyle(qe,C.parent?C.parent.type:void 0);const c=C.subTree=al(C);E(null,c,_,$,C,z,S),w.el=c.el}if(Ae&&Du(Ae,z),!d&&(X=ae&&ae.onVnodeMounted)){const c=w;Du(()=>it(X,_e,c),z)}(w.shapeFlag&256||_e&&un(_e.vnode)&&_e.vnode.shapeFlag&256)&&C.a&&Du(C.a,z),C.isMounted=!0,w=_=$=null}};C.scope.on();const H=C.effect=new gd(U);C.scope.off();const j=C.update=H.run.bind(H),re=C.job=H.runIfDirty.bind(H);re.i=C,re.id=C.uid,H.scheduler=()=>Mr(re),ls(C,!0),j()},Q=(C,w,_)=>{w.component=C;const $=C.vnode.props;C.vnode=w,C.next=null,Xf(C,w.props,$,_),up(C,w.children,_),zt(),Xa(C),Pt()},te=(C,w,_,$,z,S,W,U,H=!1)=>{const j=C&&C.children,re=C?C.shapeFlag:0,X=w.children,{patchFlag:oe,shapeFlag:ae}=w;if(oe>0){if(oe&128){le(j,X,_,$,z,S,W,U,H);return}else if(oe&256){de(j,X,_,$,z,S,W,U,H);return}}ae&8?(re&16&&pe(j,z,S),X!==j&&l(_,X)):re&16?ae&16?le(j,X,_,$,z,S,W,U,H):pe(j,z,S,!0):(re&8&&l(_,""),ae&16&&se(X,_,$,z,S,W,U,H))},de=(C,w,_,$,z,S,W,U,H)=>{C=C||Js,w=w||Js;const j=C.length,re=w.length,X=Math.min(j,re);let oe;for(oe=0;oere?pe(C,z,S,!0,!1,X):se(w,_,$,z,S,W,U,H,X)},le=(C,w,_,$,z,S,W,U,H)=>{let j=0;const re=w.length;let X=C.length-1,oe=re-1;for(;j<=X&&j<=oe;){const ae=C[j],ge=w[j]=H?bt(w[j]):ct(w[j]);if(hs(ae,ge))E(ae,ge,_,null,z,S,W,U,H);else break;j++}for(;j<=X&&j<=oe;){const ae=C[X],ge=w[oe]=H?bt(w[oe]):ct(w[oe]);if(hs(ae,ge))E(ae,ge,_,null,z,S,W,U,H);else break;X--,oe--}if(j>X){if(j<=oe){const ae=oe+1,ge=aeoe)for(;j<=X;)xe(C[j],z,S,!0),j++;else{const ae=j,ge=j,Ae=new Map;for(j=ge;j<=oe;j++){const k=w[j]=H?bt(w[j]):ct(w[j]);k.key!=null&&Ae.set(k.key,j)}let _e,De=0;const qe=oe-ge+1;let d=!1,c=0;const f=new Array(qe);for(j=0;j=qe){xe(k,z,S,!0);continue}let P;if(k.key!=null)P=Ae.get(k.key);else for(_e=ge;_e<=oe;_e++)if(f[_e-ge]===0&&hs(k,w[_e])){P=_e;break}P===void 0?xe(k,z,S,!0):(f[P-ge]=j+1,P>=c?c=P:d=!0,E(k,w[P],_,null,z,S,W,U,H),De++)}const x=d?ip(f):Js;for(_e=x.length-1,j=qe-1;j>=0;j--){const k=ge+j,P=w[k],q=w[k+1],Oe=k+1{const{el:S,type:W,transition:U,children:H,shapeFlag:j}=C;if(j&6){ie(C.component.subTree,w,_,$);return}if(j&128){C.suspense.move(w,_,$);return}if(j&64){W.move(C,w,_,$u);return}if(W===tu){s(S,w,_);for(let re=0;reU.enter(S),z));else{const{leave:re,delayLeave:X,afterLeave:oe}=U,ae=()=>{C.ctx.isUnmounted?n(S):s(S,w,_)},ge=()=>{const Ae=S._isLeaving||!!S[Wu];S._isLeaving&&S[Wu](!0),U.persisted&&!Ae?ae():re(S,()=>{ae(),oe&&oe()})};X?X(S,ae,ge):ge()}else s(S,w,_)},xe=(C,w,_,$=!1,z=!1)=>{const{type:S,props:W,ref:U,children:H,dynamicChildren:j,shapeFlag:re,patchFlag:X,dirs:oe,cacheIndex:ae,memo:ge}=C;if(X===-2&&(z=!1),U!=null&&(zt(),Tn(U,null,_,C,!0),Pt()),ae!=null&&(w.renderCache[ae]=void 0),re&256){w.ctx.deactivate(C);return}const Ae=re&1&&oe,_e=!un(C);let De;if(_e&&(De=W&&W.onVnodeBeforeUnmount)&&it(De,w,C),re&6)Pe(C.component,_,$);else{if(re&128){C.suspense.unmount(_,$);return}Ae&&as(C,null,w,"beforeUnmount"),re&64?C.type.remove(C,w,_,$u,$):j&&!j.hasOnce&&(S!==tu||X>0&&X&64)?pe(j,w,_,!1,!0):(S===tu&&X&384||!z&&re&16)&&pe(H,w,_),$&&He(C)}const qe=ge!=null&&ae==null;(_e&&(De=W&&W.onVnodeUnmounted)||Ae||qe)&&Du(()=>{De&&it(De,w,C),Ae&&as(C,null,w,"unmounted"),qe&&(C.el=null)},_)},He=C=>{const{type:w,el:_,anchor:$,transition:z}=C;if(w===tu){Se(_,$);return}if(w===Pn){N(C);return}const S=()=>{n(_),z&&!z.persisted&&z.afterLeave&&z.afterLeave()};if(C.shapeFlag&1&&z&&!z.persisted){const{leave:W,delayLeave:U}=z,H=()=>W(_,S);U?U(C.el,S,H):H()}else S()},Se=(C,w)=>{let _;for(;C!==w;)_=p(C),n(C),C=_;n(w)},Pe=(C,w,_)=>{const{bum:$,scope:z,job:S,subTree:W,um:U,m:H,a:j}=C;ml(H),ml(j),$&&Pi($),z.stop(),S&&(S.flags|=8,xe(W,C,w,_)),U&&Du(U,w),Du(()=>{C.isUnmounted=!0},w)},pe=(C,w,_,$=!1,z=!1,S=0)=>{for(let W=S;W{if(C.shapeFlag&6)return $e(C.component.subTree);if(C.shapeFlag&128)return C.suspense.next();const w=p(C.anchor||C.el),_=w&&w[Id];return _?p(_):w};let Nu=!1;const tt=(C,w,_)=>{let $;C==null?w._vnode&&(xe(w._vnode,null,null,!0),$=w._vnode.component):E(w._vnode||null,C,w,null,null,null,_),w._vnode=C,Nu||(Nu=!0,Xa($),zd(),Nu=!1)},$u={p:E,um:xe,m:ie,r:He,mt:V,mc:se,pc:te,pbc:M,n:$e,o:e};return{render:tt,hydrate:void 0,createApp:Uf(tt)}}function wo({type:e,props:u},t){return t==="svg"&&e==="foreignObject"||t==="mathml"&&e==="annotation-xml"&&u&&u.encoding&&u.encoding.includes("html")?void 0:t}function ls({effect:e,job:u},t){t?(e.flags|=32,u.flags|=4):(e.flags&=-33,u.flags&=-5)}function np(e,u){return(!e||e&&!e.pendingBranch)&&u&&!u.persisted}function Gr(e,u,t=!1){const s=e.children,n=u.children;if(ce(s)&&ce(n))for(let i=0;i>1,e[t[r]]0&&(u[s]=t[i-1]),t[i]=s)}}for(i=t.length,o=t[i-1];i-- >0;)t[i]=o,o=u[o];return t}function pm(e){const u=e.subTree.component;if(u)return u.asyncDep&&!u.asyncResolved?u:pm(u)}function ml(e){if(e)for(let u=0;ue.__isSuspense;function op(e,u){u&&u.pendingBranch?ce(e)?u.effects.push(...e):u.effects.push(e):Td(e)}const tu=Symbol.for("v-fgt"),ai=Symbol.for("v-txt"),mu=Symbol.for("v-cmt"),Pn=Symbol.for("v-stc"),_t=[];let Ru=null;function me(e=!1){_t.push(Ru=e?null:[])}function Kr(){_t.pop(),Ru=_t[_t.length-1]||null}let qn=1;function u0(e,u=!1){qn+=e,e<0&&Ru&&u&&(Ru.hasOnce=!0)}function Em(e){return e.dynamicChildren=qn>0?Ru||Js:null,Kr(),qn>0&&Ru&&Ru.push(e),e}function Be(e,u,t,s,n,i){return Em(Ce(e,u,t,s,n,i,!0))}function pu(e,u,t,s,n){return Em(Ee(e,u,t,s,n,!0))}function Yn(e){return e?e.__v_isVNode===!0:!1}function hs(e,u){return e.type===u.type&&e.key===u.key}const Cm=({key:e})=>e??null,Li=({ref:e,ref_key:u,ref_for:t})=>(typeof e=="number"&&(e=""+e),e!=null?We(e)||su(e)||fe(e)?{i:fu,r:e,k:u,f:!!t}:e:null);function Ce(e,u=null,t=null,s=0,n=null,i=e===tu?0:1,o=!1,r=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:u,key:u&&Cm(u),ref:u&&Li(u),scopeId:M0,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:fu};return r?(t0(a,t),i&128&&e.normalize(a)):t&&(a.shapeFlag|=We(t)?8:16),qn>0&&!o&&Ru&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&Ru.push(a),a}const Ee=rp;function rp(e,u=null,t=null,s=0,n=null,i=!1){if((!e||e===Xd)&&(e=mu),Yn(e)){const r=us(e,u,!0);return t&&t0(r,t),qn>0&&!i&&Ru&&(r.shapeFlag&6?Ru[Ru.indexOf(e)]=r:Ru.push(r)),r.patchFlag=-2,r}if(pp(e)&&(e=e.__vccOpts),u){u=Eu(u);let{class:r,style:a}=u;r&&!We(r)&&(u.class=Iu(r)),ze(a)&&(j0(a)&&!ce(a)&&(a=eu({},a)),u.style=xs(a))}const o=We(e)?1:vm(e)?128:Md(e)?64:ze(e)?4:fe(e)?2:0;return Ce(e,u,t,s,n,o,i,!0)}function Eu(e){return e?j0(e)||lm(e)?eu({},e):e:null}function us(e,u,t=!1,s=!1){const{props:n,ref:i,patchFlag:o,children:r,transition:a}=e,m=u?_u(n||{},u):n,l={__v_isVNode:!0,__v_skip:!0,type:e.type,props:m,key:m&&Cm(m),ref:u&&u.ref?t&&i?ce(i)?i.concat(Li(u)):[i,Li(u)]:Li(u):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:u&&e.type!==tu?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&us(e.ssContent),ssFallback:e.ssFallback&&us(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&s&&Ns(l,a.clone(l)),l}function tn(e=" ",u=0){return Ee(ai,null,e,u)}function wB(e,u){const t=Ee(Pn,null,e);return t.staticCount=u,t}function au(e="",u=!1){return u?(me(),pu(mu,null,e)):Ee(mu,null,e)}function ct(e){return e==null||typeof e=="boolean"?Ee(mu):ce(e)?Ee(tu,null,e.slice()):Yn(e)?bt(e):Ee(ai,null,String(e))}function bt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:us(e)}function t0(e,u){let t=0;const{shapeFlag:s}=e;if(u==null)u=null;else if(ce(u))t=16;else if(typeof u=="object")if(s&65){const n=u.default;n&&(n._c&&(n._d=!1),t0(e,n()),n._c&&(n._d=!0));return}else{t=32;const n=u._;!n&&!lm(u)?u._ctx=fu:n===3&&fu&&(fu.slots._===1?u._=1:(u._=2,e.patchFlag|=1024))}else if(fe(u)){if(s&65){t0(e,{default:u});return}u={default:u,_ctx:fu},t=32}else u=String(u),s&64?(t=16,u=[tn(u)]):t=8;e.children=u,e.shapeFlag|=t}function _u(...e){const u={};for(let t=0;tyu||fu;let s0,lr;{const e=Ki(),u=(t,s)=>{let n;return(n=e[t])||(n=e[t]=[]),n.push(s),i=>{n.length>1?n.forEach(o=>o(i)):n[0](i)}};s0=u("__VUE_INSTANCE_SETTERS__",t=>yu=t),lr=u("__VUE_SSR_SETTERS__",t=>Zn=t)}const li=e=>{const u=yu;return s0(e),e.scope.on(),()=>{e.scope.off(),s0(u)}},cl=()=>{yu&&yu.scope.off(),s0(null)};function Bm(e){return e.vnode.shapeFlag&4}let Zn=!1;function mp(e,u=!1,t=!1){u&&lr(u);const{props:s,children:n}=e.vnode,i=Bm(e);Zf(e,s,i,u),ep(e,n,t||u);const o=i?cp(e,u):void 0;return u&&lr(!1),o}function cp(e,u){const t=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,zf);const{setup:s}=t;if(s){zt();const n=e.setupContext=s.length>1?xm(e):null,i=li(e),o=oi(s,e,0,[e.props,n]),r=id(o);if(Pt(),i(),(r||e.sp)&&!un(e)&&Gd(e),r){if(o.then(cl,cl),u)return o.then(a=>{gl(e,a)}).catch(a=>{I0(a,e,0)});e.asyncDep=o}else gl(e,o)}else ym(e)}function gl(e,u,t){fe(u)?e.type.__ssrInlineRender?e.ssrRender=u:e.render=u:ze(u)&&(e.setupState=Sd(u)),ym(e)}function ym(e,u,t){const s=e.type;e.render||(e.render=s.render||Gu);{const n=li(e);zt();try{Rf(e)}finally{Pt(),n()}}}const gp={get(e,u){return Bu(e,"get",""),e[u]}};function xm(e){const u=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,gp),slots:e.slots,emit:e.emit,expose:u}}function H0(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Sd(Gg(e.exposed)),{get(u,t){if(t in u)return u[t];if(t in zn)return zn[t](e)},has(u,t){return t in u||t in zn}})):e.proxy}function fp(e,u=!0){return fe(e)?e.displayName||e.name:e.name||u&&e.__name}function pp(e){return fe(e)&&"__vccOpts"in e}const Ge=(e,u)=>tf(e,u,Zn);function lu(e,u,t){try{u0(-1);const s=arguments.length;return s===2?ze(u)&&!ce(u)?Yn(u)?Ee(e,null,[u]):Ee(e,u):Ee(e,null,u):(s>3?t=Array.prototype.slice.call(arguments,2):s===3&&Yn(t)&&(t=[t]),Ee(e,u,t))}finally{u0(1)}}const hp="3.5.40",fl=Gu;let dr;const pl=typeof window<"u"&&window.trustedTypes;if(pl)try{dr=pl.createPolicy("vue",{createHTML:e=>e})}catch{}const Am=dr?e=>dr.createHTML(e):e=>e,vp="http://www.w3.org/2000/svg",Ep="http://www.w3.org/1998/Math/MathML",wt=typeof document<"u"?document:null,hl=wt&&wt.createElement("template"),Cp={insert:(e,u,t)=>{u.insertBefore(e,t||null)},remove:e=>{const u=e.parentNode;u&&u.removeChild(e)},createElement:(e,u,t,s)=>{const n=u==="svg"?wt.createElementNS(vp,e):u==="mathml"?wt.createElementNS(Ep,e):t?wt.createElement(e,{is:t}):wt.createElement(e);return e==="select"&&s&&s.multiple!=null&&n.setAttribute("multiple",s.multiple),n},createText:e=>wt.createTextNode(e),createComment:e=>wt.createComment(e),setText:(e,u)=>{e.nodeValue=u},setElementText:(e,u)=>{e.textContent=u},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>wt.querySelector(e),setScopeId(e,u){e.setAttribute(u,"")},insertStaticContent(e,u,t,s,n,i){const o=t?t.previousSibling:u.lastChild;if(n&&(n===i||n.nextSibling))for(;u.insertBefore(n.cloneNode(!0),t),!(n===i||!(n=n.nextSibling)););else{hl.innerHTML=Am(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const r=hl.content;if(s==="svg"||s==="mathml"){const a=r.firstChild;for(;a.firstChild;)r.appendChild(a.firstChild);r.removeChild(a)}u.insertBefore(r,t)}return[o?o.nextSibling:u.firstChild,t?t.previousSibling:u.lastChild]}},Vt="transition",yn="animation",ln=Symbol("_vtc"),wm={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},bm=eu({},Ud,wm),Bp=e=>(e.displayName="Transition",e.props=bm,e),Ks=Bp((e,{slots:u})=>lu(yf,Dm(e),u)),ds=(e,u=[])=>{ce(e)?e.forEach(t=>t(...u)):e&&e(...u)},vl=e=>e?ce(e)?e.some(u=>u.length>1):e.length>1:!1;function Dm(e){const u={};for(const b in e)b in wm||(u[b]=e[b]);if(e.css===!1)return u;const{name:t="v",type:s,duration:n,enterFromClass:i=`${t}-enter-from`,enterActiveClass:o=`${t}-enter-active`,enterToClass:r=`${t}-enter-to`,appearFromClass:a=i,appearActiveClass:m=o,appearToClass:l=r,leaveFromClass:g=`${t}-leave-from`,leaveActiveClass:p=`${t}-leave-active`,leaveToClass:h=`${t}-leave-to`}=e,y=yp(n),E=y&&y[0],F=y&&y[1],{onBeforeEnter:B,onEnter:A,onEnterCancelled:O,onLeave:N,onLeaveCancelled:K,onBeforeAppear:I=B,onAppear:Y=A,onAppearCancelled:se=O}=u,G=(b,T,V,ue)=>{b._enterCancelled=ue,Ht(b,T?l:r),Ht(b,T?m:o),V&&V()},M=(b,T)=>{b._isLeaving=!1,Ht(b,g),Ht(b,h),Ht(b,p),T&&T()},ne=b=>(T,V)=>{const ue=b?Y:A,Z=()=>G(T,b,V);ds(ue,[T,Z]),El(()=>{Ht(T,b?a:i),rt(T,b?l:r),vl(ue)||Cl(T,s,E,Z)})};return eu(u,{onBeforeEnter(b){ds(B,[b]),rt(b,i),rt(b,o)},onBeforeAppear(b){ds(I,[b]),rt(b,a),rt(b,m)},onEnter:ne(!1),onAppear:ne(!0),onLeave(b,T){b._isLeaving=!0;const V=()=>M(b,T);rt(b,g),b._enterCancelled?(rt(b,p),mr(b)):(mr(b),rt(b,p)),El(()=>{b._isLeaving&&(Ht(b,g),rt(b,h),vl(N)||Cl(b,s,F,V))}),ds(N,[b,V])},onEnterCancelled(b){G(b,!1,void 0,!0),ds(O,[b])},onAppearCancelled(b){G(b,!0,void 0,!0),ds(se,[b])},onLeaveCancelled(b){M(b),ds(K,[b])}})}function yp(e){if(e==null)return null;if(ze(e))return[bo(e.enter),bo(e.leave)];{const u=bo(e);return[u,u]}}function bo(e){return pg(e)}function rt(e,u){u.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[ln]||(e[ln]=new Set)).add(u)}function Ht(e,u){u.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const t=e[ln];t&&(t.delete(u),t.size||(e[ln]=void 0))}function El(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let xp=0;function Cl(e,u,t,s){const n=e._endId=++xp,i=()=>{n===e._endId&&s()};if(t!=null)return setTimeout(i,t);const{type:o,timeout:r,propCount:a}=Fm(e,u);if(!o)return s();const m=o+"end";let l=0;const g=()=>{e.removeEventListener(m,p),i()},p=h=>{h.target===e&&++l>=a&&g()};setTimeout(()=>{l(t[y]||"").split(", "),n=s(`${Vt}Delay`),i=s(`${Vt}Duration`),o=Bl(n,i),r=s(`${yn}Delay`),a=s(`${yn}Duration`),m=Bl(r,a);let l=null,g=0,p=0;u===Vt?o>0&&(l=Vt,g=o,p=i.length):u===yn?m>0&&(l=yn,g=m,p=a.length):(g=Math.max(o,m),l=g>0?o>m?Vt:yn:null,p=l?l===Vt?i.length:a.length:0);const h=l===Vt&&/\b(?:transform|all)(?:,|$)/.test(s(`${Vt}Property`).toString());return{type:l,timeout:g,propCount:p,hasTransform:h}}function Bl(e,u){for(;e.lengthyl(t)+yl(e[s])))}function yl(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function mr(e){return(e?e.ownerDocument:document).body.offsetHeight}function Ap(e,u,t){const s=e[ln];s&&(u=(u?[u,...s]:[...s]).join(" ")),u==null?e.removeAttribute("class"):t?e.setAttribute("class",u):e.className=u}const n0=Symbol("_vod"),qr=Symbol("_vsh"),Zs={name:"show",beforeMount(e,{value:u},{transition:t}){e[n0]=e.style.display==="none"?"":e.style.display,t&&u?t.beforeEnter(e):xn(e,u)},mounted(e,{value:u},{transition:t}){t&&u&&t.enter(e)},updated(e,{value:u,oldValue:t},{transition:s}){!u!=!t&&(s?u?(s.beforeEnter(e),xn(e,!0),s.enter(e)):s.leave(e,()=>{xn(e,!1)}):xn(e,u))},beforeUnmount(e,{value:u}){xn(e,u)}};function xn(e,u){e.style.display=u?e[n0]:"none",e[qr]=!u}const km=Symbol("");function Nm(e){const u=et();if(!u)return;const t=u.ut=(n=e(u.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${u.uid}"]`)).forEach(i=>i0(i,n))},s=()=>{const n=e(u.proxy);u.ce?i0(u.ce,n):cr(u.subTree,n),t(n)};qd(()=>{Td(s)}),ri(()=>{St(s,Gu,{flush:"post"});const n=new MutationObserver(s);n.observe(u.subTree.el.parentNode,{childList:!0}),an(()=>n.disconnect())})}function cr(e,u){if(e.shapeFlag&128){const t=e.suspense;e=t.activeBranch,t.pendingBranch&&!t.isHydrating&&t.effects.push(()=>{cr(t.activeBranch,u)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)i0(e.el,u);else if(e.type===tu)e.children.forEach(t=>cr(t,u));else if(e.type===Pn){let{el:t,anchor:s}=e;for(;t&&(i0(t,u),t!==s);)t=t.nextSibling}}function i0(e,u){if(e.nodeType===1){const t=e.style;let s="";for(const n in u){const i=Ag(u[n]);t.setProperty(`--${n}`,i),s+=`--${n}: ${i};`}t[km]=s}}const wp=/(?:^|;)\s*display\s*:/;function bp(e,u,t){const s=e.style,n=We(t);let i=!1;if(t&&!n){if(u)if(We(u))for(const o of u.split(";")){const r=o.slice(0,o.indexOf(":")).trim();t[r]==null&&Nn(s,r,"")}else for(const o in u)t[o]==null&&Nn(s,o,"");for(const o in t){o==="display"&&(i=!0);const r=t[o];r!=null?Fp(e,o,!We(u)&&u?u[o]:void 0,r)||Nn(s,o,r):Nn(s,o,"")}}else if(n){if(u!==t){const o=s[km];o&&(t+=";"+o),s.cssText=t,i=wp.test(t)}}else u&&e.removeAttribute("style");n0 in e&&(e[n0]=i?s.display:"",e[qr]&&(s.display="none"))}const xl=/\s*!important$/;function Nn(e,u,t){if(ce(t))t.forEach(s=>Nn(e,u,s));else if(t==null&&(t=""),u.startsWith("--"))e.setProperty(u,t);else{const s=Dp(e,u);xl.test(t)?e.setProperty(jt(s),t.replace(xl,""),"important"):e[s]=t}}const Al=["Webkit","Moz","ms"],Do={};function Dp(e,u){const t=Do[u];if(t)return t;let s=xu(u);if(s!=="filter"&&s in e)return Do[u]=s;s=T0(s);for(let n=0;nFo||(Tp.then(()=>Fo=0),Fo=Date.now());function Pp(e,u){const t=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=t.attached)return;const n=t.value;if(ce(n)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const o=n.slice(),r=[s];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Rp=(e,u,t,s,n,i)=>{const o=n==="svg";u==="class"?Ap(e,s,o):u==="style"?bp(e,t,s):N0(u)?S0(u)||Np(e,u,t,s,i):(u[0]==="."?(u=u.slice(1),!0):u[0]==="^"?(u=u.slice(1),!1):Lp(e,u,s,o))?(Dl(e,u,s),!e.tagName.includes("-")&&(u==="value"||u==="checked"||u==="selected")&&bl(e,u,s,o,i,u!=="value")):e._isVueCE&&(jp(e,u)||e._def.__asyncLoader&&(/[A-Z]/.test(u)||!We(s)))?Dl(e,xu(u),s,i,u):(u==="true-value"?e._trueValue=s:u==="false-value"&&(e._falseValue=s),bl(e,u,s,o))};function Lp(e,u,t,s){if(s)return!!(u==="innerHTML"||u==="textContent"||u in e&&kl(u)&&fe(t));if(u==="spellcheck"||u==="draggable"||u==="translate"||u==="autocorrect"||u==="sandbox"&&e.tagName==="IFRAME"||u==="form"||u==="list"&&e.tagName==="INPUT"||u==="type"&&e.tagName==="TEXTAREA")return!1;if(u==="width"||u==="height"){const n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return kl(u)&&We(t)?!1:u in e}function jp(e,u){const t=e._def.props;if(!t)return!1;const s=xu(u);return Array.isArray(t)?t.some(n=>xu(n)===s):Object.keys(t).some(n=>xu(n)===s)}const Sm=new WeakMap,_m=new WeakMap,o0=Symbol("_moveCb"),Nl=Symbol("_enterCb"),Ip=e=>(delete e.props.mode,e),Mp=Ip({name:"TransitionGroup",props:eu({},bm,{tag:String,moveClass:String}),setup(e,{slots:u}){const t=et(),s=$d();let n,i;return Yd(()=>{if(!n.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!Wp(n[0].el,t.vnode.el,o)){n=[];return}n.forEach($p),n.forEach(Up);const r=n.filter(Vp);mr(t.vnode.el),r.forEach(a=>{const m=a.el,l=m.style;rt(m,o),l.transform=l.webkitTransform=l.transitionDuration="";const g=m[o0]=p=>{p&&p.target!==m||(!p||p.propertyName.endsWith("transform"))&&(m.removeEventListener("transitionend",g),m[o0]=null,Ht(m,o))};m.addEventListener("transitionend",g)}),n=[]}),()=>{const o=ke(e),r=Dm(o);let a=o.tag||tu;if(n=[],i)for(let m=0;m{r.split(/\s+/).forEach(a=>a&&s.classList.remove(a))}),t.split(/\s+/).forEach(r=>r&&s.classList.add(r)),s.style.display="none";const i=u.nodeType===1?u:u.parentNode;i.appendChild(s);const{hasTransform:o}=Fm(s);return i.removeChild(s),o}const Sl=e=>{const u=e.props["onUpdate:modelValue"]||!1;return ce(u)?t=>Pi(u,t):u};function Hp(e){e.target.composing=!0}function _l(e){const u=e.target;u.composing&&(u.composing=!1,u.dispatchEvent(new Event("input")))}const ko=Symbol("_assign");function Ol(e,u,t){return u&&(e=e.trim()),t&&(e=Tr(e)),e}const DB={created(e,{modifiers:{lazy:u,trim:t,number:s}},n){e[ko]=Sl(n);const i=s||n.props&&n.props.type==="number";qs(e,u?"change":"input",o=>{o.target.composing||e[ko](Ol(e.value,t,i))}),(t||i)&&qs(e,"change",()=>{e.value=Ol(e.value,t,i)}),u||(qs(e,"compositionstart",Hp),qs(e,"compositionend",_l),qs(e,"change",_l))},mounted(e,{value:u}){e.value=u??""},beforeUpdate(e,{value:u,oldValue:t,modifiers:{lazy:s,trim:n,number:i}},o){if(e[ko]=Sl(o),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?Tr(e.value):e.value,a=u??"";if(r===a)return;const m=e.getRootNode();(m instanceof Document||m instanceof ShadowRoot)&&m.activeElement===e&&e.type!=="range"&&(s&&u===t||n&&e.value.trim()===a)||(e.value=a)}},Gp=["ctrl","shift","alt","meta"],Kp={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,u)=>Gp.some(t=>e[`${t}Key`]&&!u.includes(t))},ji=(e,u)=>{if(!e)return e;const t=e._withMods||(e._withMods={}),s=u.join(".");return t[s]||(t[s]=((n,...i)=>{for(let o=0;o{const t=e._withKeys||(e._withKeys={}),s=u.join(".");return t[s]||(t[s]=(n=>{if(!("key"in n))return;const i=jt(n.key);if(u.some(o=>o===i||qp[o]===i))return e(n)}))},Yp=eu({patchProp:Rp},Cp);let Tl;function Zp(){return Tl||(Tl=tp(Yp))}const FB=((...e)=>{const u=Zp().createApp(...e),{mount:t}=u;return u.mount=s=>{const n=Jp(s);if(!n)return;const i=u._component;!fe(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const o=t(n,!1,Xp(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),o},u});function Xp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Jp(e){return We(e)?document.querySelector(e):e}class r0{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(u,t,s){this.scope=`${s?r0.GLOBAL_SCOPE_PERSISTENT:r0.GLOBAL_SCOPE_VOLATILE}_${btoa(u)}_`,this.wrapped=t}scopeKey(u){return`${this.scope}${u}`}setItem(u,t){this.wrapped.setItem(this.scopeKey(u),t)}getItem(u){return this.wrapped.getItem(this.scopeKey(u))}removeItem(u){this.wrapped.removeItem(this.scopeKey(u))}clear(){Object.keys(this.wrapped).filter(u=>u.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}class Qp{appId;persisted=!1;clearedOnLogout=!1;constructor(u){this.appId=u}persist(u=!0){return this.persisted=u,this}clearOnLogout(u=!0){return this.clearedOnLogout=u,this}build(){return new r0(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function eh(e){return new Qp(e)}function kB(e,u,t){const s=`#initial-state-${e}-${u}`;if(window._nc_initial_state?.has(s))return window._nc_initial_state.get(s);window._nc_initial_state||(window._nc_initial_state=new Map);const n=document.querySelector(s);if(n===null){if(t!==void 0)return t;throw new Error(`Could not find initial state ${u} of ${e}`)}try{const i=JSON.parse(atob(n.value));return window._nc_initial_state.set(s,i),i}catch(i){if(console.error("[@nextcloud/initial-state] Could not parse initial state",{key:u,app:e,error:i}),t!==void 0)return t;throw new Error(`Could not parse initial state ${u} of ${e}`,{cause:i})}}function uh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var zm={exports:{}},Qe=zm.exports={},lt,dt;function gr(){throw new Error("setTimeout has not been defined")}function fr(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?lt=setTimeout:lt=gr}catch{lt=gr}try{typeof clearTimeout=="function"?dt=clearTimeout:dt=fr}catch{dt=fr}})();function Pm(e){if(lt===setTimeout)return setTimeout(e,0);if((lt===gr||!lt)&&setTimeout)return lt=setTimeout,setTimeout(e,0);try{return lt(e,0)}catch{try{return lt.call(null,e,0)}catch{return lt.call(this,e,0)}}}function th(e){if(dt===clearTimeout)return clearTimeout(e);if((dt===fr||!dt)&&clearTimeout)return dt=clearTimeout,clearTimeout(e);try{return dt(e)}catch{try{return dt.call(null,e)}catch{return dt.call(this,e)}}}var Nt=[],sn=!1,Cs,Ii=-1;function sh(){!sn||!Cs||(sn=!1,Cs.length?Nt=Cs.concat(Nt):Ii=-1,Nt.length&&Rm())}function Rm(){if(!sn){var e=Pm(sh);sn=!0;for(var u=Nt.length;u;){for(Cs=Nt,Nt=[];++Ii1)for(var t=1;tconsole.error("SEMVER",...u):()=>{},No}var So,Pl;function Im(){if(Pl)return So;Pl=1;const e="2.0.0",u=256,t=Number.MAX_SAFE_INTEGER||9007199254740991,s=16,n=u-6;return So={MAX_LENGTH:u,MAX_SAFE_COMPONENT_LENGTH:s,MAX_SAFE_BUILD_LENGTH:n,MAX_SAFE_INTEGER:t,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},So}var _o={exports:{}},Rl;function ih(){return Rl||(Rl=1,(function(e,u){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:s,MAX_LENGTH:n}=Im(),i=jm();u=e.exports={};const o=u.re=[],r=u.safeRe=[],a=u.src=[],m=u.safeSrc=[],l=u.t={};let g=0;const p="[a-zA-Z0-9-]",h=[["\\s",1],["\\d",n],[p,s]],y=F=>{for(const[B,A]of h)F=F.split(`${B}*`).join(`${B}{0,${A}}`).split(`${B}+`).join(`${B}{1,${A}}`);return F},E=(F,B,A)=>{const O=y(B),N=g++;i(F,N,B),l[F]=N,a[N]=B,m[N]=O,o[N]=new RegExp(B,A?"g":void 0),r[N]=new RegExp(O,A?"g":void 0)};E("NUMERICIDENTIFIER","0|[1-9]\\d*"),E("NUMERICIDENTIFIERLOOSE","\\d+"),E("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${p}*`),E("MAINVERSION",`(${a[l.NUMERICIDENTIFIER]})\\.(${a[l.NUMERICIDENTIFIER]})\\.(${a[l.NUMERICIDENTIFIER]})`),E("MAINVERSIONLOOSE",`(${a[l.NUMERICIDENTIFIERLOOSE]})\\.(${a[l.NUMERICIDENTIFIERLOOSE]})\\.(${a[l.NUMERICIDENTIFIERLOOSE]})`),E("PRERELEASEIDENTIFIER",`(?:${a[l.NONNUMERICIDENTIFIER]}|${a[l.NUMERICIDENTIFIER]})`),E("PRERELEASEIDENTIFIERLOOSE",`(?:${a[l.NONNUMERICIDENTIFIER]}|${a[l.NUMERICIDENTIFIERLOOSE]})`),E("PRERELEASE",`(?:-(${a[l.PRERELEASEIDENTIFIER]}(?:\\.${a[l.PRERELEASEIDENTIFIER]})*))`),E("PRERELEASELOOSE",`(?:-?(${a[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[l.PRERELEASEIDENTIFIERLOOSE]})*))`),E("BUILDIDENTIFIER",`${p}+`),E("BUILD",`(?:\\+(${a[l.BUILDIDENTIFIER]}(?:\\.${a[l.BUILDIDENTIFIER]})*))`),E("FULLPLAIN",`v?${a[l.MAINVERSION]}${a[l.PRERELEASE]}?${a[l.BUILD]}?`),E("FULL",`^${a[l.FULLPLAIN]}$`),E("LOOSEPLAIN",`[v=\\s]*${a[l.MAINVERSIONLOOSE]}${a[l.PRERELEASELOOSE]}?${a[l.BUILD]}?`),E("LOOSE",`^${a[l.LOOSEPLAIN]}$`),E("GTLT","((?:<|>)?=?)"),E("XRANGEIDENTIFIERLOOSE",`${a[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),E("XRANGEIDENTIFIER",`${a[l.NUMERICIDENTIFIER]}|x|X|\\*`),E("XRANGEPLAIN",`[v=\\s]*(${a[l.XRANGEIDENTIFIER]})(?:\\.(${a[l.XRANGEIDENTIFIER]})(?:\\.(${a[l.XRANGEIDENTIFIER]})(?:${a[l.PRERELEASE]})?${a[l.BUILD]}?)?)?`),E("XRANGEPLAINLOOSE",`[v=\\s]*(${a[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[l.XRANGEIDENTIFIERLOOSE]})(?:${a[l.PRERELEASELOOSE]})?${a[l.BUILD]}?)?)?`),E("XRANGE",`^${a[l.GTLT]}\\s*${a[l.XRANGEPLAIN]}$`),E("XRANGELOOSE",`^${a[l.GTLT]}\\s*${a[l.XRANGEPLAINLOOSE]}$`),E("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),E("COERCE",`${a[l.COERCEPLAIN]}(?:$|[^\\d])`),E("COERCEFULL",a[l.COERCEPLAIN]+`(?:${a[l.PRERELEASE]})?(?:${a[l.BUILD]})?(?:$|[^\\d])`),E("COERCERTL",a[l.COERCE],!0),E("COERCERTLFULL",a[l.COERCEFULL],!0),E("LONETILDE","(?:~>?)"),E("TILDETRIM",`(\\s*)${a[l.LONETILDE]}\\s+`,!0),u.tildeTrimReplace="$1~",E("TILDE",`^${a[l.LONETILDE]}${a[l.XRANGEPLAIN]}$`),E("TILDELOOSE",`^${a[l.LONETILDE]}${a[l.XRANGEPLAINLOOSE]}$`),E("LONECARET","(?:\\^)"),E("CARETTRIM",`(\\s*)${a[l.LONECARET]}\\s+`,!0),u.caretTrimReplace="$1^",E("CARET",`^${a[l.LONECARET]}${a[l.XRANGEPLAIN]}$`),E("CARETLOOSE",`^${a[l.LONECARET]}${a[l.XRANGEPLAINLOOSE]}$`),E("COMPARATORLOOSE",`^${a[l.GTLT]}\\s*(${a[l.LOOSEPLAIN]})$|^$`),E("COMPARATOR",`^${a[l.GTLT]}\\s*(${a[l.FULLPLAIN]})$|^$`),E("COMPARATORTRIM",`(\\s*)${a[l.GTLT]}\\s*(${a[l.LOOSEPLAIN]}|${a[l.XRANGEPLAIN]})`,!0),u.comparatorTrimReplace="$1$2$3",E("HYPHENRANGE",`^\\s*(${a[l.XRANGEPLAIN]})\\s+-\\s+(${a[l.XRANGEPLAIN]})\\s*$`),E("HYPHENRANGELOOSE",`^\\s*(${a[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[l.XRANGEPLAINLOOSE]})\\s*$`),E("STAR","(<|>)?=?\\s*\\*"),E("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),E("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(_o,_o.exports)),_o.exports}var Oo,Ll;function oh(){if(Ll)return Oo;Ll=1;const e=Object.freeze({loose:!0}),u=Object.freeze({});return Oo=t=>t?typeof t!="object"?e:t:u,Oo}var To,jl;function rh(){if(jl)return To;jl=1;const e=/^[0-9]+$/,u=(t,s)=>{if(typeof t=="number"&&typeof s=="number")return t===s?0:tu(s,t)},To}var zo,Il;function Mm(){if(Il)return zo;Il=1;const e=jm(),{MAX_LENGTH:u,MAX_SAFE_INTEGER:t}=Im(),{safeRe:s,t:n}=ih(),i=oh(),{compareIdentifiers:o}=rh(),r=(m,l)=>{const g=l.split(".");if(g.length>m.length)return!1;for(let p=0;pu)throw new TypeError(`version is longer than ${u} characters`);e("SemVer",l,g),this.options=g,this.loose=!!g.loose,this.includePrerelease=!!g.includePrerelease;const p=l.trim().match(g.loose?s[n.LOOSE]:s[n.FULL]);if(!p)throw new TypeError(`Invalid Version: ${l}`);if(this.raw=l,this.major=+p[1],this.minor=+p[2],this.patch=+p[3],this.major>t||this.major<0)throw new TypeError("Invalid major version");if(this.minor>t||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>t||this.patch<0)throw new TypeError("Invalid patch version");p[4]?this.prerelease=p[4].split(".").map(h=>{if(/^[0-9]+$/.test(h)){const y=+h;if(y>=0&&yl.major?1:this.minorl.minor?1:this.patchl.patch?1:0}comparePre(l){if(l instanceof a||(l=new a(l,this.options)),this.prerelease.length&&!l.prerelease.length)return-1;if(!this.prerelease.length&&l.prerelease.length)return 1;if(!this.prerelease.length&&!l.prerelease.length)return 0;let g=0;do{const p=this.prerelease[g],h=l.prerelease[g];if(e("prerelease compare",g,p,h),p===void 0&&h===void 0)return 0;if(h===void 0)return 1;if(p===void 0)return-1;if(p!==h)return o(p,h)}while(++g)}compareBuild(l){l instanceof a||(l=new a(l,this.options));let g=0;do{const p=this.build[g],h=l.build[g];if(e("build compare",g,p,h),p===void 0&&h===void 0)return 0;if(h===void 0)return 1;if(p===void 0)return-1;if(p!==h)return o(p,h)}while(++g)}inc(l,g,p){if(l.startsWith("pre")){if(!g&&p===!1)throw new Error("invalid increment argument: identifier is empty");if(g){const h=`-${g}`.match(this.options.loose?s[n.PRERELEASELOOSE]:s[n.PRERELEASE]);if(!h||h[1]!==g)throw new Error(`invalid identifier: ${g}`)}}switch(l){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",g,p);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",g,p);break;case"prepatch":this.prerelease.length=0,this.inc("patch",g,p),this.inc("pre",g,p);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",g,p),this.inc("pre",g,p);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const h=Number(p)?1:0;if(this.prerelease.length===0)this.prerelease=[h];else{let y=this.prerelease.length;for(;--y>=0;)typeof this.prerelease[y]=="number"&&(this.prerelease[y]++,y=-2);if(y===-1){if(g===this.prerelease.join(".")&&p===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(h)}}if(g){let y=[g,h];if(p===!1&&(y=[g]),r(this.prerelease,g)){const E=this.prerelease[g.split(".").length];isNaN(E)&&(this.prerelease=y)}else this.prerelease=y}break}default:throw new Error(`invalid increment argument: ${l}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return zo=a,zo}var Po,Ml;function ah(){if(Ml)return Po;Ml=1;const e=Mm();return Po=(u,t)=>new e(u,t).major,Po}var lh=ah();const $l=F0(lh);var Ro,Ul;function dh(){if(Ul)return Ro;Ul=1;const e=Mm();return Ro=(u,t,s=!1)=>{if(u instanceof e)return u;try{return new e(u,t)}catch(n){if(!s)return null;throw n}},Ro}var Lo,Vl;function mh(){if(Vl)return Lo;Vl=1;const e=dh();return Lo=(u,t)=>{const s=e(u,t);return s?s.version:null},Lo}var ch=mh();const gh=F0(ch);class fh{bus;constructor(u){typeof u.getVersion!="function"||!gh(u.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):$l(u.getVersion())!==$l(this.getVersion())&&console.warn("Proxying an event bus of version "+u.getVersion()+" with "+this.getVersion()),this.bus=u}getVersion(){return"3.3.3"}subscribe(u,t){this.bus.subscribe(u,t)}unsubscribe(u,t){this.bus.unsubscribe(u,t)}emit(u,...t){this.bus.emit(u,...t)}}class ph{handlers=new Map;getVersion(){return"3.3.3"}subscribe(u,t){this.handlers.set(u,(this.handlers.get(u)||[]).concat(t))}unsubscribe(u,t){this.handlers.set(u,(this.handlers.get(u)||[]).filter(s=>s!==t))}emit(u,...t){(this.handlers.get(u)||[]).forEach(s=>{try{s(t[0])}catch(n){console.error("could not invoke event listener",n)}})}}let An=null;function Yr(){return An!==null?An:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof window?._nc_event_bus<"u"?An=new fh(window._nc_event_bus):An=window._nc_event_bus=new ph,An)}function $m(e,u){Yr().subscribe(e,u)}function hh(e,u){Yr().unsubscribe(e,u)}function vh(e,...u){Yr().emit(e,...u)}function a0(e,u){return Pr()?(bg(e,u),!0):!1}const jo=new WeakMap,Eh=(...e)=>{var u;const t=e[0],s=(u=et())===null||u===void 0?void 0:u.proxy,n=s??Pr();if(n==null&&!Rd())throw new Error("injectLocal must be called in setup");return n&&jo.has(n)&&t in jo.get(n)?jo.get(n)[t]:Zt(...e)},l0=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Ch=e=>e!=null,Bh=Object.prototype.toString,yh=e=>Bh.call(e)==="[object Object]",Di=()=>{};function Wl(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function Mi(e){return Array.isArray(e)?e:[e]}function NB(e){if(!l0)return e;let u=0,t,s;const n=()=>{u-=1,s&&u<=0&&(s.stop(),t=void 0,s=void 0)};return((...i)=>(u+=1,s||(s=wg(!0),t=s.run(()=>e(...i))),a0(n),t))}function xh(e,u=1e3,t={}){const{immediate:s=!0,immediateCallback:n=!1}=t;let i=null;const o=bs(!1);function r(){i&&(clearInterval(i),i=null)}function a(){o.value=!1,r()}function m(){const l=Su(u);l<=0||(o.value=!0,n&&e(),r(),o.value&&(i=setInterval(e,l)))}return s&&l0&&m(),(su(u)||typeof u=="function")&&a0(St(u,()=>{o.value&&l0&&m()})),a0(a),{isActive:Hg(o),pause:a,resume:m}}function Ah(e,u,t){return St(e,u,{...t,immediate:!0})}const di=l0?window:void 0;function Xs(e){var u;const t=Su(e);return(u=t?.$el)!==null&&u!==void 0?u:t}function Xt(...e){const u=(s,n,i,o)=>(s.addEventListener(n,i,o),()=>s.removeEventListener(n,i,o)),t=Ge(()=>{const s=Mi(Su(e[0])).filter(n=>n!=null);return s.every(n=>typeof n!="string")?s:void 0});return Ah(()=>{var s,n;return[(s=(n=t.value)===null||n===void 0?void 0:n.map(i=>Xs(i)))!==null&&s!==void 0?s:[di].filter(i=>i!=null),Mi(Su(t.value?e[1]:e[0])),Mi(Fe(t.value?e[2]:e[1])),Su(t.value?e[3]:e[2])]},([s,n,i,o],r,a)=>{if(!s?.length||!n?.length||!i?.length)return;const m=yh(o)?{...o}:o,l=s.flatMap(g=>n.flatMap(p=>i.map(h=>u(g,p,h,m))));a(()=>{l.forEach(g=>g())})},{flush:"post"})}function SB(e,u,t={}){const{window:s=di,ignore:n=[],capture:i=!0,detectIframe:o=!1,controls:r=!1}=t;if(!s)return r?{stop:Di,cancel:Di,trigger:Di}:Di;let a=!0;const m=F=>Su(n).some(B=>{if(typeof B=="string")return Array.from(s.document.querySelectorAll(B)).some(A=>A===F.target||F.composedPath().includes(A));{const A=Xs(B);return A&&(F.target===A||F.composedPath().includes(A))}});function l(F){const B=Su(F);return B&&B.$.subTree.shapeFlag===16}function g(F,B){const A=Su(F),O=A.$.subTree&&A.$.subTree.children;return O==null||!Array.isArray(O)?!1:O.some(N=>N.el===B.target||B.composedPath().includes(N.el))}const p=F=>{const B=Xs(e);if(F.target!=null&&!(!(B instanceof Element)&&l(e)&&g(e,F))&&!(!B||B===F.target||F.composedPath().includes(B))){if("detail"in F&&F.detail===0&&(a=!m(F)),!a){a=!0;return}u(F)}};let h=!1;const y=[Xt(s,"click",F=>{h||(h=!0,setTimeout(()=>{h=!1},0),p(F))},{passive:!0,capture:i}),Xt(s,"pointerdown",F=>{const B=Xs(e);a=!m(F)&&!!(B&&!F.composedPath().includes(B))},{passive:!0}),o&&Xt(s,"blur",F=>{setTimeout(()=>{const B=Xs(e);let A=s.document.activeElement;for(;A?.shadowRoot;)A=A.shadowRoot.activeElement;A?.tagName==="IFRAME"&&!B?.contains(s.document.activeElement)&&u(F)},0)},{passive:!0})].filter(Boolean),E=()=>y.forEach(F=>F());return r?{stop:E,cancel:()=>{a=!1},trigger:F=>{a=!0,p(F),a=!1}}:E}function wh(){const e=bs(!1),u=et();return u&&ri(()=>{e.value=!0},u),e}function Um(e){const u=wh();return Ge(()=>(u.value,!!e()))}function _B(e,u,t={}){const{window:s=di,...n}=t;let i;const o=Um(()=>s&&"MutationObserver"in s),r=()=>{i&&(i.disconnect(),i=void 0)},a=St(Ge(()=>{const g=Mi(Su(e)).map(Xs).filter(Ch);return new Set(g)}),g=>{r(),o.value&&g.size&&(i=new MutationObserver(u),g.forEach(p=>i.observe(p,n)))},{immediate:!0,flush:"post"}),m=()=>i?.takeRecords(),l=()=>{a(),r()};return a0(l),{isSupported:o,stop:l,takeRecords:m}}function bh(e){return typeof e=="function"?e:typeof e=="string"?u=>u.key===e:Array.isArray(e)?u=>e.includes(u.key):()=>!0}function Hl(...e){let u,t,s={};e.length===3?(u=e[0],t=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(u=!0,t=e[0],s=e[1]):(u=e[0],t=e[1]):(u=!0,t=e[0]);const{target:n=di,eventName:i="keydown",passive:o=!1,dedupe:r=!1}=s,a=bh(u);return Xt(n,i,m=>{m.repeat&&Su(r)||a(m)&&t(m)},o)}const Dh=Symbol("vueuse-ssr-width");function Fh(){const e=Rd()?Eh(Dh,null):null;return typeof e=="number"?e:void 0}function kh(e,u={}){const{window:t=di,ssrWidth:s=Fh()}=u,n=Um(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function"),i=bs(typeof s=="number"),o=bs(),r=bs(!1),a=m=>{r.value=m.matches};return Ld(()=>{if(i.value){i.value=!n.value,r.value=Su(e).split(",").some(m=>{const l=m.includes("not all"),g=m.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),p=m.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let h=!!(g||p);return g&&h&&(h=s>=Wl(g[1])),p&&h&&(h=s<=Wl(p[1])),l?!h:h});return}n.value&&(o.value=t.matchMedia(Su(e)),r.value=o.value.matches)}),Xt(o,"change",a,{passive:!0}),Ge(()=>r.value)}function OB(e){return kh("(prefers-color-scheme: dark)",e)}function Nh(e,u={}){const{threshold:t=50,onSwipe:s,onSwipeEnd:n,onSwipeStart:i,passive:o=!0}=u,r=Vn({x:0,y:0}),a=Vn({x:0,y:0}),m=Ge(()=>r.x-a.x),l=Ge(()=>r.y-a.y),{max:g,abs:p}=Math,h=Ge(()=>g(p(m.value),p(l.value))>=t),y=bs(!1),E=Ge(()=>h.value?p(m.value)>p(l.value)?m.value>0?"left":"right":l.value>0?"up":"down":"none"),F=I=>[I.touches[0].clientX,I.touches[0].clientY],B=(I,Y)=>{r.x=I,r.y=Y},A=(I,Y)=>{a.x=I,a.y=Y},O={passive:o,capture:!o},N=I=>{y.value&&n?.(I,E.value),y.value=!1},K=[Xt(e,"touchstart",I=>{if(I.touches.length!==1)return;const[Y,se]=F(I);B(Y,se),A(Y,se),i?.(I)},O),Xt(e,"touchmove",I=>{if(I.touches.length!==1)return;const[Y,se]=F(I);A(Y,se),O.capture&&!O.passive&&Math.abs(m.value)>Math.abs(l.value)&&I.preventDefault(),!y.value&&h.value&&(y.value=!0),y.value&&s?.(I)},O),Xt(e,["touchend","touchcancel"],N,O)];return{isSwiping:y,direction:E,coordsStart:r,coordsEnd:a,lengthX:m,lengthY:l,stop:()=>K.forEach(I=>I())}}var Sh="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",TB="M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z",_h="M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z",zB="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",PB="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",Oh="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",Th="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",zh="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",Gl="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",Ph="M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",RB="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",LB="M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z",Rh="M14,19H18V5H14M6,19H10V5H6V19Z",Lh="M8,5.14V19.14L19,12.14L8,5.14Z",jB="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";const Zr=1024,Vm=Zr/2,d0=e=>document.documentElement.clientWidth{Wm.value=d0(Zr),Hm.value=d0(Vm)},{passive:!0});function IB(){return Wn(Wm)}function MB(){return Wn(Hm)}class jh{bundle;constructor(u){this.bundle={pluralFunction:u,translations:{}}}addTranslations(u){const t=Object.values(u.translations[""]??{}).map(({msgid:s,msgid_plural:n,msgstr:i})=>n!==void 0?[`_${s}_::_${n}_`,i]:[s,i[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(t)}}gettext(u,t={}){return Ti("",u,t,void 0,{bundle:this.bundle})}ngettext(u,t,s,n={}){return lg("",u,t,s,n,{bundle:this.bundle})}}class Ih{debug=!1;language="en";translations={};setLanguage(u){return this.language=u,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(k0().replace("-","_"))}addTranslation(u,t){return this.translations[u]=t,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const u=new jh(t=>dg(t,this.language));return this.language in this.translations&&u.addTranslations(this.translations[this.language]),u}}function Gm(){return new Ih}const Xr=Gm().detectLanguage().build(),$B=(...e)=>Xr.ngettext(...e),Cu=(...e)=>Xr.gettext(...e);function Xn(...e){for(const u of e)if(!u.registered){for(const{l:t,t:s}of u){if(t!==k0()||!s)continue;const n=Object.fromEntries(Object.entries(s).map(([i,o])=>[i,{msgid:i,msgid_plural:o.p,msgstr:o.v}]));Xr.addTranslations({translations:{"":n}})}u.registered=!0}}const Mh=[{l:"ar",t:{"a few seconds ago":{v:["منذ عدة ثوانٍ"]},"sec. ago":{v:["ثانية مضت"]},"seconds ago":{v:["ثوانٍ مضت"]}}},{l:"ast",t:{"a few seconds ago":{v:["hai unos segundos"]},"sec. ago":{v:["hai segs"]},"seconds ago":{v:["hai segundos"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"cs-CZ",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"da",t:{"a few seconds ago":{v:["et par sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"de",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"de-DE",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"el",t:{"a few seconds ago":{v:["πριν λίγα δευτερόλεπτα"]},"sec. ago":{v:["δευτ. πριν"]},"seconds ago":{v:["δευτερόλεπτα πριν"]}}},{l:"en-GB",t:{"a few seconds ago":{v:["a few seconds ago"]},"sec. ago":{v:["sec. ago"]},"seconds ago":{v:["seconds ago"]}}},{l:"eo",t:{}},{l:"es",t:{"a few seconds ago":{v:["hace unos pocos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-AR",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-EC",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["Segundos atrás"]}}},{l:"es-MX",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"et-EE",t:{"a few seconds ago":{v:["mõni sekund tagasi"]},"sec. ago":{v:["sek. tagasi"]},"seconds ago":{v:["sekundit tagasi"]}}},{l:"eu",t:{"a few seconds ago":{v:["duela segundo batzuk"]},"sec. ago":{v:["duela seg."]},"seconds ago":{v:["duela segundo"]}}},{l:"fa",t:{"a few seconds ago":{v:["چند ثانیه پیش"]},"sec. ago":{v:["چند ثانیه پیش"]},"seconds ago":{v:["چند ثانیه پیش"]}}},{l:"fi",t:{"a few seconds ago":{v:["muutamia sekunteja sitten"]},"sec. ago":{v:["sek. sitten"]},"seconds ago":{v:["sekunteja sitten"]}}},{l:"fr",t:{"a few seconds ago":{v:["il y a quelques instants"]},"sec. ago":{v:["il y a qq. sec."]},"seconds ago":{v:["il y a quelques secondes"]}}},{l:"ga",t:{"a few seconds ago":{v:["cúpla soicind ó shin"]},"sec. ago":{v:["soic. ó shin"]},"seconds ago":{v:["soicind ó shin"]}}},{l:"gl",t:{"a few seconds ago":{v:["hai uns segundos"]},"sec. ago":{v:["segs. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"he",t:{"a few seconds ago":{v:["לפני מספר שניות"]},"sec. ago":{v:["לפני מספר שניות"]},"seconds ago":{v:["לפני מס׳ שניות"]}}},{l:"hr",t:{"a few seconds ago":{v:["prije nekoliko sekundi"]},"sec. ago":{v:["prije nek. sek."]},"seconds ago":{v:["prije nek. sek."]}}},{l:"hu",t:{"a few seconds ago":{v:["néhány másodperce"]},"sec. ago":{v:["másodperce"]},"seconds ago":{v:["másodperce"]}}},{l:"id",t:{"a few seconds ago":{v:["beberapa detik yang lalu"]},"sec. ago":{v:["dtk. yang lalu"]},"seconds ago":{v:["beberapa detik lalu"]}}},{l:"is",t:{"a few seconds ago":{v:["fyrir örfáum sekúndum síðan"]},"sec. ago":{v:["sek. síðan"]},"seconds ago":{v:["sekúndum síðan"]}}},{l:"it",t:{"a few seconds ago":{v:["pochi secondi fa"]},"sec. ago":{v:["sec. fa"]},"seconds ago":{v:["secondi fa"]}}},{l:"ja",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ja-JP",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ko",t:{"a few seconds ago":{v:["방금 전"]},"sec. ago":{v:["몇 초 전"]},"seconds ago":{v:["초 전"]}}},{l:"lo",t:{"a few seconds ago":{v:["ສອງສາມວິນາທີກ່ອນ"]},"sec. ago":{v:["ວິ. ກ່ອນ"]},"seconds ago":{v:["ວິນາທີກ່ອນ"]}}},{l:"lt-LT",t:{"a few seconds ago":{v:["prieš keletą sekundžių"]},"sec. ago":{v:["prieš sek."]},"seconds ago":{v:["prieš sekundes"]}}},{l:"lv",t:{}},{l:"mk",t:{"a few seconds ago":{v:["пред неколку секунди"]},"sec. ago":{v:["секунда"]},"seconds ago":{v:["секунди"]}}},{l:"mn",t:{"a few seconds ago":{v:["хэдхэн секундын өмнө"]},"sec. ago":{v:["сек. өмнө"]},"seconds ago":{v:["секундын өмнө"]}}},{l:"my",t:{}},{l:"nb",t:{"a few seconds ago":{v:["noen få sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"nl",t:{"a few seconds ago":{v:["enkele seconden geleden"]},"sec. ago":{v:["sec. geleden"]},"seconds ago":{v:["seconden geleden"]}}},{l:"oc",t:{}},{l:"pl",t:{"a few seconds ago":{v:["kilka sekund temu"]},"sec. ago":{v:["sek. temu"]},"seconds ago":{v:["sekund temu"]}}},{l:"pt-BR",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"pt-PT",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"ro",t:{"a few seconds ago":{v:["acum câteva secunde"]},"sec. ago":{v:["sec. în urmă"]},"seconds ago":{v:["secunde în urmă"]}}},{l:"ru",t:{"a few seconds ago":{v:["несколько секунд назад"]},"sec. ago":{v:["сек. назад"]},"seconds ago":{v:["секунд назад"]}}},{l:"sk",t:{"a few seconds ago":{v:["pred chvíľou"]},"sec. ago":{v:["pred pár sekundami"]},"seconds ago":{v:["pred sekundami"]}}},{l:"sl",t:{}},{l:"sr",t:{"a few seconds ago":{v:["пре неколико секунди"]},"sec. ago":{v:["сек. раније"]},"seconds ago":{v:["секунди раније"]}}},{l:"sv",t:{"a few seconds ago":{v:["några sekunder sedan"]},"sec. ago":{v:["sek. sedan"]},"seconds ago":{v:["sekunder sedan"]}}},{l:"tr",t:{"a few seconds ago":{v:["birkaç saniye önce"]},"sec. ago":{v:["sn. önce"]},"seconds ago":{v:["saniye önce"]}}},{l:"uk",t:{"a few seconds ago":{v:["декілька секунд тому"]},"sec. ago":{v:["с тому"]},"seconds ago":{v:["с тому"]}}},{l:"uz",t:{"a few seconds ago":{v:["bir necha soniya oldin"]},"sec. ago":{v:["sek. oldin"]},"seconds ago":{v:["soniyalar oldin"]}}},{l:"zh-CN",t:{"a few seconds ago":{v:["几秒前"]},"sec. ago":{v:["几秒前"]},"seconds ago":{v:["几秒前"]}}},{l:"zh-HK",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}},{l:"zh-TW",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}}],UB=[{l:"ar",t:{Acapulco:{v:["بازلائي مطفي"]},"Blue Violet":{v:["بنفسجي مشعشع"]},"Boston Blue":{v:["سماوي مطفي"]},Deluge:{v:["بنفسجي مطفي"]},Feldspar:{v:["وردي صخري"]},Gold:{v:["ذهبي"]},Mariner:{v:["أزرق بحري"]},"Nextcloud blue":{v:["أزرق نكست كلاود"]},Olivine:{v:["زيتي"]},Purple:{v:["بنفسجي"]},"Rosy brown":{v:["بُنِّي زهري"]},Whiskey:{v:["نبيذي"]}}},{l:"ast",t:{Acapulco:{v:["Acapulcu"]},"Blue Violet":{v:["Viola azulao"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Oru"]},Mariner:{v:["Marineru"]},"Nextcloud blue":{v:["Nextcloud azul"]},Olivine:{v:["Olivina"]},Purple:{v:["Moráu"]},"Rosy brown":{v:["Marrón arrosao"]},Whiskey:{v:["Whiskey"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Acapulco:{v:["Akapulko"]},Black:{v:["Černá"]},"Blue Violet":{v:["Modrofialová"]},"Boston Blue":{v:["Bostonská modrá"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Živicová"]},Gold:{v:["Zlatá"]},Mariner:{v:["Námořnická"]},"Nextcloud blue":{v:["Nextcloud modrá"]},Olivine:{v:["Olivínová"]},Purple:{v:["Fialová"]},"Rosy brown":{v:["Růžovohnědá"]},Whiskey:{v:["Whisky"]},White:{v:["Bílá"]}}},{l:"cs-CZ",t:{Acapulco:{v:["Akapulko"]},"Blue Violet":{v:["Modrofialová"]},"Boston Blue":{v:["Bostonská modrá"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Živicová"]},Gold:{v:["Zlatá"]},Mariner:{v:["Námořnická"]},"Nextcloud blue":{v:["Nextcloud modrá"]},Olivine:{v:["Olivínová"]},Purple:{v:["Fialová"]},"Rosy brown":{v:["Růžovohnědá"]},Whiskey:{v:["Whisky"]}}},{l:"da",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Sort"]},"Blue Violet":{v:["Blue Violet"]},"Boston Blue":{v:["Boston Blue"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Guld"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud blue"]},Olivine:{v:["Olivine"]},Purple:{v:["Lilla"]},"Rosy brown":{v:["Rosy brown"]},Whiskey:{v:["Whiskey"]},White:{v:["Hvid"]}}},{l:"de",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Schwarz"]},"Blue Violet":{v:["Blau Violett"]},"Boston Blue":{v:["Boston-Blau"]},Deluge:{v:["Sintflut"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Gold"]},Mariner:{v:["Seemann"]},"Nextcloud blue":{v:["Nextcloud Blau"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rosiges Braun"]},Whiskey:{v:["Whiskey"]},White:{v:["Weiß"]}}},{l:"de-DE",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Schwarz"]},"Blue Violet":{v:["Blau Violett"]},"Boston Blue":{v:["Boston-Blau"]},Deluge:{v:["Sintflut"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Gold"]},Mariner:{v:["Seemann"]},"Nextcloud blue":{v:["Nextcloud Blau"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rosiges Braun"]},Whiskey:{v:["Whiskey"]},White:{v:["Weiß"]}}},{l:"el",t:{Acapulco:{v:["Ακαπούλκο"]},Black:{v:["Μαύρο"]},"Blue Violet":{v:["Μπλε Βιολέτ"]},"Boston Blue":{v:["Μπλε Βοστώνης"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Χρυσό"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Μπλε Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["Μωβ"]},"Rosy brown":{v:["Ροζ καφέ"]},Whiskey:{v:["Ουίσκι"]},White:{v:["Λευκό"]}}},{l:"en-GB",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Black"]},"Blue Violet":{v:["Blue Violet"]},"Boston Blue":{v:["Boston Blue"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Gold"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud blue"]},Olivine:{v:["Olivine"]},Purple:{v:["Purple"]},"Rosy brown":{v:["Rosy brown"]},Whiskey:{v:["Whiskey"]},White:{v:["White"]}}},{l:"eo",t:{}},{l:"es",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Diluvio"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Oro"]},Mariner:{v:["Marinero"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivino"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Marrón rosáceo"]},Whiskey:{v:["Whiskey"]}}},{l:"es-AR",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Diluvio"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Oro"]},Mariner:{v:["Marinero"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivino"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Marrón rosáceo"]},Whiskey:{v:["Whiskey"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Diluvio"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Oro"]},Mariner:{v:["Marinero"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivino"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Marrón rosáceo"]},Whiskey:{v:["Whiskey"]}}},{l:"et-EE",t:{Acapulco:{v:["Acapulco meresinine"]},Black:{v:["Must"]},"Blue Violet":{v:["Sinakasvioletne"]},"Boston Blue":{v:["Bostoni rohekassinine"]},Deluge:{v:["Tulvavee lilla"]},Feldspar:{v:["Põlevkivipruun"]},Gold:{v:["Kuldne"]},Mariner:{v:["Meresinine"]},"Nextcloud blue":{v:["Nextcloudi sinine"]},Olivine:{v:["Oliiviroheline"]},Purple:{v:["Purpurpunane"]},"Rosy brown":{v:["Roosikarva pruun"]},Whiskey:{v:["Viskikarva kollakaspruun"]},White:{v:["Valge"]}}},{l:"eu",t:{}},{l:"fa",t:{Acapulco:{v:["آکاپولکو"]},"Blue Violet":{v:["بنفش آبی"]},"Boston Blue":{v:["آبی بوستونی"]},Deluge:{v:["سیل"]},Feldspar:{v:["فلدسپات"]},Gold:{v:["طلا"]},Mariner:{v:["مارینر"]},"Nextcloud blue":{v:["نکس کلود آبی"]},Olivine:{v:["الیوین"]},Purple:{v:["بنفش"]},"Rosy brown":{v:["قهوه‌ای رز"]},Whiskey:{v:["ویسکی"]}}},{l:"fi",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Sinivioletti"]},"Boston Blue":{v:["Bostoninsininen"]},Deluge:{v:["Tulva"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Kulta"]},Mariner:{v:["Merenkulkija"]},"Nextcloud blue":{v:["Nextcloudin sininen"]},Olivine:{v:["Oliviini"]},Purple:{v:["Purppura"]},"Rosy brown":{v:["Ruusunruskea"]},Whiskey:{v:["Viski"]}}},{l:"fr",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Noir"]},"Blue Violet":{v:["Bleu violet"]},"Boston Blue":{v:["Bleu de Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Doré"]},Mariner:{v:["Marin"]},"Nextcloud blue":{v:["Bleu Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["Violet"]},"Rosy brown":{v:["Brun rosé"]},Whiskey:{v:["Whiskey"]},White:{v:["Blanc"]}}},{l:"ga",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Dubh"]},"Blue Violet":{v:["Gorm Violet"]},"Boston Blue":{v:["Bostún Gorm"]},Deluge:{v:["Díle"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Óir"]},Mariner:{v:["Mairnéalach"]},"Nextcloud blue":{v:["Nextcloud gorm"]},Olivine:{v:["Olaivín"]},Purple:{v:["Corcra"]},"Rosy brown":{v:["Rosach donn"]},Whiskey:{v:["Fuisce"]},White:{v:["Bán"]}}},{l:"gl",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Negro"]},"Blue Violet":{v:["Azul violeta"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Dioivo"]},Feldspar:{v:["Feldespato"]},Gold:{v:["Ouro"]},Mariner:{v:["Marino"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivina"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Pardo rosado"]},Whiskey:{v:["Whisky"]},White:{v:["Branco"]}}},{l:"he",t:{}},{l:"hr",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Crna"]},"Blue Violet":{v:["Plavoljubičasta"]},"Boston Blue":{v:["Bostonsko plava"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Zlatna"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud plava"]},Olivine:{v:["Olivine"]},Purple:{v:["Ljubičasta"]},"Rosy brown":{v:["Ružičastosmeđa"]},Whiskey:{v:["Whiskey"]},White:{v:["Bijela"]}}},{l:"hu",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Fekete"]},"Blue Violet":{v:["Kék ibolya"]},"Boston Blue":{v:["Boston kék"]},Deluge:{v:["Özönvíz"]},Feldspar:{v:["Földpát"]},Gold:{v:["Arany"]},Mariner:{v:["Tengerész"]},"Nextcloud blue":{v:["Nextcloud kék"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rózsás barna"]},Whiskey:{v:["Whiskey"]},White:{v:["Fehér"]}}},{l:"id",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Hitam"]},"Blue Violet":{v:["Ungu kebiruan"]},"Boston Blue":{v:["Biru Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Emas"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Biru Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["Ungu"]},"Rosy brown":{v:["Cokelat kemerahan"]},Whiskey:{v:["Whiskey"]},White:{v:["Putih"]}}},{l:"is",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Bláklukka"]},"Boston Blue":{v:["Bostonblátt"]},Deluge:{v:["Fjólublátt"]},Feldspar:{v:["Feldspat"]},Gold:{v:["Gull"]},Mariner:{v:["Sjóarablátt"]},"Nextcloud blue":{v:["Nextcloud blátt"]},Olivine:{v:["Ólivín"]},Purple:{v:["Purpurablátt"]},"Rosy brown":{v:["Rósabrúnt"]},Whiskey:{v:["Viský"]}}},{l:"it",t:{Gold:{v:["Oro"]},"Nextcloud blue":{v:["Nextcloud blue"]},Purple:{v:["Viola"]}}},{l:"ja",t:{Acapulco:{v:["アカプルコ"]},Black:{v:["黒"]},"Blue Violet":{v:["ブルーバイオレット"]},"Boston Blue":{v:["ボストンブルー"]},Deluge:{v:["豪雨"]},Feldspar:{v:["長石"]},Gold:{v:["黄金"]},Mariner:{v:["船乗り"]},"Nextcloud blue":{v:["ネクストクラウド・ブルー"]},Olivine:{v:["カンラン石"]},Purple:{v:["紫色"]},"Rosy brown":{v:["バラ色"]},Whiskey:{v:["ウイスキー"]},White:{v:["白"]}}},{l:"ja-JP",t:{Acapulco:{v:["アカプルコ"]},"Blue Violet":{v:["ブルーバイオレット"]},"Boston Blue":{v:["ボストンブルー"]},Deluge:{v:["豪雨"]},Feldspar:{v:["長石"]},Gold:{v:["黄金"]},Mariner:{v:["船乗り"]},"Nextcloud blue":{v:["ネクストクラウド・ブルー"]},Olivine:{v:["カンラン石"]},Purple:{v:["紫色"]},"Rosy brown":{v:["バラ色"]},Whiskey:{v:["ウイスキー"]}}},{l:"ko",t:{Acapulco:{v:["아카풀코"]},Black:{v:["검정"]},"Blue Violet":{v:["푸른 보라"]},"Boston Blue":{v:["보스턴 블루"]},Deluge:{v:["폭우"]},Feldspar:{v:["장석"]},Gold:{v:["금"]},Mariner:{v:["뱃사람"]},"Nextcloud blue":{v:["Nextcloud 파랑"]},Olivine:{v:["감람석"]},Purple:{v:["보라"]},"Rosy brown":{v:["로지 브라운"]},Whiskey:{v:["위스키"]},White:{v:["하양"]}}},{l:"lo",t:{Acapulco:{v:["Acapulco"]},Black:{v:["ສີດຳ"]},"Blue Violet":{v:["Blue Violet"]},"Boston Blue":{v:["Boston Blue"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["ສີຄຳ"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["ສີຟ້າ Nextcloud"]},Olivine:{v:["Olivine"]},Purple:{v:["ສີມ່ວງ"]},"Rosy brown":{v:["Rosy brown"]},Whiskey:{v:["Whiskey"]},White:{v:["ສີຂາວ"]}}},{l:"lt-LT",t:{Acapulco:{v:['"Acapulco"']},Black:{v:["Juoda"]},"Blue Violet":{v:["Mėlyna-violetinė"]},"Boston Blue":{v:['"Boston Blue"']},Deluge:{v:['"Deluge"']},Feldspar:{v:['"Feldspar"']},Gold:{v:["Auksas"]},Mariner:{v:['"Mariner"']},"Nextcloud blue":{v:['"Nextcloud" mėlyna']},Olivine:{v:['"Olivine"']},Purple:{v:["Violetinė"]},"Rosy brown":{v:["Rožiniai rudas"]},Whiskey:{v:['"Whiskey"']},White:{v:["Balta"]}}},{l:"lv",t:{}},{l:"mk",t:{Acapulco:{v:["Акапулко"]},Black:{v:["Црно"]},"Blue Violet":{v:["Сино Виолетова"]},"Boston Blue":{v:["Бостон Сина"]},Deluge:{v:["Делуџ"]},Feldspar:{v:["Фелдспар"]},Gold:{v:["Златна"]},Mariner:{v:["Маринер"]},"Nextcloud blue":{v:["Nextcloud сина"]},Olivine:{v:["Оливин"]},Purple:{v:["Виолетова"]},"Rosy brown":{v:["Розево-кафеава"]},Whiskey:{v:["Виски"]},White:{v:["Бела"]}}},{l:"mn",t:{Acapulco:{v:["Акапулько"]},Black:{v:["Хар"]},"Blue Violet":{v:["Цэнхэр ягаан"]},"Boston Blue":{v:["Бостон цэнхэр"]},Deluge:{v:["Делюж"]},Feldspar:{v:["Фельдспар"]},Gold:{v:["Алтан"]},Mariner:{v:["Маринер"]},"Nextcloud blue":{v:["Nextcloud цэнхэр"]},Olivine:{v:["Оливин"]},Purple:{v:["Нил ягаан"]},"Rosy brown":{v:["Ягаан бор"]},Whiskey:{v:["Виски"]},White:{v:["Цагаан"]}}},{l:"my",t:{}},{l:"nb",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Blå fiolett"]},"Boston Blue":{v:["Boston blå"]},Deluge:{v:["Syndflod"]},Feldspar:{v:["Feltspat"]},Gold:{v:["Gull"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud-blå"]},Olivine:{v:["Olivin"]},Purple:{v:["Lilla"]},"Rosy brown":{v:["Rosenrød brun"]},Whiskey:{v:["Whiskey"]}}},{l:"nl",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Zwart"]},"Blue Violet":{v:["Blauw Paars"]},"Boston Blue":{v:["Boston Blauw"]},Deluge:{v:["Overlopen"]},Feldspar:{v:["Veldspaat"]},Gold:{v:["Goud"]},Mariner:{v:["Marineblauw"]},"Nextcloud blue":{v:["Nextcloud blauw"]},Olivine:{v:["Olivijn"]},Purple:{v:["Paars"]},"Rosy brown":{v:["Rozig bruin"]},Whiskey:{v:["Whiskey"]},White:{v:["Wit"]}}},{l:"oc",t:{}},{l:"pl",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Niebieski fiolet"]},"Boston Blue":{v:["Błękit Bostonu"]},Deluge:{v:["Potop"]},Feldspar:{v:["Skaleń"]},Gold:{v:["Złote"]},Mariner:{v:["Marynarz"]},"Nextcloud blue":{v:["Niebieskie Nextcloud"]},Olivine:{v:["Oliwin"]},Purple:{v:["Fioletowy"]},"Rosy brown":{v:["Różowy brąz"]},Whiskey:{v:["Whisky"]}}},{l:"pt-BR",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Preto"]},"Blue Violet":{v:["Violeta Azul"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspato"]},Gold:{v:["Ouro"]},Mariner:{v:["Marinheiro"]},"Nextcloud blue":{v:["Azul Nextcloud"]},Olivine:{v:["Olivina"]},Purple:{v:["Roxo"]},"Rosy brown":{v:["Castanho rosado"]},Whiskey:{v:["Uísque"]},White:{v:["Branco"]}}},{l:"pt-PT",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Azul violeta"]},"Boston Blue":{v:["Azul Boston"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Ouro"]},Mariner:{v:["Mariner"]},"Nextcloud blue":{v:["Nextcloud azul"]},Olivine:{v:["Olivine"]},Purple:{v:["Púrpura"]},"Rosy brown":{v:["Castanho rosado"]},Whiskey:{v:["Whiskey"]}}},{l:"ro",t:{Gold:{v:["Aur"]},"Nextcloud blue":{v:["Nextcloud albastru"]},Purple:{v:["Purpuriu"]}}},{l:"ru",t:{Acapulco:{v:["Акапулько"]},Black:{v:["Черный"]},"Blue Violet":{v:["Синий фиолет"]},"Boston Blue":{v:["Синий Бостон"]},Deluge:{v:["Перламутрово-фиолетовый"]},Feldspar:{v:["Античная латунь"]},Gold:{v:["Золотой"]},Mariner:{v:["Морской"]},"Nextcloud blue":{v:["Nextcloud голубой"]},Olivine:{v:[" Оливковый"]},Purple:{v:["Фиолетовый"]},"Rosy brown":{v:["Розово-коричневый"]},Whiskey:{v:["Виски"]},White:{v:["Белый"]}}},{l:"sk",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["Modro fialová"]},"Boston Blue":{v:["Bostonská modrá"]},Deluge:{v:["Deluge"]},Feldspar:{v:["Živec"]},Gold:{v:["Zlatá"]},Mariner:{v:["Námorník"]},"Nextcloud blue":{v:["Nextcloud modrá"]},Olivine:{v:["Olivová"]},Purple:{v:["Fialová"]},"Rosy brown":{v:["Ružovo hnedá"]},Whiskey:{v:["Whisky"]}}},{l:"sl",t:{}},{l:"sr",t:{Acapulco:{v:["Акапулко"]},Black:{v:["Црно"]},"Blue Violet":{v:["Плаво љубичаста"]},"Boston Blue":{v:["Бостон плава"]},Deluge:{v:["Поплава"]},Feldspar:{v:["Фелдспар"]},Gold:{v:["Злато"]},Mariner:{v:["Морнар"]},"Nextcloud blue":{v:["Nextcloud плава"]},Olivine:{v:["Маслинаста"]},Purple:{v:["Пурпурна"]},"Rosy brown":{v:["Роси браон"]},Whiskey:{v:["Виски"]},White:{v:["Бело"]}}},{l:"sv",t:{Acapulco:{v:["Acapulco"]},Black:{v:["Svart"]},"Blue Violet":{v:["Blåviolett"]},"Boston Blue":{v:["Bostonblå"]},Deluge:{v:["Skyfallsblå"]},Feldspar:{v:["Fältspat"]},Gold:{v:["Guld"]},Mariner:{v:["Marinblå"]},"Nextcloud blue":{v:["Nextcloud-blå"]},Olivine:{v:["Olivin"]},Purple:{v:["Lila"]},"Rosy brown":{v:["Rosabrun"]},Whiskey:{v:["Whisky"]},White:{v:["Vit"]}}},{l:"tr",t:{Acapulco:{v:["Akapulko"]},Black:{v:["Siyah"]},"Blue Violet":{v:["Mavi mor"]},"Boston Blue":{v:["Boston mavisi"]},Deluge:{v:["Sel"]},Feldspar:{v:["Feldispat"]},Gold:{v:["Altın"]},Mariner:{v:["Denizci"]},"Nextcloud blue":{v:["Nextcloud mavi"]},Olivine:{v:["Zeytinlik"]},Purple:{v:["Mor"]},"Rosy brown":{v:["Kırmızımsı kahverengi"]},Whiskey:{v:["Viski"]},White:{v:["Beyaz"]}}},{l:"uk",t:{Acapulco:{v:["Акапулько"]},"Blue Violet":{v:["Блакитна фіалка"]},"Boston Blue":{v:["Бостонський синій"]},Deluge:{v:["Злива"]},Feldspar:{v:["Польові шпати"]},Gold:{v:["Золотий"]},Mariner:{v:["Морський"]},"Nextcloud blue":{v:["Блакитний Nextcloud"]},Olivine:{v:["Олива"]},Purple:{v:["Фіолетовий"]},"Rosy brown":{v:["Темно-рожевий"]},Whiskey:{v:["Кола"]}}},{l:"uz",t:{Acapulco:{v:["Akapulko"]},Black:{v:["Qora"]},"Blue Violet":{v:["Moviy binafsha"]},"Boston Blue":{v:["Boston ko'k"]},Deluge:{v:["To'fon"]},Feldspar:{v:["Feldspar"]},Gold:{v:["Oltin"]},Mariner:{v:["Dengizchi"]},"Nextcloud blue":{v:["Ko'k Nextcloud "]},Olivine:{v:["Olivine"]},Purple:{v:["Binafsha"]},"Rosy brown":{v:["Qizil jigarrang"]},Whiskey:{v:["Whiskey"]},White:{v:["Oq"]}}},{l:"zh-CN",t:{Acapulco:{v:["Acapulco"]},"Blue Violet":{v:["瓦罗兰特蓝"]},"Boston Blue":{v:["波士顿蓝"]},Deluge:{v:["洪水色"]},Feldspar:{v:["长石"]},Gold:{v:["金色"]},Mariner:{v:["水手"]},"Nextcloud blue":{v:["Nextcloud 蓝"]},Olivine:{v:["橄榄石色"]},Purple:{v:["紫色"]},"Rosy brown":{v:["玫瑰棕色"]},Whiskey:{v:["威士忌"]}}},{l:"zh-HK",t:{Acapulco:{v:["阿卡普爾科"]},Black:{v:["黑色"]},"Blue Violet":{v:["藍紫色"]},"Boston Blue":{v:["波士頓藍"]},Deluge:{v:["大洪水"]},Feldspar:{v:["長石"]},Gold:{v:["Gold"]},Mariner:{v:["海軍藍"]},"Nextcloud blue":{v:["Nextcloud 藍色"]},Olivine:{v:["橄欖石色"]},Purple:{v:["紫色"]},"Rosy brown":{v:["玫瑰棕色"]},Whiskey:{v:["威士忌"]},White:{v:["白色"]}}},{l:"zh-TW",t:{Acapulco:{v:["Acapulco"]},Black:{v:["黑色"]},"Blue Violet":{v:["藍紫色"]},"Boston Blue":{v:["波士頓藍"]},Deluge:{v:["Deluge"]},Feldspar:{v:["長石"]},Gold:{v:["金色"]},Mariner:{v:["海軍藍"]},"Nextcloud blue":{v:["Nextcloud 藍色"]},Olivine:{v:["橄欖石色"]},Purple:{v:["紫色"]},"Rosy brown":{v:["玫瑰棕色"]},Whiskey:{v:["威士忌"]},White:{v:["白色"]}}}],$h=[{l:"ar",t:{Actions:{v:["إجراءات"]}}},{l:"ast",t:{Actions:{v:["Aiciones"]}}},{l:"br",t:{Actions:{v:["Oberioù"]}}},{l:"ca",t:{Actions:{v:["Accions"]}}},{l:"cs",t:{Actions:{v:["Akce"]}}},{l:"cs-CZ",t:{Actions:{v:["Akce"]}}},{l:"da",t:{Actions:{v:["Handlinger"]}}},{l:"de",t:{Actions:{v:["Aktionen"]}}},{l:"de-DE",t:{Actions:{v:["Aktionen"]}}},{l:"el",t:{Actions:{v:["Ενέργειες"]}}},{l:"en-GB",t:{Actions:{v:["Actions"]}}},{l:"eo",t:{Actions:{v:["Agoj"]}}},{l:"es",t:{Actions:{v:["Acciones"]}}},{l:"es-AR",t:{Actions:{v:["Acciones"]}}},{l:"es-EC",t:{Actions:{v:["Acciones"]}}},{l:"es-MX",t:{Actions:{v:["Acciones"]}}},{l:"et-EE",t:{Actions:{v:["Tegevus"]}}},{l:"eu",t:{Actions:{v:["Ekintzak"]}}},{l:"fa",t:{Actions:{v:["کنش‌ها"]}}},{l:"fi",t:{Actions:{v:["Toiminnot"]}}},{l:"fr",t:{Actions:{v:["Actions"]}}},{l:"ga",t:{Actions:{v:["Gníomhartha"]}}},{l:"gl",t:{Actions:{v:["Accións"]}}},{l:"he",t:{Actions:{v:["פעולות"]}}},{l:"hr",t:{Actions:{v:["Radnje"]}}},{l:"hu",t:{Actions:{v:["Műveletek"]}}},{l:"id",t:{Actions:{v:["Tindakan"]}}},{l:"is",t:{Actions:{v:["Aðgerðir"]}}},{l:"it",t:{Actions:{v:["Azioni"]}}},{l:"ja",t:{Actions:{v:["操作"]}}},{l:"ja-JP",t:{Actions:{v:["操作"]}}},{l:"ko",t:{Actions:{v:["동작"]}}},{l:"lo",t:{Actions:{v:["ການກະທຳ"]}}},{l:"lt-LT",t:{Actions:{v:["Veiksmai"]}}},{l:"lv",t:{}},{l:"mk",t:{Actions:{v:["Акции"]}}},{l:"mn",t:{Actions:{v:["Үйлдлүүд"]}}},{l:"my",t:{Actions:{v:["လုပ်ဆောင်ချက်များ"]}}},{l:"nb",t:{Actions:{v:["Handlinger"]}}},{l:"nl",t:{Actions:{v:["Acties"]}}},{l:"oc",t:{Actions:{v:["Accions"]}}},{l:"pl",t:{Actions:{v:["Działania"]}}},{l:"pt-BR",t:{Actions:{v:["Ações"]}}},{l:"pt-PT",t:{Actions:{v:["Ações"]}}},{l:"ro",t:{Actions:{v:["Acțiuni"]}}},{l:"ru",t:{Actions:{v:["Действия "]}}},{l:"sk",t:{Actions:{v:["Akcie"]}}},{l:"sl",t:{Actions:{v:["Dejanja"]}}},{l:"sr",t:{Actions:{v:["Радње"]}}},{l:"sv",t:{Actions:{v:["Åtgärder"]}}},{l:"tr",t:{Actions:{v:["İşlemler"]}}},{l:"uk",t:{Actions:{v:["Дії"]}}},{l:"uz",t:{Actions:{v:["Harakatlar"]}}},{l:"zh-CN",t:{Actions:{v:["行为"]}}},{l:"zh-HK",t:{Actions:{v:["動作"]}}},{l:"zh-TW",t:{Actions:{v:["動作"]}}}],VB=[{l:"ar",t:{"Avatar of {displayName}":{v:["صورة الملف الشخصي الرمزية لــ {displayName} "]},"Avatar of {displayName}, {status}":{v:["صورة الملف الشخصي الرمزية لــ {displayName}، {status}"]}}},{l:"ast",t:{"Avatar of {displayName}":{v:["Avatar de: {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de: {displayName}, {status}"]}}},{l:"br",t:{}},{l:"ca",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"cs",t:{"Avatar of {displayName}":{v:["Zástupný obrázek uživatele {displayName}"]},"Avatar of {displayName}, {status}":{v:["Zástupný obrázek uživatele {displayName}, {status}"]}}},{l:"cs-CZ",t:{"Avatar of {displayName}":{v:["Zástupný obrázek uživatele {displayName}"]},"Avatar of {displayName}, {status}":{v:["Zástupný obrázek uživatele {displayName}, {status}"]}}},{l:"da",t:{"Avatar of {displayName}":{v:["Avatar af {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar af {displayName}, {status}"]}}},{l:"de",t:{"Avatar of {displayName}":{v:["Avatar von {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar von {displayName}, {status}"]}}},{l:"de-DE",t:{"Avatar of {displayName}":{v:["Avatar von {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar von {displayName}, {status}"]}}},{l:"el",t:{"Avatar of {displayName}":{v:["Άβαταρ του {displayName}"]},"Avatar of {displayName}, {status}":{v:["Άβαταρ του {displayName}, {status}"]}}},{l:"en-GB",t:{"Avatar of {displayName}":{v:["Avatar of {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar of {displayName}, {status}"]}}},{l:"eo",t:{}},{l:"es",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"es-AR",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"es-EC",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"es-MX",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"et-EE",t:{"Avatar of {displayName}":{v:["Tunnuspilt: {displayName}"]},"Avatar of {displayName}, {status}":{v:["Tunnuspilt: {displayName}, {status}"]}}},{l:"eu",t:{"Avatar of {displayName}":{v:["{displayName}-(e)n irudia"]},"Avatar of {displayName}, {status}":{v:["{displayName} -(e)n irudia, {status}"]}}},{l:"fa",t:{"Avatar of {displayName}":{v:["آواتار {displayName}"]},"Avatar of {displayName}, {status}":{v:["آواتار {displayName} ، {status}"]}}},{l:"fi",t:{"Avatar of {displayName}":{v:["{displayName}n avatar"]},"Avatar of {displayName}, {status}":{v:["{displayName}n avatar, {status}"]}}},{l:"fr",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"ga",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"gl",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"he",t:{"Avatar of {displayName}":{v:["תמונה ייצוגית של {displayName}"]},"Avatar of {displayName}, {status}":{v:["תמונה ייצוגית של {displayName}, {status}"]}}},{l:"hr",t:{"Avatar of {displayName}":{v:["Avatar od {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar od {displayName}, {status}"]}}},{l:"hu",t:{"Avatar of {displayName}":{v:["{displayName} profilképe"]},"Avatar of {displayName}, {status}":{v:["{displayName} profilképe, {status}"]}}},{l:"id",t:{"Avatar of {displayName}":{v:["Avatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar {displayName}, {status}"]}}},{l:"is",t:{"Avatar of {displayName}":{v:["Auðkennismynd fyrir {displayName}"]},"Avatar of {displayName}, {status}":{v:["Auðkennismynd fyrir {displayName}, {status}"]}}},{l:"it",t:{"Avatar of {displayName}":{v:["Avatar di {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar di {displayName}, {status}"]}}},{l:"ja",t:{"Avatar of {displayName}":{v:["{displayName} のアバター"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} のアバター"]}}},{l:"ja-JP",t:{"Avatar of {displayName}":{v:["{displayName} のアバター"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} のアバター"]}}},{l:"ko",t:{"Avatar of {displayName}":{v:["{displayName}님의 아바타"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status}님의 아바타"]}}},{l:"lo",t:{"Avatar of {displayName}":{v:["ຮູບແທນຕົວຂອງ {displayName}"]},"Avatar of {displayName}, {status}":{v:["ຮູບແທນຕົວຂອງ {displayName}, {status}"]}}},{l:"lt-LT",t:{"Avatar of {displayName}":{v:["{displayName} avataras"]},"Avatar of {displayName}, {status}":{v:["{displayName} avataras, {status}"]}}},{l:"lv",t:{}},{l:"mk",t:{"Avatar of {displayName}":{v:["Аватар на {displayName}"]},"Avatar of {displayName}, {status}":{v:["Аватар на {displayName}, {status}"]}}},{l:"mn",t:{"Avatar of {displayName}":{v:["{displayName}-ийн аватар"]},"Avatar of {displayName}, {status}":{v:["{displayName}-ийн аватар, {status}"]}}},{l:"my",t:{"Avatar of {displayName}":{v:["{displayName} ၏ ကိုယ်ပွား"]}}},{l:"nb",t:{"Avatar of {displayName}":{v:["Avataren til {displayName}"]},"Avatar of {displayName}, {status}":{v:["{displayName}'s avatar, {status}"]}}},{l:"nl",t:{"Avatar of {displayName}":{v:["Avatar van {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar van {displayName}, {status}"]}}},{l:"oc",t:{}},{l:"pl",t:{"Avatar of {displayName}":{v:["Awatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Awatar {displayName}, {status}"]}}},{l:"pt-BR",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"pt-PT",t:{"Avatar of {displayName}":{v:["Avatar de {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar de {displayName}, {status}"]}}},{l:"ro",t:{"Avatar of {displayName}":{v:["Avatarul lui {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatarul lui {displayName}, {status}"]}}},{l:"ru",t:{"Avatar of {displayName}":{v:["Аватар {displayName}"]},"Avatar of {displayName}, {status}":{v:["Фотография {displayName}, {status}"]}}},{l:"sk",t:{"Avatar of {displayName}":{v:["Avatar {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar {displayName}, {status}"]}}},{l:"sl",t:{"Avatar of {displayName}":{v:["Podoba {displayName}"]},"Avatar of {displayName}, {status}":{v:["Prikazna slika {displayName}, {status}"]}}},{l:"sr",t:{"Avatar of {displayName}":{v:["Аватар за {displayName}"]},"Avatar of {displayName}, {status}":{v:["Avatar za {displayName}, {status}"]}}},{l:"sv",t:{"Avatar of {displayName}":{v:["{displayName}s avatar"]},"Avatar of {displayName}, {status}":{v:["{displayName}s avatar, {status}"]}}},{l:"tr",t:{"Avatar of {displayName}":{v:["{displayName} avatarı"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} avatarı"]}}},{l:"uk",t:{"Avatar of {displayName}":{v:["Аватар {displayName}"]},"Avatar of {displayName}, {status}":{v:["Аватар {displayName}, {status}"]}}},{l:"uz",t:{"Avatar of {displayName}":{v:[" {displayName}Avatari"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} Avatari"]}}},{l:"zh-CN",t:{"Avatar of {displayName}":{v:["{displayName}的头像"]},"Avatar of {displayName}, {status}":{v:["{displayName}的头像,{status}"]}}},{l:"zh-HK",t:{"Avatar of {displayName}":{v:["{displayName} 的頭像"]},"Avatar of {displayName}, {status}":{v:["{displayName} 的頭像,{status}"]}}},{l:"zh-TW",t:{"Avatar of {displayName}":{v:["{displayName} 的大頭照"]},"Avatar of {displayName}, {status}":{v:["{displayName}, {status} 的大頭照"]}}}],WB=[{l:"ar",t:{away:{v:["غير موجود"]},busy:{v:["مشغول"]},"do not disturb":{v:["يُرجى عدم الإزعاج"]},invisible:{v:["غير مرئي"]},offline:{v:["غير متصل"]},online:{v:["متصل"]}}},{l:"ast",t:{away:{v:["ausente"]},busy:{v:["ocupáu"]},"do not disturb":{v:["nun molestar"]},invisible:{v:["invisible"]},offline:{v:["desconectáu"]},online:{v:["en llinia"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{away:{v:["pryč"]},busy:{v:["zaneprádněn(a)"]},"do not disturb":{v:["nerušit"]},invisible:{v:["neviditelné"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"cs-CZ",t:{away:{v:["pryč"]},busy:{v:["zaneprádněn(a)"]},"do not disturb":{v:["nerušit"]},invisible:{v:["neviditelné"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"da",t:{away:{v:["væk"]},busy:{v:["optaget"]},"do not disturb":{v:["forstyr ikke"]},invisible:{v:["usynlig"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"de",t:{away:{v:["Abwesend"]},busy:{v:["Beschäftigt"]},"do not disturb":{v:["Bitte nicht stören"]},invisible:{v:["Unsichtbar"]},offline:{v:["Offline"]},online:{v:["Online"]}}},{l:"de-DE",t:{away:{v:["Abwesend"]},busy:{v:["Beschäftigt"]},"do not disturb":{v:["Bitte nicht stören"]},invisible:{v:["Unsichtbar"]},offline:{v:["Offline"]},online:{v:["Online"]}}},{l:"el",t:{away:{v:["μακριά"]},busy:{v:["απασχολημένος"]},"do not disturb":{v:["μην ενοχλείτε"]},invisible:{v:["αόρατο"]},offline:{v:["εκτός σύνδεσης"]},online:{v:["συνδεδεμένος"]}}},{l:"en-GB",t:{away:{v:["away"]},busy:{v:["busy"]},"do not disturb":{v:["do not disturb"]},invisible:{v:["invisible"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"eo",t:{}},{l:"es",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["no molestar"]},invisible:{v:["invisible"]},offline:{v:["fuera de línea"]},online:{v:["en línea"]}}},{l:"es-AR",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["no molestar"]},invisible:{v:["invisible"]},offline:{v:["desconectado"]},online:{v:["en línea"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["no molestar"]},invisible:{v:["invisible"]},offline:{v:["fuera de línea"]},online:{v:["en línea"]}}},{l:"et-EE",t:{away:{v:["eemal"]},busy:{v:["hõivatud"]},"do not disturb":{v:["ära sega"]},invisible:{v:["nähtamatu"]},offline:{v:["pole võrgus"]},online:{v:["võrgus"]}}},{l:"eu",t:{}},{l:"fa",t:{away:{v:["دور از دستگاه"]},busy:{v:["مشغول"]},"do not disturb":{v:["مزاحم نشوید"]},invisible:{v:["مخفی"]},offline:{v:["برون‌خط"]},online:{v:["برخط"]}}},{l:"fi",t:{away:{v:["poissa"]},busy:{v:["varattu"]},"do not disturb":{v:["älä häiritse"]},invisible:{v:["näkymätön"]},offline:{v:["ei linjalla"]},online:{v:["linjalla"]}}},{l:"fr",t:{away:{v:["absent"]},busy:{v:["occupé"]},"do not disturb":{v:["ne pas déranger"]},invisible:{v:["invisible"]},offline:{v:["hors ligne"]},online:{v:["en ligne"]}}},{l:"ga",t:{away:{v:["ar shiúl"]},busy:{v:["gnóthach"]},"do not disturb":{v:["ná cur as"]},invisible:{v:["dofheicthe"]},offline:{v:["as líne"]},online:{v:["ar líne"]}}},{l:"gl",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["non molestar"]},invisible:{v:["invisíbel"]},offline:{v:["desconectado"]},online:{v:["conectado"]}}},{l:"he",t:{}},{l:"hr",t:{away:{v:["odsutan"]},busy:{v:["zauzet"]},"do not disturb":{v:["ne smetaj"]},invisible:{v:["nevidljiv"]},offline:{v:["izvan mreže"]},online:{v:["na mreži"]}}},{l:"hu",t:{away:{v:["távol"]},busy:{v:["foglalt"]},"do not disturb":{v:["ne zavarjanak"]},invisible:{v:["láthatatlan"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"id",t:{away:{v:["tidak tersedia"]},busy:{v:["sibuk"]},"do not disturb":{v:["jangan ganggu"]},invisible:{v:["tidak terlihat"]},offline:{v:["luring"]},online:{v:["daring"]}}},{l:"is",t:{away:{v:["í burtu"]},busy:{v:["upptekin/n"]},"do not disturb":{v:["ekki ónáða"]},invisible:{v:["ósýnilegt"]},offline:{v:["ónettengt"]},online:{v:["nettengt"]}}},{l:"it",t:{away:{v:["via"]},"do not disturb":{v:["non disturbare"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"ja",t:{away:{v:["離れる"]},busy:{v:["ビジー"]},"do not disturb":{v:["邪魔をしないでください"]},invisible:{v:["不可視"]},offline:{v:["オフライン"]},online:{v:["オンライン"]}}},{l:"ja-JP",t:{away:{v:["離れる"]},busy:{v:["ビジー"]},"do not disturb":{v:["邪魔をしないでください"]},invisible:{v:["不可視"]},offline:{v:["オフライン"]},online:{v:["オンライン"]}}},{l:"ko",t:{away:{v:["자리 비움"]},busy:{v:["바쁨"]},"do not disturb":{v:["방해 금지"]},invisible:{v:["보이지 않음"]},offline:{v:["오프라인"]},online:{v:["온라인"]}}},{l:"lo",t:{away:{v:["ບໍ່ຢູ່"]},busy:{v:["ບໍ່ວ່າງ"]},"do not disturb":{v:["ຫ້າມລົບກວນ"]},invisible:{v:["ບໍ່ສະແດງ"]},offline:{v:["ອອບໄລນ໌"]},online:{v:["ອອນໄລນ໌"]}}},{l:"lt-LT",t:{away:{v:["pasišalinęs"]},busy:{v:["užsiėmęs"]},"do not disturb":{v:["netrukdyti"]},invisible:{v:["nematomas"]},offline:{v:["neprisijungęs"]},online:{v:["prisijungęs"]}}},{l:"lv",t:{}},{l:"mk",t:{away:{v:["оддалечен"]},busy:{v:["зафатен"]},"do not disturb":{v:["не вознемирувај"]},invisible:{v:["невидливо"]},offline:{v:["офлајн"]},online:{v:["онлајн"]}}},{l:"mn",t:{away:{v:["хол байна"]},busy:{v:["завгүй"]},"do not disturb":{v:["бүү саад бол"]},invisible:{v:["үл харагдах"]},offline:{v:["офлайн"]},online:{v:["онлайн"]}}},{l:"my",t:{}},{l:"nb",t:{away:{v:["borte"]},busy:{v:["opptatt"]},"do not disturb":{v:["ikke forstyrr"]},invisible:{v:["usynlig"]},offline:{v:["frakoblet"]},online:{v:["tilkoblet"]}}},{l:"nl",t:{away:{v:["weg"]},busy:{v:["bezig"]},"do not disturb":{v:["niet storen"]},invisible:{v:["Onzichtbaar"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"oc",t:{}},{l:"pl",t:{away:{v:["stąd"]},busy:{v:["zajęty"]},"do not disturb":{v:["nie przeszkadzać"]},invisible:{v:["niewidzialny"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"pt-BR",t:{away:{v:["ausente"]},busy:{v:["ocupado"]},"do not disturb":{v:["não perturbe"]},invisible:{v:["invisível"]},offline:{v:["off-line"]},online:{v:["on-line"]}}},{l:"pt-PT",t:{away:{v:["longe"]},busy:{v:["ocupado"]},"do not disturb":{v:["não incomodar"]},invisible:{v:["invisível"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"ro",t:{away:{v:["plecat"]},"do not disturb":{v:["nu deranjați"]},offline:{v:["deconectat"]},online:{v:["online"]}}},{l:"ru",t:{away:{v:["отсутствие"]},busy:{v:["занятый"]},"do not disturb":{v:["не беспокоить"]},invisible:{v:["невидимый"]},offline:{v:["офлайн"]},online:{v:["онлайн"]}}},{l:"sk",t:{away:{v:["neprítomný"]},busy:{v:["zaneprázdnený"]},"do not disturb":{v:["nerušiť"]},invisible:{v:["neviditeľný"]},offline:{v:["Odpojený - offline"]},online:{v:["Pripojený - online"]}}},{l:"sl",t:{}},{l:"sr",t:{away:{v:["одсутан"]},busy:{v:["заузет"]},"do not disturb":{v:["не узнемиравај"]},invisible:{v:["невидљиво"]},offline:{v:["ван мреже"]},online:{v:["на мрежи"]}}},{l:"sv",t:{away:{v:["borta"]},busy:{v:["upptagen"]},"do not disturb":{v:["stör ej"]},invisible:{v:["osynlig"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"tr",t:{away:{v:["Uzakta"]},busy:{v:["Meşgul"]},"do not disturb":{v:["Rahatsız etmeyin"]},invisible:{v:["görünmez"]},offline:{v:["Çevrim dışı"]},online:{v:["Çevrim içi"]}}},{l:"uk",t:{away:{v:["відсутній"]},busy:{v:["зайнято"]},"do not disturb":{v:["не турбувати"]},invisible:{v:["Невидимий"]},offline:{v:["не в мережі"]},online:{v:["в мережі"]}}},{l:"uz",t:{away:{v:["uzoqda"]},busy:{v:["band"]},"do not disturb":{v:["bezovta qilmang"]},invisible:{v:["ko'rinmas"]},offline:{v:["offline"]},online:{v:["online"]}}},{l:"zh-CN",t:{away:{v:["离开"]},busy:{v:["繁忙"]},"do not disturb":{v:["请勿打扰"]},invisible:{v:["隐藏的"]},offline:{v:["离线"]},online:{v:["在线"]}}},{l:"zh-HK",t:{away:{v:["離開"]},busy:{v:["忙碌"]},"do not disturb":{v:["請勿打擾"]},invisible:{v:["隐藏的"]},offline:{v:["離線"]},online:{v:["在線"]}}},{l:"zh-TW",t:{away:{v:["離開"]},busy:{v:["忙碌"]},"do not disturb":{v:["請勿打擾"]},invisible:{v:["不可見"]},offline:{v:["離線"]},online:{v:["線上"]}}}],HB=[{l:"ar",t:{"Cancel changes":{v:["إلغاء التغييرات"]},"Confirm changes":{v:["تأكيد التغييرات"]}}},{l:"ast",t:{"Cancel changes":{v:["Encaboxar los cambeos"]},"Confirm changes":{v:["Confirmar los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Cancel changes":{v:["Cancel·la els canvis"]},"Confirm changes":{v:["Confirmeu els canvis"]}}},{l:"cs",t:{"Cancel changes":{v:["Zrušit změny"]},"Confirm changes":{v:["Potvrdit změny"]}}},{l:"cs-CZ",t:{"Cancel changes":{v:["Zrušit změny"]},"Confirm changes":{v:["Potvrdit změny"]}}},{l:"da",t:{"Cancel changes":{v:["Annuller ændringer"]},"Confirm changes":{v:["Bekræft ændringer"]}}},{l:"de",t:{"Cancel changes":{v:["Änderungen verwerfen"]},"Confirm changes":{v:["Änderungen bestätigen"]}}},{l:"de-DE",t:{"Cancel changes":{v:["Änderungen verwerfen"]},"Confirm changes":{v:["Änderungen bestätigen"]}}},{l:"el",t:{"Cancel changes":{v:["Ακύρωση αλλαγών"]},"Confirm changes":{v:["Επιβεβαίωση αλλαγών"]}}},{l:"en-GB",t:{"Cancel changes":{v:["Cancel changes"]},"Confirm changes":{v:["Confirm changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"es-AR",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"es-EC",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"es-MX",t:{"Cancel changes":{v:["Cancelar cambios"]},"Confirm changes":{v:["Confirmar cambios"]}}},{l:"et-EE",t:{"Cancel changes":{v:["Tühista muudatused"]},"Confirm changes":{v:["Kinnita muudatused"]}}},{l:"eu",t:{"Cancel changes":{v:["Ezeztatu aldaketak"]},"Confirm changes":{v:["Baieztatu aldaketak"]}}},{l:"fa",t:{"Cancel changes":{v:["لغو تغییرات"]},"Confirm changes":{v:["تایید تغییرات"]}}},{l:"fi",t:{"Cancel changes":{v:["Peruuta muutokset"]},"Confirm changes":{v:["Vahvista muutokset"]}}},{l:"fr",t:{"Cancel changes":{v:["Annuler les modifications"]},"Confirm changes":{v:["Confirmer les modifications"]}}},{l:"ga",t:{"Cancel changes":{v:["Cealaigh athruithe"]},"Confirm changes":{v:["Deimhnigh na hathruithe"]}}},{l:"gl",t:{"Cancel changes":{v:["Cancelar os cambios"]},"Confirm changes":{v:["Confirma os cambios"]}}},{l:"he",t:{"Cancel changes":{v:["ביטול שינויים"]},"Confirm changes":{v:["אישור השינויים"]}}},{l:"hr",t:{"Cancel changes":{v:["Otkaži promjene"]},"Confirm changes":{v:["Potvrdi promjene"]}}},{l:"hu",t:{"Cancel changes":{v:["Változtatások elvetése"]},"Confirm changes":{v:["Változtatások megerősítése"]}}},{l:"id",t:{"Cancel changes":{v:["Batalkan perubahan"]},"Confirm changes":{v:["Konfirmasikan perubahan"]}}},{l:"is",t:{"Cancel changes":{v:["Hætta við breytingar"]},"Confirm changes":{v:["Staðfesta breytingar"]}}},{l:"it",t:{"Cancel changes":{v:["Annulla modifiche"]},"Confirm changes":{v:["Conferma modifiche"]}}},{l:"ja",t:{"Cancel changes":{v:["変更をキャンセル"]},"Confirm changes":{v:["変更を承認"]}}},{l:"ja-JP",t:{"Cancel changes":{v:["変更をキャンセル"]},"Confirm changes":{v:["変更を承認"]}}},{l:"ko",t:{"Cancel changes":{v:["변경 취소"]},"Confirm changes":{v:["변경 사항 확인"]}}},{l:"lo",t:{"Cancel changes":{v:["ຍົກເລີກການປ່ຽນແປງ"]},"Confirm changes":{v:["ຢືນຢັນການປ່ຽນແປງ"]}}},{l:"lt-LT",t:{"Cancel changes":{v:["Atsisakyti pakeitimų"]},"Confirm changes":{v:["Patvirtinti pakeitimus"]}}},{l:"lv",t:{}},{l:"mk",t:{"Cancel changes":{v:["Откажи ги промените"]},"Confirm changes":{v:["Потврди ги промените"]}}},{l:"mn",t:{"Cancel changes":{v:["Өөрчлөлтийг цуцлах"]},"Confirm changes":{v:["Өөрчлөлтийг баталгаажуулах"]}}},{l:"my",t:{"Cancel changes":{v:["ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်"]},"Confirm changes":{v:["ပြောင်းလဲမှုများ အတည်ပြုရန်"]}}},{l:"nb",t:{"Cancel changes":{v:["Avbryt endringer"]},"Confirm changes":{v:["Bekreft endringer"]}}},{l:"nl",t:{"Cancel changes":{v:["Wijzigingen annuleren"]},"Confirm changes":{v:["Wijzigingen bevestigen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Cancel changes":{v:["Anuluj zmiany"]},"Confirm changes":{v:["Potwierdź zmiany"]}}},{l:"pt-BR",t:{"Cancel changes":{v:["Cancelar alterações"]},"Confirm changes":{v:["Confirmar alterações"]}}},{l:"pt-PT",t:{"Cancel changes":{v:["Cancelar alterações"]},"Confirm changes":{v:["Confirmar alterações"]}}},{l:"ro",t:{"Cancel changes":{v:["Anulează modificările"]},"Confirm changes":{v:["Confirmați modificările"]}}},{l:"ru",t:{"Cancel changes":{v:["Отменить изменения"]},"Confirm changes":{v:["Подтвердить изменения"]}}},{l:"sk",t:{"Cancel changes":{v:["Zrušiť zmeny"]},"Confirm changes":{v:["Potvrdiť zmeny"]}}},{l:"sl",t:{"Cancel changes":{v:["Prekliči spremembe"]},"Confirm changes":{v:["Potrdi spremembe"]}}},{l:"sr",t:{"Cancel changes":{v:["Откажи измене"]},"Confirm changes":{v:["Потврдите измене"]}}},{l:"sv",t:{"Cancel changes":{v:["Avbryt ändringar"]},"Confirm changes":{v:["Bekräfta ändringar"]}}},{l:"tr",t:{"Cancel changes":{v:["Değişiklikleri iptal et"]},"Confirm changes":{v:["Değişiklikleri onayla"]}}},{l:"uk",t:{"Cancel changes":{v:["Скасувати зміни"]},"Confirm changes":{v:["Підтвердити зміни"]}}},{l:"uz",t:{"Cancel changes":{v:["O'zgarishlarni bekor qilish"]},"Confirm changes":{v:["O'zgarishlarni tasdiqlang"]}}},{l:"zh-CN",t:{"Cancel changes":{v:["取消更改"]},"Confirm changes":{v:["确认更改"]}}},{l:"zh-HK",t:{"Cancel changes":{v:["取消更改"]},"Confirm changes":{v:["確認更改"]}}},{l:"zh-TW",t:{"Cancel changes":{v:["取消變更"]},"Confirm changes":{v:["確認變更"]}}}],GB=[{l:"ar",t:{"Change name":{v:["تغيير الاسم"]},"Close sidebar":{v:["قفل الشريط الجانبي"]},Favorite:{v:["المفضلة"]},"Open sidebar":{v:["إفتَح الشريط الجانبي"]}}},{l:"ast",t:{"Change name":{v:["Camudar el nome"]},"Close sidebar":{v:["Zarrar la barra llateral"]},Favorite:{v:["Favoritu"]},"Open sidebar":{v:["Abrir la barra llateral"]}}},{l:"br",t:{}},{l:"ca",t:{"Close sidebar":{v:["Tancar la barra lateral"]},Favorite:{v:["Preferit"]}}},{l:"cs",t:{"Change name":{v:["Změnit název"]},"Close sidebar":{v:["Zavřít postranní panel"]},Favorite:{v:["Oblíbené"]},"Open sidebar":{v:["Otevřít postranní panel"]}}},{l:"cs-CZ",t:{"Change name":{v:["Změnit název"]},"Close sidebar":{v:["Zavřít postranní panel"]},Favorite:{v:["Oblíbené"]}}},{l:"da",t:{"Change name":{v:["Ændre navn"]},"Close sidebar":{v:["Luk sidepanel"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Åbn sidepanel"]}}},{l:"de",t:{"Change name":{v:["Namen ändern"]},"Close sidebar":{v:["Seitenleiste schließen"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Seitenleiste öffnen"]}}},{l:"de-DE",t:{"Change name":{v:["Namen ändern"]},"Close sidebar":{v:["Seitenleiste schließen"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Seitenleiste öffnen"]}}},{l:"el",t:{"Change name":{v:["Αλλαγή ονόματος"]},"Close sidebar":{v:["Κλείσιμο πλευρικής μπάρας"]},Favorite:{v:["Αγαπημένα"]},"Open sidebar":{v:["Άνοιγμα πλευρικής μπάρας"]}}},{l:"en-GB",t:{"Change name":{v:["Change name"]},"Close sidebar":{v:["Close sidebar"]},Favorite:{v:["Favourite"]},"Open sidebar":{v:["Open sidebar"]}}},{l:"eo",t:{}},{l:"es",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"es-AR",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"es-EC",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]}}},{l:"es-MX",t:{"Change name":{v:["Cambiar nombre"]},"Close sidebar":{v:["Cerrar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"et-EE",t:{"Change name":{v:["Muuda nime"]},"Close sidebar":{v:["Sulge külgriba"]},Favorite:{v:["Lemmik"]},"Open sidebar":{v:["Ava külgriba"]}}},{l:"eu",t:{"Change name":{v:["Aldatu izena"]},"Close sidebar":{v:["Itxi albo-barra"]},Favorite:{v:["Gogokoa"]}}},{l:"fa",t:{"Change name":{v:["تغییر نام"]},"Close sidebar":{v:["بستن نوار کناری"]},Favorite:{v:["مورد علاقه"]},"Open sidebar":{v:["باز کردن نوار کنار"]}}},{l:"fi",t:{"Change name":{v:["Vaihda nimi"]},"Close sidebar":{v:["Sulje sivupalkki"]},Favorite:{v:["Suosikki"]},"Open sidebar":{v:["Avaa sivupalkki"]}}},{l:"fr",t:{"Change name":{v:["Modifier le nom"]},"Close sidebar":{v:["Fermer la barre latérale"]},Favorite:{v:["Favori"]},"Open sidebar":{v:["Ouvrir la barre latérale"]}}},{l:"ga",t:{"Change name":{v:["Athrú ainm"]},"Close sidebar":{v:["Dún barra taoibh"]},Favorite:{v:["is fearr leat"]},"Open sidebar":{v:["Oscail barra taoibh"]}}},{l:"gl",t:{"Change name":{v:["Cambiar o nome"]},"Close sidebar":{v:["Pechar a barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir a barra lateral"]}}},{l:"he",t:{"Change name":{v:["החלפת שם"]},"Close sidebar":{v:["סגירת סרגל הצד"]},Favorite:{v:["למועדפים"]}}},{l:"hr",t:{"Change name":{v:["Promjeni naziv"]},"Close sidebar":{v:["Zatvori bočnu traku"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Otvori bočnu traku"]}}},{l:"hu",t:{"Change name":{v:["Név módosítása"]},"Close sidebar":{v:["Oldalsáv bezárása"]},Favorite:{v:["Kedvenc"]},"Open sidebar":{v:["Oldalsáv megnyitása"]}}},{l:"id",t:{"Change name":{v:["Ubah nama"]},"Close sidebar":{v:["Tutup bilah sisi"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Buka bilah sisi"]}}},{l:"is",t:{"Change name":{v:["Breyta nafni"]},"Close sidebar":{v:["Loka hliðarstiku"]},Favorite:{v:["Eftirlæti"]},"Open sidebar":{v:["Opna hliðarspjald"]}}},{l:"it",t:{"Change name":{v:["Cambia nome"]},"Close sidebar":{v:["Chiudi la barra laterale"]},Favorite:{v:["Preferito"]}}},{l:"ja",t:{"Change name":{v:["名前の変更"]},"Close sidebar":{v:["サイドバーを閉じる"]},Favorite:{v:["お気に入り"]},"Open sidebar":{v:["サイドバーを開く"]}}},{l:"ja-JP",t:{"Change name":{v:["名前の変更"]},"Close sidebar":{v:["サイドバーを閉じる"]},Favorite:{v:["お気に入り"]},"Open sidebar":{v:["サイドバーを開く"]}}},{l:"ko",t:{"Change name":{v:["이름 변경"]},"Close sidebar":{v:["사이드바 닫기"]},Favorite:{v:["즐겨찾기"]},"Open sidebar":{v:["사이드바 열기"]}}},{l:"lo",t:{"Change name":{v:["ປ່ຽນຊື່"]},"Close sidebar":{v:["ປິດແຖບດ້ານຂ້າງ"]},Favorite:{v:["ລາຍການທີ່ມັກ"]},"Open sidebar":{v:["ເປີດແຖບດ້ານຂ້າງ"]}}},{l:"lt-LT",t:{"Change name":{v:["Pakeisti vardą"]},"Close sidebar":{v:["Užverti šoninę juostą"]},Favorite:{v:["Mėgstamiausias"]},"Open sidebar":{v:["Atverti šoninę juostą"]}}},{l:"lv",t:{}},{l:"mk",t:{"Change name":{v:["Промени име"]},"Close sidebar":{v:["Затвори странична лента"]},Favorite:{v:["Фаворити"]},"Open sidebar":{v:["Отвори странична лента"]}}},{l:"mn",t:{"Change name":{v:["Нэр солих"]},"Close sidebar":{v:["Хажуугийн самбарыг хаах"]},Favorite:{v:["Дуртай"]},"Open sidebar":{v:["Хажуугийн самбарыг нээх"]}}},{l:"my",t:{}},{l:"nb",t:{"Change name":{v:["Endre navn"]},"Close sidebar":{v:["Lukk sidepanel"]},Favorite:{v:["Favoritt"]},"Open sidebar":{v:["Åpne sidefelt"]}}},{l:"nl",t:{"Change name":{v:["Naam wijzigen"]},"Close sidebar":{v:["Zijbalk sluiten"]},Favorite:{v:["Favoriet"]},"Open sidebar":{v:["Zijbalk openen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Change name":{v:["Zmień nazwę"]},"Close sidebar":{v:["Zamknij pasek boczny"]},Favorite:{v:["Ulubiony"]},"Open sidebar":{v:["Otwórz pasek boczny"]}}},{l:"pt-BR",t:{"Change name":{v:["Mudar nome"]},"Close sidebar":{v:["Fechar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"pt-PT",t:{"Change name":{v:["Alterar nome"]},"Close sidebar":{v:["Fechar barra lateral"]},Favorite:{v:["Favorito"]},"Open sidebar":{v:["Abrir barra lateral"]}}},{l:"ro",t:{"Change name":{v:["Modifică numele"]},"Close sidebar":{v:["Închide bara laterală"]},Favorite:{v:["Favorit"]}}},{l:"ru",t:{"Change name":{v:["Изменить имя"]},"Close sidebar":{v:["Закрыть сайдбар"]},Favorite:{v:["Избранное"]},"Open sidebar":{v:["Открыть боковую панель"]}}},{l:"sk",t:{"Change name":{v:["Zmeniť názov"]},"Close sidebar":{v:["Zavrieť bočný panel"]},Favorite:{v:["Obľúbené"]},"Open sidebar":{v:["Otvoriť bočný panel"]}}},{l:"sl",t:{"Close sidebar":{v:["Zapri stransko vrstico"]},Favorite:{v:["Priljubljeno"]}}},{l:"sr",t:{"Change name":{v:["Измени назив"]},"Close sidebar":{v:["Затвори бочну траку"]},Favorite:{v:["Омиљени"]},"Open sidebar":{v:["Отвори бочну траку"]}}},{l:"sv",t:{"Change name":{v:["Ändra namn"]},"Close sidebar":{v:["Stäng sidofältet"]},Favorite:{v:["Favorit"]},"Open sidebar":{v:["Öppna sidofältet"]}}},{l:"tr",t:{"Change name":{v:["Adı değiştir"]},"Close sidebar":{v:["Yan çubuğu kapat"]},Favorite:{v:["Sık kullanılanlara ekle"]},"Open sidebar":{v:["Yan çubuğu aç"]}}},{l:"uk",t:{"Change name":{v:["Змінити назву"]},"Close sidebar":{v:["Закрити бічну панель"]},Favorite:{v:["Із зірочкою"]},"Open sidebar":{v:["Бокове меню"]}}},{l:"uz",t:{"Change name":{v:["Ismni o'zgartirish"]},"Close sidebar":{v:["Yon panelni yoping"]},Favorite:{v:["Tanlangan"]},"Open sidebar":{v:["Yon panelni oching"]}}},{l:"zh-CN",t:{"Change name":{v:["修改名称"]},"Close sidebar":{v:["关闭侧边栏"]},Favorite:{v:["喜爱"]},"Open sidebar":{v:["打开侧边栏"]}}},{l:"zh-HK",t:{"Change name":{v:["更改名稱"]},"Close sidebar":{v:["關閉側邊欄"]},Favorite:{v:["喜愛"]},"Open sidebar":{v:["打開側邊欄"]}}},{l:"zh-TW",t:{"Change name":{v:["變更名稱"]},"Close sidebar":{v:["關閉側邊欄"]},Favorite:{v:["最愛"]},"Open sidebar":{v:["開啟側邊欄"]}}}],Uh=[{l:"ar",t:{"Clear selected":{v:["محو المحدّد"]},"Deselect {option}":{v:["إلغاء تحديد {option}"]},"No results":{v:["ليس هناك أية نتيجة"]},Options:{v:["خيارات"]}}},{l:"ast",t:{"Clear selected":{v:["Borrar lo seleicionao"]},"Deselect {option}":{v:["Deseleicionar «{option}»"]},"No results":{v:["Nun hai nengún resultáu"]},Options:{v:["Opciones"]}}},{l:"br",t:{"No results":{v:["Disoc'h ebet"]}}},{l:"ca",t:{"No results":{v:["Sense resultats"]}}},{l:"cs",t:{"Clear selected":{v:["Vyčistit vybrané"]},"Deselect {option}":{v:["Zrušit výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"cs-CZ",t:{"Clear selected":{v:["Vyčistit vybrané"]},"Deselect {option}":{v:["Zrušit výběr {option}"]},"No results":{v:["Nic nenalezeno"]},Options:{v:["Možnosti"]}}},{l:"da",t:{"Clear selected":{v:["Ryd valgt"]},"Deselect {option}":{v:["Fravælg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Indstillinger"]}}},{l:"de",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwählen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"de-DE",t:{"Clear selected":{v:["Auswahl leeren"]},"Deselect {option}":{v:["{option} abwählen"]},"No results":{v:["Keine Ergebnisse"]},Options:{v:["Optionen"]}}},{l:"el",t:{"Clear selected":{v:["Εκκαθάριση επιλογής"]},"Deselect {option}":{v:["Αποεπιλογή {option}"]},"No results":{v:["Κανένα αποτέλεσμα"]},Options:{v:["Επιλογές"]}}},{l:"en-GB",t:{"Clear selected":{v:["Clear selected"]},"Deselect {option}":{v:["Deselect {option}"]},"No results":{v:["No results"]},Options:{v:["Options"]}}},{l:"eo",t:{"No results":{v:["La rezulto forestas"]}}},{l:"es",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:[" Ningún resultado"]},Options:{v:["Opciones"]}}},{l:"es-AR",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"es-EC",t:{"No results":{v:["Sin resultados"]}}},{l:"es-MX",t:{"Clear selected":{v:["Limpiar selección"]},"Deselect {option}":{v:["Deseleccionar {option}"]},"No results":{v:["Sin resultados"]},Options:{v:["Opciones"]}}},{l:"et-EE",t:{"Clear selected":{v:["Tühjenda valik"]},"Deselect {option}":{v:["Eemalda {option} valik"]},"No results":{v:["Tulemusi pole"]},Options:{v:["Valikud"]}}},{l:"eu",t:{"No results":{v:["Emaitzarik ez"]}}},{l:"fa",t:{"Clear selected":{v:["پاک کردن مورد انتخاب شده"]},"Deselect {option}":{v:["لغو انتخاب {option}"]},"No results":{v:["بدون هیچ نتیجه‌ای"]},Options:{v:["گزینه‌ها"]}}},{l:"fi",t:{"Clear selected":{v:["Tyhjennä valitut"]},"Deselect {option}":{v:["Poista valinta {option}"]},"No results":{v:["Ei tuloksia"]},Options:{v:["Valinnat"]}}},{l:"fr",t:{"Clear selected":{v:["Vider la sélection"]},"Deselect {option}":{v:["Désélectionner {option}"]},"No results":{v:["Aucun résultat"]},Options:{v:["Options"]}}},{l:"ga",t:{"Clear selected":{v:["Glan roghnaithe"]},"Deselect {option}":{v:["Díroghnaigh {option}"]},"No results":{v:["Gan torthaí"]},Options:{v:["Roghanna"]}}},{l:"gl",t:{"Clear selected":{v:["Limpar o seleccionado"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sen resultados"]},Options:{v:["Opcións"]}}},{l:"he",t:{"No results":{v:["אין תוצאות"]}}},{l:"hr",t:{"Clear selected":{v:["Očisti odabir"]},"Deselect {option}":{v:["Odznači {option}"]},"No results":{v:["Nema rezultata"]},Options:{v:["Mogućnosti"]}}},{l:"hu",t:{"Clear selected":{v:["Kijelölés törlése"]},"Deselect {option}":{v:["{option} kijelölésének megszüntetése"]},"No results":{v:["Nincs találat"]},Options:{v:["Beállítások"]}}},{l:"id",t:{"Clear selected":{v:["Hapus terpilih"]},"Deselect {option}":{v:["Batalkan pemilihan {option}"]},"No results":{v:["Tidak ada hasil"]},Options:{v:["Opsi"]}}},{l:"is",t:{"Clear selected":{v:["Hreinsa valið"]},"Deselect {option}":{v:["Afvelja {option}"]},"No results":{v:["Engar niðurstöður"]},Options:{v:["Valkostir"]}}},{l:"it",t:{"Clear selected":{v:["Cancella selezionati"]},"Deselect {option}":{v:["Deselezionare {option}"]},"No results":{v:["Nessun risultato"]}}},{l:"ja",t:{"Clear selected":{v:["選択を解除"]},"Deselect {option}":{v:["{option} の選択を解除"]},"No results":{v:["結果無し"]},Options:{v:["オプション"]}}},{l:"ja-JP",t:{"Clear selected":{v:["選択を解除"]},"Deselect {option}":{v:["{option} の選択を解除"]},"No results":{v:["結果無し"]},Options:{v:["オプション"]}}},{l:"ko",t:{"Clear selected":{v:["선택 항목 지우기"]},"Deselect {option}":{v:["{option} 선택 해제"]},"No results":{v:["결과 없음"]},Options:{v:["옵션"]}}},{l:"lo",t:{"Clear selected":{v:["ລຶບສິ່ງທີ່ເລືອກ"]},"Deselect {option}":{v:["ຍົກເລີກການເລືອກ {option}"]},"No results":{v:["ບໍ່ມີຜົນລັບ"]},Options:{v:["ຕົວເລືອກ"]}}},{l:"lt-LT",t:{"Clear selected":{v:["Išvalyti pasirinkimą"]},"Deselect {option}":{v:["Panaikinkite {option} pasirinkimą"]},"No results":{v:["Nėra rezultatų"]},Options:{v:["Parinktys"]}}},{l:"lv",t:{"No results":{v:["Nav rezultātu"]}}},{l:"mk",t:{"Clear selected":{v:["Исчисти означени"]},"Deselect {option}":{v:["Откажи избор на {option}"]},"No results":{v:["Нема резултати"]},Options:{v:["Опции"]}}},{l:"mn",t:{"Clear selected":{v:["Сонголтыг цэвэрлэх"]},"Deselect {option}":{v:["{option}-г сонголтоос хасах"]},"No results":{v:["Үр дүн алга"]},Options:{v:["Тохиргоо"]}}},{l:"my",t:{"No results":{v:["ရလဒ်မရှိပါ"]}}},{l:"nb",t:{"Clear selected":{v:["Tøm merket"]},"Deselect {option}":{v:["Opphev valg {option}"]},"No results":{v:["Ingen resultater"]},Options:{v:["Alternativer"]}}},{l:"nl",t:{"Clear selected":{v:["Selectie wissen"]},"Deselect {option}":{v:["Selectie {option} opheffen"]},"No results":{v:["Geen resultaten"]},Options:{v:["Opties"]}}},{l:"oc",t:{"No results":{v:["Cap de resultat"]}}},{l:"pl",t:{"Clear selected":{v:["Wyczyść wybrane"]},"Deselect {option}":{v:["Odznacz {option}"]},"No results":{v:["Brak wyników"]},Options:{v:["Opcje"]}}},{l:"pt-BR",t:{"Clear selected":{v:["Limpar selecionado"]},"Deselect {option}":{v:["Desselecionar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["Opções"]}}},{l:"pt-PT",t:{"Clear selected":{v:["Limpeza selecionada"]},"Deselect {option}":{v:["Desmarcar {option}"]},"No results":{v:["Sem resultados"]},Options:{v:["Opções"]}}},{l:"ro",t:{"Clear selected":{v:["Șterge selecția"]},"Deselect {option}":{v:["Deselctează {option}"]},"No results":{v:["Nu există rezultate"]}}},{l:"ru",t:{"Clear selected":{v:["Очистить выбранный"]},"Deselect {option}":{v:["Отменить выбор {option}"]},"No results":{v:["Результаты отсуствуют"]},Options:{v:["Варианты"]}}},{l:"sk",t:{"Clear selected":{v:["Vymazať vybraté"]},"Deselect {option}":{v:["Zrušiť výber {option}"]},"No results":{v:["Žiadne výsledky"]},Options:{v:["možnosti"]}}},{l:"sl",t:{"No results":{v:["Ni zadetkov"]}}},{l:"sr",t:{"Clear selected":{v:["Обриши изабрано"]},"Deselect {option}":{v:["Уклони избор {option}"]},"No results":{v:["Нема резултата"]},Options:{v:["Опције"]}}},{l:"sv",t:{"Clear selected":{v:["Rensa val"]},"Deselect {option}":{v:["Avmarkera {option}"]},"No results":{v:["Inga resultat"]},Options:{v:["Alternativ"]}}},{l:"tr",t:{"Clear selected":{v:["Seçilmişleri temizle"]},"Deselect {option}":{v:["{option} bırak"]},"No results":{v:["Herhangi bir sonuç bulunamadı"]},Options:{v:["Seçenekler"]}}},{l:"uk",t:{"Clear selected":{v:["Очистити вибране"]},"Deselect {option}":{v:["Зняти вибір {option}"]},"No results":{v:["Відсутні результати"]},Options:{v:["Параметри"]}}},{l:"uz",t:{"Clear selected":{v:["Tanlanganni tozalash"]},"Deselect {option}":{v:["{option}tanlovni bekor qiling"]},"No results":{v:["Natija yoʻq"]},Options:{v:["Variantlar"]}}},{l:"zh-CN",t:{"Clear selected":{v:["清除所选"]},"Deselect {option}":{v:["取消选择 {option}"]},"No results":{v:["无结果"]},Options:{v:["选项"]}}},{l:"zh-HK",t:{"Clear selected":{v:["清除所選項目"]},"Deselect {option}":{v:["取消選擇 {option}"]},"No results":{v:["無結果"]},Options:{v:["選項"]}}},{l:"zh-TW",t:{"Clear selected":{v:["清除選定項目"]},"Deselect {option}":{v:["取消選取 {option}"]},"No results":{v:["無結果"]},Options:{v:["選項"]}}}],KB=[{l:"ar",t:{"Clear text":{v:["محو النص"]},"Save changes":{v:["حفظ التغييرات"]}}},{l:"ast",t:{"Clear text":{v:["Borrar el testu"]},"Save changes":{v:["Guardar los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Clear text":{v:["Netejar text"]}}},{l:"cs",t:{"Clear text":{v:["Čitelný text"]},"Save changes":{v:["Uložit změny"]}}},{l:"cs-CZ",t:{"Clear text":{v:["Čitelný text"]},"Save changes":{v:["Uložit změny"]}}},{l:"da",t:{"Clear text":{v:["Ryd tekst"]},"Save changes":{v:["Gem ændringer"]}}},{l:"de",t:{"Clear text":{v:["Klartext"]},"Save changes":{v:["Änderungen speichern"]}}},{l:"de-DE",t:{"Clear text":{v:["Klartext"]},"Save changes":{v:["Änderungen speichern"]}}},{l:"el",t:{"Clear text":{v:["Εκκαθάριση κειμένου"]},"Save changes":{v:["Αποθήκευση αλλαγών"]}}},{l:"en-GB",t:{"Clear text":{v:["Clear text"]},"Save changes":{v:["Save changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Clear text":{v:["Limpiar texto"]},"Save changes":{v:["Guardar cambios"]}}},{l:"es-AR",t:{"Clear text":{v:["Limpiar texto"]},"Save changes":{v:["Guardar cambios"]}}},{l:"es-EC",t:{"Clear text":{v:["Limpiar texto"]}}},{l:"es-MX",t:{"Clear text":{v:["Limpiar texto"]},"Save changes":{v:["Guardar cambios"]}}},{l:"et-EE",t:{"Clear text":{v:["Kustuta tekst"]},"Save changes":{v:["Salvesta muudatused"]}}},{l:"eu",t:{"Clear text":{v:["Garbitu testua"]}}},{l:"fa",t:{"Clear text":{v:["پاک کردن متن"]},"Save changes":{v:["ذخیرهٔ تغییرات"]}}},{l:"fi",t:{"Clear text":{v:["Tyhjennä teksti"]},"Save changes":{v:["Tallenna muutokset"]}}},{l:"fr",t:{"Clear text":{v:["Effacer le texte"]},"Save changes":{v:["Sauvegarder les changements"]}}},{l:"ga",t:{"Clear text":{v:["Glan téacs"]},"Save changes":{v:["Sabháil na hathruithe"]}}},{l:"gl",t:{"Clear text":{v:["Limpar o texto"]},"Save changes":{v:["Gardar os cambios"]}}},{l:"he",t:{"Clear text":{v:["פינוי טקסט"]}}},{l:"hr",t:{"Clear text":{v:["Očisti tekst"]},"Save changes":{v:["Spremi promjene"]}}},{l:"hu",t:{"Clear text":{v:["Szöveg törlése"]},"Save changes":{v:["Változtatások mentése"]}}},{l:"id",t:{"Clear text":{v:["Bersihkan teks"]},"Save changes":{v:["Simpan perubahan"]}}},{l:"is",t:{"Clear text":{v:["Hreinsa texta"]},"Save changes":{v:["Vista breytingar"]}}},{l:"it",t:{"Clear text":{v:["Cancella il testo"]},"Save changes":{v:["Salva le modifiche"]}}},{l:"ja",t:{"Clear text":{v:["テキストをクリア"]},"Save changes":{v:["変更を保存"]}}},{l:"ja-JP",t:{"Clear text":{v:["テキストをクリア"]},"Save changes":{v:["変更を保存"]}}},{l:"ko",t:{"Clear text":{v:["텍스트 지우기"]},"Save changes":{v:["변경 사항 저장"]}}},{l:"lo",t:{"Clear text":{v:["ລຶບຂໍ້ຄວາມ"]},"Save changes":{v:["ບັນທຶກການປ່ຽນແປງ"]}}},{l:"lt-LT",t:{"Clear text":{v:["Išvalyti tekstą"]},"Save changes":{v:["Įrašyti pakeitimus"]}}},{l:"lv",t:{}},{l:"mk",t:{"Clear text":{v:["Исчисти текст"]},"Save changes":{v:["Зачувај промени"]}}},{l:"mn",t:{"Clear text":{v:["Текстийг цэвэрлэх"]},"Save changes":{v:["Өөрчлөлтийг хадгалах"]}}},{l:"my",t:{}},{l:"nb",t:{"Clear text":{v:["Fjern tekst"]},"Save changes":{v:["Lagre endringer"]}}},{l:"nl",t:{"Clear text":{v:["Tekst wissen"]},"Save changes":{v:["Wijzigingen opslaan"]}}},{l:"oc",t:{}},{l:"pl",t:{"Clear text":{v:["Wyczyść tekst"]},"Save changes":{v:["Zapisz zmiany"]}}},{l:"pt-BR",t:{"Clear text":{v:["Limpar texto"]},"Save changes":{v:["Salvar alterações"]}}},{l:"pt-PT",t:{"Clear text":{v:["Limpar texto"]},"Save changes":{v:["Gravar alterações"]}}},{l:"ro",t:{"Clear text":{v:["Șterge textul"]},"Save changes":{v:["Salvează modificările"]}}},{l:"ru",t:{"Clear text":{v:["Очистить текст"]},"Save changes":{v:["Сохранить изменения"]}}},{l:"sk",t:{"Clear text":{v:["Vamazať text"]},"Save changes":{v:["Uložiť zmeny"]}}},{l:"sl",t:{"Clear text":{v:["Počisti besedilo"]}}},{l:"sr",t:{"Clear text":{v:["Обриши текст"]},"Save changes":{v:["Сачувај измене"]}}},{l:"sv",t:{"Clear text":{v:["Ta bort text"]},"Save changes":{v:["Spara ändringar"]}}},{l:"tr",t:{"Clear text":{v:["Metni temizle"]},"Save changes":{v:["Değişiklikleri kaydet"]}}},{l:"uk",t:{"Clear text":{v:["Очистити текст"]},"Save changes":{v:["Зберегти зміни"]}}},{l:"uz",t:{"Clear text":{v:["Matnni tozalash"]},"Save changes":{v:["O'zgarishlarni saqlang"]}}},{l:"zh-CN",t:{"Clear text":{v:["清除文本"]},"Save changes":{v:["保存修改"]}}},{l:"zh-HK",t:{"Clear text":{v:["清除文本"]},"Save changes":{v:["保存更改"]}}},{l:"zh-TW",t:{"Clear text":{v:["清除文字"]},"Save changes":{v:["儲存變更"]}}}],Vh=[{l:"ar",t:{Close:{v:["إغلاق"]}}},{l:"ast",t:{Close:{v:["Zarrar"]}}},{l:"br",t:{Close:{v:["Serriñ"]}}},{l:"ca",t:{Close:{v:["Tanca"]}}},{l:"cs",t:{Close:{v:["Zavřít"]}}},{l:"cs-CZ",t:{Close:{v:["Zavřít"]}}},{l:"da",t:{Close:{v:["Luk"]}}},{l:"de",t:{Close:{v:["Schließen"]}}},{l:"de-DE",t:{Close:{v:["Schließen"]}}},{l:"el",t:{Close:{v:["Κλείσιμο"]}}},{l:"en-GB",t:{Close:{v:["Close"]}}},{l:"eo",t:{Close:{v:["Fermu"]}}},{l:"es",t:{Close:{v:["Cerrar"]}}},{l:"es-AR",t:{Close:{v:["Cerrar"]}}},{l:"es-EC",t:{Close:{v:["Cerrar"]}}},{l:"es-MX",t:{Close:{v:["Cerrar"]}}},{l:"et-EE",t:{Close:{v:["Sulge"]}}},{l:"eu",t:{Close:{v:["Itxi"]}}},{l:"fa",t:{Close:{v:["بستن"]}}},{l:"fi",t:{Close:{v:["Sulje"]}}},{l:"fr",t:{Close:{v:["Fermer"]}}},{l:"ga",t:{Close:{v:["Dún"]}}},{l:"gl",t:{Close:{v:["Pechar"]}}},{l:"he",t:{Close:{v:["סגירה"]}}},{l:"hr",t:{Close:{v:["Zatvori"]}}},{l:"hu",t:{Close:{v:["Bezárás"]}}},{l:"id",t:{Close:{v:["Tutup"]}}},{l:"is",t:{Close:{v:["Loka"]}}},{l:"it",t:{Close:{v:["Chiudi"]}}},{l:"ja",t:{Close:{v:["閉じる"]}}},{l:"ja-JP",t:{Close:{v:["閉じる"]}}},{l:"ko",t:{Close:{v:["닫기"]}}},{l:"lo",t:{Close:{v:["ປິດ"]}}},{l:"lt-LT",t:{Close:{v:["Užverti"]}}},{l:"lv",t:{Close:{v:["Aizvērt"]}}},{l:"mk",t:{Close:{v:["Затвори"]}}},{l:"mn",t:{Close:{v:["Хаах"]}}},{l:"my",t:{Close:{v:["ပိတ်ရန်"]}}},{l:"nb",t:{Close:{v:["Lukk"]}}},{l:"nl",t:{Close:{v:["Sluiten"]}}},{l:"oc",t:{Close:{v:["Tampar"]}}},{l:"pl",t:{Close:{v:["Zamknij"]}}},{l:"pt-BR",t:{Close:{v:["Fechar"]}}},{l:"pt-PT",t:{Close:{v:["Fechar"]}}},{l:"ro",t:{Close:{v:["Închideți"]}}},{l:"ru",t:{Close:{v:["Закрыть"]}}},{l:"sk",t:{Close:{v:["Zavrieť"]}}},{l:"sl",t:{Close:{v:["Zapri"]}}},{l:"sr",t:{Close:{v:["Затвори"]}}},{l:"sv",t:{Close:{v:["Stäng"]}}},{l:"tr",t:{Close:{v:["Kapat"]}}},{l:"uk",t:{Close:{v:["Закрити"]}}},{l:"uz",t:{Close:{v:["Yopish"]}}},{l:"zh-CN",t:{Close:{v:["关闭"]}}},{l:"zh-HK",t:{Close:{v:["關閉"]}}},{l:"zh-TW",t:{Close:{v:["關閉"]}}}],qB=[{l:"ar",t:{"Close navigation":{v:["إغلاق التصفح"]},"Open navigation":{v:["فتح التنقُّل"]}}},{l:"ast",t:{"Close navigation":{v:["Zarrar la navegación"]},"Open navigation":{v:["Abrir la navegación"]}}},{l:"br",t:{}},{l:"ca",t:{"Close navigation":{v:["Tanca la navegació"]},"Open navigation":{v:["Obre la navegació"]}}},{l:"cs",t:{"Close navigation":{v:["Zavřít navigaci"]},"Open navigation":{v:["Otevřít navigaci"]}}},{l:"cs-CZ",t:{"Close navigation":{v:["Zavřít navigaci"]},"Open navigation":{v:["Otevřít navigaci"]}}},{l:"da",t:{"Close navigation":{v:["Luk navigation"]},"Open navigation":{v:["Åben navigation"]}}},{l:"de",t:{"Close navigation":{v:["Navigation schließen"]},"Open navigation":{v:["Navigation öffnen"]}}},{l:"de-DE",t:{"Close navigation":{v:["Navigation schließen"]},"Open navigation":{v:["Navigation öffnen"]}}},{l:"el",t:{"Close navigation":{v:["Κλείσιμο πλοήγησης"]},"Open navigation":{v:["Άνοιγμα πλοήγησης"]}}},{l:"en-GB",t:{"Close navigation":{v:["Close navigation"]},"Open navigation":{v:["Open navigation"]}}},{l:"eo",t:{}},{l:"es",t:{"Close navigation":{v:["Cerrar navegación"]},"Open navigation":{v:["Abrir navegación"]}}},{l:"es-AR",t:{"Close navigation":{v:["Cerrar navegación"]},"Open navigation":{v:["Abrir navegación"]}}},{l:"es-EC",t:{"Close navigation":{v:["Cerrar navegación"]},"Open navigation":{v:["Abrir navegación"]}}},{l:"es-MX",t:{"Close navigation":{v:["Cerrar navegación"]},"Open navigation":{v:["Abrir navegación"]}}},{l:"et-EE",t:{"Close navigation":{v:["Sulge navigatsioon"]},"Open navigation":{v:["Ava liikumisvaade"]}}},{l:"eu",t:{"Close navigation":{v:["Itxi nabigazioa"]},"Open navigation":{v:["Ireki nabigazioa"]}}},{l:"fa",t:{"Close navigation":{v:["بستن بخش ناوبری"]},"Open navigation":{v:["باز کردن بخش ناوبری"]}}},{l:"fi",t:{"Close navigation":{v:["Sulje navigaatio"]}}},{l:"fr",t:{"Close navigation":{v:["Fermer la navigation"]},"Open navigation":{v:["Ouvrir la navigation"]}}},{l:"ga",t:{"Close navigation":{v:["Dún nascleanúint"]},"Open navigation":{v:["Oscail nascleanúint"]}}},{l:"gl",t:{"Close navigation":{v:["Pechar a navegación"]},"Open navigation":{v:["Abrir a navegación"]}}},{l:"he",t:{"Close navigation":{v:["סגירת הניווט"]},"Open navigation":{v:["פתיחת ניווט"]}}},{l:"hr",t:{"Close navigation":{v:["Zatvori navigaciju"]},"Open navigation":{v:["Otvori navigaciju"]}}},{l:"hu",t:{"Close navigation":{v:["Navigáció bezárása"]},"Open navigation":{v:["Navigáció megnyitása"]}}},{l:"id",t:{"Close navigation":{v:["Tutup navigasi"]},"Open navigation":{v:["Buka navigasi"]}}},{l:"is",t:{"Close navigation":{v:["Loka leiðsagnarsleða"]}}},{l:"it",t:{"Close navigation":{v:["Chiudi la navigazione"]},"Open navigation":{v:["Apri la navigazione"]}}},{l:"ja",t:{"Close navigation":{v:["ナビゲーションを閉じる"]},"Open navigation":{v:["ナビゲーションを開く"]}}},{l:"ja-JP",t:{"Close navigation":{v:["ナビゲーションを閉じる"]},"Open navigation":{v:["ナビゲーションを開く"]}}},{l:"ko",t:{"Close navigation":{v:["탐색 닫기"]},"Open navigation":{v:["탐색 열기"]}}},{l:"lo",t:{"Close navigation":{v:["ປິດການນຳທາງ"]},"Open navigation":{v:["ເປີດການນຳທາງ"]}}},{l:"lt-LT",t:{"Close navigation":{v:["Užverti naršymą"]},"Open navigation":{v:["Atverti naršymą"]}}},{l:"lv",t:{}},{l:"mk",t:{"Close navigation":{v:["Затвори навигација"]},"Open navigation":{v:["Отвори навигација"]}}},{l:"mn",t:{"Close navigation":{v:["Навигацийг хаах"]},"Open navigation":{v:["Навигацийг нээх"]}}},{l:"my",t:{}},{l:"nb",t:{"Close navigation":{v:["Lukk navigasjon"]},"Open navigation":{v:["Åpne navigasjon"]}}},{l:"nl",t:{"Close navigation":{v:["Navigatie sluiten"]},"Open navigation":{v:["Navigatie openen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Close navigation":{v:["Zamknij nawigację"]}}},{l:"pt-BR",t:{"Close navigation":{v:["Fechar navegação"]},"Open navigation":{v:["Abrir navegação"]}}},{l:"pt-PT",t:{"Close navigation":{v:["Fechar navegação"]},"Open navigation":{v:["Abrir navegação"]}}},{l:"ro",t:{"Close navigation":{v:["Închideți navigarea"]},"Open navigation":{v:["Deschideți navigația"]}}},{l:"ru",t:{"Close navigation":{v:["Закрыть навигацию"]},"Open navigation":{v:["Открыть навигацию"]}}},{l:"sk",t:{"Close navigation":{v:["Zavrieť navigáciu"]}}},{l:"sl",t:{"Close navigation":{v:["Zapri krmarjenje"]},"Open navigation":{v:["Odpri krmarjenje"]}}},{l:"sr",t:{"Close navigation":{v:["Затвори навигацију"]},"Open navigation":{v:["Отвори навигацију"]}}},{l:"sv",t:{"Close navigation":{v:["Stäng navigering"]},"Open navigation":{v:["Öppna navigering"]}}},{l:"tr",t:{"Close navigation":{v:["Gezinmeyi kapat"]},"Open navigation":{v:["Gezinmeyi aç"]}}},{l:"uk",t:{"Close navigation":{v:["Закрити навігацію"]},"Open navigation":{v:["Перейти до навігації"]}}},{l:"uz",t:{"Close navigation":{v:["Navigatsiyani yopish"]},"Open navigation":{v:["Navigatsiyani oching"]}}},{l:"zh-CN",t:{"Close navigation":{v:["关闭导航"]}}},{l:"zh-HK",t:{"Close navigation":{v:["關閉導航"]},"Open navigation":{v:["開啟導航"]}}},{l:"zh-TW",t:{"Close navigation":{v:["關閉導航"]},"Open navigation":{v:["開啟導航"]}}}],YB=[{l:"ar",t:{"Collapse menu":{v:["طي القائمة"]},"Open menu":{v:["إفتَح القائمة"]}}},{l:"ast",t:{"Collapse menu":{v:["Recoyer el menú"]},"Open menu":{v:["Abrir le menú"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Collapse menu":{v:["Sbalit nabídku"]},"Open menu":{v:["Otevřít nabídku"]}}},{l:"cs-CZ",t:{"Collapse menu":{v:["Sbalit nabídku"]},"Open menu":{v:["Otevřít nabídku"]}}},{l:"da",t:{"Collapse menu":{v:["Skjul menuen"]},"Open menu":{v:["Åben menu"]}}},{l:"de",t:{"Collapse menu":{v:["Menü einklappen"]},"Open menu":{v:["Menü öffnen"]}}},{l:"de-DE",t:{"Collapse menu":{v:["Menü einklappen"]},"Open menu":{v:["Menü öffnen"]}}},{l:"el",t:{"Collapse menu":{v:["Σύμπτυξη μενού"]},"Open menu":{v:["Άνοιγμα μενού"]}}},{l:"en-GB",t:{"Collapse menu":{v:["Collapse menu"]},"Open menu":{v:["Open menu"]}}},{l:"eo",t:{}},{l:"es",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"es-AR",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"es-EC",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"es-MX",t:{"Collapse menu":{v:["Ocultar menú"]},"Open menu":{v:["Abrir menú"]}}},{l:"et-EE",t:{"Collapse menu":{v:["Ahenda menüü"]},"Open menu":{v:["Ava menüü"]}}},{l:"eu",t:{"Collapse menu":{v:["Tolestu menua"]},"Open menu":{v:["Ireki menua"]}}},{l:"fa",t:{"Collapse menu":{v:["بستن فهرست"]},"Open menu":{v:["باز کردن فهرست"]}}},{l:"fi",t:{"Collapse menu":{v:["Supista valikko"]},"Open menu":{v:["Avaa valikko"]}}},{l:"fr",t:{"Collapse menu":{v:["Réduire le menu"]},"Open menu":{v:["Ouvrir le menu"]}}},{l:"ga",t:{"Collapse menu":{v:["Roghchlár Laghdaigh"]},"Open menu":{v:["Roghchlár a oscailt"]}}},{l:"gl",t:{"Collapse menu":{v:["Contraer o menú"]},"Open menu":{v:["Abrir o menú"]}}},{l:"he",t:{"Collapse menu":{v:["צמצום התפריט"]},"Open menu":{v:["פתיחת תפריט"]}}},{l:"hr",t:{"Collapse menu":{v:["Sakrij izbornik"]},"Open menu":{v:["Otvori izbornik"]}}},{l:"hu",t:{"Collapse menu":{v:["Menü összecsukása"]},"Open menu":{v:["Menü megnyitása"]}}},{l:"id",t:{"Collapse menu":{v:["Ciutkan menu"]},"Open menu":{v:["Buka menu"]}}},{l:"is",t:{"Collapse menu":{v:["Fella valmynd saman"]},"Open menu":{v:["Opna valmynd"]}}},{l:"it",t:{"Collapse menu":{v:["Chiudi Menu"]},"Open menu":{v:["Apri il menu"]}}},{l:"ja",t:{"Collapse menu":{v:["メニューの折りたたみ"]},"Open menu":{v:["メニューを開く"]}}},{l:"ja-JP",t:{"Collapse menu":{v:["メニューの折りたたみ"]},"Open menu":{v:["メニューを開く"]}}},{l:"ko",t:{"Collapse menu":{v:["메뉴 접기"]},"Open menu":{v:["메뉴 열기"]}}},{l:"lo",t:{"Collapse menu":{v:["ຫຍໍ້ເມນູ"]},"Open menu":{v:["ເປີດເມນູ"]}}},{l:"lt-LT",t:{"Collapse menu":{v:["Suskleisti meniu"]},"Open menu":{v:["Atverti meniu"]}}},{l:"lv",t:{}},{l:"mk",t:{"Collapse menu":{v:["Скриј мени"]},"Open menu":{v:["Отвори мени"]}}},{l:"mn",t:{"Collapse menu":{v:["Цэсийг хураах"]},"Open menu":{v:["Цэсийг нээх"]}}},{l:"my",t:{}},{l:"nb",t:{"Collapse menu":{v:["Skjul meny"]},"Open menu":{v:["Åpne meny"]}}},{l:"nl",t:{"Collapse menu":{v:["Menu inklappen"]},"Open menu":{v:["Menu openen"]}}},{l:"oc",t:{}},{l:"pl",t:{"Collapse menu":{v:["Zwiń menu"]},"Open menu":{v:["Otwórz menu"]}}},{l:"pt-BR",t:{"Collapse menu":{v:["Recolher menu"]},"Open menu":{v:["Abrir menu"]}}},{l:"pt-PT",t:{"Collapse menu":{v:["Ocultar menu"]},"Open menu":{v:["Abrir menu"]}}},{l:"ro",t:{"Collapse menu":{v:["Restrânge meniul"]},"Open menu":{v:["Deschide meniul"]}}},{l:"ru",t:{"Collapse menu":{v:["Свернуть меню"]},"Open menu":{v:["Открыть меню"]}}},{l:"sk",t:{"Collapse menu":{v:["Zbaliť menu"]},"Open menu":{v:["Otvoriť menu"]}}},{l:"sl",t:{}},{l:"sr",t:{"Collapse menu":{v:["Сажми мени"]},"Open menu":{v:["Отвори мени"]}}},{l:"sv",t:{"Collapse menu":{v:["Dölj menyn"]},"Open menu":{v:["Öppna menyn"]}}},{l:"tr",t:{"Collapse menu":{v:["Menüyü daralt"]},"Open menu":{v:["Menüyü aç"]}}},{l:"uk",t:{"Collapse menu":{v:["Згорнути меню"]},"Open menu":{v:["Відкрити меню"]}}},{l:"uz",t:{"Collapse menu":{v:["Menyuni yig‘ish"]},"Open menu":{v:["Menyuni oching"]}}},{l:"zh-CN",t:{"Collapse menu":{v:["收起菜单"]},"Open menu":{v:["打开菜单"]}}},{l:"zh-HK",t:{"Collapse menu":{v:["折疊選單"]},"Open menu":{v:["開啟選單"]}}},{l:"zh-TW",t:{"Collapse menu":{v:["折疊選單"]},"Open menu":{v:["開啟選單"]}}}],ZB=[{l:"ar",t:{"Edit item":{v:["تعديل عنصر"]}}},{l:"ast",t:{"Edit item":{v:["Editar l'elementu"]}}},{l:"br",t:{}},{l:"ca",t:{"Edit item":{v:["Edita l'element"]}}},{l:"cs",t:{"Edit item":{v:["Upravit položku"]}}},{l:"cs-CZ",t:{"Edit item":{v:["Upravit položku"]}}},{l:"da",t:{"Edit item":{v:["Rediger emne"]}}},{l:"de",t:{"Edit item":{v:["Element bearbeiten"]}}},{l:"de-DE",t:{"Edit item":{v:["Element bearbeiten"]}}},{l:"el",t:{"Edit item":{v:["Επεξεργασία αντικειμένου"]}}},{l:"en-GB",t:{"Edit item":{v:["Edit item"]}}},{l:"eo",t:{}},{l:"es",t:{"Edit item":{v:["Editar elemento"]}}},{l:"es-AR",t:{"Edit item":{v:["Editar elemento"]}}},{l:"es-EC",t:{"Edit item":{v:["Editar elemento"]}}},{l:"es-MX",t:{"Edit item":{v:["Editar elemento"]}}},{l:"et-EE",t:{"Edit item":{v:["Muuda objekti"]}}},{l:"eu",t:{"Edit item":{v:["Editatu elementua"]}}},{l:"fa",t:{"Edit item":{v:["ویرایش مورد"]}}},{l:"fi",t:{"Edit item":{v:["Muokkaa kohdetta"]}}},{l:"fr",t:{"Edit item":{v:["Éditer l'élément"]}}},{l:"ga",t:{"Edit item":{v:["Cuir mír in eagar"]}}},{l:"gl",t:{"Edit item":{v:["Editar o elemento"]}}},{l:"he",t:{"Edit item":{v:["עריכת פריט"]}}},{l:"hr",t:{"Edit item":{v:["Uredi stavku"]}}},{l:"hu",t:{"Edit item":{v:["Elem szerkesztése"]}}},{l:"id",t:{"Edit item":{v:["Edit item"]}}},{l:"is",t:{"Edit item":{v:["Breyta atriði"]}}},{l:"it",t:{"Edit item":{v:["Modifica l'elemento"]}}},{l:"ja",t:{"Edit item":{v:["編集"]}}},{l:"ja-JP",t:{"Edit item":{v:["編集"]}}},{l:"ko",t:{"Edit item":{v:["항목 수정"]}}},{l:"lo",t:{"Edit item":{v:["ແກ້ໄຂລາຍການ"]}}},{l:"lt-LT",t:{"Edit item":{v:["Taisyti elementą"]}}},{l:"lv",t:{}},{l:"mk",t:{"Edit item":{v:["Уреди"]}}},{l:"mn",t:{"Edit item":{v:["Зүйлийг засварлах"]}}},{l:"my",t:{}},{l:"nb",t:{"Edit item":{v:["Rediger"]}}},{l:"nl",t:{"Edit item":{v:["Item bewerken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Edit item":{v:["Edytuj element"]}}},{l:"pt-BR",t:{"Edit item":{v:["Editar item"]}}},{l:"pt-PT",t:{"Edit item":{v:["Editar item"]}}},{l:"ro",t:{"Edit item":{v:["Editați elementul"]}}},{l:"ru",t:{"Edit item":{v:["Изменить элемент"]}}},{l:"sk",t:{"Edit item":{v:["Upraviť položku"]}}},{l:"sl",t:{"Edit item":{v:["Uredi predmet"]}}},{l:"sr",t:{"Edit item":{v:["Уреди ставку"]}}},{l:"sv",t:{"Edit item":{v:["Redigera objekt"]}}},{l:"tr",t:{"Edit item":{v:["Ögeyi düzenle"]}}},{l:"uk",t:{"Edit item":{v:["Редагувати елемент"]}}},{l:"uz",t:{"Edit item":{v:["Elementni tahrirlash"]}}},{l:"zh-CN",t:{"Edit item":{v:["编辑项目"]}}},{l:"zh-HK",t:{"Edit item":{v:["編輯項目"]}}},{l:"zh-TW",t:{"Edit item":{v:["編輯項目"]}}}],XB=[{l:"ar",t:{}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"External documentation":{v:["Externí dokumentace"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"External documentation":{v:["Ekstern dokumentation"]}}},{l:"de",t:{"External documentation":{v:["Externe Dokumentation"]}}},{l:"de-DE",t:{"External documentation":{v:["Externe Dokumentation"]}}},{l:"el",t:{"External documentation":{v:["Εξωτερική τεκμηρίωση"]}}},{l:"en-GB",t:{"External documentation":{v:["External documentation"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{"External documentation":{v:["Dokumentatsioon välises allikas"]}}},{l:"eu",t:{}},{l:"fa",t:{}},{l:"fi",t:{}},{l:"fr",t:{"External documentation":{v:["Documentation externe"]}}},{l:"ga",t:{"External documentation":{v:["Doiciméadú seachtrach"]}}},{l:"gl",t:{"External documentation":{v:["Documentación externa"]}}},{l:"he",t:{}},{l:"hr",t:{"External documentation":{v:["Vanjska dokumentacija"]}}},{l:"hu",t:{"External documentation":{v:["Külső dokumentáció"]}}},{l:"id",t:{"External documentation":{v:["Dokumentasi eksternal"]}}},{l:"is",t:{}},{l:"it",t:{}},{l:"ja",t:{"External documentation":{v:["外部ドキュメント"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"External documentation":{v:["외부 문서"]}}},{l:"lo",t:{"External documentation":{v:["ເອກະສານພາຍນອກ"]}}},{l:"lt-LT",t:{"External documentation":{v:["Išorinė dokumentacija"]}}},{l:"lv",t:{}},{l:"mk",t:{"External documentation":{v:["Надворешна документација"]}}},{l:"mn",t:{"External documentation":{v:["Гадаад баримт бичиг"]}}},{l:"my",t:{}},{l:"nb",t:{}},{l:"nl",t:{"External documentation":{v:["Externe documentatie"]}}},{l:"oc",t:{}},{l:"pl",t:{}},{l:"pt-BR",t:{"External documentation":{v:["Documentação externa"]}}},{l:"pt-PT",t:{}},{l:"ro",t:{}},{l:"ru",t:{"External documentation":{v:["Внешняя документация"]}}},{l:"sk",t:{}},{l:"sl",t:{}},{l:"sr",t:{"External documentation":{v:["Спољна документација"]}}},{l:"sv",t:{"External documentation":{v:["Extern dokumentation"]}}},{l:"tr",t:{"External documentation":{v:["Dış belgeler"]}}},{l:"uk",t:{"External documentation":{v:["Зовнішня документація"]}}},{l:"uz",t:{"External documentation":{v:["Tashqi hujjatlar"]}}},{l:"zh-CN",t:{}},{l:"zh-HK",t:{"External documentation":{v:["外部文件"]}}},{l:"zh-TW",t:{"External documentation":{v:["外部文件"]}}}],JB=[{l:"ar",t:{"Go back to the list":{v:["عودة إلى القائمة"]}}},{l:"ast",t:{"Go back to the list":{v:["Volver a la llista"]}}},{l:"br",t:{}},{l:"ca",t:{"Go back to the list":{v:["Torna a la llista"]}}},{l:"cs",t:{"Go back to the list":{v:["Jít zpět na seznam"]}}},{l:"cs-CZ",t:{"Go back to the list":{v:["Jít zpět na seznam"]}}},{l:"da",t:{"Go back to the list":{v:["Tilbage til listen"]}}},{l:"de",t:{"Go back to the list":{v:["Zurück zur Liste"]}}},{l:"de-DE",t:{"Go back to the list":{v:["Zurück zur Liste"]}}},{l:"el",t:{"Go back to the list":{v:["Επιστροφή στην αρχική λίστα"]}}},{l:"en-GB",t:{"Go back to the list":{v:["Go back to the list"]}}},{l:"eo",t:{}},{l:"es",t:{"Go back to the list":{v:["Volver a la lista"]}}},{l:"es-AR",t:{"Go back to the list":{v:["Volver a la lista"]}}},{l:"es-EC",t:{"Go back to the list":{v:["Volver a la lista"]}}},{l:"es-MX",t:{"Go back to the list":{v:["Regresar a la lista"]}}},{l:"et-EE",t:{"Go back to the list":{v:["Tagasi nimekirja juurde"]}}},{l:"eu",t:{"Go back to the list":{v:["Bueltatu zerrendara"]}}},{l:"fa",t:{"Go back to the list":{v:["برگشت به لیست"]}}},{l:"fi",t:{"Go back to the list":{v:["Takaisin listaan"]}}},{l:"fr",t:{"Go back to the list":{v:["Retourner à la liste"]}}},{l:"ga",t:{"Go back to the list":{v:["Téigh ar ais go dtí an liosta"]}}},{l:"gl",t:{"Go back to the list":{v:["Volver á lista"]}}},{l:"he",t:{"Go back to the list":{v:["חזרה לרשימה"]}}},{l:"hr",t:{"Go back to the list":{v:["Vrati se na popis"]}}},{l:"hu",t:{"Go back to the list":{v:["Ugrás vissza a listához"]}}},{l:"id",t:{"Go back to the list":{v:["Kembali ke daftar"]}}},{l:"is",t:{"Go back to the list":{v:["Fara til baka í listann"]}}},{l:"it",t:{"Go back to the list":{v:["Torna all'elenco"]}}},{l:"ja",t:{"Go back to the list":{v:["リストに戻る"]}}},{l:"ja-JP",t:{"Go back to the list":{v:["リストに戻る"]}}},{l:"ko",t:{"Go back to the list":{v:["목록으로 돌아가기"]}}},{l:"lo",t:{"Go back to the list":{v:["ກັບໄປທີ່ລາຍການ"]}}},{l:"lt-LT",t:{"Go back to the list":{v:["Grįžti į sąrašą"]}}},{l:"lv",t:{}},{l:"mk",t:{"Go back to the list":{v:["Врати се на листата"]}}},{l:"mn",t:{"Go back to the list":{v:["Жагсаалт руу буцах"]}}},{l:"my",t:{}},{l:"nb",t:{"Go back to the list":{v:["Gå tilbake til listen"]}}},{l:"nl",t:{"Go back to the list":{v:["Ga terug naar de lijst"]}}},{l:"oc",t:{}},{l:"pl",t:{"Go back to the list":{v:["Powrót do listy"]}}},{l:"pt-BR",t:{"Go back to the list":{v:["Voltar para a lista"]}}},{l:"pt-PT",t:{"Go back to the list":{v:["Voltar para a lista"]}}},{l:"ro",t:{"Go back to the list":{v:["Întoarceți-vă la listă"]}}},{l:"ru",t:{"Go back to the list":{v:["Вернуться к списку"]}}},{l:"sk",t:{"Go back to the list":{v:["Späť na zoznam"]}}},{l:"sl",t:{"Go back to the list":{v:["Vrni se na seznam"]}}},{l:"sr",t:{"Go back to the list":{v:["Назад на листу"]}}},{l:"sv",t:{"Go back to the list":{v:["Gå tillbaka till listan"]}}},{l:"tr",t:{"Go back to the list":{v:["Listeye dön"]}}},{l:"uk",t:{"Go back to the list":{v:["Повернутися до списку"]}}},{l:"uz",t:{"Go back to the list":{v:["Ro'yxatga qayting"]}}},{l:"zh-CN",t:{"Go back to the list":{v:["返回至列表"]}}},{l:"zh-HK",t:{"Go back to the list":{v:["返回清單"]}}},{l:"zh-TW",t:{"Go back to the list":{v:["回到清單"]}}}],QB=[{l:"ar",t:{"Keyboard navigation help":{v:["مساعدة في التنقل باستعمال لوحة المفاتيح"]},"Skip to app navigation":{v:["تجاوَز إلى التنقل في التطبيق"]},"Skip to main content":{v:["تجاوَز إلى المحتوى الرئيسي"]}}},{l:"ast",t:{"Keyboard navigation help":{v:["Ayuda de la navegación pente'l tecláu"]},"Skip to app navigation":{v:["Dir a la navegación d'aplicaciones"]},"Skip to main content":{v:["Dir al conteníu principal"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Keyboard navigation help":{v:["Nápověda pro pohyb pomocí klávesnice"]},"Skip to app navigation":{v:["Přeskočit na navigaci aplikace"]},"Skip to main content":{v:["Přeskočit na hlavní obsah"]}}},{l:"cs-CZ",t:{"Keyboard navigation help":{v:["Nápověda pro pohyb pomocí klávesnice"]},"Skip to app navigation":{v:["Přeskočit na navigaci aplikace"]},"Skip to main content":{v:["Přeskočit na hlavní obsah"]}}},{l:"da",t:{"Keyboard navigation help":{v:["Hjælp til tastaturnavigation"]},"Skip to app navigation":{v:["Spring til app navigation"]},"Skip to main content":{v:["Spring til hovedindhold"]}}},{l:"de",t:{"Keyboard navigation help":{v:["Tastatur-Navigationshilfe"]},"Skip to app navigation":{v:["Zur App-Navigation springen"]},"Skip to main content":{v:["Zum Hauptinhalt springen"]}}},{l:"de-DE",t:{"Keyboard navigation help":{v:["Tastatur-Navigationshilfe"]},"Skip to app navigation":{v:["Zur App-Navigation springen"]},"Skip to main content":{v:["Zum Hauptinhalt springen"]}}},{l:"el",t:{"Keyboard navigation help":{v:["Βοήθεια πλοήγησης με πληκτρολόγιο"]},"Skip to app navigation":{v:["Μετάβαση στην πλοήγηση της εφαρμογής"]},"Skip to main content":{v:["Μετάβαση στο κύριο περιεχόμενο"]}}},{l:"en-GB",t:{"Keyboard navigation help":{v:["Keyboard navigation help"]},"Skip to app navigation":{v:["Skip to app navigation"]},"Skip to main content":{v:["Skip to main content"]}}},{l:"eo",t:{}},{l:"es",t:{"Keyboard navigation help":{v:["Ayuda de navegación del teclado"]},"Skip to app navigation":{v:["Saltar a la navegación de apps"]},"Skip to main content":{v:["Saltar al contenido principal"]}}},{l:"es-AR",t:{"Keyboard navigation help":{v:["Ayuda de navegación del teclado"]},"Skip to app navigation":{v:["Saltar a la navegación de app"]},"Skip to main content":{v:["Saltar al contenido principal"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{"Keyboard navigation help":{v:["Ayuda de navegación del teclado"]},"Skip to app navigation":{v:["Saltar a la navegación de app"]},"Skip to main content":{v:["Saltar al contenido principal"]}}},{l:"et-EE",t:{"Keyboard navigation help":{v:["Klahvistiku kasutuse abiteave"]},"Skip to app navigation":{v:["Suundu rakenduses liikumise valikute juurde"]},"Skip to main content":{v:["Suundu põhisisu juurde"]}}},{l:"eu",t:{}},{l:"fa",t:{"Keyboard navigation help":{v:["راهنمای ناوبری صفحه کلید"]},"Skip to app navigation":{v:["رفتن به پیمایش برنامه"]},"Skip to main content":{v:["رفتن به محتوای اصلی"]}}},{l:"fi",t:{"Keyboard navigation help":{v:["Näppäimistönavigoinnin ohje"]},"Skip to app navigation":{v:["Siirry sovelluksen navigaatioon"]},"Skip to main content":{v:["Siirry pääsisältöön"]}}},{l:"fr",t:{"Keyboard navigation help":{v:["Aide à la navigation du clavier"]},"Skip to app navigation":{v:["Passer à l'app navigation"]},"Skip to main content":{v:["Passer au contenu principal"]}}},{l:"ga",t:{"Keyboard navigation help":{v:["Cabhair le nascleanúint méarchláir"]},"Skip to app navigation":{v:["Téigh ar aghaidh chuig nascleanúint aip"]},"Skip to main content":{v:["Téigh ar aghaidh chuig an bpríomhábhar"]}}},{l:"gl",t:{"Keyboard navigation help":{v:["Axuda á navegación co teclado"]},"Skip to app navigation":{v:["Ir á navegación da aplicación"]},"Skip to main content":{v:["Ir ao contido principal"]}}},{l:"he",t:{}},{l:"hr",t:{"Keyboard navigation help":{v:["Pomoć za navigaciju tipkovnicom"]},"Skip to app navigation":{v:["Preskoči na navigaciju aplikacije"]},"Skip to main content":{v:["Preskoči na glavni sadržaj"]}}},{l:"hu",t:{"Keyboard navigation help":{v:["Billentyűzetes navigáció súgója"]},"Skip to app navigation":{v:["Ugrás az alkalmazásnavigációhoz"]},"Skip to main content":{v:["Ugrás a fő tartalomhoz"]}}},{l:"id",t:{"Keyboard navigation help":{v:["Bantuan navigasi keyboard"]},"Skip to app navigation":{v:["Lewati ke navigasi aplikasi"]},"Skip to main content":{v:["Lewati ke konten utama"]}}},{l:"is",t:{"Keyboard navigation help":{v:["Aðstoð við rötun á lyklaborði"]},"Skip to app navigation":{v:["Sleppa og fara í flakk innan forrits"]},"Skip to main content":{v:["Sleppa og fara í meginefni"]}}},{l:"it",t:{}},{l:"ja",t:{"Keyboard navigation help":{v:["キーボード・ナビゲーション・ヘルプ"]},"Skip to app navigation":{v:["アプリのナビゲーションへ移動"]},"Skip to main content":{v:["メインコンテンツへ移動"]}}},{l:"ja-JP",t:{"Keyboard navigation help":{v:["キーボード・ナビゲーション・ヘルプ"]},"Skip to app navigation":{v:["アプリのナビゲーションへ移動"]},"Skip to main content":{v:["メインコンテンツへ移動"]}}},{l:"ko",t:{"Keyboard navigation help":{v:["키보드 탐색 도움말"]},"Skip to app navigation":{v:["앱 탐색으로 건너뛰기"]},"Skip to main content":{v:["본 내용으로 건너뛰기"]}}},{l:"lo",t:{"Keyboard navigation help":{v:["ການຊ່ວຍເຫຼືອການນຳທາງດ້ວຍຄີບອດ"]},"Skip to app navigation":{v:["ຂ້າມໄປທີ່ການນຳທາງຂອງແອັບ"]},"Skip to main content":{v:["ຂ້າມໄປທີ່ເນື້ອຫາຫຼັກ"]}}},{l:"lt-LT",t:{"Keyboard navigation help":{v:["Klaviatūros navigacijos pagalba"]},"Skip to app navigation":{v:["Pereiti prie programėlės naršymo"]},"Skip to main content":{v:["Pereiti prie pagrindinio turinio"]}}},{l:"lv",t:{}},{l:"mk",t:{"Keyboard navigation help":{v:["Навигација со тастатура"]},"Skip to app navigation":{v:["Прескокни на навигација на апликацијата"]},"Skip to main content":{v:["Прескокни на главна содржина"]}}},{l:"mn",t:{"Keyboard navigation help":{v:["Гарын навигацийн тусламж"]},"Skip to app navigation":{v:["Аппын навигаци руу алгасах"]},"Skip to main content":{v:["Үндсэн агуулга руу алгасах"]}}},{l:"my",t:{}},{l:"nb",t:{"Keyboard navigation help":{v:["Hjelp for tastaturnavigering"]},"Skip to app navigation":{v:["Hopp til appnavigering"]},"Skip to main content":{v:["Hopp til hovedinnhold"]}}},{l:"nl",t:{"Keyboard navigation help":{v:["Hulp voor toetsenbordnavigatie"]},"Skip to app navigation":{v:["Doorgaan naar app-navigatie"]},"Skip to main content":{v:["Naar hoofdinhoud gaan"]}}},{l:"oc",t:{}},{l:"pl",t:{"Keyboard navigation help":{v:["Pomoc w nawigacji za pomocą klawiatury"]},"Skip to app navigation":{v:["Przewiń do nawigacji"]},"Skip to main content":{v:["Przewiń do głównych treści"]}}},{l:"pt-BR",t:{"Keyboard navigation help":{v:["Ajuda para navegação pelo teclado"]},"Skip to app navigation":{v:["Ir para navegação de aplicativo"]},"Skip to main content":{v:["Ir para conteúdo principal"]}}},{l:"pt-PT",t:{"Keyboard navigation help":{v:["Ajuda à navegação no teclado"]},"Skip to app navigation":{v:["Saltar para navegação da app"]},"Skip to main content":{v:["Saltar para conteúdo principal"]}}},{l:"ro",t:{}},{l:"ru",t:{"Keyboard navigation help":{v:["Справка по навигации с помощью клавиатуры"]},"Skip to app navigation":{v:["Перейти к навигации по приложению"]},"Skip to main content":{v:["Перейти к основному содержанию"]}}},{l:"sk",t:{"Keyboard navigation help":{v:["Pomoc pri navigácii pomocou klávesnice"]},"Skip to app navigation":{v:["Preskočiť na navigáciu v aplikácii"]},"Skip to main content":{v:["Preskočiť na hlavný obsah"]}}},{l:"sl",t:{}},{l:"sr",t:{"Keyboard navigation help":{v:["Помоћ за навигацију тастатуром"]},"Skip to app navigation":{v:["Прескочи на навигацију апликацијом"]},"Skip to main content":{v:["Прескочи на главни садржај"]}}},{l:"sv",t:{"Keyboard navigation help":{v:["Hjälp med tangentbordsnavigering"]},"Skip to app navigation":{v:["Hoppa till appnavigering"]},"Skip to main content":{v:["Hoppa till huvudinnehåll"]}}},{l:"tr",t:{"Keyboard navigation help":{v:["Klavye ile gezinme yardımı"]},"Skip to app navigation":{v:["Uygulama gezinmesine git"]},"Skip to main content":{v:["Ana içeriğe git"]}}},{l:"uk",t:{"Keyboard navigation help":{v:["Допомога з навігацією клавішами"]},"Skip to app navigation":{v:["Пропустити навігацію по застосунках"]},"Skip to main content":{v:["Перейти одразу до головного вмісту"]}}},{l:"uz",t:{"Keyboard navigation help":{v:["Klaviatura navigatsiyasi yordami"]},"Skip to app navigation":{v:["Ilova navigatsiyasiga oʻtish"]},"Skip to main content":{v:["Asosiy tarkibga o'tish"]}}},{l:"zh-CN",t:{"Keyboard navigation help":{v:["键盘导航栏帮助"]},"Skip to app navigation":{v:["跳转至应用程序导航页"]},"Skip to main content":{v:["跳转至主要内容"]}}},{l:"zh-HK",t:{"Keyboard navigation help":{v:["鍵盤導航幫助"]},"Skip to app navigation":{v:["跳至應用程式導航"]},"Skip to main content":{v:["跳至主要內容"]}}},{l:"zh-TW",t:{"Keyboard navigation help":{v:["鍵盤導航說明"]},"Skip to app navigation":{v:["略過應用程式導覽"]},"Skip to main content":{v:["跳至主要內容"]}}}],Wh=[{l:"ar",t:{"Loading …":{v:["التحميل جارٍ ..."]}}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Loading …":{v:["Načítání …"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Loading …":{v:["Indlæser ..."]}}},{l:"de",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"de-DE",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"el",t:{"Loading …":{v:["Φόρτωση  …"]}}},{l:"en-GB",t:{"Loading …":{v:["Loading …"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{"Loading …":{v:["Laadin…"]}}},{l:"eu",t:{}},{l:"fa",t:{"Loading …":{v:["در حال بارگذاری ..."]}}},{l:"fi",t:{"Loading …":{v:["Ladataan ..."]}}},{l:"fr",t:{"Loading …":{v:["Chargement..."]}}},{l:"ga",t:{"Loading …":{v:["Ag lódáil …"]}}},{l:"gl",t:{"Loading …":{v:["Cargando…"]}}},{l:"he",t:{}},{l:"hr",t:{"Loading …":{v:["Učitavanje …"]}}},{l:"hu",t:{"Loading …":{v:["Betöltés…"]}}},{l:"id",t:{"Loading …":{v:["Memuat …"]}}},{l:"is",t:{"Loading …":{v:["Hleð inn …"]}}},{l:"it",t:{}},{l:"ja",t:{"Loading …":{v:["読み込み中 …"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Loading …":{v:["로딩 중 ..."]}}},{l:"lo",t:{"Loading …":{v:["ກຳລັງໂຫຼດ…"]}}},{l:"lt-LT",t:{"Loading …":{v:["Įkeliama …"]}}},{l:"lv",t:{}},{l:"mk",t:{"Loading …":{v:["Вчитување …"]}}},{l:"mn",t:{"Loading …":{v:["Ачаалж байна …"]}}},{l:"my",t:{}},{l:"nb",t:{"Loading …":{v:["Laster inn..."]}}},{l:"nl",t:{"Loading …":{v:["Laden …"]}}},{l:"oc",t:{}},{l:"pl",t:{"Loading …":{v:["Wczytywanie…"]}}},{l:"pt-BR",t:{"Loading …":{v:["Carregando …"]}}},{l:"pt-PT",t:{"Loading …":{v:["A carregar..."]}}},{l:"ro",t:{}},{l:"ru",t:{"Loading …":{v:["Загрузка …"]}}},{l:"sk",t:{"Loading …":{v:["Nahrávam ..."]}}},{l:"sl",t:{}},{l:"sr",t:{"Loading …":{v:["Учитава се…"]}}},{l:"sv",t:{"Loading …":{v:["Laddar …"]}}},{l:"tr",t:{"Loading …":{v:["Yükleniyor…"]}}},{l:"uk",t:{"Loading …":{v:["Завантаження …"]}}},{l:"uz",t:{"Loading …":{v:["Yuklanmoqda..."]}}},{l:"zh-CN",t:{"Loading …":{v:["加载中..."]}}},{l:"zh-HK",t:{"Loading …":{v:["加載中 …"]}}},{l:"zh-TW",t:{"Loading …":{v:["載入中......"]}}}],Hh=[{l:"ar",t:{Next:{v:["التالي"]},"Pause slideshow":{v:["تجميد عرض الشرائح"]},Previous:{v:["السابق"]},"Start slideshow":{v:["إبدإ العرض"]}}},{l:"ast",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Posar la presentación de diapositives"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Aniciar la presentación de diapositives"]}}},{l:"br",t:{Next:{v:["Da heul"]},"Pause slideshow":{v:["Arsav an diaporama"]},Previous:{v:["A-raok"]},"Start slideshow":{v:["Kregiñ an diaporama"]}}},{l:"ca",t:{Next:{v:["Següent"]},"Pause slideshow":{v:["Atura la presentació"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Inicia la presentació"]}}},{l:"cs",t:{Next:{v:["Následující"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["Předchozí"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"cs-CZ",t:{Next:{v:["Následující"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["Předchozí"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"da",t:{Next:{v:["Videre"]},"Pause slideshow":{v:["Suspender fremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start fremvisning"]}}},{l:"de",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"de-DE",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"el",t:{Next:{v:["Επόμενο"]},"Pause slideshow":{v:["Παύση προβολής διαφανειών"]},Previous:{v:["Προηγούμενο"]},"Start slideshow":{v:["Έναρξη προβολής διαφανειών"]}}},{l:"en-GB",t:{Next:{v:["Next"]},"Pause slideshow":{v:["Pause slideshow"]},Previous:{v:["Previous"]},"Start slideshow":{v:["Start slideshow"]}}},{l:"eo",t:{Next:{v:["Sekva"]},"Pause slideshow":{v:["Payzi bildprezenton"]},Previous:{v:["Antaŭa"]},"Start slideshow":{v:["Komenci bildprezenton"]}}},{l:"es",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-AR",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-EC",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"es-MX",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"et-EE",t:{Next:{v:["Edasi"]},"Pause slideshow":{v:["Slaidiesitluse paus"]},Previous:{v:["Eelmine"]},"Start slideshow":{v:["Alusta slaidiesitust"]}}},{l:"eu",t:{Next:{v:["Hurrengoa"]},"Pause slideshow":{v:["Pausatu diaporama"]},Previous:{v:["Aurrekoa"]},"Start slideshow":{v:["Hasi diaporama"]}}},{l:"fa",t:{Next:{v:["بعدی"]},"Pause slideshow":{v:["توقف نمایش اسلاید"]},Previous:{v:["قبلی"]},"Start slideshow":{v:["شروع نمایش اسلاید"]}}},{l:"fi",t:{Next:{v:["Seuraava"]},"Pause slideshow":{v:["Keskeytä diaesitys"]},Previous:{v:["Edellinen"]},"Start slideshow":{v:["Aloita diaesitys"]}}},{l:"fr",t:{Next:{v:["Suivant"]},"Pause slideshow":{v:["Mettre le diaporama en pause"]},Previous:{v:["Précédent"]},"Start slideshow":{v:["Démarrer le diaporama"]}}},{l:"ga",t:{Next:{v:["Ar aghaidh"]},"Pause slideshow":{v:["Cuir taispeántas sleamhnán ar sos"]},Previous:{v:["Roimhe Seo"]},"Start slideshow":{v:["Tosaigh taispeántas sleamhnán"]}}},{l:"gl",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar o diaporama"]},Previous:{v:["Anterir"]},"Start slideshow":{v:["Iniciar o diaporama"]}}},{l:"he",t:{Next:{v:["הבא"]},"Pause slideshow":{v:["השהיית מצגת"]},Previous:{v:["הקודם"]},"Start slideshow":{v:["התחלת המצגת"]}}},{l:"hr",t:{Next:{v:["Sljedeće"]},"Pause slideshow":{v:["Pauziraj dijaprojekciju"]},Previous:{v:["Prethodno"]},"Start slideshow":{v:["Pokreni dijaprojekciju"]}}},{l:"hu",t:{Next:{v:["Következő"]},"Pause slideshow":{v:["Diavetítés szüneteltetése"]},Previous:{v:["Előző"]},"Start slideshow":{v:["Diavetítés indítása"]}}},{l:"id",t:{Next:{v:["Selanjutnya"]},"Pause slideshow":{v:["Jeda tayangan slide"]},Previous:{v:["Sebelumnya"]},"Start slideshow":{v:["Mulai salindia"]}}},{l:"is",t:{Next:{v:["Næsta"]},"Pause slideshow":{v:["Gera hlé á skyggnusýningu"]},Previous:{v:["Fyrri"]},"Start slideshow":{v:["Byrja skyggnusýningu"]}}},{l:"it",t:{Next:{v:["Successivo"]},"Pause slideshow":{v:["Presentazione in pausa"]},Previous:{v:["Precedente"]},"Start slideshow":{v:["Avvia presentazione"]}}},{l:"ja",t:{Next:{v:["次"]},"Pause slideshow":{v:["スライドショーを一時停止"]},Previous:{v:["前"]},"Start slideshow":{v:["スライドショーを開始"]}}},{l:"ja-JP",t:{Next:{v:["次"]},"Pause slideshow":{v:["スライドショーを一時停止"]},Previous:{v:["前"]},"Start slideshow":{v:["スライドショーを開始"]}}},{l:"ko",t:{Next:{v:["다음"]},"Pause slideshow":{v:["슬라이드쇼 일시정지"]},Previous:{v:["이전"]},"Start slideshow":{v:["슬라이드쇼 시작"]}}},{l:"lo",t:{Next:{v:["ຕໍ່ໄປ"]},"Pause slideshow":{v:["ຢຸດສະໄລ້ໂຊຊົ່ວຄາວ"]},Previous:{v:["ກ່ອນໜ້າ"]},"Start slideshow":{v:["ເລີ່ມສະໄລ້ໂຊ"]}}},{l:"lt-LT",t:{Next:{v:["Kitas"]},"Pause slideshow":{v:["Pristabdyti skaidrių rodymą"]},Previous:{v:["Ankstesnis"]},"Start slideshow":{v:["Pradėti skaidrių rodymą"]}}},{l:"lv",t:{Next:{v:["Nākamais"]},"Pause slideshow":{v:["Pauzēt slaidrādi"]},Previous:{v:["Iepriekšējais"]},"Start slideshow":{v:["Sākt slaidrādi"]}}},{l:"mk",t:{Next:{v:["Следно"]},"Pause slideshow":{v:["Пузирај слајдшоу"]},Previous:{v:["Предходно"]},"Start slideshow":{v:["Стартувај слајдшоу"]}}},{l:"mn",t:{Next:{v:["Дараах"]},"Pause slideshow":{v:["Слайд шоуг түр зогсоох"]},Previous:{v:["Өмнөх"]},"Start slideshow":{v:["Слайд шоуг эхлүүлэх"]}}},{l:"my",t:{Next:{v:["နောက်သို့ဆက်ရန်"]},"Pause slideshow":{v:["စလိုက်ရှိုး ခေတ္တရပ်ရန်"]},Previous:{v:["ယခင်"]},"Start slideshow":{v:["စလိုက်ရှိုးအား စတင်ရန်"]}}},{l:"nb",t:{Next:{v:["Neste"]},"Pause slideshow":{v:["Pause lysbildefremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start lysbildefremvisning"]}}},{l:"nl",t:{Next:{v:["Volgende"]},"Pause slideshow":{v:["Diavoorstelling pauzeren"]},Previous:{v:["Vorige"]},"Start slideshow":{v:["Diavoorstelling starten"]}}},{l:"oc",t:{Next:{v:["Seguent"]},"Pause slideshow":{v:["Metre en pausa lo diaporama"]},Previous:{v:["Precedent"]},"Start slideshow":{v:["Lançar lo diaporama"]}}},{l:"pl",t:{Next:{v:["Następny"]},"Pause slideshow":{v:["Wstrzymaj pokaz slajdów"]},Previous:{v:["Poprzedni"]},"Start slideshow":{v:["Rozpocznij pokaz slajdów"]}}},{l:"pt-BR",t:{Next:{v:["Próximo"]},"Pause slideshow":{v:["Pausar apresentação de slides"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar apresentação de slides"]}}},{l:"pt-PT",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar diaporama"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar diaporama"]}}},{l:"ro",t:{Next:{v:["Următorul"]},"Pause slideshow":{v:["Pauză prezentare de diapozitive"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Începeți prezentarea de diapozitive"]}}},{l:"ru",t:{Next:{v:["Следующее"]},"Pause slideshow":{v:["Приостановить показ слйдов"]},Previous:{v:["Предыдущее"]},"Start slideshow":{v:["Начать показ слайдов"]}}},{l:"sk",t:{Next:{v:["Ďalej"]},"Pause slideshow":{v:["Pozastaviť prezentáciu"]},Previous:{v:["Predchádzajúce"]},"Start slideshow":{v:["Začať prezentáciu"]}}},{l:"sl",t:{Next:{v:["Naslednji"]},"Pause slideshow":{v:["Ustavi predstavitev"]},Previous:{v:["Predhodni"]},"Start slideshow":{v:["Začni predstavitev"]}}},{l:"sr",t:{Next:{v:["Следеће"]},"Pause slideshow":{v:["Паузирај слајд шоу"]},Previous:{v:["Претходно"]},"Start slideshow":{v:["Покрени слајд шоу"]}}},{l:"sv",t:{Next:{v:["Nästa"]},"Pause slideshow":{v:["Pausa bildspelet"]},Previous:{v:["Föregående"]},"Start slideshow":{v:["Starta bildspelet"]}}},{l:"tr",t:{Next:{v:["Sonraki"]},"Pause slideshow":{v:["Slayt sunumunu duraklat"]},Previous:{v:["Önceki"]},"Start slideshow":{v:["Slayt sunumunu başlat"]}}},{l:"uk",t:{Next:{v:["Вперед"]},"Pause slideshow":{v:["Пауза у показі слайдів"]},Previous:{v:["Назад"]},"Start slideshow":{v:["Почати показ слайдів"]}}},{l:"uz",t:{Next:{v:["Keyingi"]},"Pause slideshow":{v:["Slayd-shouni to'xtatib turish"]},Previous:{v:["Oldingi"]},"Start slideshow":{v:["Slayd-shouni boshlash"]}}},{l:"zh-CN",t:{Next:{v:["下一个"]},"Pause slideshow":{v:["暂停幻灯片"]},Previous:{v:["上一个"]},"Start slideshow":{v:["开始幻灯片"]}}},{l:"zh-HK",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["暫停幻燈片"]},Previous:{v:["上一個"]},"Start slideshow":{v:["開始幻燈片"]}}},{l:"zh-TW",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["暫停幻燈片"]},Previous:{v:["上一個"]},"Start slideshow":{v:["開始幻燈片"]}}}],ey=[{l:"ar",t:{}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Please choose a date":{v:["Zvolte datum"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Please choose a date":{v:["Vælg en dato"]}}},{l:"de",t:{"Please choose a date":{v:["Bitte ein Datum wählen"]}}},{l:"de-DE",t:{"Please choose a date":{v:["Bitte ein Datum wählen"]}}},{l:"el",t:{"Please choose a date":{v:["Παρακαλώ επιλέξτε μια ημερομηνία"]}}},{l:"en-GB",t:{"Please choose a date":{v:["Please choose a date"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{"Please choose a date":{v:["Palun vali kuupäev"]}}},{l:"eu",t:{}},{l:"fa",t:{}},{l:"fi",t:{}},{l:"fr",t:{"Please choose a date":{v:["Veuillez choisir une date"]}}},{l:"ga",t:{"Please choose a date":{v:["Roghnaigh dáta le do thoil"]}}},{l:"gl",t:{"Please choose a date":{v:["Escolla unha data"]}}},{l:"he",t:{}},{l:"hr",t:{"Please choose a date":{v:["Molimo odaberite datum"]}}},{l:"hu",t:{"Please choose a date":{v:["Válasszon egy dátumot"]}}},{l:"id",t:{"Please choose a date":{v:["Silakan pilih tanggal"]}}},{l:"is",t:{}},{l:"it",t:{}},{l:"ja",t:{"Please choose a date":{v:["日付を選択してください"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Please choose a date":{v:["날짜를 선택해주세요"]}}},{l:"lo",t:{"Please choose a date":{v:["ກະລຸນາເລືອກວັນທີ"]}}},{l:"lt-LT",t:{"Please choose a date":{v:["Pasirinkite datą"]}}},{l:"lv",t:{}},{l:"mk",t:{"Please choose a date":{v:["Избери датум"]}}},{l:"mn",t:{"Please choose a date":{v:["Огноо сонгоно уу"]}}},{l:"my",t:{}},{l:"nb",t:{}},{l:"nl",t:{"Please choose a date":{v:["Kies een datum"]}}},{l:"oc",t:{}},{l:"pl",t:{}},{l:"pt-BR",t:{"Please choose a date":{v:["Por favor, escolha uma data"]}}},{l:"pt-PT",t:{"Please choose a date":{v:["Por favor, escolha uma data"]}}},{l:"ro",t:{}},{l:"ru",t:{"Please choose a date":{v:["Выберите дату"]}}},{l:"sk",t:{}},{l:"sl",t:{}},{l:"sr",t:{"Please choose a date":{v:["Молимо вас да изаберете датум"]}}},{l:"sv",t:{"Please choose a date":{v:["Välj ett datum"]}}},{l:"tr",t:{"Please choose a date":{v:["Lütfen bir tarih seçin"]}}},{l:"uk",t:{"Please choose a date":{v:["Виберіть дату"]}}},{l:"uz",t:{"Please choose a date":{v:["Iltimos, sanani tanlang"]}}},{l:"zh-CN",t:{}},{l:"zh-HK",t:{"Please choose a date":{v:["請選擇日期"]}}},{l:"zh-TW",t:{"Please choose a date":{v:["請選擇日期"]}}}],uy=[{l:"ar",t:{"Undo changes":{v:["تراجَع عن التغييرات"]}}},{l:"ast",t:{"Undo changes":{v:["Desfacer los cambeos"]}}},{l:"br",t:{}},{l:"ca",t:{"Undo changes":{v:["Desfés els canvis"]}}},{l:"cs",t:{"Undo changes":{v:["Vzít změny zpět"]}}},{l:"cs-CZ",t:{"Undo changes":{v:["Vzít změny zpět"]}}},{l:"da",t:{"Undo changes":{v:["Fortryd ændringer"]}}},{l:"de",t:{"Undo changes":{v:["Änderungen rückgängig machen"]}}},{l:"de-DE",t:{"Undo changes":{v:["Änderungen rückgängig machen"]}}},{l:"el",t:{"Undo changes":{v:["Αναίρεση Αλλαγών"]}}},{l:"en-GB",t:{"Undo changes":{v:["Undo changes"]}}},{l:"eo",t:{}},{l:"es",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-AR",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-EC",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"es-MX",t:{"Undo changes":{v:["Deshacer cambios"]}}},{l:"et-EE",t:{"Undo changes":{v:["Pööra muudatused tagasi"]}}},{l:"eu",t:{"Undo changes":{v:["Aldaketak desegin"]}}},{l:"fa",t:{"Undo changes":{v:["لغو تغییرات"]}}},{l:"fi",t:{"Undo changes":{v:["Kumoa muutokset"]}}},{l:"fr",t:{"Undo changes":{v:["Annuler les changements"]}}},{l:"ga",t:{"Undo changes":{v:["Cealaigh athruithe"]}}},{l:"gl",t:{"Undo changes":{v:["Desfacer os cambios"]}}},{l:"he",t:{"Undo changes":{v:["ביטול שינויים"]}}},{l:"hr",t:{"Undo changes":{v:["Poništi promjene"]}}},{l:"hu",t:{"Undo changes":{v:["Változtatások visszavonása"]}}},{l:"id",t:{"Undo changes":{v:["Urungkan perubahan"]}}},{l:"is",t:{"Undo changes":{v:["Afturkalla breytingar"]}}},{l:"it",t:{"Undo changes":{v:["Cancella i cambiamenti"]}}},{l:"ja",t:{"Undo changes":{v:["変更を取り消し"]}}},{l:"ja-JP",t:{"Undo changes":{v:["変更を取り消し"]}}},{l:"ko",t:{"Undo changes":{v:["변경 되돌리기"]}}},{l:"lo",t:{"Undo changes":{v:["ຍ້ອນຄືນການປ່ຽນແປງ"]}}},{l:"lt-LT",t:{"Undo changes":{v:["Atšaukti pakeitimus"]}}},{l:"lv",t:{}},{l:"mk",t:{"Undo changes":{v:["Врати ги промените"]}}},{l:"mn",t:{"Undo changes":{v:["Өөрчлөлтийг буцаах"]}}},{l:"my",t:{}},{l:"nb",t:{"Undo changes":{v:["Tilbakestill endringer"]}}},{l:"nl",t:{"Undo changes":{v:["Wijzigingen ongedaan maken"]}}},{l:"oc",t:{}},{l:"pl",t:{"Undo changes":{v:["Cofnij zmiany"]}}},{l:"pt-BR",t:{"Undo changes":{v:["Desfazer modificações"]}}},{l:"pt-PT",t:{"Undo changes":{v:["Anular alterações"]}}},{l:"ro",t:{"Undo changes":{v:["Anularea modificărilor"]}}},{l:"ru",t:{"Undo changes":{v:["Отменить изменения"]}}},{l:"sk",t:{"Undo changes":{v:["Vrátiť zmeny"]}}},{l:"sl",t:{"Undo changes":{v:["Razveljavi spremembe"]}}},{l:"sr",t:{"Undo changes":{v:["Поништи измене"]}}},{l:"sv",t:{"Undo changes":{v:["Ångra ändringar"]}}},{l:"tr",t:{"Undo changes":{v:["Değişiklikleri geri al"]}}},{l:"uk",t:{"Undo changes":{v:["Скасувати зміни"]}}},{l:"uz",t:{"Undo changes":{v:["O'zgarishlarni bekor qilish"]}}},{l:"zh-CN",t:{"Undo changes":{v:["撤销更改"]}}},{l:"zh-HK",t:{"Undo changes":{v:["取消更改"]}}},{l:"zh-TW",t:{"Undo changes":{v:["還原變更"]}}}],ty=[{l:"ar",t:{"User status: {status}":{v:["حالة المستخدِم: {status}"]}}},{l:"ast",t:{"User status: {status}":{v:["Estáu del usuariu: {status}"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"User status: {status}":{v:["Stav uživatele: {status}"]}}},{l:"cs-CZ",t:{"User status: {status}":{v:["Stav uživatele: {status}"]}}},{l:"da",t:{"User status: {status}":{v:["Brugerstatus: {status}"]}}},{l:"de",t:{"User status: {status}":{v:["Benutzerstatus: {status}"]}}},{l:"de-DE",t:{"User status: {status}":{v:["Benutzerstatus: {status}"]}}},{l:"el",t:{"User status: {status}":{v:["Κατάσταση χρήστη: {status}"]}}},{l:"en-GB",t:{"User status: {status}":{v:["User status: {status}"]}}},{l:"eo",t:{}},{l:"es",t:{"User status: {status}":{v:["Estatus del usuario: {status}"]}}},{l:"es-AR",t:{"User status: {status}":{v:["Estado del usuario: {status}"]}}},{l:"es-EC",t:{}},{l:"es-MX",t:{"User status: {status}":{v:["Estado del usuario: {status}"]}}},{l:"et-EE",t:{"User status: {status}":{v:["Kasutaja olek: {status}"]}}},{l:"eu",t:{}},{l:"fa",t:{"User status: {status}":{v:["وضعیت کاربر: {status}"]}}},{l:"fi",t:{"User status: {status}":{v:["Käyttäjän tila: {status}"]}}},{l:"fr",t:{"User status: {status}":{v:["Statut de l'utilisateur : {status}"]}}},{l:"ga",t:{"User status: {status}":{v:["Stádas úsáideora: {status}"]}}},{l:"gl",t:{"User status: {status}":{v:["Estado do usuario: {status}"]}}},{l:"he",t:{}},{l:"hr",t:{"User status: {status}":{v:["Status korisnika: {status}"]}}},{l:"hu",t:{"User status: {status}":{v:["Felhasználó állapota: {status}"]}}},{l:"id",t:{"User status: {status}":{v:["Status pengguna: {status}"]}}},{l:"is",t:{"User status: {status}":{v:["Staða notanda: {status}"]}}},{l:"it",t:{"User status: {status}":{v:["Stato dell'utente: {status}"]}}},{l:"ja",t:{"User status: {status}":{v:["ユーザのステータス: {status}"]}}},{l:"ja-JP",t:{"User status: {status}":{v:["ユーザのステータス: {status}"]}}},{l:"ko",t:{"User status: {status}":{v:["사용자 상태: {status}"]}}},{l:"lo",t:{"User status: {status}":{v:["ສະຖານະຜູ້ໃຊ້: {status}"]}}},{l:"lt-LT",t:{"User status: {status}":{v:["Naudotojo būsena: {status}"]}}},{l:"lv",t:{}},{l:"mk",t:{"User status: {status}":{v:["Статус: {status}"]}}},{l:"mn",t:{"User status: {status}":{v:["Хэрэглэгчийн төлөв: {status}"]}}},{l:"my",t:{}},{l:"nb",t:{"User status: {status}":{v:["Brukerstatus: {status}"]}}},{l:"nl",t:{"User status: {status}":{v:["Gebruikersstatus: {status}"]}}},{l:"oc",t:{}},{l:"pl",t:{"User status: {status}":{v:["Status użytkownika: {status}"]}}},{l:"pt-BR",t:{"User status: {status}":{v:["Status do usuário: {status}"]}}},{l:"pt-PT",t:{"User status: {status}":{v:["Estado do utilizador: {status}"]}}},{l:"ro",t:{"User status: {status}":{v:["Status utilizator: {status}"]}}},{l:"ru",t:{"User status: {status}":{v:["Статус пользователя: {status}"]}}},{l:"sk",t:{"User status: {status}":{v:["Stav užívateľa: {status}"]}}},{l:"sl",t:{}},{l:"sr",t:{"User status: {status}":{v:["Статус корисника: {status}"]}}},{l:"sv",t:{"User status: {status}":{v:["Användarstatus: {status}"]}}},{l:"tr",t:{"User status: {status}":{v:["Kullanıcı durumu: {status}"]}}},{l:"uk",t:{"User status: {status}":{v:["Статус користувача: {status}"]}}},{l:"uz",t:{"User status: {status}":{v:["Foydalanuvchi holati: {status}"]}}},{l:"zh-CN",t:{"User status: {status}":{v:["用户状态:{status}"]}}},{l:"zh-HK",t:{"User status: {status}":{v:["用戶狀態:{status}"]}}},{l:"zh-TW",t:{"User status: {status}":{v:["使用者狀態:{status}"]}}}];function Gh(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function sy(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Gh(e.default)}const Kh=Object.assign;function ny(e,u){const t={};for(const s in u){const n=u[s];t[s]=qh(n)?n.map(e):e(n)}return t}const iy=()=>{},qh=Array.isArray;function oy(e,u){const t={};for(const s in e)t[s]=s in u?u[s]:e[s];return t}const Km=Symbol("");function ry(e,u){return Kh(new Error,{type:e,[Km]:!0},u)}function ay(e,u){return e instanceof Error&&Km in e&&(u==null||!!(e.type&u))}const ly=Symbol(""),dy=Symbol(""),Yh=Symbol(""),my=Symbol(""),cy=Symbol("");var qm={},$i={};$i.byteLength=Jh,$i.toByteArray=ev,$i.fromByteArray=sv;for(var gt=[],Vu=[],Zh=typeof Uint8Array<"u"?Uint8Array:Array,Io="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$s=0,Xh=Io.length;$s0)throw new Error("Invalid string. Length must be a multiple of 4");var t=e.indexOf("=");t===-1&&(t=u);var s=t===u?0:4-t%4;return[t,s]}function Jh(e){var u=Ym(e),t=u[0],s=u[1];return(t+s)*3/4-s}function Qh(e,u,t){return(u+t)*3/4-t}function ev(e){var u,t=Ym(e),s=t[0],n=t[1],i=new Zh(Qh(e,s,n)),o=0,r=n>0?s-4:s,a;for(a=0;a>16&255,i[o++]=u>>8&255,i[o++]=u&255;return n===2&&(u=Vu[e.charCodeAt(a)]<<2|Vu[e.charCodeAt(a+1)]>>4,i[o++]=u&255),n===1&&(u=Vu[e.charCodeAt(a)]<<10|Vu[e.charCodeAt(a+1)]<<4|Vu[e.charCodeAt(a+2)]>>2,i[o++]=u>>8&255,i[o++]=u&255),i}function uv(e){return gt[e>>18&63]+gt[e>>12&63]+gt[e>>6&63]+gt[e&63]}function tv(e,u,t){for(var s,n=[],i=u;ir?r:o+i));return s===1?(u=e[t-1],n.push(gt[u>>2]+gt[u<<4&63]+"==")):s===2&&(u=(e[t-2]<<8)+e[t-1],n.push(gt[u>>10]+gt[u>>4&63]+gt[u<<2&63]+"=")),n.join("")}var hr={};hr.read=function(e,u,t,s,n){var i,o,r=n*8-s-1,a=(1<>1,l=-7,g=t?n-1:0,p=t?-1:1,h=e[u+g];for(g+=p,i=h&(1<<-l)-1,h>>=-l,l+=r;l>0;i=i*256+e[u+g],g+=p,l-=8);for(o=i&(1<<-l)-1,i>>=-l,l+=s;l>0;o=o*256+e[u+g],g+=p,l-=8);if(i===0)i=1-m;else{if(i===a)return o?NaN:(h?-1:1)*(1/0);o=o+Math.pow(2,s),i=i-m}return(h?-1:1)*o*Math.pow(2,i-s)},hr.write=function(e,u,t,s,n,i){var o,r,a,m=i*8-n-1,l=(1<>1,p=n===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=s?0:i-1,y=s?1:-1,E=u<0||u===0&&1/u<0?1:0;for(u=Math.abs(u),isNaN(u)||u===1/0?(r=isNaN(u)?1:0,o=l):(o=Math.floor(Math.log(u)/Math.LN2),u*(a=Math.pow(2,-o))<1&&(o--,a*=2),o+g>=1?u+=p/a:u+=p*Math.pow(2,1-g),u*a>=2&&(o++,a/=2),o+g>=l?(r=0,o=l):o+g>=1?(r=(u*a-1)*Math.pow(2,n),o=o+g):(r=u*Math.pow(2,g-1)*Math.pow(2,n),o=0));n>=8;e[t+h]=r&255,h+=y,r/=256,n-=8);for(o=o<0;e[t+h]=o&255,h+=y,o/=256,m-=8);e[t+h-y]|=E*128};(function(e){const u=$i,t=hr,s=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=l,e.SlowBuffer=K,e.INSPECT_MAX_BYTES=50;const n=2147483647;e.kMaxLength=n;const{Uint8Array:i,ArrayBuffer:o,SharedArrayBuffer:r}=globalThis;l.TYPED_ARRAY_SUPPORT=a(),!l.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{const d=new i(1),c={foo:function(){return 42}};return Object.setPrototypeOf(c,i.prototype),Object.setPrototypeOf(d,c),d.foo()===42}catch{return!1}}Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}});function m(d){if(d>n)throw new RangeError('The value "'+d+'" is invalid for option "size"');const c=new i(d);return Object.setPrototypeOf(c,l.prototype),c}function l(d,c,f){if(typeof d=="number"){if(typeof c=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(d)}return g(d,c,f)}l.poolSize=8192;function g(d,c,f){if(typeof d=="string")return E(d,c);if(o.isView(d))return B(d);if(d==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof d);if(ge(d,o)||d&&ge(d.buffer,o)||typeof r<"u"&&(ge(d,r)||d&&ge(d.buffer,r)))return A(d,c,f);if(typeof d=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const x=d.valueOf&&d.valueOf();if(x!=null&&x!==d)return l.from(x,c,f);const k=O(d);if(k)return k;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof d[Symbol.toPrimitive]=="function")return l.from(d[Symbol.toPrimitive]("string"),c,f);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof d)}l.from=function(d,c,f){return g(d,c,f)},Object.setPrototypeOf(l.prototype,i.prototype),Object.setPrototypeOf(l,i);function p(d){if(typeof d!="number")throw new TypeError('"size" argument must be of type number');if(d<0)throw new RangeError('The value "'+d+'" is invalid for option "size"')}function h(d,c,f){return p(d),d<=0?m(d):c!==void 0?typeof f=="string"?m(d).fill(c,f):m(d).fill(c):m(d)}l.alloc=function(d,c,f){return h(d,c,f)};function y(d){return p(d),m(d<0?0:N(d)|0)}l.allocUnsafe=function(d){return y(d)},l.allocUnsafeSlow=function(d){return y(d)};function E(d,c){if((typeof c!="string"||c==="")&&(c="utf8"),!l.isEncoding(c))throw new TypeError("Unknown encoding: "+c);const f=I(d,c)|0;let x=m(f);const k=x.write(d,c);return k!==f&&(x=x.slice(0,k)),x}function F(d){const c=d.length<0?0:N(d.length)|0,f=m(c);for(let x=0;x=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return d|0}function K(d){return+d!=d&&(d=0),l.alloc(+d)}l.isBuffer=function(d){return d!=null&&d._isBuffer===!0&&d!==l.prototype},l.compare=function(d,c){if(ge(d,i)&&(d=l.from(d,d.offset,d.byteLength)),ge(c,i)&&(c=l.from(c,c.offset,c.byteLength)),!l.isBuffer(d)||!l.isBuffer(c))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(d===c)return 0;let f=d.length,x=c.length;for(let k=0,P=Math.min(f,x);kx.length?(l.isBuffer(P)||(P=l.from(P)),P.copy(x,k)):i.prototype.set.call(x,P,k);else if(l.isBuffer(P))P.copy(x,k);else throw new TypeError('"list" argument must be an Array of Buffers');k+=P.length}return x};function I(d,c){if(l.isBuffer(d))return d.length;if(o.isView(d)||ge(d,o))return d.byteLength;if(typeof d!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof d);const f=d.length,x=arguments.length>2&&arguments[2]===!0;if(!x&&f===0)return 0;let k=!1;for(;;)switch(c){case"ascii":case"latin1":case"binary":return f;case"utf8":case"utf-8":return j(d).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return f*2;case"hex":return f>>>1;case"base64":return oe(d).length;default:if(k)return x?-1:j(d).length;c=(""+c).toLowerCase(),k=!0}}l.byteLength=I;function Y(d,c,f){let x=!1;if((c===void 0||c<0)&&(c=0),c>this.length||((f===void 0||f>this.length)&&(f=this.length),f<=0)||(f>>>=0,c>>>=0,f<=c))return"";for(d||(d="utf8");;)switch(d){case"hex":return xe(this,c,f);case"utf8":case"utf-8":return Q(this,c,f);case"ascii":return le(this,c,f);case"latin1":case"binary":return ie(this,c,f);case"base64":return Z(this,c,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return He(this,c,f);default:if(x)throw new TypeError("Unknown encoding: "+d);d=(d+"").toLowerCase(),x=!0}}l.prototype._isBuffer=!0;function se(d,c,f){const x=d[c];d[c]=d[f],d[f]=x}l.prototype.swap16=function(){const d=this.length;if(d%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let c=0;cc&&(d+=" ... "),""},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(d,c,f,x,k){if(ge(d,i)&&(d=l.from(d,d.offset,d.byteLength)),!l.isBuffer(d))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof d);if(c===void 0&&(c=0),f===void 0&&(f=d?d.length:0),x===void 0&&(x=0),k===void 0&&(k=this.length),c<0||f>d.length||x<0||k>this.length)throw new RangeError("out of range index");if(x>=k&&c>=f)return 0;if(x>=k)return-1;if(c>=f)return 1;if(c>>>=0,f>>>=0,x>>>=0,k>>>=0,this===d)return 0;let P=k-x,q=f-c;const Oe=Math.min(P,q),Ke=this.slice(x,k),ye=d.slice(c,f);for(let Re=0;Re2147483647?f=2147483647:f<-2147483648&&(f=-2147483648),f=+f,Ae(f)&&(f=k?0:d.length-1),f<0&&(f=d.length+f),f>=d.length){if(k)return-1;f=d.length-1}else if(f<0)if(k)f=0;else return-1;if(typeof c=="string"&&(c=l.from(c,x)),l.isBuffer(c))return c.length===0?-1:M(d,c,f,x,k);if(typeof c=="number")return c=c&255,typeof i.prototype.indexOf=="function"?k?i.prototype.indexOf.call(d,c,f):i.prototype.lastIndexOf.call(d,c,f):M(d,[c],f,x,k);throw new TypeError("val must be string, number or Buffer")}function M(d,c,f,x,k){let P=1,q=d.length,Oe=c.length;if(x!==void 0&&(x=String(x).toLowerCase(),x==="ucs2"||x==="ucs-2"||x==="utf16le"||x==="utf-16le")){if(d.length<2||c.length<2)return-1;P=2,q/=2,Oe/=2,f/=2}function Ke(Re,Ye){return P===1?Re[Ye]:Re.readUInt16BE(Ye*P)}let ye;if(k){let Re=-1;for(ye=f;yeq&&(f=q-Oe),ye=f;ye>=0;ye--){let Re=!0;for(let Ye=0;Yek&&(x=k)):x=k;const P=c.length;x>P/2&&(x=P/2);let q;for(q=0;q>>0,isFinite(f)?(f=f>>>0,x===void 0&&(x="utf8")):(x=f,f=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const k=this.length-c;if((f===void 0||f>k)&&(f=k),d.length>0&&(f<0||c<0)||c>this.length)throw new RangeError("Attempt to write outside buffer bounds");x||(x="utf8");let P=!1;for(;;)switch(x){case"hex":return ne(this,d,c,f);case"utf8":case"utf-8":return b(this,d,c,f);case"ascii":case"latin1":case"binary":return T(this,d,c,f);case"base64":return V(this,d,c,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ue(this,d,c,f);default:if(P)throw new TypeError("Unknown encoding: "+x);x=(""+x).toLowerCase(),P=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Z(d,c,f){return c===0&&f===d.length?u.fromByteArray(d):u.fromByteArray(d.slice(c,f))}function Q(d,c,f){f=Math.min(d.length,f);const x=[];let k=c;for(;k239?4:P>223?3:P>191?2:1;if(k+Oe<=f){let Ke,ye,Re,Ye;switch(Oe){case 1:P<128&&(q=P);break;case 2:Ke=d[k+1],(Ke&192)===128&&(Ye=(P&31)<<6|Ke&63,Ye>127&&(q=Ye));break;case 3:Ke=d[k+1],ye=d[k+2],(Ke&192)===128&&(ye&192)===128&&(Ye=(P&15)<<12|(Ke&63)<<6|ye&63,Ye>2047&&(Ye<55296||Ye>57343)&&(q=Ye));break;case 4:Ke=d[k+1],ye=d[k+2],Re=d[k+3],(Ke&192)===128&&(ye&192)===128&&(Re&192)===128&&(Ye=(P&15)<<18|(Ke&63)<<12|(ye&63)<<6|Re&63,Ye>65535&&Ye<1114112&&(q=Ye))}}q===null?(q=65533,Oe=1):q>65535&&(q-=65536,x.push(q>>>10&1023|55296),q=56320|q&1023),x.push(q),k+=Oe}return de(x)}const te=4096;function de(d){const c=d.length;if(c<=te)return String.fromCharCode.apply(String,d);let f="",x=0;for(;xx)&&(f=x);let k="";for(let P=c;Pf&&(d=f),c<0?(c+=f,c<0&&(c=0)):c>f&&(c=f),cf)throw new RangeError("Trying to access beyond buffer length")}l.prototype.readUintLE=l.prototype.readUIntLE=function(d,c,f){d=d>>>0,c=c>>>0,f||Se(d,c,this.length);let x=this[d],k=1,P=0;for(;++P>>0,c=c>>>0,f||Se(d,c,this.length);let x=this[d+--c],k=1;for(;c>0&&(k*=256);)x+=this[d+--c]*k;return x},l.prototype.readUint8=l.prototype.readUInt8=function(d,c){return d=d>>>0,c||Se(d,1,this.length),this[d]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(d,c){return d=d>>>0,c||Se(d,2,this.length),this[d]|this[d+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(d,c){return d=d>>>0,c||Se(d,2,this.length),this[d]<<8|this[d+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(d,c){return d=d>>>0,c||Se(d,4,this.length),(this[d]|this[d+1]<<8|this[d+2]<<16)+this[d+3]*16777216},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(d,c){return d=d>>>0,c||Se(d,4,this.length),this[d]*16777216+(this[d+1]<<16|this[d+2]<<8|this[d+3])},l.prototype.readBigUInt64LE=De(function(d){d=d>>>0,S(d,"offset");const c=this[d],f=this[d+7];(c===void 0||f===void 0)&&W(d,this.length-8);const x=c+this[++d]*2**8+this[++d]*2**16+this[++d]*2**24,k=this[++d]+this[++d]*2**8+this[++d]*2**16+f*2**24;return BigInt(x)+(BigInt(k)<>>0,S(d,"offset");const c=this[d],f=this[d+7];(c===void 0||f===void 0)&&W(d,this.length-8);const x=c*2**24+this[++d]*2**16+this[++d]*2**8+this[++d],k=this[++d]*2**24+this[++d]*2**16+this[++d]*2**8+f;return(BigInt(x)<>>0,c=c>>>0,f||Se(d,c,this.length);let x=this[d],k=1,P=0;for(;++P=k&&(x-=Math.pow(2,8*c)),x},l.prototype.readIntBE=function(d,c,f){d=d>>>0,c=c>>>0,f||Se(d,c,this.length);let x=c,k=1,P=this[d+--x];for(;x>0&&(k*=256);)P+=this[d+--x]*k;return k*=128,P>=k&&(P-=Math.pow(2,8*c)),P},l.prototype.readInt8=function(d,c){return d=d>>>0,c||Se(d,1,this.length),this[d]&128?(255-this[d]+1)*-1:this[d]},l.prototype.readInt16LE=function(d,c){d=d>>>0,c||Se(d,2,this.length);const f=this[d]|this[d+1]<<8;return f&32768?f|4294901760:f},l.prototype.readInt16BE=function(d,c){d=d>>>0,c||Se(d,2,this.length);const f=this[d+1]|this[d]<<8;return f&32768?f|4294901760:f},l.prototype.readInt32LE=function(d,c){return d=d>>>0,c||Se(d,4,this.length),this[d]|this[d+1]<<8|this[d+2]<<16|this[d+3]<<24},l.prototype.readInt32BE=function(d,c){return d=d>>>0,c||Se(d,4,this.length),this[d]<<24|this[d+1]<<16|this[d+2]<<8|this[d+3]},l.prototype.readBigInt64LE=De(function(d){d=d>>>0,S(d,"offset");const c=this[d],f=this[d+7];(c===void 0||f===void 0)&&W(d,this.length-8);const x=this[d+4]+this[d+5]*2**8+this[d+6]*2**16+(f<<24);return(BigInt(x)<>>0,S(d,"offset");const c=this[d],f=this[d+7];(c===void 0||f===void 0)&&W(d,this.length-8);const x=(c<<24)+this[++d]*2**16+this[++d]*2**8+this[++d];return(BigInt(x)<>>0,c||Se(d,4,this.length),t.read(this,d,!0,23,4)},l.prototype.readFloatBE=function(d,c){return d=d>>>0,c||Se(d,4,this.length),t.read(this,d,!1,23,4)},l.prototype.readDoubleLE=function(d,c){return d=d>>>0,c||Se(d,8,this.length),t.read(this,d,!0,52,8)},l.prototype.readDoubleBE=function(d,c){return d=d>>>0,c||Se(d,8,this.length),t.read(this,d,!1,52,8)};function Pe(d,c,f,x,k,P){if(!l.isBuffer(d))throw new TypeError('"buffer" argument must be a Buffer instance');if(c>k||cd.length)throw new RangeError("Index out of range")}l.prototype.writeUintLE=l.prototype.writeUIntLE=function(d,c,f,x){if(d=+d,c=c>>>0,f=f>>>0,!x){const q=Math.pow(2,8*f)-1;Pe(this,d,c,f,q,0)}let k=1,P=0;for(this[c]=d&255;++P>>0,f=f>>>0,!x){const q=Math.pow(2,8*f)-1;Pe(this,d,c,f,q,0)}let k=f-1,P=1;for(this[c+k]=d&255;--k>=0&&(P*=256);)this[c+k]=d/P&255;return c+f},l.prototype.writeUint8=l.prototype.writeUInt8=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,1,255,0),this[c]=d&255,c+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,2,65535,0),this[c]=d&255,this[c+1]=d>>>8,c+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,2,65535,0),this[c]=d>>>8,this[c+1]=d&255,c+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,4,4294967295,0),this[c+3]=d>>>24,this[c+2]=d>>>16,this[c+1]=d>>>8,this[c]=d&255,c+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,4,4294967295,0),this[c]=d>>>24,this[c+1]=d>>>16,this[c+2]=d>>>8,this[c+3]=d&255,c+4};function pe(d,c,f,x,k){z(c,x,k,d,f,7);let P=Number(c&BigInt(4294967295));d[f++]=P,P=P>>8,d[f++]=P,P=P>>8,d[f++]=P,P=P>>8,d[f++]=P;let q=Number(c>>BigInt(32)&BigInt(4294967295));return d[f++]=q,q=q>>8,d[f++]=q,q=q>>8,d[f++]=q,q=q>>8,d[f++]=q,f}function $e(d,c,f,x,k){z(c,x,k,d,f,7);let P=Number(c&BigInt(4294967295));d[f+7]=P,P=P>>8,d[f+6]=P,P=P>>8,d[f+5]=P,P=P>>8,d[f+4]=P;let q=Number(c>>BigInt(32)&BigInt(4294967295));return d[f+3]=q,q=q>>8,d[f+2]=q,q=q>>8,d[f+1]=q,q=q>>8,d[f]=q,f+8}l.prototype.writeBigUInt64LE=De(function(d,c=0){return pe(this,d,c,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeBigUInt64BE=De(function(d,c=0){return $e(this,d,c,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeIntLE=function(d,c,f,x){if(d=+d,c=c>>>0,!x){const Oe=Math.pow(2,8*f-1);Pe(this,d,c,f,Oe-1,-Oe)}let k=0,P=1,q=0;for(this[c]=d&255;++k>0)-q&255;return c+f},l.prototype.writeIntBE=function(d,c,f,x){if(d=+d,c=c>>>0,!x){const Oe=Math.pow(2,8*f-1);Pe(this,d,c,f,Oe-1,-Oe)}let k=f-1,P=1,q=0;for(this[c+k]=d&255;--k>=0&&(P*=256);)d<0&&q===0&&this[c+k+1]!==0&&(q=1),this[c+k]=(d/P>>0)-q&255;return c+f},l.prototype.writeInt8=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,1,127,-128),d<0&&(d=255+d+1),this[c]=d&255,c+1},l.prototype.writeInt16LE=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,2,32767,-32768),this[c]=d&255,this[c+1]=d>>>8,c+2},l.prototype.writeInt16BE=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,2,32767,-32768),this[c]=d>>>8,this[c+1]=d&255,c+2},l.prototype.writeInt32LE=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,4,2147483647,-2147483648),this[c]=d&255,this[c+1]=d>>>8,this[c+2]=d>>>16,this[c+3]=d>>>24,c+4},l.prototype.writeInt32BE=function(d,c,f){return d=+d,c=c>>>0,f||Pe(this,d,c,4,2147483647,-2147483648),d<0&&(d=4294967295+d+1),this[c]=d>>>24,this[c+1]=d>>>16,this[c+2]=d>>>8,this[c+3]=d&255,c+4},l.prototype.writeBigInt64LE=De(function(d,c=0){return pe(this,d,c,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),l.prototype.writeBigInt64BE=De(function(d,c=0){return $e(this,d,c,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Nu(d,c,f,x,k,P){if(f+x>d.length)throw new RangeError("Index out of range");if(f<0)throw new RangeError("Index out of range")}function tt(d,c,f,x,k){return c=+c,f=f>>>0,k||Nu(d,c,f,4),t.write(d,c,f,x,23,4),f+4}l.prototype.writeFloatLE=function(d,c,f){return tt(this,d,c,!0,f)},l.prototype.writeFloatBE=function(d,c,f){return tt(this,d,c,!1,f)};function $u(d,c,f,x,k){return c=+c,f=f>>>0,k||Nu(d,c,f,8),t.write(d,c,f,x,52,8),f+8}l.prototype.writeDoubleLE=function(d,c,f){return $u(this,d,c,!0,f)},l.prototype.writeDoubleBE=function(d,c,f){return $u(this,d,c,!1,f)},l.prototype.copy=function(d,c,f,x){if(!l.isBuffer(d))throw new TypeError("argument should be a Buffer");if(f||(f=0),!x&&x!==0&&(x=this.length),c>=d.length&&(c=d.length),c||(c=0),x>0&&x=this.length)throw new RangeError("Index out of range");if(x<0)throw new RangeError("sourceEnd out of bounds");x>this.length&&(x=this.length),d.length-c>>0,f=f===void 0?this.length:f>>>0,d||(d=0);let k;if(typeof d=="number")for(k=c;k2**32?k=_(String(f)):typeof f=="bigint"&&(k=String(f),(f>BigInt(2)**BigInt(32)||f<-(BigInt(2)**BigInt(32)))&&(k=_(k)),k+="n"),x+=` It must be ${c}. Received ${k}`,x},RangeError);function _(d){let c="",f=d.length;const x=d[0]==="-"?1:0;for(;f>=x+4;f-=3)c=`_${d.slice(f-3,f)}${c}`;return`${d.slice(0,f)}${c}`}function $(d,c,f){S(c,"offset"),(d[c]===void 0||d[c+f]===void 0)&&W(c,d.length-(f+1))}function z(d,c,f,x,k,P){if(d>f||d= 0${q} and < 2${q} ** ${(P+1)*8}${q}`:Oe=`>= -(2${q} ** ${(P+1)*8-1}${q}) and < 2 ** ${(P+1)*8-1}${q}`,new C.ERR_OUT_OF_RANGE("value",Oe,d)}$(x,k,P)}function S(d,c){if(typeof d!="number")throw new C.ERR_INVALID_ARG_TYPE(c,"number",d)}function W(d,c,f){throw Math.floor(d)!==d?(S(d,f),new C.ERR_OUT_OF_RANGE("offset","an integer",d)):c<0?new C.ERR_BUFFER_OUT_OF_BOUNDS:new C.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${c}`,d)}const U=/[^+/0-9A-Za-z-_]/g;function H(d){if(d=d.split("=")[0],d=d.trim().replace(U,""),d.length<2)return"";for(;d.length%4!==0;)d=d+"=";return d}function j(d,c){c=c||1/0;let f;const x=d.length;let k=null;const P=[];for(let q=0;q55295&&f<57344){if(!k){if(f>56319){(c-=3)>-1&&P.push(239,191,189);continue}else if(q+1===x){(c-=3)>-1&&P.push(239,191,189);continue}k=f;continue}if(f<56320){(c-=3)>-1&&P.push(239,191,189),k=f;continue}f=(k-55296<<10|f-56320)+65536}else k&&(c-=3)>-1&&P.push(239,191,189);if(k=null,f<128){if((c-=1)<0)break;P.push(f)}else if(f<2048){if((c-=2)<0)break;P.push(f>>6|192,f&63|128)}else if(f<65536){if((c-=3)<0)break;P.push(f>>12|224,f>>6&63|128,f&63|128)}else if(f<1114112){if((c-=4)<0)break;P.push(f>>18|240,f>>12&63|128,f>>6&63|128,f&63|128)}else throw new Error("Invalid code point")}return P}function re(d){const c=[];for(let f=0;f>8,k=f%256,P.push(k),P.push(x);return P}function oe(d){return u.toByteArray(H(d))}function ae(d,c,f,x){let k;for(k=0;k=c.length||k>=d.length);++k)c[k+f]=d[k];return k}function ge(d,c){return d instanceof c||d!=null&&d.constructor!=null&&d.constructor.name!=null&&d.constructor.name===c.name}function Ae(d){return d!==d}const _e=(function(){const d="0123456789abcdef",c=new Array(256);for(let f=0;f<16;++f){const x=f*16;for(let k=0;k<16;++k)c[x+k]=d[f]+d[k]}return c})();function De(d){return typeof BigInt>"u"?qe:d}function qe(){throw new Error("BigInt not supported")}})(qm);const Kl=qm.Buffer,[nv]=window.OC?.config?.version?.split(".")??[],Zm=Number.parseInt(nv??"34"),Jr=Zm<32,iv=Zm<34,ov=Symbol.for("NcFormBox:context");function rv(){return Zt(ov,{isInFormBox:!1,formBoxItemClass:void 0})}const qu=(e,u)=>{const t=e.__vccOpts||e;for(const[s,n]of u)t[s]=n;return t},av={class:"button-vue__wrapper"},lv={class:"button-vue__icon"},dv={class:"button-vue__text"},mv=yt({__name:"NcButton",props:{alignment:{default:"center"},ariaLabel:{default:void 0},disabled:{type:Boolean},download:{type:[String,Boolean],default:void 0},href:{default:void 0},pressed:{type:Boolean,default:void 0},size:{default:"normal"},target:{default:"_self"},text:{default:void 0},to:{default:void 0},type:{default:"button"},variant:{default:"secondary"},wide:{type:Boolean}},emits:["click","update:pressed"],setup(e,{emit:u}){const t=e,s=u,{formBoxItemClass:n}=rv(),i=Zt(Yh,null)!==null,o=Ge(()=>i&&t.to?"RouterLink":t.href?"a":"button"),r=Ge(()=>o.value==="button"&&typeof t.pressed=="boolean"),a=Ge(()=>t.pressed?"primary":t.pressed===!1&&t.variant==="primary"?"secondary":t.variant),m=Ge(()=>a.value.startsWith("tertiary")),l=Ge(()=>t.alignment.split("-")[0]),g=Ge(()=>t.alignment.includes("-")),p=Zt("NcPopover:trigger:attrs",()=>({}),!1),h=Ge(()=>p()),y=Ge(()=>{if(o.value==="RouterLink")return{to:t.to,activeClass:"active"};if(o.value==="a")return{href:t.href||"#",target:t.target,rel:"nofollow noreferrer noopener",download:t.download||void 0};if(o.value==="button")return{...h.value,"aria-pressed":t.pressed,type:t.type,disabled:t.disabled}});function E(F){r.value&&s("update:pressed",!t.pressed),s("click",F)}return(F,B)=>(me(),pu(Ri(o.value),_u({class:["button-vue",[`button-vue--size-${e.size}`,{[`button-vue--${a.value}`]:a.value,"button-vue--tertiary":m.value,"button-vue--wide":e.wide,[`button-vue--${l.value}`]:l.value!=="center","button-vue--reverse":g.value,"button-vue--legacy":Fe(Jr),"button-vue--legacy34":Fe(iv)},Fe(n)]],"aria-label":e.ariaLabel},y.value,{onClick:E}),{default:Me(()=>[Ce("span",av,[Ce("span",lv,[Ve(F.$slots,"icon",{},void 0,!0)]),Ce("span",dv,[Ve(F.$slots,"default",{},()=>[tn(Mu(e.text),1)],!0)])])]),_:3},16,["class","aria-label"]))}}),Bs=qu(mv,[["__scopeId","data-v-00a99684"]]),cv=["aria-hidden","aria-label"],gv={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},fv=["d"],pv=["innerHTML"],hv=yt({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(e){Nm(n=>({fb515064:t.value}));const u=e,t=Ge(()=>typeof u.size=="number"?`${u.size}px`:u.size),s=Ge(()=>{if(!u.svg||u.path)return;const n=ud.sanitize(u.svg),i=new DOMParser().parseFromString(n,"image/svg+xml");return i.querySelector("parsererror")?"":(i.documentElement.id&&i.documentElement.removeAttribute("id"),i.documentElement.outerHTML)});return(n,i)=>(me(),Be("span",{"aria-hidden":e.name?void 0:"true","aria-label":e.name||void 0,class:Iu(["icon-vue",{"icon-vue--directional":e.directional,"icon-vue--inline":e.inline}]),role:"img"},[s.value?(me(),Be("span",{key:1,innerHTML:s.value},null,8,pv)):(me(),Be("svg",gv,[Ce("path",{d:e.path},null,8,fv)]))],10,cv))}}),Ys=qu(hv,[["__scopeId","data-v-aaedb1c3"]]);Bv();function vv(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function Xm(e){if(!e||typeof e!="string")throw new Error("Invalid CSRF token given",{cause:{token:e}});globalThis._nc_auth_requestToken!==e&&(globalThis._nc_auth_requestToken=e,globalThis.document&&(document.head.dataset.requesttoken=e),vh("csrf-token-update",{token:e,_internal:!0}))}async function Ev(){const e=Z4("/csrftoken"),u=await fetch(e);if(!u.ok)throw new Error("Could not fetch CSRF token from API",{cause:u});try{const{token:t}=await u.json();return Xm(t),t}catch(t){throw new Error("Could not parse CSRF token from API response",{cause:t})}}function Cv(e){const u=async({token:t})=>{try{e(t)}catch(s){console.error("Error updating CSRF token observer",s)}};return $m("csrf-token-update",u),()=>hh("csrf-token-update",u)}function Bv(){$m("csrf-token-update",({token:e,_internal:u})=>{u||Xm(e)})}eh("public").persist().build();let Us;function ql(e,u){return e?e.getAttribute(u):null}function yv(){if(Us!==void 0)return Us;const e=document?.getElementsByTagName("head")[0];if(!e)return null;const u=ql(e,"data-user");return u===null?(Us=null,Us):(Us={uid:u,displayName:ql(e,"data-user-displayname"),isAdmin:!!window._oc_isadmin},Us)}var uu=(e=>(e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warn=2]="Warn",e[e.Error=3]="Error",e[e.Fatal=4]="Fatal",e))(uu||{});class xv{context;constructor(u){this.context=u||{}}formatMessage(u,t,s){let n="["+uu[t].toUpperCase()+"] ";return s&&s.app&&(n+=s.app+": "),typeof u=="string"?n+u:(n+=`Unexpected ${u.name}`,u.message&&(n+=` "${u.message}"`),t===uu.Debug&&u.stack&&(n+=` + +Stack trace: +${u.stack}`),n)}log(u,t,s){if(!(typeof this.context?.level=="number"&&u{document.readyState==="complete"||document.readyState==="interactive"?(u.context.level=window._oc_config?.loglevel??uu.Warn,window._oc_debug&&(u.context.level=uu.Debug),document.removeEventListener("readystatechange",t)):document.addEventListener("readystatechange",t)};return t(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function Jm(){return new wv(Av)}const bv=Jm().detectUser().setApp("@nextcloud/vue").build(),m0=ag();var Qm=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","area[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],c0=Qm.join(","),e3=typeof Element>"u",Ss=e3?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,g0=!e3&&Element.prototype.getRootNode?function(e){var u;return e==null||(u=e.getRootNode)===null||u===void 0?void 0:u.call(e)}:function(e){return e?.ownerDocument},f0=function(e,u){var t;u===void 0&&(u=!0);var s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"inert"),n=s===""||s==="true",i=n||u&&e&&(typeof e.closest=="function"?e.closest("[inert]"):f0(e.parentNode));return i},Dv=function(e){var u,t=e==null||(u=e.getAttribute)===null||u===void 0?void 0:u.call(e,"contenteditable");return t===""||t==="true"},u3=function(e,u,t){if(f0(e))return[];var s=Array.prototype.slice.apply(e.querySelectorAll(c0));return u&&Ss.call(e,c0)&&s.unshift(e),s=s.filter(t),s},p0=function(e,u,t){for(var s=[],n=Array.from(e);n.length;){var i=n.shift();if(!f0(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),r=o.length?o:i.children,a=p0(r,!0,t);t.flatten?s.push.apply(s,a):s.push({scopeParent:i,candidates:a})}else{var m=Ss.call(i,c0);m&&t.filter(i)&&(u||!e.includes(i))&&s.push(i);var l=i.shadowRoot||typeof t.getShadowRoot=="function"&&t.getShadowRoot(i),g=!f0(l,!1)&&(!t.shadowRootFilter||t.shadowRootFilter(i));if(l&&g){var p=p0(l===!0?i.children:l.children,!0,t);t.flatten?s.push.apply(s,p):s.push({scopeParent:i,candidates:p})}else n.unshift.apply(n,i.children)}}return s},t3=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},vs=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||Dv(e))&&!t3(e)?0:e.tabIndex},Fv=function(e,u){var t=vs(e);return t<0&&u&&!t3(e)?0:t},kv=function(e,u){return e.tabIndex===u.tabIndex?e.documentOrder-u.documentOrder:e.tabIndex-u.tabIndex},s3=function(e){return e.tagName==="INPUT"},Nv=function(e){return s3(e)&&e.type==="hidden"},Sv=function(e){var u=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(t){return t.tagName==="SUMMARY"});return u},_v=function(e,u){for(var t=0;tsummary:first-of-type"),a=r?e.parentElement:e;if(Ss.call(a,"details:not([open]) *"))return!0;if(!t||t==="full"||t==="full-native"||t==="legacy-full"){if(typeof s=="function"){for(var m=e;e;){var l=e.parentElement,g=g0(e);if(l&&!l.shadowRoot&&s(l)===!0)return Yl(e);e.assignedSlot?e=e.assignedSlot:!l&&g!==e.ownerDocument?e=g.host:e=l}e=m}if(Pv(e))return!e.getClientRects().length;if(t!=="legacy-full")return!0}else if(t==="non-zero-area")return Yl(e);return!1},Lv=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var u=e.parentElement;u;){if(u.tagName==="FIELDSET"&&u.disabled){for(var t=0;t=0)},n3=function(e){var u=[],t=[];return e.forEach(function(s,n){var i=!!s.scopeParent,o=i?s.scopeParent:s,r=Fv(o,i),a=i?n3(s.candidates):o;r===0?i?u.push.apply(u,a):u.push(o):t.push({documentOrder:n,tabIndex:r,item:s,isScope:i,content:a})}),t.sort(kv).reduce(function(s,n){return n.isScope?s.push.apply(s,n.content):s.push(n.content),s},[]).concat(u)},Iv=function(e,u){u=u||{};var t;return u.getShadowRoot?t=p0([e],u.includeContainer,{filter:vr.bind(null,u),flatten:!1,getShadowRoot:u.getShadowRoot,shadowRootFilter:jv}):t=u3(e,u.includeContainer,vr.bind(null,u)),n3(t)},Mv=function(e,u){u=u||{};var t;return u.getShadowRoot?t=p0([e],u.includeContainer,{filter:h0.bind(null,u),flatten:!0,getShadowRoot:u.getShadowRoot}):t=u3(e,u.includeContainer,h0.bind(null,u)),t},Vs=function(e,u){if(u=u||{},!e)throw new Error("No node provided");return Ss.call(e,c0)===!1?!1:vr(u,e)},$v=Qm.concat("iframe:not([inert]):not([inert] *)").join(","),Mo=function(e,u){if(u=u||{},!e)throw new Error("No node provided");return Ss.call(e,$v)===!1?!1:h0(u,e)};function Er(e,u){(u==null||u>e.length)&&(u=e.length);for(var t=0,s=Array(u);t=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(a){throw a},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i,o=!0,r=!1;return{s:function(){t=t.call(e)},n:function(){var a=t.next();return o=a.done,a},e:function(a){r=!0,i=a},f:function(){try{o||t.return==null||t.return()}finally{if(r)throw i}}}}function Vv(e,u,t){return(u=qv(u))in e?Object.defineProperty(e,u,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[u]=t,e}function Wv(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Hv(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Xl(e,u){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);u&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,s)}return t}function Jl(e){for(var u=1;u0?e[e.length-1]:null},activateTrap:function(e,u){var t=kt.getActiveTrap(e);u!==t&&kt.pauseTrap(e);var s=e.indexOf(u);s===-1||e.splice(s,1),e.push(u)},deactivateTrap:function(e,u){var t=e.indexOf(u);t!==-1&&e.splice(t,1),kt.unpauseTrap(e)},pauseTrap:function(e){var u=kt.getActiveTrap(e);u?._setPausedState(!0)},unpauseTrap:function(e){var u=kt.getActiveTrap(e);u&&!u._isManuallyPaused()&&u._setPausedState(!1)}},Yv=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Zv=function(e){return e?.key==="Escape"||e?.key==="Esc"||e?.keyCode===27},Rn=function(e){return e?.key==="Tab"||e?.keyCode===9},Xv=function(e){return Rn(e)&&!e.shiftKey},Jv=function(e){return Rn(e)&&e.shiftKey},Ql=function(e){return setTimeout(e,0)},wn=function(e){for(var u=arguments.length,t=new Array(u>1?u-1:0),s=1;s1&&arguments[1]!==void 0?arguments[1]:{},V=T.hasFallback,ue=V===void 0?!1:V,Z=T.params,Q=Z===void 0?[]:Z,te=n[b];if(typeof te=="function"&&(te=te.apply(void 0,Gv(Q))),te===!0&&(te=void 0),!te){if(te===void 0||te===!1)return te;throw new Error("`".concat(b,"` was specified but was not a node, or did not return a node"))}var de=te;if(typeof te=="string"){try{de=t.querySelector(te)}catch(le){throw new Error("`".concat(b,'` appears to be an invalid selector; error="').concat(le.message,'"'))}if(!de&&!ue)throw new Error("`".concat(b,"` as selector refers to no known node"))}return de},l=function(b){var T=b.activeElement;return T?T.shadowRoot&&T.shadowRoot.activeElement!==null?l(T.shadowRoot):T:null},g=function(){var b=m("initialFocus",{hasFallback:!0});if(b===!1)return!1;if(b===void 0||b&&!Mo(b,n.tabbableOptions)){var T=l(t);if(a(T)>=0)b=T;else{var V=i.tabbableGroups[0],ue=V&&V.firstTabbableNode;b=ue||m("fallbackFocus")}}else b===null&&(b=m("fallbackFocus"));if(!b)throw new Error("Your focus-trap needs to have at least one focusable element");return b},p=function(){if(i.containerGroups=i.containers.map(function(b){var T=Iv(b,n.tabbableOptions),V=Mv(b,n.tabbableOptions),ue=T.length>0?T[0]:void 0,Z=T.length>0?T[T.length-1]:void 0,Q=V.find(function(le){return Vs(le)}),te=V.slice().reverse().find(function(le){return Vs(le)}),de=!!T.find(function(le){return vs(le)>0});return{container:b,tabbableNodes:T,focusableNodes:V,posTabIndexesFound:de,firstTabbableNode:ue,lastTabbableNode:Z,firstDomTabbableNode:Q,lastDomTabbableNode:te,nextTabbableNode:function(le){var ie=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,xe=T.indexOf(le);return xe<0?ie?V.slice(V.indexOf(le)+1).find(function(He){return Vs(He)}):V.slice(0,V.indexOf(le)).reverse().find(function(He){return Vs(He)}):T[xe+(ie?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(b){return b.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!m("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(b){return b.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},h=function(b){if(b!==!1&&b!==l(document)){if(!b||!b.focus){h(g());return}b.focus({preventScroll:!!n.preventScroll}),i.mostRecentlyFocusedNode=b,Yv(b)&&b.select()}},y=function(b){var T=m("setReturnFocus",{params:[b]});return T||(T===!1?!1:b)},E=function(b){var T=b.target,V=b.event,ue=b.isBackward,Z=ue===void 0?!1:ue;T=T||Fi(V),p();var Q=null;if(i.tabbableGroups.length>0){var te=a(T,V),de=te>=0?i.containerGroups[te]:void 0;if(te<0)Z?Q=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:Q=i.tabbableGroups[0].firstTabbableNode;else if(Z){var le=i.tabbableGroups.findIndex(function(pe){var $e=pe.firstTabbableNode;return T===$e});if(le<0&&(de.container===T||Mo(T,n.tabbableOptions)&&!Vs(T,n.tabbableOptions)&&!de.nextTabbableNode(T,!1))&&(le=te),le>=0){var ie=le===0?i.tabbableGroups.length-1:le-1,xe=i.tabbableGroups[ie];Q=vs(T)>=0?xe.lastTabbableNode:xe.lastDomTabbableNode}else Rn(V)||(Q=de.nextTabbableNode(T,!1))}else{var He=i.tabbableGroups.findIndex(function(pe){var $e=pe.lastTabbableNode;return T===$e});if(He<0&&(de.container===T||Mo(T,n.tabbableOptions)&&!Vs(T,n.tabbableOptions)&&!de.nextTabbableNode(T))&&(He=te),He>=0){var Se=He===i.tabbableGroups.length-1?0:He+1,Pe=i.tabbableGroups[Se];Q=vs(T)>=0?Pe.firstTabbableNode:Pe.firstDomTabbableNode}else Rn(V)||(Q=de.nextTabbableNode(T))}}else Q=m("fallbackFocus");return Q},F=function(b){var T=Fi(b);if(!(a(T,b)>=0)){if(wn(n.clickOutsideDeactivates,b)){o.deactivate({returnFocus:n.returnFocusOnDeactivate});return}wn(n.allowOutsideClick,b)||b.preventDefault()}},B=function(b){var T=Fi(b),V=a(T,b)>=0;if(V||T instanceof Document)V&&(i.mostRecentlyFocusedNode=T);else{b.stopImmediatePropagation();var ue,Z=!0;if(i.mostRecentlyFocusedNode)if(vs(i.mostRecentlyFocusedNode)>0){var Q=a(i.mostRecentlyFocusedNode),te=i.containerGroups[Q].tabbableNodes;if(te.length>0){var de=te.findIndex(function(le){return le===i.mostRecentlyFocusedNode});de>=0&&(n.isKeyForward(i.recentNavEvent)?de+1=0&&(ue=te[de-1],Z=!1))}}else i.containerGroups.some(function(le){return le.tabbableNodes.some(function(ie){return vs(ie)>0})})||(Z=!1);else Z=!1;Z&&(ue=E({target:i.mostRecentlyFocusedNode,isBackward:n.isKeyBackward(i.recentNavEvent)})),h(ue||i.mostRecentlyFocusedNode||g())}i.recentNavEvent=void 0},A=function(b){var T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=b;var V=E({event:b,isBackward:T});V&&(Rn(b)&&b.preventDefault(),h(V))},O=function(b){(n.isKeyForward(b)||n.isKeyBackward(b))&&A(b,n.isKeyBackward(b))},N=function(b){Zv(b)&&wn(n.escapeDeactivates,b)!==!1&&(b.preventDefault(),o.deactivate())},K=function(b){var T=Fi(b);a(T,b)>=0||wn(n.clickOutsideDeactivates,b)||wn(n.allowOutsideClick,b)||(b.preventDefault(),b.stopImmediatePropagation())},I=function(){if(i.active){kt.activateTrap(s,o);var b;return n.delayInitialFocus?b=new Promise(function(T){i.delayInitialFocusTimer=Ql(function(){h(g()),T()})}):h(g()),t.addEventListener("focusin",B,!0),t.addEventListener("mousedown",F,{capture:!0,passive:!1}),t.addEventListener("touchstart",F,{capture:!0,passive:!1}),t.addEventListener("click",K,{capture:!0,passive:!1}),t.addEventListener("keydown",O,{capture:!0,passive:!1}),t.addEventListener("keydown",N),b}},Y=function(b){i.active&&!i.paused&&o._setSubtreeIsolation(!1),i.adjacentElements.clear(),i.alreadySilent.clear();var T=new Set,V=new Set,ue=Zl(b),Z;try{for(ue.s();!(Z=ue.n()).done;){var Q=Z.value;T.add(Q);for(var te=typeof ShadowRoot<"u"&&Q.getRootNode()instanceof ShadowRoot,de=Q;de;){T.add(de);var le=de.parentElement,ie=[];le?ie=le.children:!le&&te&&(ie=de.getRootNode().children,le=de.getRootNode().host,te=typeof ShadowRoot<"u"&&le.getRootNode()instanceof ShadowRoot);var xe=Zl(ie),He;try{for(xe.s();!(He=xe.n()).done;){var Se=He.value;V.add(Se)}}catch(Pe){xe.e(Pe)}finally{xe.f()}de=le}}}catch(Pe){ue.e(Pe)}finally{ue.f()}T.forEach(function(Pe){V.delete(Pe)}),i.adjacentElements=V},se=function(){if(i.active)return t.removeEventListener("focusin",B,!0),t.removeEventListener("mousedown",F,!0),t.removeEventListener("touchstart",F,!0),t.removeEventListener("click",K,!0),t.removeEventListener("keydown",O,!0),t.removeEventListener("keydown",N),o},G=function(b){var T=i.mostRecentlyFocusedNode;if(T){var V=b.some(function(Z){var Q=Array.from(Z.removedNodes);return Q.some(function(te){return te===T||typeof te.contains=="function"&&te.contains(T)})});if(V&&i.containers.some(function(Z){return Z?.isConnected})){p();var ue=g();h(ue)}}},M=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(G):void 0,ne=function(){M&&(M.disconnect(),i.active&&!i.paused&&i.containers.map(function(b){M.observe(b,{subtree:!0,childList:!0})}))};return o={get active(){return i.active},get paused(){return i.paused},activate:function(b){if(i.active)return this;var T=r(b,"onActivate"),V=r(b,"onPostActivate"),ue=r(b,"checkCanFocusTrap"),Z=kt.getActiveTrap(s),Q=!1;if(Z&&!Z.paused){var te;(te=Z._setSubtreeIsolation)===null||te===void 0||te.call(Z,!1),Q=!0}try{ue||p(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=l(t),T?.({trap:o});var de=function(){ue&&p();var ie=function(){o._setSubtreeIsolation(!0),ne(),V?.({trap:o})},xe=I();xe?xe.then(ie):ie()};if(ue)return ue(i.containers.concat()).then(de,de),this;de()}catch(ie){if(Z===kt.getActiveTrap(s)&&Q){var le;(le=Z._setSubtreeIsolation)===null||le===void 0||le.call(Z,!0)}throw ie}return this},deactivate:function(b){if(!i.active)return this;var T=Jl({onDeactivate:n.onDeactivate,onPostDeactivate:n.onPostDeactivate,checkCanReturnFocus:n.checkCanReturnFocus},b);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,i.paused||o._setSubtreeIsolation(!1),i.alreadySilent.clear(),se(),i.active=!1,i.paused=!1,ne(),kt.deactivateTrap(s,o);var V=r(T,"onDeactivate"),ue=r(T,"onPostDeactivate"),Z=r(T,"checkCanReturnFocus"),Q=r(T,"delayReturnFocus"),te=r(T,"returnFocus","returnFocusOnDeactivate");V?.({trap:o});var de=function(){te&&h(y(i.nodeFocusedBeforeActivation)),ue?.({trap:o})},le=function(){Q&&te?Ql(de):de()};return te&&Z?(Z(y(i.nodeFocusedBeforeActivation)).then(le,le),this):(le(),this)},pause:function(b){return i.active?(i.manuallyPaused=!0,this._setPausedState(!0,b)):this},unpause:function(b){return i.active?(i.manuallyPaused=!1,s[s.length-1]!==this?this:this._setPausedState(!1,b)):this},updateContainerElements:function(b){var T=[].concat(b).filter(Boolean);return i.containers=T.map(function(V){return typeof V=="string"?t.querySelector(V):V}),n.isolateSubtrees&&Y(i.containers),i.active&&(p(),i.paused||o._setSubtreeIsolation(!0)),ne(),this}},Object.defineProperties(o,{_isManuallyPaused:{value:function(){return i.manuallyPaused}},_setPausedState:{value:function(b,T){if(i.paused===b)return this;if(i.paused=b,b){var V=r(T,"onPause"),ue=r(T,"onPostPause");V?.({trap:o}),se(),o._setSubtreeIsolation(!1),ne(),ue?.({trap:o})}else{var Z=r(T,"onUnpause"),Q=r(T,"onPostUnpause");Z?.({trap:o});var te=function(){p();var de=function(){o._setSubtreeIsolation(!0),ne(),Q?.({trap:o})},le=I();le?le.then(de):de()};te()}return this}},_setSubtreeIsolation:{value:function(b){n.isolateSubtrees&&i.adjacentElements.forEach(function(T){var V;b?n.isolateSubtrees==="aria-hidden"?((T.ariaHidden==="true"||((V=T.getAttribute("aria-hidden"))===null||V===void 0?void 0:V.toLowerCase())==="true")&&i.alreadySilent.add(T),T.setAttribute("aria-hidden","true")):((T.inert||T.hasAttribute("inert"))&&i.alreadySilent.add(T),T.setAttribute("inert",!0)):i.alreadySilent.has(T)||(n.isolateSubtrees==="aria-hidden"?T.removeAttribute("aria-hidden"):T.removeAttribute("inert"))})}}}),o.updateContainerElements(e),o};function Jn(){return window._nc_focus_trap??=[],window._nc_focus_trap}function eE(){let e=[];return{pause(){e=[...Jn()];for(const u of e)u.pause()},unpause(){if(e.length===Jn().length)for(const u of e)u.unpause();e=[]}}}function uE(e,u={}){const t=eE();St(e,()=>{Su(u.disabled)||(Su(e)?t.pause():t.unpause())}),an(()=>{t.unpause()})}window._nc_vue_element_id=window._nc_vue_element_id??0;function v0(){return`nc-vue-${window._nc_vue_element_id++}`}const tE=["top","right","bottom","left"],e4=["start","end"],u4=tE.reduce((e,u)=>e.concat(u,u+"-"+e4[0],u+"-"+e4[1]),[]),ts=Math.min,Ot=Math.max,E0=Math.round,ki=Math.floor,Tt=e=>({x:e,y:e}),sE={left:"right",right:"left",bottom:"top",top:"bottom"};function r3(e,u,t){return Ot(e,ts(u,t))}function Lt(e,u){return typeof e=="function"?e(u):e}function Et(e){return e.split("-")[0]}function Ju(e){return e.split("-")[1]}function Qr(e){return e==="x"?"y":"x"}function ea(e){return e==="y"?"height":"width"}function pt(e){const u=e[0];return u==="t"||u==="b"?"y":"x"}function ua(e){return Qr(pt(e))}function a3(e,u,t){t===void 0&&(t=!1);const s=Ju(e),n=ua(e),i=ea(n);let o=n==="x"?s===(t?"end":"start")?"right":"left":s==="start"?"bottom":"top";return u.reference[i]>u.floating[i]&&(o=B0(o)),[o,B0(o)]}function nE(e){const u=B0(e);return[C0(e),u,C0(u)]}function C0(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const t4=["left","right"],s4=["right","left"],iE=["top","bottom"],oE=["bottom","top"];function rE(e,u,t){switch(e){case"top":case"bottom":return t?u?s4:t4:u?t4:s4;case"left":case"right":return u?iE:oE;default:return[]}}function aE(e,u,t,s){const n=Ju(e);let i=rE(Et(e),t==="start",s);return n&&(i=i.map(o=>o+"-"+n),u&&(i=i.concat(i.map(C0)))),i}function B0(e){const u=Et(e);return sE[u]+e.slice(u.length)}function lE(e){var u,t,s,n;return{top:(u=e.top)!=null?u:0,right:(t=e.right)!=null?t:0,bottom:(s=e.bottom)!=null?s:0,left:(n=e.left)!=null?n:0}}function l3(e){return typeof e!="number"?lE(e):{top:e,right:e,bottom:e,left:e}}function Fs(e){const{x:u,y:t,width:s,height:n}=e;return{width:s,height:n,top:t,left:u,right:u+s,bottom:t+n,x:u,y:t}}function n4(e,u,t){let{reference:s,floating:n}=e;const i=pt(u),o=ua(u),r=ea(o),a=Et(u),m=i==="y",l=s.x+s.width/2-n.width/2,g=s.y+s.height/2-n.height/2,p=s[r]/2-n[r]/2;let h;switch(a){case"top":h={x:l,y:s.y-n.height};break;case"bottom":h={x:l,y:s.y+s.height};break;case"right":h={x:s.x+s.width,y:g};break;case"left":h={x:s.x-n.width,y:g};break;default:h={x:s.x,y:s.y}}const y=Ju(u);return y&&(h[o]+=p*(y==="end"?1:-1)*(t&&m?-1:1)),h}async function dE(e,u){var t;u===void 0&&(u={});const{x:s,y:n,platform:i,rects:o,elements:r,strategy:a}=e,{boundary:m="clippingAncestors",rootBoundary:l="viewport",elementContext:g="floating",altBoundary:p=!1,padding:h=0}=Lt(u,e),y=l3(h),E=r[p?g==="floating"?"reference":"floating":g],F=Fs(await i.getClippingRect({element:(t=await(i.isElement==null?void 0:i.isElement(E)))==null||t?E:E.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(r.floating)),boundary:m,rootBoundary:l,strategy:a})),B=g==="floating"?{x:s,y:n,width:o.floating.width,height:o.floating.height}:o.reference,A=await(i.getOffsetParent==null?void 0:i.getOffsetParent(r.floating)),O=await(i.isElement==null?void 0:i.isElement(A))&&await(i.getScale==null?void 0:i.getScale(A))||{x:1,y:1},N=Fs(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:r,rect:B,offsetParent:A,strategy:a}):B);return{top:(F.top-N.top+y.top)/O.y,bottom:(N.bottom-F.bottom+y.bottom)/O.y,left:(F.left-N.left+y.left)/O.x,right:(N.right-F.right+y.right)/O.x}}const mE=50,d3=async(e,u,t)=>{const{placement:s="bottom",strategy:n="absolute",middleware:i=[],platform:o}=t,r=o.detectOverflow?o:{...o,detectOverflow:dE},a=await(o.isRTL==null?void 0:o.isRTL(u));let m=await o.getElementRects({reference:e,floating:u,strategy:n}),{x:l,y:g}=n4(m,s,a),p=s,h=0;const y={};for(let E=0;E({name:"arrow",options:e,async fn(u){const{x:t,y:s,placement:n,rects:i,platform:o,elements:r,middlewareData:a}=u,{element:m,padding:l=0}=Lt(e,u)||{};if(m==null)return{};const g=l3(l),p={x:t,y:s},h=ua(n),y=ea(h),E=await o.getDimensions(m),F=h==="y",B=F?"top":"left",A=F?"bottom":"right",O=F?"clientHeight":"clientWidth",N=i.reference[y]+i.reference[h]-p[h]-i.floating[y],K=p[h]-i.reference[h],I=await(o.getOffsetParent==null?void 0:o.getOffsetParent(m));let Y=I?I[O]:0;(!Y||!await(o.isElement==null?void 0:o.isElement(I)))&&(Y=r.floating[O]||i.floating[y]);const se=N/2-K/2,G=Y/2-E[y]/2-1,M=ts(g[B],G),ne=ts(g[A],G),b=Y-E[y]-ne,T=Y/2-E[y]/2+se,V=r3(M,T,b),ue=!a.arrow&&Ju(n)!=null&&T!==V&&i.reference[y]/2-(TJu(s)===e),...t.filter(s=>Ju(s)!==e)]:t.filter(s=>Et(s)===s)).filter(s=>e?Ju(s)===e||(u?C0(s)!==s:!1):!0)}const fE=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(u){var t,s,n;const{rects:i,middlewareData:o,placement:r,platform:a,elements:m}=u,{crossAxis:l=!1,alignment:g,allowedPlacements:p=u4,autoAlignment:h=!0,...y}=Lt(e,u),E=g!==void 0||p===u4?gE(g||null,h,p):p,F=((t=o.autoPlacement)==null?void 0:t.index)||0,B=E[F];if(B==null)return{};if(r!==B)return{reset:{placement:E[0]}};const A=await a.detectOverflow(u,y),O=a3(B,i,await(a.isRTL==null?void 0:a.isRTL(m.floating))),N=[A[Et(B)],A[O[0]],A[O[1]]],K=[...((s=o.autoPlacement)==null?void 0:s.overflows)||[],{placement:B,overflows:N}],I=E[F+1];if(I)return{data:{index:F+1,overflows:K},reset:{placement:I}};const Y=K.map(G=>{const M=Ju(G.placement);return[G.placement,M&&l?G.overflows.slice(0,2).reduce((ne,b)=>ne+b,0):G.overflows[0],G.overflows]}).sort((G,M)=>G[1]-M[1]),se=((n=Y.filter(G=>G[2].slice(0,Ju(G[0])?2:3).every(M=>M<=0))[0])==null?void 0:n[0])||Y[0][0];return se!==r?{data:{index:F+1,overflows:K},reset:{placement:se}}:{}}}},m3=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(u){var t,s;const{placement:n,middlewareData:i,rects:o,initialPlacement:r,platform:a,elements:m}=u,{mainAxis:l=!0,crossAxis:g=!0,fallbackPlacements:p,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:E=!0,...F}=Lt(e,u);if((t=i.arrow)!=null&&t.alignmentOffset)return{};const B=Et(n),A=pt(r),O=Et(r)===r,N=await(a.isRTL==null?void 0:a.isRTL(m.floating)),K=p||(O||!E?[B0(r)]:nE(r)),I=y!=="none";!p&&I&&K.push(...aE(r,E,y,N));const Y=[r,...K],se=await a.detectOverflow(u,F),G=[];let M=((s=i.flip)==null?void 0:s.overflows)||[];if(l&&G.push(se[B]),g){const V=a3(n,o,N);G.push(se[V[0]],se[V[1]])}if(M=[...M,{placement:n,overflows:G}],!G.every(V=>V<=0)){var ne,b;const V=(((ne=i.flip)==null?void 0:ne.index)||0)+1,ue=Y[V];if(ue&&(!(g==="alignment"&&A!==pt(ue))||M.every(Q=>pt(Q.placement)===A?Q.overflows[0]>0:!0)))return{data:{index:V,overflows:M},reset:{placement:ue}};let Z=(b=M.filter(Q=>Q.overflows[0]<=0).sort((Q,te)=>Q.overflows[1]-te.overflows[1])[0])==null?void 0:b.placement;if(!Z)switch(h){case"bestFit":{var T;const Q=(T=M.filter(te=>{if(I){const de=pt(te.placement);return de===A||de==="y"}return!0}).map(te=>[te.placement,te.overflows.filter(de=>de>0).reduce((de,le)=>de+le,0)]).sort((te,de)=>te[1]-de[1])[0])==null?void 0:T[0];Q&&(Z=Q);break}case"initialPlacement":Z=r;break}if(n!==Z)return{reset:{placement:Z}}}return{}}}},c3=new Set(["left","top"]);async function pE(e,u){const{placement:t,platform:s,elements:n}=e,i=await(s.isRTL==null?void 0:s.isRTL(n.floating)),o=Et(t),r=Ju(t),a=pt(t)==="y",m=c3.has(o)?-1:1,l=i&&a?-1:1,g=Lt(u,e);let{mainAxis:p,crossAxis:h,alignmentAxis:y}=typeof g=="number"?{mainAxis:g,crossAxis:0,alignmentAxis:null}:{mainAxis:g.mainAxis||0,crossAxis:g.crossAxis||0,alignmentAxis:g.alignmentAxis};return r&&typeof y=="number"&&(h=r==="end"?y*-1:y),a?{x:h*l,y:p*m}:{x:p*m,y:h*l}}const g3=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(u){var t,s;const{x:n,y:i,placement:o,middlewareData:r}=u,a=await pE(u,e);return o===((t=r.offset)==null?void 0:t.placement)&&(s=r.arrow)!=null&&s.alignmentOffset?{}:{x:n+a.x,y:i+a.y,data:{...a,placement:o}}}}},f3=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(u){const{x:t,y:s,placement:n,platform:i}=u,{mainAxis:o=!0,crossAxis:r=!1,limiter:a={fn:A=>{let{x:O,y:N}=A;return{x:O,y:N}}},...m}=Lt(e,u),l={x:t,y:s},g=await i.detectOverflow(u,m),p=pt(n),h=Qr(p);let y=l[h],E=l[p];const F=(A,O)=>r3(O+g[A==="y"?"top":"left"],O,O-g[A==="y"?"bottom":"right"]);o&&(y=F(h,y)),r&&(E=F(p,E));const B=a.fn({...u,[h]:y,[p]:E});return{...B,data:{x:B.x-t,y:B.y-s,enabled:{[h]:o,[p]:r}}}}}},hE=function(e){return e===void 0&&(e={}),{options:e,fn(u){var t,s;const{x:n,y:i,placement:o,rects:r,middlewareData:a}=u,{offset:m=0,mainAxis:l=!0,crossAxis:g=!0}=Lt(e,u),p={x:n,y:i},h=pt(o),y=Qr(h);let E=p[y],F=p[h];const B=Lt(m,u),A=typeof B=="number"?{mainAxis:B,crossAxis:0}:{mainAxis:(t=B.mainAxis)!=null?t:0,crossAxis:(s=B.crossAxis)!=null?s:0};if(l){const K=y==="y"?"height":"width",I=r.reference[y]-r.floating[K]+A.mainAxis,Y=r.reference[y]+r.reference[K]-A.mainAxis;EY&&(E=Y)}if(g){var O,N;const K=y==="y"?"width":"height",I=c3.has(Et(o)),Y=r.reference[h]-r.floating[K]+(I&&((O=a.offset)==null?void 0:O[h])||0)+(I?0:A.crossAxis),se=r.reference[h]+r.reference[K]+(I?0:((N=a.offset)==null?void 0:N[h])||0)-(I?A.crossAxis:0);Fse&&(F=se)}return{[y]:E,[h]:F}}}},vE=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(u){const{placement:t,rects:s,platform:n,elements:i}=u,{apply:o=()=>{},...r}=Lt(e,u),a=await n.detectOverflow(u,r),m=Et(t),l=Ju(t),g=pt(t)==="y",{width:p,height:h}=s.floating;let y,E;m==="top"||m==="bottom"?(y=m,E=l===(await(n.isRTL==null?void 0:n.isRTL(i.floating))?"start":"end")?"left":"right"):(E=m,y=l==="end"?"top":"bottom");const F=h-a.top-a.bottom,B=p-a.left-a.right,A=ts(h-a[y],F),O=ts(p-a[E],B),N=u.middlewareData.shift,K=!N;let I=A,Y=O;N!=null&&N.enabled.x&&(Y=B),N!=null&&N.enabled.y&&(I=F),K&&!l&&(g?Y=p-2*Ot(a.left,a.right):I=h-2*Ot(a.top,a.bottom)),await o({...u,availableWidth:Y,availableHeight:I});const se=await n.getDimensions(i.floating);return p!==se.width||h!==se.height?{reset:{rects:!0}}:{}}}};function Hu(e){var u;return((u=e.ownerDocument)==null?void 0:u.defaultView)||window}function ht(e){return Hu(e).getComputedStyle(e)}const i4=Math.min,Ln=Math.max,y0=Math.round;function p3(e){const u=ht(e);let t=parseFloat(u.width),s=parseFloat(u.height);const n=e.offsetWidth,i=e.offsetHeight,o=y0(t)!==n||y0(s)!==i;return o&&(t=n,s=i),{width:t,height:s,fallback:o}}function ss(e){return v3(e)?(e.nodeName||"").toLowerCase():""}let Ni;function h3(){if(Ni)return Ni;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(Ni=e.brands.map((u=>u.brand+"/"+u.version)).join(" "),Ni):navigator.userAgent}function vt(e){return e instanceof Hu(e).HTMLElement}function Jt(e){return e instanceof Hu(e).Element}function v3(e){return e instanceof Hu(e).Node}function o4(e){return typeof ShadowRoot>"u"?!1:e instanceof Hu(e).ShadowRoot||e instanceof ShadowRoot}function G0(e){const{overflow:u,overflowX:t,overflowY:s,display:n}=ht(e);return/auto|scroll|overlay|hidden|clip/.test(u+s+t)&&!["inline","contents"].includes(n)}function EE(e){return["table","td","th"].includes(ss(e))}function Cr(e){const u=/firefox/i.test(h3()),t=ht(e),s=t.backdropFilter||t.WebkitBackdropFilter;return t.transform!=="none"||t.perspective!=="none"||!!s&&s!=="none"||u&&t.willChange==="filter"||u&&!!t.filter&&t.filter!=="none"||["transform","perspective"].some((n=>t.willChange.includes(n)))||["paint","layout","strict","content"].some((n=>{const i=t.contain;return i!=null&&i.includes(n)}))}function E3(){return!/^((?!chrome|android).)*safari/i.test(h3())}function ta(e){return["html","body","#document"].includes(ss(e))}function C3(e){return Jt(e)?e:e.contextElement}const B3={x:1,y:1};function nn(e){const u=C3(e);if(!vt(u))return B3;const t=u.getBoundingClientRect(),{width:s,height:n,fallback:i}=p3(u);let o=(i?y0(t.width):t.width)/s,r=(i?y0(t.height):t.height)/n;return o&&Number.isFinite(o)||(o=1),r&&Number.isFinite(r)||(r=1),{x:o,y:r}}function Qn(e,u,t,s){var n,i;u===void 0&&(u=!1),t===void 0&&(t=!1);const o=e.getBoundingClientRect(),r=C3(e);let a=B3;u&&(s?Jt(s)&&(a=nn(s)):a=nn(e));const m=r?Hu(r):window,l=!E3()&&t;let g=(o.left+(l&&((n=m.visualViewport)==null?void 0:n.offsetLeft)||0))/a.x,p=(o.top+(l&&((i=m.visualViewport)==null?void 0:i.offsetTop)||0))/a.y,h=o.width/a.x,y=o.height/a.y;if(r){const E=Hu(r),F=s&&Jt(s)?Hu(s):s;let B=E.frameElement;for(;B&&s&&F!==E;){const A=nn(B),O=B.getBoundingClientRect(),N=getComputedStyle(B);O.x+=(B.clientLeft+parseFloat(N.paddingLeft))*A.x,O.y+=(B.clientTop+parseFloat(N.paddingTop))*A.y,g*=A.x,p*=A.y,h*=A.x,y*=A.y,g+=O.x,p+=O.y,B=Hu(B).frameElement}}return{width:h,height:y,top:p,right:g+h,bottom:p+y,left:g,x:g,y:p}}function Qt(e){return((v3(e)?e.ownerDocument:e.document)||window.document).documentElement}function K0(e){return Jt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function y3(e){return Qn(Qt(e)).left+K0(e).scrollLeft}function ei(e){if(ss(e)==="html")return e;const u=e.assignedSlot||e.parentNode||o4(e)&&e.host||Qt(e);return o4(u)?u.host:u}function x3(e){const u=ei(e);return ta(u)?u.ownerDocument.body:vt(u)&&G0(u)?u:x3(u)}function x0(e,u){var t;u===void 0&&(u=[]);const s=x3(e),n=s===((t=e.ownerDocument)==null?void 0:t.body),i=Hu(s);return n?u.concat(i,i.visualViewport||[],G0(s)?s:[]):u.concat(s,x0(s))}function r4(e,u,t){return u==="viewport"?Fs((function(s,n){const i=Hu(s),o=Qt(s),r=i.visualViewport;let a=o.clientWidth,m=o.clientHeight,l=0,g=0;if(r){a=r.width,m=r.height;const p=E3();(p||!p&&n==="fixed")&&(l=r.offsetLeft,g=r.offsetTop)}return{width:a,height:m,x:l,y:g}})(e,t)):Jt(u)?Fs((function(s,n){const i=Qn(s,!0,n==="fixed"),o=i.top+s.clientTop,r=i.left+s.clientLeft,a=vt(s)?nn(s):{x:1,y:1};return{width:s.clientWidth*a.x,height:s.clientHeight*a.y,x:r*a.x,y:o*a.y}})(u,t)):Fs((function(s){const n=Qt(s),i=K0(s),o=s.ownerDocument.body,r=Ln(n.scrollWidth,n.clientWidth,o.scrollWidth,o.clientWidth),a=Ln(n.scrollHeight,n.clientHeight,o.scrollHeight,o.clientHeight);let m=-i.scrollLeft+y3(s);const l=-i.scrollTop;return ht(o).direction==="rtl"&&(m+=Ln(n.clientWidth,o.clientWidth)-r),{width:r,height:a,x:m,y:l}})(Qt(e)))}function a4(e){return vt(e)&&ht(e).position!=="fixed"?e.offsetParent:null}function l4(e){const u=Hu(e);let t=a4(e);for(;t&&EE(t)&&ht(t).position==="static";)t=a4(t);return t&&(ss(t)==="html"||ss(t)==="body"&&ht(t).position==="static"&&!Cr(t))?u:t||(function(s){let n=ei(s);for(;vt(n)&&!ta(n);){if(Cr(n))return n;n=ei(n)}return null})(e)||u}function CE(e,u,t){const s=vt(u),n=Qt(u),i=Qn(e,!0,t==="fixed",u);let o={scrollLeft:0,scrollTop:0};const r={x:0,y:0};if(s||!s&&t!=="fixed")if((ss(u)!=="body"||G0(n))&&(o=K0(u)),vt(u)){const a=Qn(u,!0);r.x=a.x+u.clientLeft,r.y=a.y+u.clientTop}else n&&(r.x=y3(n));return{x:i.left+o.scrollLeft-r.x,y:i.top+o.scrollTop-r.y,width:i.width,height:i.height}}const BE={getClippingRect:function(e){let{element:u,boundary:t,rootBoundary:s,strategy:n}=e;const i=t==="clippingAncestors"?(function(m,l){const g=l.get(m);if(g)return g;let p=x0(m).filter((F=>Jt(F)&&ss(F)!=="body")),h=null;const y=ht(m).position==="fixed";let E=y?ei(m):m;for(;Jt(E)&&!ta(E);){const F=ht(E),B=Cr(E);(y?B||h:B||F.position!=="static"||!h||!["absolute","fixed"].includes(h.position))?h=F:p=p.filter((A=>A!==E)),E=ei(E)}return l.set(m,p),p})(u,this._c):[].concat(t),o=[...i,s],r=o[0],a=o.reduce(((m,l)=>{const g=r4(u,l,n);return m.top=Ln(g.top,m.top),m.right=i4(g.right,m.right),m.bottom=i4(g.bottom,m.bottom),m.left=Ln(g.left,m.left),m}),r4(u,r,n));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:u,offsetParent:t,strategy:s}=e;const n=vt(t),i=Qt(t);if(t===i)return u;let o={scrollLeft:0,scrollTop:0},r={x:1,y:1};const a={x:0,y:0};if((n||!n&&s!=="fixed")&&((ss(t)!=="body"||G0(i))&&(o=K0(t)),vt(t))){const m=Qn(t);r=nn(t),a.x=m.x+t.clientLeft,a.y=m.y+t.clientTop}return{width:u.width*r.x,height:u.height*r.y,x:u.x*r.x-o.scrollLeft*r.x+a.x,y:u.y*r.y-o.scrollTop*r.y+a.y}},isElement:Jt,getDimensions:function(e){return vt(e)?p3(e):e.getBoundingClientRect()},getOffsetParent:l4,getDocumentElement:Qt,getScale:nn,async getElementRects(e){let{reference:u,floating:t,strategy:s}=e;const n=this.getOffsetParent||l4,i=this.getDimensions;return{reference:CE(u,await n(t),s),floating:{x:0,y:0,...await i(t)}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>ht(e).direction==="rtl"},yE=(e,u,t)=>{const s=new Map,n={platform:BE,...t},i={...n.platform,_c:s};return d3(e,u,{...n,platform:i})},es={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,autoHideOnMousedown:!1,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover"],delay:{show:0,hide:400}}}};function xE(e,u){let t=es.themes[e]||{},s;do s=t[u],typeof s>"u"?t.$extend?t=es.themes[t.$extend]||{}:(t=null,s=es[u]):t=null;while(t);return s}function AE(e){const u=[e];let t=es.themes[e]||{};do t.$extend&&!t.$resetCss?(u.push(t.$extend),t=es.themes[t.$extend]||{}):t=null;while(t);return u.map(s=>`v-popper--theme-${s}`)}function d4(e){const u=[e];let t=es.themes[e]||{};do t.$extend?(u.push(t.$extend),t=es.themes[t.$extend]||{}):t=null;while(t);return u}let ui=!1;if(typeof window<"u"){ui=!1;try{const e=Object.defineProperty({},"passive",{get(){ui=!0}});window.addEventListener("test",null,e)}catch{}}let A3=!1;typeof window<"u"&&typeof navigator<"u"&&(A3=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const wE=["auto","top","bottom","left","right"].reduce((e,u)=>e.concat([u,`${u}-start`,`${u}-end`]),[]),m4={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},c4={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function g4(e,u){const t=e.indexOf(u);t!==-1&&e.splice(t,1)}function $o(){return new Promise(e=>requestAnimationFrame(()=>{requestAnimationFrame(e)}))}const Zu=[];let ms=null;const f4={};function p4(e){let u=f4[e];return u||(u=f4[e]=[]),u}let Br=function(){};typeof window<"u"&&(Br=window.Element);function we(e){return function(u){return xE(u.theme,e)}}const Uo="__floating-vue__popper",w3=()=>yt({name:"VPopper",provide(){return{[Uo]:{parentPopper:this}}},inject:{[Uo]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:we("disabled")},positioningDisabled:{type:Boolean,default:we("positioningDisabled")},placement:{type:String,default:we("placement"),validator:e=>wE.includes(e)},delay:{type:[String,Number,Object],default:we("delay")},distance:{type:[Number,String],default:we("distance")},skidding:{type:[Number,String],default:we("skidding")},triggers:{type:Array,default:we("triggers")},showTriggers:{type:[Array,Function],default:we("showTriggers")},hideTriggers:{type:[Array,Function],default:we("hideTriggers")},popperTriggers:{type:Array,default:we("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:we("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:we("popperHideTriggers")},container:{type:[String,Object,Br,Boolean],default:we("container")},boundary:{type:[String,Br],default:we("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:we("strategy")},autoHide:{type:[Boolean,Function],default:we("autoHide")},handleResize:{type:Boolean,default:we("handleResize")},instantMove:{type:Boolean,default:we("instantMove")},eagerMount:{type:Boolean,default:we("eagerMount")},popperClass:{type:[String,Array,Object],default:we("popperClass")},computeTransformOrigin:{type:Boolean,default:we("computeTransformOrigin")},autoMinSize:{type:Boolean,default:we("autoMinSize")},autoSize:{type:[Boolean,String],default:we("autoSize")},autoMaxSize:{type:Boolean,default:we("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:we("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:we("preventOverflow")},overflowPadding:{type:[Number,String],default:we("overflowPadding")},arrowPadding:{type:[Number,String],default:we("arrowPadding")},arrowOverflow:{type:Boolean,default:we("arrowOverflow")},flip:{type:Boolean,default:we("flip")},shift:{type:Boolean,default:we("shift")},shiftCrossAxis:{type:Boolean,default:we("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:we("noAutoFocus")},disposeTimeout:{type:Number,default:we("disposeTimeout")}},emits:{show:()=>!0,hide:()=>!0,"update:shown":e=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},randomId:`popper_${[Math.random(),Date.now()].map(e=>e.toString(36).substring(2,10)).join("_")}`,shownChildren:new Set,lastAutoHide:!0,pendingHide:!1,containsGlobalTarget:!1,isDisposed:!0,mouseDownContains:!1}},computed:{popperId(){return this.ariaId!=null?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var e;return(e=this[Uo])==null?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,u;return((e=this.popperTriggers)==null?void 0:e.includes("hover"))||((u=this.popperShowTriggers)==null?void 0:u.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},triggers:{handler:"$_refreshListeners",deep:!0},positioningDisabled:"$_refreshListeners",...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((e,u)=>(e[u]="$_computePosition",e),{})},created(){this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:e=null,skipDelay:u=!1,force:t=!1}={}){var s,n;(s=this.parentPopper)!=null&&s.lockedChild&&this.parentPopper.lockedChild!==this||(this.pendingHide=!1,(t||!this.disabled)&&(((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,u),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:u=!1}={}){var t;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.pendingHide=!0;return}if(this.hasPopperShowTriggerHover&&this.$_isAimingPopper()){this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout(()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:u}),this.parentPopper.lockedChild=null)},1e3));return}((t=this.parentPopper)==null?void 0:t.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.pendingHide=!1,this.$_scheduleHide(e,u),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var e;this.isDisposed&&(this.isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=((e=this.referenceNode)==null?void 0:e.call(this))??this.$el,this.$_targetNodes=this.targetNodes().filter(u=>u.nodeType===u.ELEMENT_NODE),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.isDisposed||(this.isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){if(this.isDisposed||this.positioningDisabled)return;const e={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&e.middleware.push(g3({mainAxis:this.distance,crossAxis:this.skidding}));const u=this.placement.startsWith("auto");if(u?e.middleware.push(fE({alignment:this.placement.split("-")[1]??""})):e.placement=this.placement,this.preventOverflow&&(this.shift&&e.middleware.push(f3({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!u&&this.flip&&e.middleware.push(m3({padding:this.overflowPadding,boundary:this.boundary}))),e.middleware.push(cE({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&e.middleware.push({name:"arrowOverflow",fn:({placement:s,rects:n,middlewareData:i})=>{let o;const{centerOffset:r}=i.arrow;return s.startsWith("top")||s.startsWith("bottom")?o=Math.abs(r)>n.reference.width/2:o=Math.abs(r)>n.reference.height/2,{data:{overflow:o}}}}),this.autoMinSize||this.autoSize){const s=this.autoSize?this.autoSize:this.autoMinSize?"min":null;e.middleware.push({name:"autoSize",fn:({rects:n,placement:i,middlewareData:o})=>{var r;if((r=o.autoSize)!=null&&r.skip)return{};let a,m;return i.startsWith("top")||i.startsWith("bottom")?a=n.reference.width:m=n.reference.height,this.$_innerNode.style[s==="min"?"minWidth":s==="max"?"maxWidth":"width"]=a!=null?`${a}px`:null,this.$_innerNode.style[s==="min"?"minHeight":s==="max"?"maxHeight":"height"]=m!=null?`${m}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,e.middleware.push(vE({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:s,availableHeight:n})=>{this.$_innerNode.style.maxWidth=s!=null?`${s}px`:null,this.$_innerNode.style.maxHeight=n!=null?`${n}px`:null}})));const t=await yE(this.$_referenceNode,this.$_popperNode,e);Object.assign(this.result,{x:t.x,y:t.y,placement:t.placement,strategy:t.strategy,arrow:{...t.middlewareData.arrow,...t.middlewareData.arrowOverflow}})},$_scheduleShow(e,u=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),ms&&this.instantMove&&ms.instantMove&&ms!==this.parentPopper){ms.$_applyHide(!0),this.$_applyShow(!0);return}u?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(e,u=!1){if(this.shownChildren.size>0){this.pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(ms=this),u?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(e){const u=this.delay;return parseInt(u&&u[e]||u||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,!this.isShown&&(this.$_ensureTeleport(),await $o(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...x0(this.$_referenceNode),...x0(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const u=this.$_referenceNode.getBoundingClientRect(),t=this.$_popperNode.querySelector(".v-popper__wrapper"),s=t.parentNode.getBoundingClientRect(),n=u.x+u.width/2-(s.left+t.offsetLeft),i=u.y+u.height/2-(s.top+t.offsetTop);this.result.transformOrigin=`${n}px ${i}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let u;for(let t=0;t0){this.pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,g4(Zu,this),Zu.length===0&&document.body.classList.remove("v-popper--some-open");for(const t of d4(this.theme)){const s=p4(t);g4(s,this),s.length===0&&document.body.classList.remove(`v-popper--some-open--${t}`)}ms===this&&(ms=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const u=this.disposeTimeout;u!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},u)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await $o(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.isDisposed)return;let e=this.container;if(typeof e=="string"?e=window.document.querySelector(e):e===!1&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=t=>{this.isShown&&!this.$_hideInProgress||(t.usedByTooltip=!0,!this.$_preventShow&&this.show({event:t}))};this.$_registerTriggerListeners(this.$_targetNodes,m4,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],m4,this.popperTriggers,this.popperShowTriggers,e);const u=t=>{t.usedByTooltip||this.hide({event:t})};this.$_registerTriggerListeners(this.$_targetNodes,c4,this.triggers,this.hideTriggers,u),this.$_registerTriggerListeners([this.$_popperNode],c4,this.popperTriggers,this.popperHideTriggers,u)},$_registerEventListeners(e,u,t){this.$_events.push({targetNodes:e,eventType:u,handler:t}),e.forEach(s=>s.addEventListener(u,t,ui?{passive:!0}:void 0))},$_registerTriggerListeners(e,u,t,s,n){let i=t;s!=null&&(i=typeof s=="function"?s(i):s),i.forEach(o=>{const r=u[o];r&&this.$_registerEventListeners(e,r,n)})},$_removeEventListeners(e){const u=[];this.$_events.forEach(t=>{const{targetNodes:s,eventType:n,handler:i}=t;!e||e===n?s.forEach(o=>o.removeEventListener(n,i)):u.push(t)}),this.$_events=u},$_refreshListeners(){this.isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,u=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),u&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,u){for(const t of this.$_targetNodes){const s=t.getAttribute(e);s&&(t.removeAttribute(e),t.setAttribute(u,s))}},$_applyAttrsToTarget(e){for(const u of this.$_targetNodes)for(const t in e){const s=e[t];s==null?u.removeAttribute(t):u.setAttribute(t,s)}},$_updateParentShownChildren(e){let u=this.parentPopper;for(;u;)e?u.shownChildren.add(this.randomId):(u.shownChildren.delete(this.randomId),u.pendingHide&&u.hide()),u=u.parentPopper},$_isAimingPopper(){const e=this.$_referenceNode.getBoundingClientRect();if(jn>=e.left&&jn<=e.right&&In>=e.top&&In<=e.bottom){const u=this.$_popperNode.getBoundingClientRect(),t=jn-Gt,s=In-Kt,n=u.left+u.width/2-Gt+(u.top+u.height/2)-Kt+u.width+u.height,i=Gt+t*n,o=Kt+s*n;return Si(Gt,Kt,i,o,u.left,u.top,u.left,u.bottom)||Si(Gt,Kt,i,o,u.left,u.top,u.right,u.top)||Si(Gt,Kt,i,o,u.right,u.top,u.right,u.bottom)||Si(Gt,Kt,i,o,u.left,u.bottom,u.right,u.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});if(typeof document<"u"&&typeof window<"u"){if(A3){const e=ui?{passive:!0,capture:!0}:!0;document.addEventListener("touchstart",u=>h4(u),e),document.addEventListener("touchend",u=>v4(u,!0),e)}else window.addEventListener("mousedown",e=>h4(e),!0),window.addEventListener("click",e=>v4(e,!1),!0);window.addEventListener("resize",FE)}function h4(e,u){for(let t=0;t=0;s--){const n=Zu[s];try{const i=n.containsGlobalTarget=n.mouseDownContains||n.popperNode().contains(e.target);n.pendingHide=!1,requestAnimationFrame(()=>{if(n.pendingHide=!1,!t[n.randomId]&&E4(n,i,e)){if(n.$_handleGlobalClose(e,u),!e.closeAllPopover&&e.closePopover&&i){let r=n.parentPopper;for(;r;)t[r.randomId]=!0,r=r.parentPopper;return}let o=n.parentPopper;for(;o&&E4(o,o.containsGlobalTarget,e);)o.$_handleGlobalClose(e,u),o=o.parentPopper}})}catch{}}}function E4(e,u,t){return t.closeAllPopover||t.closePopover&&u||DE(e,t)&&!u}function DE(e,u){if(typeof e.autoHide=="function"){const t=e.autoHide(u);return e.lastAutoHide=t,t}return e.autoHide}function FE(){for(let e=0;e{Gt=jn,Kt=In,jn=e.clientX,In=e.clientY},ui?{passive:!0}:void 0);function Si(e,u,t,s,n,i,o,r){const a=((o-n)*(u-i)-(r-i)*(e-n))/((r-i)*(t-e)-(o-n)*(s-u)),m=((t-e)*(u-i)-(s-u)*(e-n))/((r-i)*(t-e)-(o-n)*(s-u));return a>=0&&a<=1&&m>=0&&m<=1}const kE={extends:w3()},sa=(e,u)=>{const t=e.__vccOpts||e;for(const[s,n]of u)t[s]=n;return t};function NE(e,u,t,s,n,i){return me(),Be("div",{ref:"reference",class:Iu(["v-popper",{"v-popper--shown":e.slotData.isShown}])},[Ve(e.$slots,"default",Fu(Eu(e.slotData)))],2)}const SE=sa(kE,[["render",NE]]);function _E(){var e=window.navigator.userAgent,u=e.indexOf("MSIE ");if(u>0)return parseInt(e.substring(u+5,e.indexOf(".",u)),10);var t=e.indexOf("Trident/");if(t>0){var s=e.indexOf("rv:");return parseInt(e.substring(s+3,e.indexOf(".",s)),10)}var n=e.indexOf("Edge/");return n>0?parseInt(e.substring(n+5,e.indexOf(".",n)),10):-1}let Ui;function yr(){yr.init||(yr.init=!0,Ui=_E()!==-1)}var Vi={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){yr(),Ir(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",Ui&&this.$el.appendChild(e),e.data="about:blank",Ui||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!Ui&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const OE=df();af("data-v-b329ee4c");const TE={class:"resize-observer",tabindex:"-1"};lf();const zE=OE((e,u,t,s,n,i)=>(me(),pu("div",TE)));Vi.render=zE,Vi.__scopeId="data-v-b329ee4c",Vi.__file="src/components/ResizeObserver.vue";const b3=(e="theme")=>({computed:{themeClass(){return AE(this[e])}}}),PE=yt({name:"VPopperContent",components:{ResizeObserver:Vi},mixins:[b3()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(e){return e!=null&&!isNaN(e)?`${e}px`:null}}}),RE=["id","aria-hidden","tabindex","data-popper-placement"],LE={ref:"inner",class:"v-popper__inner"},jE=Ce("div",{class:"v-popper__arrow-outer"},null,-1),IE=Ce("div",{class:"v-popper__arrow-inner"},null,-1),ME=[jE,IE];function $E(e,u,t,s,n,i){const o=ft("ResizeObserver");return me(),Be("div",{id:e.popperId,ref:"popover",class:Iu(["v-popper__popper",[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}]]),style:xs(e.result?{position:e.result.strategy,transform:`translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`}:void 0),"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0,onKeyup:u[2]||(u[2]=Tm(r=>e.autoHide&&e.$emit("hide"),["esc"]))},[Ce("div",{class:"v-popper__backdrop",onClick:u[0]||(u[0]=r=>e.autoHide&&e.$emit("hide"))}),Ce("div",{class:"v-popper__wrapper",style:xs(e.result?{transformOrigin:e.result.transformOrigin}:void 0)},[Ce("div",LE,[e.mounted?(me(),Be(tu,{key:0},[Ce("div",null,[Ve(e.$slots,"default")]),e.handleResize?(me(),pu(o,{key:0,onNotify:u[1]||(u[1]=r=>e.$emit("resize",r))})):au("",!0)],64)):au("",!0)],512),Ce("div",{ref:"arrow",class:"v-popper__arrow-container",style:xs(e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0)},ME,4)],4)],46,RE)}const UE=sa(PE,[["render",$E]]),VE={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}};let xr=function(){};typeof window<"u"&&(xr=window.Element);const WE=yt({name:"VPopperWrapper",components:{Popper:SE,PopperContent:UE},mixins:[VE,b3("finalTheme")],props:{theme:{type:String,default:null},referenceNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:void 0},positioningDisabled:{type:Boolean,default:void 0},placement:{type:String,default:void 0},delay:{type:[String,Number,Object],default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},triggers:{type:Array,default:void 0},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperTriggers:{type:Array,default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},container:{type:[String,Object,xr,Boolean],default:void 0},boundary:{type:[String,xr],default:void 0},strategy:{type:String,default:void 0},autoHide:{type:[Boolean,Function],default:void 0},handleResize:{type:Boolean,default:void 0},instantMove:{type:Boolean,default:void 0},eagerMount:{type:Boolean,default:void 0},popperClass:{type:[String,Array,Object],default:void 0},computeTransformOrigin:{type:Boolean,default:void 0},autoMinSize:{type:Boolean,default:void 0},autoSize:{type:[Boolean,String],default:void 0},autoMaxSize:{type:Boolean,default:void 0},autoBoundaryMaxSize:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},arrowOverflow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},noAutoFocus:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},emits:{show:()=>!0,hide:()=>!0,"update:shown":e=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},computed:{finalTheme(){return this.theme??this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(e=>e!==this.$refs.popperContent.$el)}}});function HE(e,u,t,s,n,i){const o=ft("PopperContent"),r=ft("Popper");return me(),pu(r,_u({ref:"popper"},e.$props,{theme:e.finalTheme,"target-nodes":e.getTargetNodes,"popper-node":()=>e.$refs.popperContent.$el,class:[e.themeClass],onShow:u[0]||(u[0]=()=>e.$emit("show")),onHide:u[1]||(u[1]=()=>e.$emit("hide")),"onUpdate:shown":u[2]||(u[2]=a=>e.$emit("update:shown",a)),onApplyShow:u[3]||(u[3]=()=>e.$emit("apply-show")),onApplyHide:u[4]||(u[4]=()=>e.$emit("apply-hide")),onCloseGroup:u[5]||(u[5]=()=>e.$emit("close-group")),onCloseDirective:u[6]||(u[6]=()=>e.$emit("close-directive")),onAutoHide:u[7]||(u[7]=()=>e.$emit("auto-hide")),onResize:u[8]||(u[8]=()=>e.$emit("resize"))}),{default:Me(({popperId:a,isShown:m,shouldMountContent:l,skipTransition:g,autoHide:p,show:h,hide:y,handleResize:E,onResize:F,classes:B,result:A})=>[Ve(e.$slots,"default",{shown:m,show:h,hide:y}),Ee(o,{ref:"popperContent","popper-id":a,theme:e.finalTheme,shown:m,mounted:l,"skip-transition":g,"auto-hide":p,"handle-resize":E,classes:B,result:A,onHide:y,onResize:F},{default:Me(()=>[Ve(e.$slots,"popper",{shown:m,hide:y})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},16,["theme","target-nodes","popper-node","class"])}const Ar=sa(WE,[["render",HE]]),GE={...Ar,name:"VDropdown",vPopperTheme:"dropdown"};({...Ar},{...Ar}),w3();const C4=es,KE=GE,qE=yt({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),YE="_ncPopover_zfWgY",ZE={"material-design-icon":"_material-design-icon_bkeq-",ncPopover:YE},D3="nc-popover-9";C4.themes[D3]=structuredClone(C4.themes.dropdown);const XE={name:"NcPopover",components:{Dropdown:KE,NcPopoverTriggerProvider:qE},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:e=>["menu","listbox","tree","grid","dialog","true"].includes(e)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:D3}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?m0?"right":"left":this.placement==="end"?m0?"left":"right":this.placement}},watch:{shown(e){this.internalShown=e},internalShown(e){this.$emit("update:shown",e)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const e=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const u of e)u.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const e=this.getPopoverContentElement();e.tabIndex=-1,e&&(this.$focusTrap=o3(e,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:Jn(),fallBackFocus:e}),this.$focusTrap.activate())},clearFocusTrap(e={}){try{this.$focusTrap?.deactivate(e),this.$focusTrap=null}catch(u){bv.warn("[NcPopover] Failed to clear focus trap",{error:u})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(e){e.type==="keydown"&&e.key==="Escape"&&e.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function JE(e,u,t,s,n,i){const o=ft("NcPopoverTriggerProvider"),r=ft("Dropdown");return me(),pu(r,{ref:"popover",shown:n.internalShown,"onUpdate:shown":[u[0]||(u[0]=a=>n.internalShown=a),u[1]||(u[1]=a=>n.internalShown=a)],arrowPadding:10,autoHide:!t.noCloseOnClickOutside&&t.closeOnClickOutside,boundary:t.boundary||void 0,container:t.container,delay:t.delay,distance:10,handleResize:"",noAutoFocus:!0,placement:i.internalPlacement,popperClass:[e.$style.ncPopover,t.popoverBaseClass],popperTriggers:i.popperTriggers,popperHideTriggers:i.popperHideTriggers,popperShowTriggers:i.popperShowTriggers,theme:s.theme,triggers:i.internalTriggers,hideTriggers:i.hideTriggers,showTriggers:i.showTriggers,onApplyShow:i.afterShow,onApplyHide:i.afterHide},{popper:Me(a=>[Ve(e.$slots,"default",Fu(Eu(a)))]),default:Me(()=>[Ee(o,{shown:n.internalShown,popupRole:t.popupRole},{default:Me(a=>[Ve(e.$slots,"trigger",Fu(Eu(a)))]),_:3},8,["shown","popupRole"])]),_:3},8,["shown","autoHide","boundary","container","delay","placement","popperClass","popperTriggers","popperHideTriggers","popperShowTriggers","theme","triggers","hideTriggers","showTriggers","onApplyShow","onApplyHide"])}const QE={$style:ZE},B4=qu(XE,[["render",JE],["__cssModules",QE]]),e1=Symbol.for("NcActions:isSemanticMenu"),u1=Symbol.for("NcActions:closeMenu"),t1={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},s1=["aria-hidden","aria-label"],n1=["fill","width","height"],i1={d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"},o1={key:0};function r1(e,u,t,s,n,i){return me(),Be("span",_u(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:u[0]||(u[0]=o=>e.$emit("click",o))}),[(me(),Be("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[Ce("path",i1,[t.title?(me(),Be("title",o1,Mu(t.title),1)):au("",!0)])],8,n1))],16,s1)}const a1=qu(t1,[["render",r1]]);Xn($h);function F3(e){return Array.isArray(e)&&e.some(u=>{if(u===null)return!1;if(typeof u=="object"){const t=u;if(t.type===mu||t.type===tu&&!F3(t.children)||t.type===ai&&!t.children.trim())return!1}return!0})}const l1=".focusable",d1={name:"NcActions",components:{NcButton:Bs,NcPopover:B4},provide(){return{[e1]:Ge(()=>this.actionsMenuSemanticType==="menu"),[u1]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:Cu("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(e){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(e)},default:null},wide:{type:Boolean,default:!1},size:{type:String,default:"normal",validator(e){return["small","normal","large"].includes(e)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:v0()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(e){e!==this.opened&&(this.opened=e)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){uE(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(e){return e?.type?.name},isValidSingleAction(e){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(e))},isAction(e){return this.getActionName(e)?.startsWith?.("NcAction")},isIconUrl(e){try{return!!new URL(e,e.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(e){e?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(e=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:e}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,e&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(l1)},onKeydown(e){if(e.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}e.preventDefault();const u=this.getFocusableMenuItemElements(),t=[...u].indexOf(document.activeElement);if(t===-1)return;const s=e.shiftKey?t-1:t+1;(s<0||s===u.length)&&this.closeMenu(!0),this.focusIndex=s,this.focusAction();return}this.config.withArrowNavigation&&(e.key==="ArrowUp"&&this.focusPreviousAction(e),e.key==="ArrowDown"&&this.focusNextAction(e),e.key==="PageUp"&&this.focusFirstAction(e),e.key==="PageDown"&&this.focusLastAction(e)),this.handleEscapePressed(e)},onTriggerKeydown(e){e.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(e){e.key==="Escape"&&(this.closeMenu(),e.preventDefault())},removeCurrentActive(){const e=this.$refs.menu.querySelector("li.active");e&&e.classList.remove("active")},focusAction(){const e=this.getFocusableMenuItemElements()[this.focusIndex];if(e){this.removeCurrentActive();const u=e.closest("li.action");e.focus(),u&&u.classList.add("active")}},focusPreviousAction(e){this.opened&&(this.focusIndex===0?this.focusLastAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(e){if(this.opened){const u=this.getFocusableMenuItemElements().length-1;this.focusIndex===u?this.focusFirstAction(e):(this.preventIfEvent(e),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(e){if(this.opened){this.preventIfEvent(e);const u=[...this.getFocusableMenuItemElements()].findIndex(t=>t.getAttribute("aria-checked")==="true"&&t.getAttribute("role")==="menuitemradio");this.focusIndex=u>-1?u:0,this.focusAction()}},focusLastAction(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(e){e&&(e.preventDefault(),e.stopPropagation())},onFocus(e){this.$emit("focus",e)},onBlur(e){this.$emit("blur",e),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(e){this.$emit("click",e)}},render(){const e=[],u=(h,y)=>{h.forEach(E=>{if(this.isAction(E)){y.push(E);return}E.type===tu&&u(E.children,y)})};if(u(this.$slots.default?.(),e),e.length===0)return;let t=e.filter(this.isValidSingleAction);this.forceMenu&&t.length>0&&this.inline>0&&(t=[]);const s=t.slice(0,this.inline),n=e.filter(h=>!s.includes(h)),i=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],o=["NcActionInput","NcActionTextEditable"],r=["NcActionLink","NcActionRouter"],a=n.some(h=>o.includes(this.getActionName(h))),m=n.some(h=>i.includes(this.getActionName(h))),l=n.some(h=>r.includes(this.getActionName(h)));a?this.actionsMenuSemanticType="dialog":m?this.actionsMenuSemanticType="menu":l?this.actionsMenuSemanticType="navigation":e.filter(h=>this.getActionName(h).startsWith("NcAction")).length===e.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const g=h=>{const y=h?.props?.icon,E=h?.children?.icon?.()?.[0]??(this.isIconUrl(y)?lu("img",{class:"action-item__menutoggle__icon",src:y,alt:""}):lu("span",{class:["icon",y]})),F=h?.children?.default?.()?.[0]?.children?.trim(),B=this.forceName?F:"";let A=h?.props?.title;this.forceName||A||(A=F);const O={...h?.props??{}},N=["submit","reset"].includes(O.type)?O.modelValue:"button";return delete O.modelValue,delete O.type,lu(Bs,_u(O,{class:["action-item action-item--single",{"action-item--wide":this.wide}],"aria-label":h?.props?.["aria-label"]||F,title:A,disabled:this.disabled||h?.props?.disabled,pressed:h?.props?.modelValue,size:this.size,type:N,wide:this.wide,variant:this.variant||(B?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":h?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>B,icon:()=>E})},p=h=>{const y=F3(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?lu("span",{class:["icon",this.defaultIcon]}):lu(a1,{size:20}),E=`${this.randomId}-trigger`;return lu(B4,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterClose:this.onClosed},{trigger:()=>lu(Bs,{id:E,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,wide:this.wide,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>y,default:()=>this.menuName}),default:()=>lu("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[lu("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":E,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[h])])})};return e.length===1&&t.length===1&&!this.forceMenu?g(e[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),s.length>0&&this.inline>0?lu("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...s.map(g),n.length>0?lu("div",{class:["action-item",{"action-item--open":this.opened}]},[p(n)]):null]):lu("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened,"action-item--wide":this.wide}]},[p(e)]))}},m1=qu(d1,[["__scopeId","data-v-23e5cae7"]]),c1={name:"ChevronDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},g1=["aria-hidden","aria-label"],f1=["fill","width","height"],p1={d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},h1={key:0};function v1(e,u,t,s,n,i){return me(),Be("span",_u(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon chevron-down-icon",role:"img",onClick:u[0]||(u[0]=o=>e.$emit("click",o))}),[(me(),Be("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[Ce("path",p1,[t.title?(me(),Be("title",h1,Mu(t.title),1)):au("",!0)])],8,f1))],16,g1)}const E1=qu(c1,[["render",v1]]),C1={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},B1=["aria-hidden","aria-label"],y1=["fill","width","height"],x1={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"},A1={key:0};function w1(e,u,t,s,n,i){return me(),Be("span",_u(e.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon close-icon",role:"img",onClick:u[0]||(u[0]=o=>e.$emit("click",o))}),[(me(),Be("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[Ce("path",x1,[t.title?(me(),Be("title",A1,Mu(t.title),1)):au("",!0)])],8,y1))],16,B1)}const b1=qu(C1,[["render",w1]]),D1=["aria-label"],F1=["width","height"],k1=["fill"],N1=["fill"],S1={key:0},_1=yt({__name:"NcLoadingIcon",props:{appearance:{default:"auto"},name:{default:""},size:{default:20}},setup(e){const u=e,t=Ge(()=>{const s=["#777","#CCC"];return u.appearance==="light"?s:u.appearance==="dark"?s.reverse():["var(--color-loading-light)","var(--color-loading-dark)"]});return(s,n)=>(me(),Be("span",{"aria-label":e.name,role:"img",class:"material-design-icon loading-icon"},[(me(),Be("svg",{width:e.size,height:e.size,viewBox:"0 0 24 24"},[Ce("path",{fill:t.value[0],d:"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z"},null,8,k1),Ce("path",{fill:t.value[1],d:"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z"},[e.name?(me(),Be("title",S1,Mu(e.name),1)):au("",!0)],8,N1)],8,F1))],8,D1))}}),O1=qu(_1,[["__scopeId","data-v-cf399190"]]),gy=(e,u)=>{const t=e.__vccOpts||e;for(const[s,n]of u)t[s]=n;return t},T1="modulepreload",z1=function(e,u){return new URL(e,u).href},y4={},na=function(e,u,t){let s=Promise.resolve();if(u&&u.length>0){let i=function(m){return Promise.all(m.map(l=>Promise.resolve(l).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};const o=document.getElementsByTagName("link"),r=document.querySelector("meta[property=csp-nonce]"),a=r?.nonce||r?.getAttribute("nonce");s=i(u.map(m=>{if(m=z1(m,t),m in y4)return;y4[m]=!0;const l=m.endsWith(".css"),g=l?'[rel="stylesheet"]':"";if(t)for(let h=o.length-1;h>=0;h--){const y=o[h];if(y.href===m&&(!l||y.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${m}"]${g}`))return;const p=document.createElement("link");if(p.rel=l?"stylesheet":T1,l||(p.as="script"),p.crossOrigin="",p.href=m,a&&p.setAttribute("nonce",a),document.head.appendChild(p),l)return new Promise((h,y)=>{p.addEventListener("load",h),p.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${m}`)))})}))}function n(i){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i}return s.then(i=>{for(const o of i||[])o.status==="rejected"&&n(o.reason);return e().catch(n)})};var wr={exports:{}},P1=wr.exports,x4;function R1(){return x4||(x4=1,(function(e){(function(u,t){e.exports?e.exports=t():u.Toastify=t()})(P1,function(u){var t=function(o){return new t.lib.init(o)},s="1.12.0";t.defaults={oldestFirst:!0,text:"Toastify is awesome!",node:void 0,duration:3e3,selector:void 0,callback:function(){},destination:void 0,newWindow:!1,close:!1,gravity:"toastify-top",positionLeft:!1,position:"",backgroundColor:"",avatar:"",className:"",stopOnFocus:!0,onClick:function(){},offset:{x:0,y:0},escapeMarkup:!0,ariaLive:"polite",style:{background:""}},t.lib=t.prototype={toastify:s,constructor:t,init:function(o){return o||(o={}),this.options={},this.toastElement=null,this.options.text=o.text||t.defaults.text,this.options.node=o.node||t.defaults.node,this.options.duration=o.duration===0?0:o.duration||t.defaults.duration,this.options.selector=o.selector||t.defaults.selector,this.options.callback=o.callback||t.defaults.callback,this.options.destination=o.destination||t.defaults.destination,this.options.newWindow=o.newWindow||t.defaults.newWindow,this.options.close=o.close||t.defaults.close,this.options.gravity=o.gravity==="bottom"?"toastify-bottom":t.defaults.gravity,this.options.positionLeft=o.positionLeft||t.defaults.positionLeft,this.options.position=o.position||t.defaults.position,this.options.backgroundColor=o.backgroundColor||t.defaults.backgroundColor,this.options.avatar=o.avatar||t.defaults.avatar,this.options.className=o.className||t.defaults.className,this.options.stopOnFocus=o.stopOnFocus===void 0?t.defaults.stopOnFocus:o.stopOnFocus,this.options.onClick=o.onClick||t.defaults.onClick,this.options.offset=o.offset||t.defaults.offset,this.options.escapeMarkup=o.escapeMarkup!==void 0?o.escapeMarkup:t.defaults.escapeMarkup,this.options.ariaLive=o.ariaLive||t.defaults.ariaLive,this.options.style=o.style||t.defaults.style,o.backgroundColor&&(this.options.style.background=o.backgroundColor),this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var o=document.createElement("div");o.className="toastify on "+this.options.className,this.options.position?o.className+=" toastify-"+this.options.position:this.options.positionLeft===!0?(o.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):o.className+=" toastify-right",o.className+=" "+this.options.gravity,this.options.backgroundColor&&console.warn('DEPRECATION NOTICE: "backgroundColor" is being deprecated. Please use the "style.background" property.');for(var r in this.options.style)o.style[r]=this.options.style[r];if(this.options.ariaLive&&o.setAttribute("aria-live",this.options.ariaLive),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)o.appendChild(this.options.node);else if(this.options.escapeMarkup?o.innerText=this.options.text:o.innerHTML=this.options.text,this.options.avatar!==""){var a=document.createElement("img");a.src=this.options.avatar,a.className="toastify-avatar",this.options.position=="left"||this.options.positionLeft===!0?o.appendChild(a):o.insertAdjacentElement("afterbegin",a)}if(this.options.close===!0){var m=document.createElement("button");m.type="button",m.setAttribute("aria-label","Close"),m.className="toast-close",m.innerHTML="✖",m.addEventListener("click",function(F){F.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var l=window.innerWidth>0?window.innerWidth:screen.width;(this.options.position=="left"||this.options.positionLeft===!0)&&l>360?o.insertAdjacentElement("afterbegin",m):o.appendChild(m)}if(this.options.stopOnFocus&&this.options.duration>0){var g=this;o.addEventListener("mouseover",function(F){window.clearTimeout(o.timeOutValue)}),o.addEventListener("mouseleave",function(){o.timeOutValue=window.setTimeout(function(){g.removeElement(o)},g.options.duration)})}if(typeof this.options.destination<"u"&&o.addEventListener("click",function(F){F.stopPropagation(),this.options.newWindow===!0?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),typeof this.options.onClick=="function"&&typeof this.options.destination>"u"&&o.addEventListener("click",function(F){F.stopPropagation(),this.options.onClick()}.bind(this)),typeof this.options.offset=="object"){var p=n("x",this.options),h=n("y",this.options),y=this.options.position=="left"?p:"-"+p,E=this.options.gravity=="toastify-top"?h:"-"+h;o.style.transform="translate("+y+","+E+")"}return o},showToast:function(){this.toastElement=this.buildToast();var o;if(typeof this.options.selector=="string"?o=document.getElementById(this.options.selector):this.options.selector instanceof HTMLElement||typeof ShadowRoot<"u"&&this.options.selector instanceof ShadowRoot?o=this.options.selector:o=document.body,!o)throw"Root element is not defined";var r=t.defaults.oldestFirst?o.firstChild:o.lastChild;return o.insertBefore(this.toastElement,r),t.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(o){o.className=o.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),o.parentNode&&o.parentNode.removeChild(o),this.options.callback.call(o),t.reposition()}.bind(this),400)}},t.reposition=function(){for(var o={top:15,bottom:15},r={top:15,bottom:15},a={top:15,bottom:15},m=document.getElementsByClassName("toastify"),l,g=0;g0?window.innerWidth:screen.width;y<=360?(m[g].style[l]=a[l]+"px",a[l]+=p+h):i(m[g],"toastify-left")===!0?(m[g].style[l]=o[l]+"px",o[l]+=p+h):(m[g].style[l]=r[l]+"px",r[l]+=p+h)}return this};function n(o,r){return r.offset[o]?isNaN(r.offset[o])?r.offset[o]:r.offset[o]+"px":"0px"}function i(o,r){return!o||typeof r!="string"?!1:!!(o.className&&o.className.trim().split(/\s+/gi).indexOf(r)>-1)}return t.lib.init.prototype=t.lib,t})})(wr)),wr.exports}var L1=R1();const j1=F0(L1);Xn(Wh),Xn(Mh),Cu("a few seconds ago"),Cu("seconds ago"),Cu("sec. ago");const I1=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),M1=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),$1=/^[a-zA-Z0-9]$/,U1=/^[^\x20-\x7F]$/;function V1(e,u){return!(e.target instanceof HTMLElement)||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement||e.target.isContentEditable?!0:u.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(t=>t.checkVisibility()).length>0}function A4(e,u){return t=>{if((I1?t.metaKey:t.ctrlKey)===!!u.ctrl){if(t.altKey!==!!u.alt||u.shift!==void 0&&t.shiftKey!==!!u.shift||V1(t,u))return;u.prevent&&t.preventDefault(),u.stop&&t.stopPropagation(),e(t)}}}function w4(e,u=()=>{},t={}){if(M1)return()=>{};const s=(r,a)=>{if(r.key===a)return!0;if(t.caseSensitive){const m=a===a.toLowerCase(),l=r.key===r.key.toLowerCase();if(m!==l)return!1}return $1.test(a)&&U1.test(r.key)?r.code.replace(/^(?:Key|Digit|Numpad)/,"")===a.toUpperCase():r.key.toLowerCase()===a.toLowerCase()},n=r=>typeof e=="function"?e(r):typeof e=="string"?s(r,e):Array.isArray(e)?e.some(a=>s(r,a)):!0,i=Hl(n,A4(u,t),{eventName:"keydown",dedupe:!0,passive:!t.prevent}),o=t.push?Hl(n,A4(u,t),{eventName:"keyup",passive:!t.prevent}):()=>{};return()=>{i(),o()}}function W1(e=document.body){const u=window.getComputedStyle(e).getPropertyValue("--background-invert-if-dark");return u!==void 0?u==="invert(100%)":!1}W1();const H1=rn(k3());window.addEventListener("resize",()=>{H1.value=k3()});function k3(){return window.outerHeight===window.screen.height}function b4(e){return!e.parent||"vapor"in e||"vapor"in e.parent||e.parent.subTree!==e.vnode?null:e.parent}function G1(e){const u=[e];let t=b4(e);for(;t;)u.push(t),t=b4(t);return u}function K1(){const e=et();if(!e)throw new Error("useScopeId must be called within a setup context");const u=G1(e).map(t=>t.vnode.scopeId).filter(Boolean);return Object.fromEntries(u.map(t=>[t,""]))}Xn(Vh,Hh);const q1=["aria-labelledby","aria-describedby"],Y1=["data-theme-light","data-theme-dark"],Z1=["id"],X1={class:"icons-menu"},J1=["title"],Q1=["id"],eC={class:"modal-container__content"},uC=yt({inheritAttrs:!1,__name:"NcModal",props:nl({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{}}),emits:nl(["next","previous","close","update:show"],["update:show"]),setup(e,{emit:u}){Nm(M=>({v046d2bb2:B.value,v71f7c020:y.value}));const t=Vf(e,"show"),s=e,n=u,i=K1(),o=v0(),r=xf("mask");let a;an(()=>G()),St(()=>s.additionalTrapElements,M=>{a&&a.updateContainerElements([r.value,...M])});const{isActive:m,pause:l,resume:g}=xh(A,Qg(()=>s.slideshowDelay),{immediate:!1}),p=rn(0),h=rn(!1);Ld(()=>{h.value&&!s.slideshowPaused?g():m.value&&l()});const y=Ge(()=>`${s.slideshowDelay}ms`),{stop:E}=Nh(r,{onSwipeEnd:N});an(E),w4("Escape",()=>{Jn().at(-1)===a&&I()},{allowInModal:!0}),w4(["ArrowLeft","ArrowRight"],M=>{document.activeElement&&!r.value.contains(document.activeElement)||(M.key==="ArrowLeft"!==m0?O():A())},{allowInModal:!0});const F=Pf(),B=Ge(()=>{let M=0;return s.hasNext&&s.enableSlideshow&&M++,!s.noClose&&s.closeButtonOutside&&M++,F.actions&&M++,M});ri(()=>{!s.name&&s.labelId});function A(M){if(!s.hasNext){h.value=!1;return}M&&m.value&&K(),n("next",M)}function O(M){s.hasPrevious&&(M&&m.value&&K(),n("previous",M))}function N(M,ne){if(!s.disableSwipe){if(ne!=="left"&&ne!=="right")return;ne==="left"!==m0?A(M):O(M)}}function K(){l(),g(),p.value++}function I(M){s.noClose||(t.value=!1,setTimeout(()=>{n("close",M)},300))}function Y(M){s.closeOnClickOutside&&I(M)}async function se(){if(a)return;await Ir();const M={allowOutsideClick:!0,fallbackFocus:r.value,trapStack:Jn(),escapeDeactivates:!1,setReturnFocus:s.setReturnFocus};a=o3([r.value,...s.additionalTrapElements],M),a.activate()}function G(){a&&(a?.deactivate(),a=void 0)}return(M,ne)=>(me(),pu(Cf,{disabled:e.container===null,to:e.container},[Ee(Ks,{name:"fade",appear:"",onAfterEnter:se,onBeforeLeave:G},{default:Me(()=>[Es(Ce("div",_u({...M.$attrs,...Fe(i)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":e.dark||e.closeButtonOutside||e.hasPrevious||e.hasNext,"modal-mask--light":e.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":e.labelId||`modal-name-${Fe(o)}`,"aria-describedby":"modal-description-"+Fe(o),tabindex:"-1"}),[Ee(Ks,{name:"fade-visibility",appear:""},{default:Me(()=>[Ce("div",{class:"modal-header","data-theme-light":e.lightBackdrop,"data-theme-dark":!e.lightBackdrop},[e.name.trim()!==""?(me(),Be("h2",{key:0,id:"modal-name-"+Fe(o),class:"modal-header__name"},Mu(e.name),9,Z1)):au("",!0),Ce("div",X1,[e.hasNext&&e.enableSlideshow?(me(),Be("button",{key:0,class:Iu(["play-pause-icons",{"play-pause-icons--paused":e.slideshowPaused}]),title:Fe(m)?Fe(Cu)("Pause slideshow"):Fe(Cu)("Start slideshow"),type:"button",onClick:ne[0]||(ne[0]=b=>h.value=!h.value)},[Ee(Ys,{class:"play-pause-icons__icon",inline:"",name:Fe(m)?Fe(Cu)("Pause slideshow"):Fe(Cu)("Start slideshow"),path:Fe(m)?Fe(Rh):Fe(Lh)},null,8,["name","path"]),Fe(m)?(me(),Be("svg",{key:`${Fe(o)}-animation-${p.value}`,class:"progress-ring",height:"50",width:"50"},[...ne[1]||(ne[1]=[Ce("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",r:"15",cx:"25",cy:"25"},null,-1)])])):au("",!0)],10,J1)):au("",!0),Ee(m1,{class:"header-actions",inline:e.inlineActions},{default:Me(()=>[Ve(M.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!e.noClose&&e.closeButtonOutside?(me(),pu(Bs,{key:1,"aria-label":Fe(Cu)("Close"),class:"header-close",variant:"tertiary",onClick:I},{icon:Me(()=>[Ee(Ys,{path:Fe(Gl)},null,8,["path"])]),_:1},8,["aria-label"])):au("",!0)])],8,Y1)]),_:3}),Ee(Ks,{name:`modal-${e.outTransition?"out":"in"}`,appear:""},{default:Me(()=>[Es(Ce("div",{class:Iu(["modal-wrapper",[`modal-wrapper--${e.size}`,{"modal-wrapper--spread-navigation":e.spreadNavigation}]]),onMousedown:ji(Y,["self"])},[Ee(Ks,{name:"fade-visibility",appear:""},{default:Me(()=>[Es(Ee(Bs,{"aria-label":Fe(Cu)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:O},{icon:Me(()=>[Ee(Ys,{directional:"",path:Fe(Th),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[Zs,e.hasPrevious]])]),_:1}),Ce("div",{id:"modal-description-"+Fe(o),class:"modal-container"},[Ce("div",eC,[Ve(M.$slots,"default",{},void 0,!0)]),!e.noClose&&!e.closeButtonOutside?(me(),pu(Bs,{key:0,"aria-label":Fe(Cu)("Close"),class:"modal-container__close",variant:"tertiary",onClick:I},{icon:Me(()=>[Ee(Ys,{path:Fe(Gl)},null,8,["path"])]),_:1},8,["aria-label"])):au("",!0)],8,Q1),Ee(Ks,{name:"fade-visibility",appear:""},{default:Me(()=>[Es(Ee(Bs,{"aria-label":Fe(Cu)("Next"),class:"next",variant:"tertiary-no-background",onClick:A},{icon:Me(()=>[Ee(Ys,{directional:"",path:Fe(zh),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[Zs,e.hasNext]])]),_:1})],34),[[Zs,t.value]])]),_:3},8,["name"])],16,q1),[[Zs,t.value]])]),_:3})],8,["disabled","to"]))}}),fy=qu(uC,[["__scopeId","data-v-3c357e2d"]]),tC=["role"],sC={key:0,class:"notecard__heading"},nC={class:"notecard__text"},iC=yt({__name:"NcNoteCard",props:{heading:{default:void 0},showAlert:{type:Boolean},text:{default:void 0},type:{default:"warning"}},setup(e){const u=e,t=Ge(()=>u.showAlert||u.type==="error"),s=Ge(()=>{switch(u.type){case"error":return _h;case"success":return Oh;case"info":return Ph;default:return Sh}});return(n,i)=>(me(),Be("div",{class:Iu(["notecard",{[`notecard--${e.type}`]:e.type,"notecard--legacy":Fe(Jr)}]),role:t.value?"alert":"note"},[Ve(n.$slots,"icon",{},()=>[Ee(Fe(Ys),{path:s.value,class:Iu(["notecard__icon",{"notecard__icon--heading":e.heading}]),inline:""},null,8,["path","class"])],!0),Ce("div",null,[e.heading?(me(),Be("p",sC,Mu(e.heading),1)):au("",!0),Ve(n.$slots,"default",{},()=>[Ce("p",nC,Mu(e.text),1)],!0)])],10,tC))}}),py=qu(iC,[["__scopeId","data-v-6be9fa31"]]),N3=Gm().detectLanguage();for(const e of[{language:"ar",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" لا يصلح كاسم مجلد.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" غير مسموح به كاسم مجلد']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" غير مسموح به داخل اسم مجلد.']},{msgid:"All files",msgstr:["كل الملفات"]},{msgid:"Choose",msgstr:["إختَر"]},{msgid:"Choose {file}",msgstr:["إختر {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["إختَر %n ملف","إختَر %n ملف","إختَر %n ملف","إختَر %n ملفات","إختَر %n ملف","إختر %n ملف"]},{msgid:"Copy",msgstr:["نسخ"]},{msgid:"Copy to {target}",msgstr:["نسخ إلى {target}"]},{msgid:"Could not create the new folder",msgstr:["تعذّر إنشاء المجلد الجديد"]},{msgid:"Could not load files settings",msgstr:["يتعذّر تحميل إعدادات الملفات"]},{msgid:"Could not load files views",msgstr:["تعذر تحميل عرض الملفات"]},{msgid:"Create directory",msgstr:["إنشاء مجلد"]},{msgid:"Current view selector",msgstr:["محدد العرض الحالي"]},{msgid:"Favorites",msgstr:["المفضلة"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["الملفات والمجلدات التي تحددها كمفضلة ستظهر هنا."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["الملفات و المجلدات التي قمت مؤخراً بتعديلها سوف تظهر هنا."]},{msgid:"Filter file list",msgstr:["تصفية قائمة الملفات"]},{msgid:"Folder name cannot be empty.",msgstr:["اسم المجلد لا يمكن أن يكون فارغاً."]},{msgid:"Home",msgstr:["البداية"]},{msgid:"Modified",msgstr:["التعديل"]},{msgid:"Move",msgstr:["نقل"]},{msgid:"Move to {target}",msgstr:["نقل إلى {target}"]},{msgid:"Name",msgstr:["الاسم"]},{msgid:"New",msgstr:["جديد"]},{msgid:"New folder",msgstr:["مجلد جديد"]},{msgid:"New folder name",msgstr:["اسم المجلد الجديد"]},{msgid:"No files in here",msgstr:["لا توجد ملفات هنا"]},{msgid:"No files matching your filter were found.",msgstr:["لا توجد ملفات تتطابق مع عامل التصفية الذي وضعته"]},{msgid:"No matching files",msgstr:["لا توجد ملفات مطابقة"]},{msgid:"Recent",msgstr:["الحالي"]},{msgid:"Select all entries",msgstr:["حدد جميع الإدخالات"]},{msgid:"Select entry",msgstr:["إختَر المدخل"]},{msgid:"Select the row for {nodename}",msgstr:["إختر سطر الـ {nodename}"]},{msgid:"Size",msgstr:["الحجم"]},{msgid:"Undo",msgstr:["تراجع"]},{msgid:"Upload some content or sync with your devices!",msgstr:["قم برفع بعض المحتوى أو المزامنة مع أجهزتك!"]}]},{language:"ast",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["«{name}» ye un nome de carpeta inválidu."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["«{name}» ye un nome de carpeta inválidu"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["Nun se permite'l caráuter «/» dientro'l nome de les carpetes."]},{msgid:"All files",msgstr:["Tolos ficheros"]},{msgid:"Choose",msgstr:["Escoyer"]},{msgid:"Choose {file}",msgstr:["Escoyer «{ficheru}»"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escoyer %n ficheru","Escoyer %n ficheros"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar en: {target}"]},{msgid:"Could not create the new folder",msgstr:["Nun se pudo crear la carpeta"]},{msgid:"Could not load files settings",msgstr:["Nun se pudo cargar la configuración de los ficheros"]},{msgid:"Could not load files views",msgstr:["Nun se pudieron cargar les vistes de los ficheros"]},{msgid:"Create directory",msgstr:["Crear un direutoriu"]},{msgid:"Current view selector",msgstr:["Selector de la vista actual"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Equí apaecen los ficheros y les carpetes que metas en Favoritos."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Equí apaecen los fichero y les carpetes que modificares apocayá."]},{msgid:"Filter file list",msgstr:["Peñerar la llista de ficheros"]},{msgid:"Folder name cannot be empty.",msgstr:["El nome de la carpeta nun pue tar baleru."]},{msgid:"Home",msgstr:["Aniciu"]},{msgid:"Modified",msgstr:["Modificóse"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"New",msgstr:["Nuevu"]},{msgid:"New folder",msgstr:["Carpeta nueva"]},{msgid:"New folder name",msgstr:["Nome de carpeta nuevu"]},{msgid:"No files in here",msgstr:["Equí nun hai nengún ficheru"]},{msgid:"No files matching your filter were found.",msgstr:["Nun s'atopó nengún ficheru que concasare cola peñera."]},{msgid:"No matching files",msgstr:["Nun hai nengún ficheru que concase"]},{msgid:"Recent",msgstr:["De recién"]},{msgid:"Select all entries",msgstr:["Seleicionar toles entraes"]},{msgid:"Select entry",msgstr:["Seleicionar la entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleicionar la filera de: {nodename}"]},{msgid:"Size",msgstr:["Tamañu"]},{msgid:"Undo",msgstr:["Desfacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Xubi dalgún elementu o sincroniza colos tos preseos!"]}]},{language:"ca",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:[`No és permès d'usar el caràcter "{char}" en un nom.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no és un nom permès.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" no és vàlid com a nom de carpeta.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no és vàlid com a nom de carpeta']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" és un mot reservat i no està permès com a nom.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:[`"/" no està permès en el nom d'una carpeta.`]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n conflicte de fitxers","%n conflictes de fitxers"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n onflicte de fitxers a {dirname}","%n conflictes de fitxers a {dirname}"]},{msgid:"All files",msgstr:["Tots els fitxers"]},{msgid:"Cancel",msgstr:["Cancel·lar"]},{msgid:"Cancel the entire operation",msgstr:["Cancel·lar tota l'operació"]},{msgid:"Choose",msgstr:["Tria"]},{msgid:"Choose {file}",msgstr:["Tria {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Tria %n fitxer","Tria %n fitxers"]},{msgid:"Confirm",msgstr:["Confirma"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copia"]},{msgid:"Copy to {target}",msgstr:["Copia a {target}"]},{msgid:"Could not create the new folder",msgstr:["No s'ha pogut crear la carpeta nova"]},{msgid:"Could not load files settings",msgstr:["No es poden carregar fitxers de configuració"]},{msgid:"Could not load files views",msgstr:["No es poden carregar fitxers de vistes"]},{msgid:"Create directory",msgstr:["Crea un directori"]},{msgid:"Current view selector",msgstr:["Selector de visualització actual"]},{msgid:"Enter your name",msgstr:["Escriviu el vostre nom"]},{msgid:"Existing version",msgstr:["Versió existent"]},{msgid:"Failed to set nickname.",msgstr:["No s'ha pogut desar el sobrenom."]},{msgid:"Favorites",msgstr:["Preferits"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Els fitxers i les carpetes que marqueu com a favorits es mostraran aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Els fitxers i les carpetes recentment modificats es mostraran aquí."]},{msgid:"Filter file list",msgstr:["Filtrar llistat de fitxers"]},{msgid:"Folder name cannot be empty.",msgstr:["El nom de la carpeta no pot estar buit."]},{msgid:"Guest identification",msgstr:["Identificació com a convidat"]},{msgid:"Home",msgstr:["Inici"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si seleccioneu les dues versions, el fitxer entrant tindrà un número afegit al seu nom."]},{msgid:"Invalid name.",msgstr:["Nom no vàlid."]},{msgid:"Last modified date unknown",msgstr:["Data de l'última modificació desconeguda"]},{msgid:"Modified",msgstr:["Data de modificació"]},{msgid:"Move",msgstr:["Desplaça"]},{msgid:"Move to {target}",msgstr:["Desplaça a {target}"]},{msgid:"Name",msgstr:["Nom"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Els noms poden tenir com a màxim 64 caràcters."]},{msgid:"Names must not be empty.",msgstr:["Els noms no poden ser buits."]},{msgid:'Names must not end with "{extension}".',msgstr:[`Els noms no poden acabar amb l'extensió "{extension}".`]},{msgid:"Names must not start with a dot.",msgstr:["Els noms no poden començar amb un punt."]},{msgid:"New",msgstr:["Crea"]},{msgid:"New folder",msgstr:["Carpeta nova"]},{msgid:"New folder name",msgstr:["Nom de la carpeta nova"]},{msgid:"New version",msgstr:["Nova versió"]},{msgid:"No files in here",msgstr:["No hi ha cap fitxer"]},{msgid:"No files matching your filter were found.",msgstr:["No s'ha trobat cap fitxer que coincideixi amb el filtre."]},{msgid:"No matching files",msgstr:["No hi ha cap fitxer que coincideixi"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Si us plau, escriu un nom amb 2 caràcters com a mínim."]},{msgid:"Recent",msgstr:["Recents"]},{msgid:"Select all checkboxes",msgstr:["Selecciona totes les caselles de selecció"]},{msgid:"Select all entries",msgstr:["Selecciona totes les entrades"]},{msgid:"Select all existing files",msgstr:["Selecciona tots els fitxers existents"]},{msgid:"Select all new files",msgstr:["Selecciona tots els fitxers nous"]},{msgid:"Select entry",msgstr:["Selecciona l'entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Selecciona la fila per a {nodename}"]},{msgid:"Size",msgstr:["Mida"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omet %n fitxer","Omet %n fitxers"]},{msgid:"Skip this file",msgstr:["Omet aquest fitxer"]},{msgid:"Submit name",msgstr:["Entreu el nom"]},{msgid:"Undo",msgstr:["Desfés"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Pugeu contingut o sincronitzeu-lo amb els vostres dispositius!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quan es selecciona una carpeta entrant, també se sobreescriuran els fitxers que hi entrin en conflicte."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quan es selecciona una carpeta entrant, el contingut s'escriu a la carpeta existent i es realitza una resolució recursiva de conflictes."]},{msgid:"Which files do you want to keep?",msgstr:["Quins fitxers voleu conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Actualment se us mostra com a {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Actualment no esteu identificat."]},{msgid:"You cannot leave the name empty.",msgstr:["No podeu deixar el nom buit."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Heu de triar com a mínim una solució de conflicte"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Heu de seleccionar com a mínim una versió de cada fitxer per continuar."]}]},{language:"cs_CZ",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["znak „{char}“ není možné použít uvnitř názvu složky."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ není možné použít uvnitř názvu."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ není možné použít jako název."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ je vyhrazeným názvem a není možné ho používat pro názvy složek."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ je vyhrazeným názvem a není možné ho použít."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n kolize souboru","%n kolize souborů","%n kolizí souborů","%n kolize souborů"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n kolize souborů v {dirname}","%n kolize souborů v {dirname}","%n kolizí souborů v {dirname}","%n kolize souborů v {dirname}"]},{msgid:"All files",msgstr:["Veškeré soubory"]},{msgid:"Cancel",msgstr:["Storno"]},{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},{msgid:"Choose",msgstr:["Zvolit"]},{msgid:"Choose {file}",msgstr:["Zvolit {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Zvolte %n soubor","Zvolte %n soubory","Zvolte %n souborů","Zvolte %n soubory"]},{msgid:"Confirm",msgstr:["Potvrdit"]},{msgid:"Continue",msgstr:["Pokračovat"]},{msgid:"Copy",msgstr:["Zkopírovat"]},{msgid:"Copy to {target}",msgstr:["Zkopírovat do {target}"]},{msgid:"Could not create the new folder",msgstr:["Novou složku se nepodařilo vytvořit"]},{msgid:"Could not load files settings",msgstr:["Nepodařilo se načíst nastavení pro soubory"]},{msgid:"Could not load files views",msgstr:["Nepodařilo se načíst pohledy souborů"]},{msgid:"Create directory",msgstr:["Vytvořit složku"]},{msgid:"Current view selector",msgstr:["Výběr stávajícího zobrazení"]},{msgid:"Enter your name",msgstr:["Zadejte své jméno"]},{msgid:"Existing version",msgstr:["Existující verze"]},{msgid:"Failed to set nickname.",msgstr:["Nepodařilo se nastavit přezdívku."]},{msgid:"Favorites",msgstr:["Oblíbené"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Zde se zobrazí soubory a složky, které označíte jako oblíbené."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Zde se zobrazí soubory a složky, které jste nedávno pozměnili."]},{msgid:"Filter file list",msgstr:["Filtrovat seznam souborů"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Názvy složek nemohou končit na „{extension}“."]},{msgid:"Guest identification",msgstr:["Identifikace hosta"]},{msgid:"Home",msgstr:["Domů"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, pak k názvu příchozího souboru bude přidáno číslo."]},{msgid:"Invalid folder name.",msgstr:["Neplatný název složky."]},{msgid:"Invalid name.",msgstr:["Neplatný název."]},{msgid:"Last modified date unknown",msgstr:["Datum poslední změny neznámé"]},{msgid:"Modified",msgstr:["Změněno"]},{msgid:"Move",msgstr:["Přesounout"]},{msgid:"Move to {target}",msgstr:["Přesunout do {target}"]},{msgid:"Name",msgstr:["Název"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Je třeba, aby délka jmen nepřesahovala 64 znaků."]},{msgid:"Names must not be empty.",msgstr:["Názvy je třeba vyplnit."]},{msgid:'Names must not end with "{extension}".',msgstr:["Názvy nemohou končit na „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Názvy nemohou začínat tečkou."]},{msgid:"New",msgstr:["Nové"]},{msgid:"New folder",msgstr:["Nová složka"]},{msgid:"New folder name",msgstr:["Název pro novou složku"]},{msgid:"New version",msgstr:["Nová verze"]},{msgid:"No files in here",msgstr:["Nejsou zde žádné soubory"]},{msgid:"No files matching your filter were found.",msgstr:["Nenalezeny žádné soubory odpovídající vašemu filtru"]},{msgid:"No matching files",msgstr:["Žádné odpovídající soubory"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Zadejte jméno dlouhé alespoň 2 znaky."]},{msgid:"Recent",msgstr:["Nedávné"]},{msgid:"Select all checkboxes",msgstr:["Vybrat všechny zaškrtávací kolonky"]},{msgid:"Select all entries",msgstr:["Vybrat všechny položky"]},{msgid:"Select all existing files",msgstr:["Vybrat všechny existující soubory"]},{msgid:"Select all new files",msgstr:["Vybrat všechny nové soubory"]},{msgid:"Select entry",msgstr:["Vybrat položku"]},{msgid:"Select the row for {nodename}",msgstr:["Vybrat řádek pro {nodename}"]},{msgid:"Size",msgstr:["Velikost"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Přeskočit %n soubor","Přeskočit %n soubory","Přeskočit %n souborů","Přeskočit %n soubory"]},{msgid:"Skip this file",msgstr:["Přeskočit tento soubor"]},{msgid:"Submit name",msgstr:["Odeslat jméno"]},{msgid:"Undo",msgstr:["Zpět"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Nahrajte sem nějaký obsah nebo proveďte synchronizaci se svými zařízeními!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Pokud je vybrána příchozí složka, budou v ní také přepsány jakékoli kolidující soubory."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Když je vybrána příchozí složka, jakékoli soubory v ní budou také přepsány."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Pokud je vybrána příchozí složka, je obsah zapsán do existující složky a je provedeno rekurzivní vyřešení kolizí."]},{msgid:"Which files do you want to keep?",msgstr:["Které soubory chcete ponechat?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["V tuto chvíli jste identifikováni jako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["V tuto chvíli nejste identifikovaní."]},{msgid:"You cannot leave the name empty.",msgstr:["Jméno nelze ponechat nevyplněné."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Je třeba zvolit alespoň jedno z řešení kolize"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}]},{language:"da",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" er ikke tilladt i et navn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" er ikke tilladt i et navn.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" er et ugyldigt mappenavn.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" er ikke et tilladt mappenavn']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" er et reserveret navn og er derfor ikke tilladt.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" er ikke tilladt i et mappenavn.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n filkonflikt","%n filer konflikter"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n filkonflikt i {dirname}","%n filkonflikter i {dirname}"]},{msgid:"All files",msgstr:["Alle filer"]},{msgid:"Cancel",msgstr:["Fortryd"]},{msgid:"Cancel the entire operation",msgstr:["Annullér hele operationen"]},{msgid:"Choose",msgstr:["Vælg"]},{msgid:"Choose {file}",msgstr:["Vælg {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vælg %n fil","Vælg %n filer"]},{msgid:"Confirm",msgstr:["Bekræft"]},{msgid:"Continue",msgstr:["Fortsæt"]},{msgid:"Copy",msgstr:["Kopier"]},{msgid:"Copy to {target}",msgstr:["Kopier til {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunne ikke oprette den nye mappe"]},{msgid:"Could not load files settings",msgstr:["Filindstillingerne kunne ikke indlæses"]},{msgid:"Could not load files views",msgstr:["Kunne ikke indlæse filvisninger"]},{msgid:"Create directory",msgstr:["Opret mappe"]},{msgid:"Current view selector",msgstr:["Aktuel visningsvælger"]},{msgid:"Enter your name",msgstr:["Indtast dit navn"]},{msgid:"Existing version",msgstr:["Eksisterende version"]},{msgid:"Failed to set nickname.",msgstr:["Forsøg på at gemme kaldenavn mislykkedes."]},{msgid:"Favorites",msgstr:["Favoritter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer og mapper, du markerer som foretrukne, vises her."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer og mapper, du for nylig har ændret, vises her."]},{msgid:"Filter file list",msgstr:["Filtrer fil liste"]},{msgid:"Folder name cannot be empty.",msgstr:["Mappenavnet må ikke være tomt."]},{msgid:"Guest identification",msgstr:["Gæsteidentifikation"]},{msgid:"Home",msgstr:["Hjem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn."]},{msgid:"Invalid name.",msgstr:["Ugyldigt navn."]},{msgid:"Last modified date unknown",msgstr:["Senest ændret dato ukendt"]},{msgid:"Modified",msgstr:["Ændret"]},{msgid:"Move",msgstr:["Flyt"]},{msgid:"Move to {target}",msgstr:["Flyt til {target}"]},{msgid:"Name",msgstr:["Navn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Navne kan højst være 64 tegn lange."]},{msgid:"Names must not be empty.",msgstr:["Navne kan ikke være tomt."]},{msgid:'Names must not end with "{extension}".',msgstr:['Navne må ikke ende på "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Navne skal starte med et punktum."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mappe"]},{msgid:"New folder name",msgstr:["Ny mappe navn"]},{msgid:"New version",msgstr:["Ny version"]},{msgid:"No files in here",msgstr:["Ingen filer here"]},{msgid:"No files matching your filter were found.",msgstr:["Der blev ikke fundet nogen filer, der matcher dit filter."]},{msgid:"No matching files",msgstr:["Ingen matchende filer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Indtast et navn med mindst 2 tegn."]},{msgid:"Recent",msgstr:["Seneste"]},{msgid:"Select all checkboxes",msgstr:["Markér alle afkrydsningsfelter"]},{msgid:"Select all entries",msgstr:["Vælg alle poster"]},{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},{msgid:"Select entry",msgstr:["Vælg post"]},{msgid:"Select the row for {nodename}",msgstr:["Vælg rækken for {nodenavn}"]},{msgid:"Size",msgstr:["Størelse"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Spring %n fil over","Spring %n filer over"]},{msgid:"Skip this file",msgstr:["Spring denne fil over"]},{msgid:"Submit name",msgstr:["Indsend navn"]},{msgid:"Undo",msgstr:["Fortryd"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload noget indhold eller synkroniser med dine enheder!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indkommende mappe er valgt, vil eventuelle modstridende filer i det også blive overskrevet."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en indkommende mappe er valgt, er indholdet skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres."]},{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du have?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du er i øjeblikket identificeret som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du er ikke identificeret."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan ikke efterlade navnet tomt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du skal vælge mindst én konfliktløsning"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}]},{language:"de",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ist innerhalb eines Ordnernamens nicht zulässig.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ist innerhalb eines Namens nicht zulässig.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ist kein zulässiger Name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig für Ordnernamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n Dateikonflikt","%n Dateikonflikte"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n Dateikonflikt in {dirname}","%n Dateikonflikte in {dirname}"]},{msgid:"All files",msgstr:["Alle Dateien"]},{msgid:"Cancel",msgstr:["Abbrechen"]},{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},{msgid:"Choose",msgstr:["Auswählen"]},{msgid:"Choose {file}",msgstr:["{file} auswählen"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n Datei auswählen","%n Dateien auswählen"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Continue",msgstr:["Fortsetzen"]},{msgid:"Copy",msgstr:["Kopieren"]},{msgid:"Copy to {target}",msgstr:["Nach {target} kopieren"]},{msgid:"Could not create the new folder",msgstr:["Der neue Ordner konnte nicht erstellt werden"]},{msgid:"Could not load files settings",msgstr:["Dateieinstellungen konnten nicht geladen werden"]},{msgid:"Could not load files views",msgstr:["Dateiansichten konnten nicht geladen werden"]},{msgid:"Create directory",msgstr:["Verzeichnis erstellen"]},{msgid:"Current view selector",msgstr:["Aktuelle Ansichtsauswahl"]},{msgid:"Enter your name",msgstr:["Gib deinen Namen ein"]},{msgid:"Existing version",msgstr:["Vorhandene Version"]},{msgid:"Failed to set nickname.",msgstr:["Spitzname konnte nicht gespeichert werden."]},{msgid:"Favorites",msgstr:["Favoriten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien und Ordner, die du als Favorit markierst, werden hier angezeigt."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien und Ordner, die du kürzlich geändert hast, werden hier angezeigt."]},{msgid:"Filter file list",msgstr:["Dateiliste filtern"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ordnernamen dürfen nicht mit "{extension}" enden.']},{msgid:"Guest identification",msgstr:["Gast-Identifikation"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn beide Versionen ausgewählt werden, wird dem Namen der eingehenden Datei eine Nummer hinzugefügt."]},{msgid:"Invalid folder name.",msgstr:["Ungültiger Ordnername."]},{msgid:"Invalid name.",msgstr:["Ungültiger Name."]},{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},{msgid:"Modified",msgstr:["Geändert"]},{msgid:"Move",msgstr:["Verschieben"]},{msgid:"Move to {target}",msgstr:["Nach {target} verschieben"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen dürfen maximal 64 Zeichen lang sein."]},{msgid:"Names must not be empty.",msgstr:["Namen dürfen nicht leer sein."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen dürfen nicht mit "{extension}" enden.']},{msgid:"Names must not start with a dot.",msgstr:["Namen dürfen nicht mit einem Punkt beginnen."]},{msgid:"New",msgstr:["Neu"]},{msgid:"New folder",msgstr:["Neuer Ordner"]},{msgid:"New folder name",msgstr:["Neuer Ordnername"]},{msgid:"New version",msgstr:["Neue Version"]},{msgid:"No files in here",msgstr:["Hier sind keine Dateien"]},{msgid:"No files matching your filter were found.",msgstr:["Es wurden keine Dateien gefunden, die deinem Filter entsprechen."]},{msgid:"No matching files",msgstr:["Keine passenden Dateien"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Bitte einen Namen mit mindestens zwei Zeichen eingeben."]},{msgid:"Recent",msgstr:["Neueste"]},{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},{msgid:"Select all entries",msgstr:["Alle Einträge auswählen"]},{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},{msgid:"Select entry",msgstr:["Eintrag auswählen"]},{msgid:"Select the row for {nodename}",msgstr:["Die Zeile für {nodename} auswählen."]},{msgid:"Size",msgstr:["Größe"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n Datei überspringen","%n Dateien überspringen"]},{msgid:"Skip this file",msgstr:["Diese Datei überspringen"]},{msgid:"Submit name",msgstr:["Namen senden"]},{msgid:"Undo",msgstr:["Rückgängig machen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lade Inhalte hoch oder synchronisiere diese mit deinen Geräten!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien mit Konflikten überschrieben."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien überschrieben."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien sollen behalten werden?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du bist derzeit als {nickname} identifiziert."]},{msgid:"You are currently not identified.",msgstr:["Du bist momentan nicht identifiziert."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kannst den Namen nicht leer lassen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Es muss mindestens eine Konfliktlösung gewählt werden"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren."]}]},{language:"de_DE",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ist innerhalb eines Ordnernamens nicht zulässig.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ist innerhalb eines Namens nicht zulässig.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ist kein zulässiger Name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig für Ordnernamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ist ein reservierter Name und nicht zulässig.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n Dateikonflikt","%n Dateikonflikte"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n Dateikonflikt in {dirname}","%n Dateikonflikte in {dirname}"]},{msgid:"All files",msgstr:["Alle Dateien"]},{msgid:"Cancel",msgstr:["Abbrechen"]},{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},{msgid:"Choose",msgstr:["Auswählen"]},{msgid:"Choose {file}",msgstr:["{file} auswählen"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n Datei auswählen","%n Dateien auswählen"]},{msgid:"Confirm",msgstr:["Bestätigen"]},{msgid:"Continue",msgstr:["Fortsetzen"]},{msgid:"Copy",msgstr:["Kopieren"]},{msgid:"Copy to {target}",msgstr:["Nach {target} kopieren"]},{msgid:"Could not create the new folder",msgstr:["Der neue Ordner konnte nicht erstellt werden"]},{msgid:"Could not load files settings",msgstr:["Dateieinstellungen konnten nicht geladen werden"]},{msgid:"Could not load files views",msgstr:["Dateiansichten konnten nicht geladen werden"]},{msgid:"Create directory",msgstr:["Verzeichnis erstellen"]},{msgid:"Current view selector",msgstr:["Aktuelle Ansichtsauswahl"]},{msgid:"Enter your name",msgstr:["Geben Sie Ihren Namen ein"]},{msgid:"Existing version",msgstr:["Vorhandene Version"]},{msgid:"Failed to set nickname.",msgstr:["Spitzname konnte nicht gespeichert werden."]},{msgid:"Favorites",msgstr:["Favoriten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien und Ordner, die Sie als Favorit markieren, werden hier angezeigt."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien und Ordner, die Sie kürzlich geändert haben, werden hier angezeigt."]},{msgid:"Filter file list",msgstr:["Dateiliste filtern"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ordnernamen dürfen nicht mit "{extension}" enden.']},{msgid:"Guest identification",msgstr:["Gast-Identifikation"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn beide Versionen ausgewählt werden, wird dem Namen der eingehenden Datei eine Nummer hinzugefügt."]},{msgid:"Invalid folder name.",msgstr:["Ungültiger Ordnername."]},{msgid:"Invalid name.",msgstr:["Ungültiger Name."]},{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},{msgid:"Modified",msgstr:["Geändert"]},{msgid:"Move",msgstr:["Verschieben"]},{msgid:"Move to {target}",msgstr:["Nach {target} verschieben"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen dürfen maximal 64 Zeichen lang sein."]},{msgid:"Names must not be empty.",msgstr:["Namen dürfen nicht leer sein."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen dürfen nicht mit "{extension}" enden.']},{msgid:"Names must not start with a dot.",msgstr:["Namen dürfen nicht mit einem Punkt beginnen."]},{msgid:"New",msgstr:["Neu"]},{msgid:"New folder",msgstr:["Neuer Ordner"]},{msgid:"New folder name",msgstr:["Neuer Ordnername"]},{msgid:"New version",msgstr:["Neue Version"]},{msgid:"No files in here",msgstr:["Hier sind keine Dateien"]},{msgid:"No files matching your filter were found.",msgstr:["Es wurden keine Dateien gefunden, die Ihrem Filter entsprechen."]},{msgid:"No matching files",msgstr:["Keine passenden Dateien"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Bitte einen Namen mit mindestens zwei Zeichen eingeben."]},{msgid:"Recent",msgstr:["Neueste"]},{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},{msgid:"Select all entries",msgstr:["Alle Einträge auswählen"]},{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},{msgid:"Select entry",msgstr:["Eintrag auswählen"]},{msgid:"Select the row for {nodename}",msgstr:["Die Zeile für {nodename} auswählen."]},{msgid:"Size",msgstr:["Größe"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n Datei überspringen","%n Dateien überspringen"]},{msgid:"Skip this file",msgstr:["Diese Datei überspringen"]},{msgid:"Submit name",msgstr:["Namen senden"]},{msgid:"Undo",msgstr:["Rückgängig machen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Laden Sie Inhalte hoch oder synchronisieren Sie diese mit Ihren Geräten!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien mit Konflikten überschrieben."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden auch alle darin enthaltenen Dateien überschrieben."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien sollen behalten werden?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sie sind derzeit als {nickname} identifiziert."]},{msgid:"You are currently not identified.",msgstr:["Sie sind momentan nicht identifiziert."]},{msgid:"You cannot leave the name empty.",msgstr:["Sie können den Namen nicht leer lassen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Es muss mindestens eine Konfliktlösung gewählt werden"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Es muss mindestens eine Version jeder Datei ausgewählt werden, um fortzufahren."]}]},{language:"el",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["Το «{char}» δεν επιτρέπεται μέσα σε όνομα φακέλου."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" δεν επιτρέπεται μέσα σε ένα όνομα.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" δεν είναι επιτρεπτό όνομα.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["Το «{segment}» είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται για ονόματα φακέλων."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" είναι ένα δεσμευμένο όνομα και δεν επιτρέπεται.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n σύγκρουση αρχείου","%n σύγκρουση αρχείων"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n σύγκρουση αρχείου στο {dirname}","%n σύγκρουση αρχείων στο {dirname}"]},{msgid:"All files",msgstr:["Όλα τα αρχεία"]},{msgid:"Cancel",msgstr:["Ακύρωση"]},{msgid:"Cancel the entire operation",msgstr:["Ακύρωση όλης της διαδικασίας"]},{msgid:"Choose",msgstr:["Επιλογή"]},{msgid:"Choose {file}",msgstr:["Επιλέξτε {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Επιλέξτε %n αρχείο","Επιλέξτε %n αρχεία"]},{msgid:"Confirm",msgstr:["Επιβεβαίωση"]},{msgid:"Continue",msgstr:["Συνέχεια"]},{msgid:"Copy",msgstr:["Αντιγραφή"]},{msgid:"Copy to {target}",msgstr:["Αντιγραφή στο {target}"]},{msgid:"Could not create the new folder",msgstr:["Αδυναμία δημιουργίας νέου φακέλου"]},{msgid:"Could not load files settings",msgstr:["Αδυναμία φόρτωσης ρυθμίσεων αρχείων"]},{msgid:"Could not load files views",msgstr:["Αδυναμία φόρτωσης προβολών αρχείων"]},{msgid:"Create directory",msgstr:["Δημιουργία καταλόγου"]},{msgid:"Current view selector",msgstr:["Επιλογέας τρέχουσας προβολής"]},{msgid:"Enter your name",msgstr:["Εισάγετε το όνομά σας"]},{msgid:"Existing version",msgstr:["Υφιστάμενη έκδοση"]},{msgid:"Failed to set nickname.",msgstr:["Αποτυχία στην ρύθμιση του ψευδώνυμου."]},{msgid:"Favorites",msgstr:["Αγαπημένα"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Τα αρχεία και οι φάκελοι που επισημάνετε ως αγαπημένα θα εμφανίζονται εδώ."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Τα αρχεία και οι φάκελοι που τροποποιήσατε πρόσφατα θα εμφανίζονται εδώ."]},{msgid:"Filter file list",msgstr:["Φιλτράρισμα λίστας αρχείων"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Τα ονόματα των φακέλων δεν πρέπει να τελειώνουν με «{extension}»."]},{msgid:"Guest identification",msgstr:["Ταυτοποίηση επισκέπτη"]},{msgid:"Home",msgstr:["Αρχική"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Εάν επιλέξετε και τις δύο εκδόσεις, στο όνομα του εισερχόμενου αρχείου θα προστεθεί ένας αριθμός."]},{msgid:"Invalid folder name.",msgstr:["Μη έγκυρο όνομα φακέλου."]},{msgid:"Invalid name.",msgstr:["Μη έγκυρο όνομα."]},{msgid:"Last modified date unknown",msgstr:["Άγνωστη ημερομηνία τελευταίας τροποποίησης"]},{msgid:"Modified",msgstr:["Τροποποιήθηκε"]},{msgid:"Move",msgstr:["Μετακίνηση"]},{msgid:"Move to {target}",msgstr:["Μετακίνηση στο {target}"]},{msgid:"Name",msgstr:["Όνομα"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Τα ονόματα μπορούν να έχουν μέγιστο μήκος 64 χαρακτήρες."]},{msgid:"Names must not be empty.",msgstr:["Τα ονόματα δεν πρέπει να είναι κενά."]},{msgid:'Names must not end with "{extension}".',msgstr:['Τα ονόματα δεν πρέπει να τελειώνουν με "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Τα ονόματα δεν πρέπει να ξεκινούν με τελεία."]},{msgid:"New",msgstr:["Νέο"]},{msgid:"New folder",msgstr:["Νέος φάκελος"]},{msgid:"New folder name",msgstr:["Όνομα νέου φακέλου"]},{msgid:"New version",msgstr:["Νέα έκδοση"]},{msgid:"No files in here",msgstr:["Δεν υπάρχουν αρχεία εδώ"]},{msgid:"No files matching your filter were found.",msgstr:["Δεν βρέθηκαν αρχεία που να ταιριάζουν με το φίλτρο σας."]},{msgid:"No matching files",msgstr:["Κανένα αρχείο δεν ταιριάζει"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Παρακαλώ εισάγετε ένα όνομα με τουλάχιστον 2 χαρακτήρες."]},{msgid:"Recent",msgstr:["Πρόσφατα"]},{msgid:"Select all checkboxes",msgstr:["Επιλέξτε όλα τα πλαίσια ελέγχου"]},{msgid:"Select all entries",msgstr:["Επιλογή όλων των καταχωρήσεων"]},{msgid:"Select all existing files",msgstr:["Επιλογή όλων των υπάρχοντων αρχείων"]},{msgid:"Select all new files",msgstr:["Επιλογή όλων των νέων αρχείων"]},{msgid:"Select entry",msgstr:["Επιλογή εγγραφής"]},{msgid:"Select the row for {nodename}",msgstr:["Επιλέξτε τη γραμμή για το {nodename}"]},{msgid:"Size",msgstr:["Μέγεθος"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Παράλειψη ενός αρχείου","Παράλειψη %n αρχείων"]},{msgid:"Skip this file",msgstr:["Παράλειψη αυτού το αρχείου"]},{msgid:"Submit name",msgstr:["Υποβολή ονόματος"]},{msgid:"Undo",msgstr:["Αναίρεση"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ανεβάστε κάποιο περιεχόμενο ή συγχρονίστε με τις συσκευές σας!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Όταν επιλέγεται ένας φάκελος εισερχομένων, όλα τα αρχεία που βρίσκονται σε σύγκρουση μέσα σε αυτόν θα αντικατασταθούν επίσης."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Όταν επιλέγεται ένας φάκελος εισερχομένων, το περιεχόμενο εγγράφεται στον υπάρχοντα φάκελο και εκτελείται μια αναδρομική επίλυση σύγκρουσης."]},{msgid:"Which files do you want to keep?",msgstr:["Ποια αρχεία θέλετε να διατηρήσετε;"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Αυτή τη στιγμή έχετε αναγνωριστεί ως {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Δεν έχετε ταυτοποιηθεί."]},{msgid:"You cannot leave the name empty.",msgstr:["Δεν μπορείτε να αφήσετε το όνομα κενό."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία λύση σύγκρουσης"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Πρέπει να επιλέξετε τουλάχιστον μία έκδοση από κάθε αρχείο για να συνεχίσετε."]}]},{language:"en_GB",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" is not allowed inside a folder name.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" is not allowed inside a name.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" is not an allowed name.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" is a reserved name and cannot be used for folder names.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" is a reserved name and not allowed.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n file conflict","%n files conflict"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n file conflict in {dirname}","%n file conflicts in {dirname}"]},{msgid:"All files",msgstr:["All files"]},{msgid:"Cancel",msgstr:["Cancel"]},{msgid:"Cancel the entire operation",msgstr:["Cancel the entire operation"]},{msgid:"Choose",msgstr:["Choose"]},{msgid:"Choose {file}",msgstr:["Choose {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Choose %n file","Choose %n files"]},{msgid:"Confirm",msgstr:["Confirm"]},{msgid:"Continue",msgstr:["Continue"]},{msgid:"Copy",msgstr:["Copy"]},{msgid:"Copy to {target}",msgstr:["Copy to {target}"]},{msgid:"Could not create the new folder",msgstr:["Could not create the new folder"]},{msgid:"Could not load files settings",msgstr:["Could not load files settings"]},{msgid:"Could not load files views",msgstr:["Could not load files views"]},{msgid:"Create directory",msgstr:["Create directory"]},{msgid:"Current view selector",msgstr:["Current view selector"]},{msgid:"Enter your name",msgstr:["Enter your name"]},{msgid:"Existing version",msgstr:["Existing version"]},{msgid:"Failed to set nickname.",msgstr:["Failed to set nickname."]},{msgid:"Favorites",msgstr:["Favourites"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Files and folders you mark as favourite will show up here."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Files and folders you recently modified will show up here."]},{msgid:"Filter file list",msgstr:["Filter file list"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Folder names must not end with "{extension}".']},{msgid:"Guest identification",msgstr:["Guest identification"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["If you select both versions, the incoming file will have a number added to its name."]},{msgid:"Invalid folder name.",msgstr:["Invalid folder name."]},{msgid:"Invalid name.",msgstr:["Invalid name."]},{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},{msgid:"Modified",msgstr:["Modified"]},{msgid:"Move",msgstr:["Move"]},{msgid:"Move to {target}",msgstr:["Move to {target}"]},{msgid:"Name",msgstr:["Name"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Names may be at most 64 characters long."]},{msgid:"Names must not be empty.",msgstr:["Names must not be empty."]},{msgid:'Names must not end with "{extension}".',msgstr:['Names must not end with "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Names must not start with a dot."]},{msgid:"New",msgstr:["New"]},{msgid:"New folder",msgstr:["New folder"]},{msgid:"New folder name",msgstr:["New folder name"]},{msgid:"New version",msgstr:["New version"]},{msgid:"No files in here",msgstr:["No files in here"]},{msgid:"No files matching your filter were found.",msgstr:["No files matching your filter were found."]},{msgid:"No matching files",msgstr:["No matching files"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Please enter a name with at least 2 characters."]},{msgid:"Recent",msgstr:["Recent"]},{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},{msgid:"Select all entries",msgstr:["Select all entries"]},{msgid:"Select all existing files",msgstr:["Select all existing files"]},{msgid:"Select all new files",msgstr:["Select all new files"]},{msgid:"Select entry",msgstr:["Select entry"]},{msgid:"Select the row for {nodename}",msgstr:["Select the row for {nodename}"]},{msgid:"Size",msgstr:["Size"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Skip %n file","Skip %n files"]},{msgid:"Skip this file",msgstr:["Skip this file"]},{msgid:"Submit name",msgstr:["Submit name"]},{msgid:"Undo",msgstr:["Undo"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload some content or sync with your devices!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any conflicting files within it will also be overwritten."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any files within it will also be overwritten."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."]},{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["You are currently identified as {nickname}."]},{msgid:"You are currently not identified.",msgstr:["You are currently not identified."]},{msgid:"You cannot leave the name empty.",msgstr:["You cannot leave the name empty."]},{msgid:"You need to choose at least one conflict solution",msgstr:["You need to choose at least one conflict solution"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}]},{language:"es",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" no está permitido dentro de un nombre.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no es un nombre permitido.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" es un nombre de carpeta no válido.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no es un nombre de carpeta permitido']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" es un nombre reservado y no está permitido.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" no está permitido dentro del nombre de una carpeta.']},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Choose",msgstr:["Seleccionar"]},{msgid:"Choose {file}",msgstr:["Seleccionar {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Elige %n archivo","Elige %n archivos","Seleccione %n archivos"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudieron cargar los ajustes de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Ingrese su nombre"]},{msgid:"Failed to set nickname.",msgstr:["Fallo al establecer apodo."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:"Folder name cannot be empty.",msgstr:["El nombre de la carpeta no puede estar vacío."]},{msgid:"Guest identification",msgstr:["Identificación de invitado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"Invalid name.",msgstr:["Nombre inválido."]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"Names must not be empty.",msgstr:["Los nombres no deben estar vacíos."]},{msgid:'Names must not end with "{extension}".',msgstr:['Los nombres no deben terminar con "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Los nombres no deben iniciar con un punto."]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:[" Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nuevo nombre de carpeta"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidiesen con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Por favor, ingrese un nombre con al menos 2 caracteres."]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Submit name",msgstr:["Enviar nombre"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Cargue algún contenido o sincronice con sus dispositivos!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Ud. se encuentra identificado actualmente como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Ud. no se encuentra identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["No puede dejar el nombre vacío."]}]},{language:"es_AR",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" es un nombre de carpeta inválido.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" no es un nombre de carpeta permitido']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" no está permitido en el nombre de una carpeta.']},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Choose",msgstr:["Elegir"]},{msgid:"Choose {file}",msgstr:["Elija {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Elija %n archivo","Elija %n archivos","Elija %n archivos"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudo cargar la configuración de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:"Folder name cannot be empty.",msgstr:["El nombre de la carpeta no puede estar vacío."]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:["Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nombre de nueva carpeta"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidan con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Cargue algún contenido o sincronice con sus dispositivos!"]}]},{language:"es_MX",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" no está permitido dentro de un nombre de carpeta']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" no está permitido dentro de un nombre']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" no es un nombre permitido']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" es un nombre reservado y no está permitido para nombres de carpetas']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" es un nombre reservado y no está permitido']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n conflicto de archivo","%n conflicto de archivos","%n conflicto de archivos"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n conflicto de archivo en {dirname}","%n conflictos de archivo en {dirname}","%n conflictos de archivo en {dirname}"]},{msgid:"All files",msgstr:["Todos los archivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar la operación completa"]},{msgid:"Choose",msgstr:["Seleccionar"]},{msgid:"Choose {file}",msgstr:["Seleccionar {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Seleccionar %n archivo","Seleccionar %n archivos","Seleccionar %n archivos"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar a {target}"]},{msgid:"Could not create the new folder",msgstr:["No se pudo crear la nueva carpeta"]},{msgid:"Could not load files settings",msgstr:["No se pudo cargar la configuración de archivos"]},{msgid:"Could not load files views",msgstr:["No se pudieron cargar las vistas de los archivos"]},{msgid:"Create directory",msgstr:["Crear carpeta"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Ingresa tu nombre"]},{msgid:"Existing version",msgstr:["Versión existente"]},{msgid:"Failed to set nickname.",msgstr:["No se pudo establecer el nickname"]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Los archivos y carpetas que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Los archivos y carpetas que modificó recientemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar lista de archivos"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Los nombres para carpeta no deben terminar con "{extension}"']},{msgid:"Guest identification",msgstr:["Identificación de invitado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si seleccionas ambas versiones, se le agregará al archivo que se está descargando, un número a su nombre."]},{msgid:"Invalid folder name.",msgstr:["Nombre de carpeta no válido"]},{msgid:"Invalid name.",msgstr:["Nombre no válido"]},{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover a {target}"]},{msgid:"Name",msgstr:["Nombre"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Los nombres pueden tener como máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Los nombres no deben estar vacíos."]},{msgid:'Names must not end with "{extension}".',msgstr:['Los nombres no deben terminar con "{extension}"']},{msgid:"Names must not start with a dot.",msgstr:["Los nombres no deben comenzar con un punto."]},{msgid:"New",msgstr:["Nuevo"]},{msgid:"New folder",msgstr:["Nueva carpeta"]},{msgid:"New folder name",msgstr:["Nombre de nueva carpeta"]},{msgid:"New version",msgstr:["Versión nueva"]},{msgid:"No files in here",msgstr:["No hay archivos aquí"]},{msgid:"No files matching your filter were found.",msgstr:["No se encontraron archivos que coincidan con su filtro."]},{msgid:"No matching files",msgstr:["No hay archivos coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Por favor ingrese un nombre con al menos 2 caracteres."]},{msgid:"Recent",msgstr:["Reciente"]},{msgid:"Select all checkboxes",msgstr:["Seleccione todas las casillas de verificación"]},{msgid:"Select all entries",msgstr:["Seleccionar todas las entradas"]},{msgid:"Select all existing files",msgstr:["Seleccione todos los archivos que aparecen"]},{msgid:"Select all new files",msgstr:["Seleccione todos los archivos nuevos"]},{msgid:"Select entry",msgstr:["Seleccionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccione la fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omitir %n archivo","Omitir %n archivos","Omitir %n archivos"]},{msgid:"Skip this file",msgstr:["Omitir este archivo"]},{msgid:"Submit name",msgstr:["Enviar nombre"]},{msgid:"Undo",msgstr:["Deshacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["¡Suba algún contenido o sincronice con sus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando se selecciona una carpeta en descarga, cualquier archivo conflictivo que contenga también se sobrescribirá."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando se selecciona una carpeta en descarga, el contenido se escribe en la carpeta existente y se realiza una resolución de conflicto recursiva."]},{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos deseas conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Actualmente estás identificado como {nickname}"]},{msgid:"You are currently not identified.",msgstr:["No estás identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["No puedes dejar el nombre vacío."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Necesitas elegir al menos una solución al conflicto."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Necesitas seleccionar al menos una versión de cada archivo para continuar."]}]},{language:"et_EE",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["„{char}“ pole kausta nimes lubatud."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ pole nimes lubatud."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ pole lubatud nimi."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ on reserveeritud nimi ja pole kausta nimes lubatud."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ on reserveeritud nimi ja pole kasutamiseks lubatud."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n fail on vastuolus","%n faili on omavahel vastuolus"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n fail on {dirname} kaustas vastuolus","%n faili on omavahel {dirname} kaustas vastuolus"]},{msgid:"All files",msgstr:["Kõik failid"]},{msgid:"Cancel",msgstr:["Katkesta"]},{msgid:"Cancel the entire operation",msgstr:["Katkesta kogu tegevus"]},{msgid:"Choose",msgstr:["Tee valik"]},{msgid:"Choose {file}",msgstr:["Vali {file} fail"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vali %n fail","Vali %n faili"]},{msgid:"Confirm",msgstr:["Kinnita"]},{msgid:"Continue",msgstr:["Jätka"]},{msgid:"Copy",msgstr:["Kopeeri"]},{msgid:"Copy to {target}",msgstr:["Kopeeri sihtkohta „{target}“"]},{msgid:"Could not create the new folder",msgstr:["Uue kausta loomine ei õnnestunud"]},{msgid:"Could not load files settings",msgstr:["Failide seadistusi ei õnnestunud laadida"]},{msgid:"Could not load files views",msgstr:["Failide vaatamiskordi ei õnnestunud laadida"]},{msgid:"Create directory",msgstr:["Loo kaust"]},{msgid:"Current view selector",msgstr:["Praeguse vaate valija"]},{msgid:"Enter your name",msgstr:["Sisesta oma nimi"]},{msgid:"Existing version",msgstr:["Olemasolev versioon"]},{msgid:"Failed to set nickname.",msgstr:["Hüüdnime sisestamine ei õnnestunud."]},{msgid:"Favorites",msgstr:["Lemmikud"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Failid ja kaustad, mida märgid lemmikuks, kuvatakse siin."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Siin kuvatakse hiljuti muudetud failid ja kaustad."]},{msgid:"Filter file list",msgstr:["Filtreeri faililoendit"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Kausta nime lõpus ei tohi olla „{extension}“."]},{msgid:"Guest identification",msgstr:["Külalise tuvastamine"]},{msgid:"Home",msgstr:["Avaleht"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Kui valid mõlemad versioonid, siis uue faili nimele lisatakse number."]},{msgid:"Invalid folder name.",msgstr:["Vigane kausta nimi."]},{msgid:"Invalid name.",msgstr:["Vigane nimi."]},{msgid:"Last modified date unknown",msgstr:["Viimase muutmise kuupäev pole teada"]},{msgid:"Modified",msgstr:["Muudetud"]},{msgid:"Move",msgstr:["Teisalda"]},{msgid:"Move to {target}",msgstr:["Teisalda kausta „{target}“"]},{msgid:"Name",msgstr:["Nimi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nimed võivad olla vaid kuni 64 tähemärki pikad."]},{msgid:"Names must not be empty.",msgstr:["Nimi ei saa olla tühi."]},{msgid:'Names must not end with "{extension}".',msgstr:["Nime lõpus ei tohi olla „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Nime alguses ei tohi olla punkti."]},{msgid:"New",msgstr:["Uus"]},{msgid:"New folder",msgstr:["Uus kaust"]},{msgid:"New folder name",msgstr:["Uue kausta nimi"]},{msgid:"New version",msgstr:["Uus versioon"]},{msgid:"No files in here",msgstr:["Siin pole faile"]},{msgid:"No files matching your filter were found.",msgstr:["Sinu filtrile vastavaid faile ei leidunud."]},{msgid:"No matching files",msgstr:["Puuduvad sobivad failid"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Palun sisesta vähemalt 2 tähemärki pikk nimi."]},{msgid:"Recent",msgstr:["Hiljutine"]},{msgid:"Select all checkboxes",msgstr:["Vali kõik märkeruudud"]},{msgid:"Select all entries",msgstr:["Vali kõik kirjed"]},{msgid:"Select all existing files",msgstr:["Vali kõik olemasolevad failid"]},{msgid:"Select all new files",msgstr:["Vali kõik uued failid"]},{msgid:"Select entry",msgstr:["Vali kirje"]},{msgid:"Select the row for {nodename}",msgstr:["Vali rida „{nodename}“ jaoks"]},{msgid:"Size",msgstr:["Suurus"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Jäta %n fail vahele","Jäta %n faili vahele"]},{msgid:"Skip this file",msgstr:["Jäta see fail vahele"]},{msgid:"Submit name",msgstr:["Lisa nimi"]},{msgid:"Undo",msgstr:["Tühista"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lisa mingit sisu või sünkrooni see oma seadmetest!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kui uute failide kaust on valitud, siis kõik seal leiduvad vastuolus failid saavad üle kirjutatud."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Kui uute (saabuvate) failide kaust on valitud, siis kõik seal leiduvad failid saavad samuti üle kirjutatud."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kui uute failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja korraldatakse rekursiivne failikonfliktide lahendamine."]},{msgid:"Which files do you want to keep?",msgstr:["Missugused failid tahaksid alles jätta?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sa oled hetkel tuvastatav kui {nickname}.."]},{msgid:"You are currently not identified.",msgstr:["Sa oled hetkel tuvastamata."]},{msgid:"You cannot leave the name empty.",msgstr:["Sa ei saa jätta nime tühjaks."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Sa pead valima vähemalt ühe failikonflikti lahenduse."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Jätkamaks pead valima igast failist vähemalt ühe versiooni."]}]},{language:"fa",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} نام پوشه معتبر نیست"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} نام پوشه مجاز نیست"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" نمی‌تواند در نام پوشه استفاده شود.']},{msgid:"All files",msgstr:["همه فایل‌ها"]},{msgid:"Cancel",msgstr:["لغو"]},{msgid:"Choose",msgstr:["انتخاب"]},{msgid:"Choose {file}",msgstr:["انتخاب {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["انتخاب %n فایل","انتخاب %n فایل"]},{msgid:"Copy",msgstr:["رونوشت"]},{msgid:"Copy to {target}",msgstr:["رونوشت از {target}"]},{msgid:"Could not create the new folder",msgstr:["پوشه جدید ایجاد نشد"]},{msgid:"Could not load files settings",msgstr:["تنظیمات فایل باز نشد"]},{msgid:"Could not load files views",msgstr:["نمای فایل‌ها بارگیری نشد"]},{msgid:"Create directory",msgstr:["ایجاد فهرست"]},{msgid:"Current view selector",msgstr:["انتخابگر نماگر فعلی"]},{msgid:"Enter your name",msgstr:["نام خود را وارد کنید"]},{msgid:"Failed to set nickname.",msgstr:["تنظیم نام مستعار ناموفق بود."]},{msgid:"Favorites",msgstr:["علایق"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["فایل‌ها و پوشه‌هایی که به‌عنوان مورد علاقه علامت‌گذاری می‌کنید در اینجا نشان داده می‌شوند."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["فایل‌ها و پوشه‌هایی که اخیراً تغییر داده‌اید در اینجا نمایش داده می‌شوند."]},{msgid:"Filter file list",msgstr:["فیلتر لیست فایل"]},{msgid:"Folder name cannot be empty.",msgstr:["نام پوشه نمی تواند خالی باشد."]},{msgid:"Guest identification",msgstr:["شناسایی مهمان"]},{msgid:"Home",msgstr:["خانه"]},{msgid:"Modified",msgstr:["اصلاح شده"]},{msgid:"Move",msgstr:["انتقال"]},{msgid:"Move to {target}",msgstr:["انتقال به {target}"]},{msgid:"Name",msgstr:["نام"]},{msgid:"New",msgstr:["جدید"]},{msgid:"New folder",msgstr:["پوشه جدید"]},{msgid:"New folder name",msgstr:["نام پوشه جدید"]},{msgid:"No files in here",msgstr:["فایلی اینجا نیست"]},{msgid:"No files matching your filter were found.",msgstr:["هیچ فایلی مطابق با فیلتر شما یافت نشد."]},{msgid:"No matching files",msgstr:["فایل منطبقی وجود ندارد"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["لطفاً نامی با حداقل ۲ کاراکتر وارد کنید."]},{msgid:"Recent",msgstr:["اخیر"]},{msgid:"Select all entries",msgstr:["انتخاب همه ورودی ها"]},{msgid:"Select entry",msgstr:["انتخاب ورودی"]},{msgid:"Select the row for {nodename}",msgstr:["انتخاب ردیف برای {nodename}"]},{msgid:"Size",msgstr:["اندازه"]},{msgid:"Submit name",msgstr:["ارسال نام"]},{msgid:"Undo",msgstr:["بازگردانی"]},{msgid:"Upload some content or sync with your devices!",msgstr:["مقداری محتوا آپلود کنید یا با دستگاه های خود همگام سازی کنید!"]},{msgid:"You are currently not identified.",msgstr:["شما در حال حاضر شناسایی نشده‌اید."]},{msgid:"You cannot leave the name empty.",msgstr:["نمی‌توانید نام را خالی بگذارید."]}]},{language:"fi_FI",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" ei ole sallittu nimessä.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ei ole sallittu nimi.']},{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" on virheellinen kansion nimi.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" ei ole sallittu kansion nimi']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" on varattu nimi eikä se ole sallittu.']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ei ole sallittu kansion nimessä.']},{msgid:"All files",msgstr:["Kaikki tiedostot"]},{msgid:"Cancel",msgstr:["Peruuta"]},{msgid:"Choose",msgstr:["Valitse"]},{msgid:"Choose {file}",msgstr:["Valitse {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Valitse %n tiedosto","Valitse %n tiedostoa"]},{msgid:"Copy",msgstr:["Kopioi"]},{msgid:"Copy to {target}",msgstr:["Kopioi sijaintiin {target}"]},{msgid:"Could not create the new folder",msgstr:["Uutta kansiota ei voitu luoda"]},{msgid:"Could not load files settings",msgstr:["Tiedoston asetuksia ei saa ladattua"]},{msgid:"Could not load files views",msgstr:["Tiedoston näkymiä ei saa ladattua"]},{msgid:"Create directory",msgstr:["Luo kansio"]},{msgid:"Current view selector",msgstr:["Nykyisen näkymän valinta"]},{msgid:"Enter your name",msgstr:["Kirjoita nimesi"]},{msgid:"Failed to set nickname.",msgstr:["Kutsumanimen asettaminen epäonnistui."]},{msgid:"Favorites",msgstr:["Suosikit"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tiedostot ja kansiot, jotka merkitset suosikkeihisi, näkyvät täällä."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Tiedostot ja kansiot, joita muokkasit äskettäin, näkyvät täällä."]},{msgid:"Filter file list",msgstr:["Suodata tiedostolistaa"]},{msgid:"Folder name cannot be empty.",msgstr:["Kansion nimi ei voi olla tyhjä."]},{msgid:"Guest identification",msgstr:["Vieraan tunnistaminen"]},{msgid:"Home",msgstr:["Koti"]},{msgid:"Invalid name.",msgstr:["Virheellinen nimi."]},{msgid:"Modified",msgstr:["Muokattu"]},{msgid:"Move",msgstr:["Siirrä"]},{msgid:"Move to {target}",msgstr:["Siirrä sijaintiin {target}"]},{msgid:"Name",msgstr:["Nimi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nimissä voi olla enintään 64 merkkiä."]},{msgid:"Names must not be empty.",msgstr:["Nimet eivät saa olla tyhjiä."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nimet eivät saa päättyä sanaan "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nimet eivät saa alkaa pisteellä."]},{msgid:"New",msgstr:["Uusi"]},{msgid:"New folder",msgstr:["Uusi kansio"]},{msgid:"New folder name",msgstr:["Uuden kansion nimi"]},{msgid:"No files in here",msgstr:["Täällä ei ole tiedostoja"]},{msgid:"No files matching your filter were found.",msgstr:["Suodatinta vastaavia tiedostoja ei löytynyt."]},{msgid:"No matching files",msgstr:["Ei vastaavia tiedostoja"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Kirjoita vähintään kaksi merkkiä sisältävä nimi."]},{msgid:"Recent",msgstr:["Viimeisimmät"]},{msgid:"Select all entries",msgstr:["Valitse kaikki tietueet"]},{msgid:"Select entry",msgstr:["Valitse tietue"]},{msgid:"Select the row for {nodename}",msgstr:["Valitse rivi {nodename}:lle"]},{msgid:"Size",msgstr:["Koko"]},{msgid:"Submit name",msgstr:["Lähetä nimi"]},{msgid:"Undo",msgstr:["Kumoa"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Lähetä jotain sisältöä tai synkronoi laitteidesi kanssa!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sinut tunnetaan tällä hetkellä nimellä {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Sinua ei ole tunnistettu."]},{msgid:"You cannot leave the name empty.",msgstr:["Nimeä ei voi jättää tyhjäksi."]}]},{language:"fr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" n'est pas autorisé dans un nom de dossier.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`"{char}" n'est pas autorisé dans un nom.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:[`"{extension}" n'est pas un nom autorisé.`]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`"{segment}" est un nom réservé et n'est pas autorisé pour un nom de dossier.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:[`"{segment}" est un nom réservé et n'est pas autorisé.`]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n conflit de fichier","%n conflit de fichiers","%n conflit de fichiers"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%nconflit de fichier dans {dirname}","%n conflit de fichiers dans {dirname}","%nconflit de fichiers dans {dirname}"]},{msgid:"All files",msgstr:["Tous les fichiers"]},{msgid:"Cancel",msgstr:["Annuler"]},{msgid:"Cancel the entire operation",msgstr:["Tout annuler "]},{msgid:"Choose",msgstr:["Choisir"]},{msgid:"Choose {file}",msgstr:["Choisir {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Choisir %n fichier","Choisir %n fichiers","Choisir %n fichiers "]},{msgid:"Confirm",msgstr:["Confirmer"]},{msgid:"Continue",msgstr:["Continuer"]},{msgid:"Copy",msgstr:["Copier"]},{msgid:"Copy to {target}",msgstr:["Copier vers {target}"]},{msgid:"Could not create the new folder",msgstr:["Impossible de créer le nouveau dossier"]},{msgid:"Could not load files settings",msgstr:["Les paramètres des fichiers n'ont pas pu être chargés"]},{msgid:"Could not load files views",msgstr:["Impossible de charger les vues des fichiers"]},{msgid:"Create directory",msgstr:["Créer un répertoire"]},{msgid:"Current view selector",msgstr:["Sélecteur d'affichage actuel"]},{msgid:"Enter your name",msgstr:["Entrez votre nom"]},{msgid:"Existing version",msgstr:["Version actuelle "]},{msgid:"Failed to set nickname.",msgstr:["Échec de définition du surnom."]},{msgid:"Favorites",msgstr:["Favoris"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Les fichiers et répertoires marqués en favoris apparaîtront ici."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Les fichiers et répertoires modifiés récemment apparaîtront ici."]},{msgid:"Filter file list",msgstr:["Filtrer la liste des fichiers"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Les noms de dossiers ne doivent pas se terminer par "{extension}".']},{msgid:"Guest identification",msgstr:["Identification d'invité"]},{msgid:"Home",msgstr:["Accueil"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si vous conservez les deux versions, le fichier reçu sera renommé avec un numéro."]},{msgid:"Invalid folder name.",msgstr:["Nom de dossier invalide."]},{msgid:"Invalid name.",msgstr:["Nom invalide."]},{msgid:"Last modified date unknown",msgstr:["Date de modification inconnue"]},{msgid:"Modified",msgstr:["Modifié"]},{msgid:"Move",msgstr:["Déplacer"]},{msgid:"Move to {target}",msgstr:["Déplacer vers {target}"]},{msgid:"Name",msgstr:["Nom"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Les noms peuvent comporter au maximum 64 caractères."]},{msgid:"Names must not be empty.",msgstr:["Les noms ne peuvent pas être vides."]},{msgid:'Names must not end with "{extension}".',msgstr:['Les noms ne doivent pas se terminer par "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Les noms ne peuvent pas commencer par un point."]},{msgid:"New",msgstr:["Nouveau"]},{msgid:"New folder",msgstr:["Nouveau dossier"]},{msgid:"New folder name",msgstr:["Nom du nouveau dossier"]},{msgid:"New version",msgstr:["Nouvelle version"]},{msgid:"No files in here",msgstr:["Aucun fichier ici"]},{msgid:"No files matching your filter were found.",msgstr:["Aucun fichier trouvé correspondant à votre filtre."]},{msgid:"No matching files",msgstr:["Aucun fichier correspondant"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Veuillez entrer un nom avec au moins 2 caractères."]},{msgid:"Recent",msgstr:["Récents"]},{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},{msgid:"Select all entries",msgstr:["Tout sélectionner"]},{msgid:"Select all existing files",msgstr:["Sélectionner tous les fichiers existants"]},{msgid:"Select all new files",msgstr:["Sélectionner tous les nouveaux fichiers"]},{msgid:"Select entry",msgstr:["Sélectionner une entrée"]},{msgid:"Select the row for {nodename}",msgstr:["Sélectionner la ligne correspondant à {nodename}"]},{msgid:"Size",msgstr:["Taille"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorer %n fichier","Ignorer %n fichiers ","Ignorer %n fichiers "]},{msgid:"Skip this file",msgstr:["Ignorer ce fichier"]},{msgid:"Submit name",msgstr:["Envoyer le nom"]},{msgid:"Undo",msgstr:["Annuler"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Chargez du contenu ou synchronisez avec vos équipements !"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["En sélectionnant un dossier entrant, les fichiers en conflit qu’il contient seront automatiquement écrasés."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Suite à la sélection d'un dossier en entrée, tout fichier présent dans ce dossier sera alors écrasé. "]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Lorsque vous sélectionnez un dossier entrant, son contenu est ajouté au dossier existant et les conflits sont résolus automatiquement."]},{msgid:"Which files do you want to keep?",msgstr:["Quels fichiers souhaitez-vous conserver ?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Vous êtes actuellement identifié comme {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Vous n'êtes pas identifié actuellement."]},{msgid:"You cannot leave the name empty.",msgstr:["Vous ne pouvez pas laisser le nom vide."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Vous devez choisir au moins une option pour résoudre le conflit"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sélectionnez au moins une version de chaque fichier pour continuer."]}]},{language:"ga",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`Ní cheadaítear "{char}" laistigh d'ainm fillteáin.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`Ní cheadaítear "{char}" laistigh d'ainm.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['Ní ainm ceadaithe é "{extension}".']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`Is ainm curtha in áirithe é "{segment}" agus ní cheadaítear é d'ainmneacha fillteán.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['Is ainm curtha in áirithe é "{segment}" agus ní cheadaítear é.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n coimhlint comhaid","%n coimhlint comhad","%n coimhlint comhad","%n coimhlint comhad","%n coimhlint comhad"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n coimhlint comhaid i {dirname}","%n coimhlintí comhaid i {dirname}","%n coimhlintí comhaid i {dirname}","%n coimhlintí comhaid i {dirname}","%n coimhlintí comhaid i {dirname}"]},{msgid:"All files",msgstr:["Gach comhad"]},{msgid:"Cancel",msgstr:["Cealaigh"]},{msgid:"Cancel the entire operation",msgstr:["Cealaigh an oibríocht ar fad"]},{msgid:"Choose",msgstr:["Roghnaigh"]},{msgid:"Choose {file}",msgstr:["Roghnaigh {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Roghnaigh %n comhad","Roghnaigh %n comhaid","Roghnaigh %n comhaid","Roghnaigh %n comhaid","Roghnaigh %n comhaid"]},{msgid:"Confirm",msgstr:["Deimhnigh"]},{msgid:"Continue",msgstr:["Lean ar aghaidh"]},{msgid:"Copy",msgstr:["Cóip"]},{msgid:"Copy to {target}",msgstr:["Cóipeáil chuig {target}"]},{msgid:"Could not create the new folder",msgstr:["Níorbh fhéidir an fillteán nua a chruthú"]},{msgid:"Could not load files settings",msgstr:["Níorbh fhéidir socruithe comhaid a lódáil"]},{msgid:"Could not load files views",msgstr:["Níorbh fhéidir radhairc comhad a lódáil"]},{msgid:"Create directory",msgstr:["Cruthaigh eolaire"]},{msgid:"Current view selector",msgstr:["Roghnóir amhairc reatha"]},{msgid:"Enter your name",msgstr:["Cuir isteach d'ainm"]},{msgid:"Existing version",msgstr:["Leagan atá ann cheana féin"]},{msgid:"Failed to set nickname.",msgstr:["Theip ar leasainm a shocrú."]},{msgid:"Favorites",msgstr:["Ceanáin"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Taispeánfar comhaid agus fillteáin a d'athraigh tú le déanaí anseo."]},{msgid:"Filter file list",msgstr:["Scag liosta comhad"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Ní féidir ainmneacha fillteán a chríochnú le "{extension}".']},{msgid:"Guest identification",msgstr:["Aitheantas aoi"]},{msgid:"Home",msgstr:["Baile"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Má roghnaíonn tú an dá leagan, cuirfear uimhir le hainm an chomhaid atá ag teacht isteach."]},{msgid:"Invalid folder name.",msgstr:["Ainm fillteáin neamhbhailí."]},{msgid:"Invalid name.",msgstr:["Ainm neamhbhailí."]},{msgid:"Last modified date unknown",msgstr:["Dáta an athraithe dheireanaigh anaithnid"]},{msgid:"Modified",msgstr:["Athraithe"]},{msgid:"Move",msgstr:["Bog"]},{msgid:"Move to {target}",msgstr:["Bog go{target}"]},{msgid:"Name",msgstr:["Ainm"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Ní fhéadfaidh ainmneacha a bheith níos mó ná 64 carachtar ar fhad."]},{msgid:"Names must not be empty.",msgstr:["Ní féidir ainmneacha a bheith folamh."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ní féidir ainmneacha a chríochnú le "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Ní mór ainmneacha a bheith ag tosú le ponc."]},{msgid:"New",msgstr:["Nua"]},{msgid:"New folder",msgstr:["Fillteán nua"]},{msgid:"New folder name",msgstr:["Ainm fillteáin nua"]},{msgid:"New version",msgstr:["Leagan nua"]},{msgid:"No files in here",msgstr:["Níl aon chomhaid istigh anseo"]},{msgid:"No files matching your filter were found.",msgstr:["Níor aimsíodh aon chomhad a tháinig le do scagaire."]},{msgid:"No matching files",msgstr:["Gan comhaid meaitseála"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Cuir isteach ainm ina bhfuil 2 charachtar ar a laghad."]},{msgid:"Recent",msgstr:["le déanaí"]},{msgid:"Select all checkboxes",msgstr:["Roghnaigh na boscaí seiceála go léir"]},{msgid:"Select all entries",msgstr:["Roghnaigh gach iontráil"]},{msgid:"Select all existing files",msgstr:["Roghnaigh na comhaid uile atá ann cheana"]},{msgid:"Select all new files",msgstr:["Roghnaigh gach comhad nua"]},{msgid:"Select entry",msgstr:["Roghnaigh iontráil"]},{msgid:"Select the row for {nodename}",msgstr:["Roghnaigh an ró do {nodename}"]},{msgid:"Size",msgstr:["Méid"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Léim %n comhad","Léim %n comhaid","Léim %n comhaid","Léim %n comhaid","Léim %n comhaid"]},{msgid:"Skip this file",msgstr:["Scipeáil an comhad seo"]},{msgid:"Submit name",msgstr:["Cuir isteach ainm"]},{msgid:"Undo",msgstr:["Cealaigh"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Uaslódáil roinnt ábhair nó sioncronaigh le do ghléasanna!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán isteach, déanfar aon chomhaid choimhlinteacha ann a athscríobh freisin."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán isteach, déanfar aon chomhaid laistigh de a athscríobh freisin."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach sa fhillteán atá ann cheana féin agus déantar réiteach coinbhleachta athchúrsach."]},{msgid:"Which files do you want to keep?",msgstr:["Cé na comhaid ar mhaith leat a choinneáil?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Is é {nickname} an ainm atá ort faoi láthair."]},{msgid:"You are currently not identified.",msgstr:["Níl aitheantas tugtha duit faoi láthair."]},{msgid:"You cannot leave the name empty.",msgstr:["Ní féidir leat an t-ainm a fhágáil folamh."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Ní mór duit réiteach coinbhleachta amháin ar a laghad a roghnú"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú le leanúint ar aghaidh."]}]},{language:"gl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["«{char}» non está permitido no nome dun cartafol."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["«{char}» non está permitido dentro dun nome."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["«{extension}» non é un nome permitido."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["«{segment}» é un nome reservado e non está permitido para nomes de cartafoles."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["«{segment}» é un nome reservado e non está permitido."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ficheiro en conflito","%n ficheiros en conflito"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ficheiro en conflito en {dirname}","%n ficheiros en conflito en {dirname}"]},{msgid:"All files",msgstr:["Todos os ficheiros"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operación"]},{msgid:"Choose",msgstr:["Escoller"]},{msgid:"Choose {file}",msgstr:["Escoller {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escoller %n ficheiro","Escoller %n ficheiros"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar en {target}"]},{msgid:"Could not create the new folder",msgstr:["Non foi posíbel crear o novo cartafol"]},{msgid:"Could not load files settings",msgstr:["Non foi posíbel cargar os axustes dos ficheiros"]},{msgid:"Could not load files views",msgstr:["Non foi posíbel cargar as vistas dos ficheiros"]},{msgid:"Create directory",msgstr:["Crear un directorio"]},{msgid:"Current view selector",msgstr:["Selector de vista actual"]},{msgid:"Enter your name",msgstr:["Introduza o seu nome"]},{msgid:"Existing version",msgstr:["Versión existente"]},{msgid:"Failed to set nickname.",msgstr:["Produciuse un fallo ao definir o alcume."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os ficheiros e cartafoles que marque como favoritos aparecerán aquí."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Os ficheiros e cartafoles que modificou recentemente aparecerán aquí."]},{msgid:"Filter file list",msgstr:["Filtrar a lista de ficheiros"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Os nomes de cartafol non deben rematar en «{extension}»."]},{msgid:"Guest identification",msgstr:["Identificación do convidado"]},{msgid:"Home",msgstr:["Inicio"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome."]},{msgid:"Invalid folder name.",msgstr:["O nome de cartafol non é válido."]},{msgid:"Invalid name.",msgstr:["Nome incorrecto"]},{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover cara a {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes poden ter unha lonxitude máxima de 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Os nomes non deben estar baleiros."]},{msgid:'Names must not end with "{extension}".',msgstr:["Os nomes non deben rematar en «{extension}»."]},{msgid:"Names must not start with a dot.",msgstr:["Os nomes non deben comezar cun punto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Novo cartafol"]},{msgid:"New folder name",msgstr:["Novo nome do cartafol"]},{msgid:"New version",msgstr:["Nova versión"]},{msgid:"No files in here",msgstr:["Aquí non hai ficheiros"]},{msgid:"No files matching your filter were found.",msgstr:["Non se atopou ningún ficheiro que coincida co filtro."]},{msgid:"No matching files",msgstr:["Non hai ficheiros coincidentes"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Introduza un nome con polo menos 2 caracteres."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Seleccionar todas as caixas"]},{msgid:"Select all entries",msgstr:["Seleccionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},{msgid:"Select entry",msgstr:["Seleccionar a entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Seleccionar a fila para {nodename}"]},{msgid:"Size",msgstr:["Tamaño"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Omitir %n ficheiro","Omitir %n ficheiros"]},{msgid:"Skip this file",msgstr:["Omitir este ficheiro"]},{msgid:"Submit name",msgstr:["Enviar o nome"]},{msgid:"Undo",msgstr:["Desfacer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Enviar algún contido ou sincronizalo cos seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cando se selecciona un cartafol entrante, todos os ficheiros conflitivos dentro dela tamén serán sobrescritos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e realízase unha resolución recursiva de conflitos."]},{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Vde. está identificado actualmente como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Vde. non está identificado actualmente."]},{msgid:"You cannot leave the name empty.",msgstr:["Vde. non pode deixar o nome baleiro."]},{msgid:"You need to choose at least one conflict solution",msgstr:["É necesario escoller polo menos unha solución de conflito"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["É necesario seleccionar polo menos unha versión de cada ficheiro para continuar."]}]},{language:"hr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["Znak „{char}” nije dopušten u nazivu mape."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["Znak „{char}” nije dopušten u nazivu."]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nije dopušten u nazivu.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" je rezervirana riječ i nije dopušten u nazivu mape.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" je rezervirana riječ i nije dopušten.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["Sukobljava se %n datoteka","Sukobljava se %n datoteke","Sukobljava se %n datoteke"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n sukob datoteka u {dirname}","%n sukoba datoteka u {dirname}","%n sukoba datoteka u {dirname}"]},{msgid:"All files",msgstr:["Sve datoteke"]},{msgid:"Cancel",msgstr:["Odustani"]},{msgid:"Cancel the entire operation",msgstr:["Odustani od cijele operacije"]},{msgid:"Choose",msgstr:["Odaberi"]},{msgid:"Choose {file}",msgstr:["Odaberi {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Odaberi %n datoteku","Odaberi %n datoteka","Odaberi %n datoteke"]},{msgid:"Confirm",msgstr:["Potvrdi"]},{msgid:"Continue",msgstr:["Nastavi"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj u {target}"]},{msgid:"Could not create the new folder",msgstr:["Nije moguće stvoriti novu mapu"]},{msgid:"Could not load files settings",msgstr:["Nije moguće učitati postavke datoteka"]},{msgid:"Could not load files views",msgstr:["Nije moguće učitati prikaze datoteka"]},{msgid:"Create directory",msgstr:["Stvori mapu"]},{msgid:"Current view selector",msgstr:["Odabir trenutačnog prikaza"]},{msgid:"Enter your name",msgstr:["Unesite vaše ime"]},{msgid:"Existing version",msgstr:["Postojeća verzija"]},{msgid:"Failed to set nickname.",msgstr:["Neuspjelo postavljanje nadimka."]},{msgid:"Favorites",msgstr:["Favoriti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Ovdje se prikazuju datoteke i mape koje ste označili kao favoriti."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Ovdje se prikazuju datoteke i mape koje ste nedavno ažurirali."]},{msgid:"Filter file list",msgstr:["Filtriranje liste datoteka"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nazivi mapa ne smiju završiti sa "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikacija gosta"]},{msgid:"Home",msgstr:["Naslovna"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ako odaberete obje verzije, dolaznoj datoteci bit će dodan broj u nazivu."]},{msgid:"Invalid folder name.",msgstr:["Neispavan naziv mape."]},{msgid:"Invalid name.",msgstr:["Neispravan naziv."]},{msgid:"Last modified date unknown",msgstr:["Nepoznat datum zadnjeg ažuriranja"]},{msgid:"Modified",msgstr:["Ažurirano"]},{msgid:"Move",msgstr:["Premjesti"]},{msgid:"Move to {target}",msgstr:["Premjesti u {target}"]},{msgid:"Name",msgstr:["Naziv"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nazivi mogu imati najviše 64 znaka."]},{msgid:"Names must not be empty.",msgstr:["Nazivi ne smiju biti prazni."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nazivi ne smiju završiti sa "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nazivi ne smiju započinjati točkom."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova mapa"]},{msgid:"New folder name",msgstr:["Novi naziv mape"]},{msgid:"New version",msgstr:["Nova verzija"]},{msgid:"No files in here",msgstr:["Ovdje nema datoteka"]},{msgid:"No files matching your filter were found.",msgstr:["Nisu pronađene datoteke koje odgovaraju vašem filtru."]},{msgid:"No matching files",msgstr:["Nema odgovarajućih datoteka."]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Unesite naziv s najmanje 2 znaka."]},{msgid:"Recent",msgstr:["Nedavno"]},{msgid:"Select all checkboxes",msgstr:["Označi sve potvrdne okvire"]},{msgid:"Select all entries",msgstr:["Označi sve stavke"]},{msgid:"Select all existing files",msgstr:["Označi sve postojeće datoteke"]},{msgid:"Select all new files",msgstr:["Označi sve nove datoteke"]},{msgid:"Select entry",msgstr:["Označi stavku"]},{msgid:"Select the row for {nodename}",msgstr:["Označi red za{nodename}"]},{msgid:"Size",msgstr:["Veličina"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Preskoči %n datoteku","Preskoči %n datoteke","Preskoči %n datoteke"]},{msgid:"Skip this file",msgstr:["Preskoči ovu datoteku"]},{msgid:"Submit name",msgstr:["Pošalji naziv"]},{msgid:"Undo",msgstr:["Poništi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Prenesite neki sadržaj ili sinkronizirajte sa svojim uređajima!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kada je odabrana dolazna mapa, sve datoteke unutar nje koje su u sukobu također će biti prepisane."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kada je odabrana dolazna mapa, sadržaj se upisuje u postojeću mapu i provodi se rekurzivno rješavanje sukoba."]},{msgid:"Which files do you want to keep?",msgstr:["Koje datoteke želite zadržati?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Trenutno ste identificirani kao {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Trenutno niste identificirani."]},{msgid:"You cannot leave the name empty.",msgstr:["Ne možete ostaviti naziv prazan."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Morate odabrati barem jedno rješenje sukoba"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Morate odabrati barem jednu verziju svake datoteke kako biste nastavili."]}]},{language:"hu_HU",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["A(z) „{char}” nem engedélyezett egy mappanévben."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["A(z) „{char}” nem engedélyezett egy névben."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["A(z) „{extension}” nem engedélyezett név."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["A(z) „{segment}” foglalt név, és nem engedélyezett a mappanevekben."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["A(z) „{segment}” foglalt név, és nem engedélyezett."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ütköző fájl","%n ütköző fájl"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ütköző fájl ebben: {dirname}","%n ütköző fájl ebben: {dirname}"]},{msgid:"All files",msgstr:["Összes fájl"]},{msgid:"Cancel",msgstr:["Mégse"]},{msgid:"Cancel the entire operation",msgstr:["Egész művelet megszakítása"]},{msgid:"Choose",msgstr:["Kiválasztás"]},{msgid:"Choose {file}",msgstr:["{file} kiválasztása"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n fájl kiválasztása","%n fájl kiválasztása"]},{msgid:"Confirm",msgstr:["Megerősítés"]},{msgid:"Continue",msgstr:["Folytatás"]},{msgid:"Copy",msgstr:["Másolás"]},{msgid:"Copy to {target}",msgstr:["Másolás ide: {target}"]},{msgid:"Could not create the new folder",msgstr:["Nem lehet létrehozni az új mappát"]},{msgid:"Could not load files settings",msgstr:["Nem lehet betölteni a fájlok beállításait"]},{msgid:"Could not load files views",msgstr:["Nem lehet betölteni a fájlok nézeteit"]},{msgid:"Create directory",msgstr:["Mappa létrehozása"]},{msgid:"Current view selector",msgstr:["Jelenlegi nézet választója"]},{msgid:"Enter your name",msgstr:["Adja meg a nevét"]},{msgid:"Existing version",msgstr:["Meglévő verzió"]},{msgid:"Failed to set nickname.",msgstr:["Nem sikerült a becenév beállítása."]},{msgid:"Favorites",msgstr:["Kedvencek"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["A kedvencként megjelölt fájlok és mappák itt jelennek meg."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["A nemrég módosított fájlok és mappák itt jelennek meg."]},{msgid:"Filter file list",msgstr:["Fájllista szűrése"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["A mappanevek nem végződhetnek ezzel: „{extension}”."]},{msgid:"Guest identification",msgstr:["Vendégazonosítás"]},{msgid:"Home",msgstr:["Kezdőlap"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ha mindkét verziót választja, akkor a bejövő fájl nevéhez egy szám lesz hozzáfűzve."]},{msgid:"Invalid folder name.",msgstr:["Érvénytelen mappanév."]},{msgid:"Invalid name.",msgstr:["Érvénytelen név."]},{msgid:"Last modified date unknown",msgstr:["Legutóbbi módosítás ideje ismeretlen"]},{msgid:"Modified",msgstr:["Módosítva"]},{msgid:"Move",msgstr:["Áthelyezés"]},{msgid:"Move to {target}",msgstr:["Áthelyezés ide: {target}"]},{msgid:"Name",msgstr:["Név"]},{msgid:"Names may be at most 64 characters long.",msgstr:["A nevek legfeljebb 64 karakter hosszúak lehetnek."]},{msgid:"Names must not be empty.",msgstr:["A nevek nem lehetnek üresek."]},{msgid:'Names must not end with "{extension}".',msgstr:["A nevek nem végződhetnek ezzel: „{extension}”."]},{msgid:"Names must not start with a dot.",msgstr:["A nevek nem kezdődhetnek ponttal."]},{msgid:"New",msgstr:["Új"]},{msgid:"New folder",msgstr:["Új mappa"]},{msgid:"New folder name",msgstr:["Új mappa neve"]},{msgid:"New version",msgstr:["Új verzió"]},{msgid:"No files in here",msgstr:["Itt nincsenek fájlok"]},{msgid:"No files matching your filter were found.",msgstr:["Nincs a szűrési feltételeknek megfelelő fájl."]},{msgid:"No matching files",msgstr:["Nincs ilyen fájl"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Legalább 2 karakteres nevet adjon meg."]},{msgid:"Recent",msgstr:["Legutóbbi"]},{msgid:"Select all checkboxes",msgstr:["Összes jelölőmező bepipálása"]},{msgid:"Select all entries",msgstr:["Összes bejegyzés kijelölése"]},{msgid:"Select all existing files",msgstr:["Összes meglévő fájl kijelölése"]},{msgid:"Select all new files",msgstr:["Összes új fájl kijelölése"]},{msgid:"Select entry",msgstr:["Bejegyzés kijelölése"]},{msgid:"Select the row for {nodename}",msgstr:["Válasszon sort a következőnek: {nodename}"]},{msgid:"Size",msgstr:["Méret"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n fájl kihagyása","%n fájl kihagyása"]},{msgid:"Skip this file",msgstr:["Fájl kihagyása"]},{msgid:"Submit name",msgstr:["Név beküldése"]},{msgid:"Undo",msgstr:["Visszavonás"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Töltsön fel tartalmat, vagy szinkronizáljon az eszközeivel!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ha egy bejövő mappa van kijelölve, akkor a benne lévő ütköző fájlok is felül lesznek írva."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Amikor egy bejövő mappát kiválaszt, a benne lévő fájlok is felülíródnak."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ha egy bejövő mappa van kijelölve, akkor a tartalom a meglévő mappába lesz írva, és rekurzív ütközéskezelés lesz végezve."]},{msgid:"Which files do you want to keep?",msgstr:["Mely fájlokat akarja megtartani?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Jelenleg ekként van azonosítva: {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Jelenleg nincs azonosítva."]},{msgid:"You cannot leave the name empty.",msgstr:["A nevet nem hagyhatja üresen."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Legalább egy ütközéskezelési megoldást kell választania"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["A folytatáshoz az összes fájlnak legalább egy verzióját ki kell választania."]}]},{language:"hy",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} սխալ թղթապանակի անվանում է"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} համարվում է անթույլատրելի թղթապանակի անվանում"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["/ չի թույլատրվում օգտագործել անվանման մեջ"]},{msgid:"All files",msgstr:["Բոլոր ֆայլերը"]},{msgid:"Choose",msgstr:["Ընտրել"]},{msgid:"Choose {file}",msgstr:["Ընտրել {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Ընտրել %n ֆայլ","Ընտրել %n ֆայլեր"]},{msgid:"Copy",msgstr:["Պատճենել"]},{msgid:"Copy to {target}",msgstr:["Պատճենել {target}"]},{msgid:"Could not create the new folder",msgstr:["Չստացվեց ստեղծել նոր թղթապանակը"]},{msgid:"Could not load files settings",msgstr:["Չստացվեց բեռնել ֆայլի կարգավորումները"]},{msgid:"Could not load files views",msgstr:["Չստացվեց բեռնել ֆայլերի դիտումները"]},{msgid:"Create directory",msgstr:["Ստեղծել դիրեկտորիա"]},{msgid:"Current view selector",msgstr:["Ընթացիկ դիտման ընտրիչ"]},{msgid:"Favorites",msgstr:["Նախընտրելիներ"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք դուք նշել եք որպես նախընտրելիներ:"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Այստեղ կցուցադրվեն այն ֆայլերն ու պանակները, որոնք վերջերս փոխել եք:"]},{msgid:"Filter file list",msgstr:["Ֆիլտրել ֆայլերի ցուցակը"]},{msgid:"Folder name cannot be empty.",msgstr:["Թղթապանակի անունը չի կարող դատարկ լինել:"]},{msgid:"Home",msgstr:["Սկիզբ"]},{msgid:"Modified",msgstr:["Փոփոխված"]},{msgid:"Move",msgstr:["Տեղափոխել"]},{msgid:"Move to {target}",msgstr:["Տեղափոխել {target}"]},{msgid:"Name",msgstr:["Անուն"]},{msgid:"New",msgstr:["Նոր"]},{msgid:"New folder",msgstr:["Նոր թղթապանակ"]},{msgid:"New folder name",msgstr:["Նոր թղթապանակի անվանում"]},{msgid:"No files in here",msgstr:["Այստեղ չկան ֆայլեր"]},{msgid:"No files matching your filter were found.",msgstr:["Ձեր ֆիլտրին համապատասխանող ֆայլերը չեն գտնվել:"]},{msgid:"No matching files",msgstr:["Չկան համապատասխան ֆայլեր"]},{msgid:"Recent",msgstr:["Վերջին"]},{msgid:"Select all entries",msgstr:["Ընտրել բոլոր գրառումները"]},{msgid:"Select entry",msgstr:["Ընտրել բոլոր գրառումը"]},{msgid:"Select the row for {nodename}",msgstr:["Ընտրեք տողը {nodename}-ի համար "]},{msgid:"Size",msgstr:["Չափ"]},{msgid:"Undo",msgstr:["Ետարկել"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ներբեռնեք որոշ բովանդակություն կամ համաժամացրեք այն ձեր սարքերի հետ:"]}]},{language:"id",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" tidak diizinkan di dalam nama folder.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" tidak diizinkan di dalam nama.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" bukan nama yang diizinkan.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" adalah nama yang dicadangkan dan tidak diizinkan untuk nama folder.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" adalah nama yang dicadangkan dan tidak diizinkan.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n konflik file"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konflik file di {dirname}"]},{msgid:"All files",msgstr:["Semua berkas"]},{msgid:"Cancel",msgstr:["Batal"]},{msgid:"Cancel the entire operation",msgstr:["Batalkan seluruh operasi"]},{msgid:"Choose",msgstr:["Pilih"]},{msgid:"Choose {file}",msgstr:["Pilih {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pilih %n file"]},{msgid:"Confirm",msgstr:["Konfirmasi"]},{msgid:"Continue",msgstr:["Lanjutkan"]},{msgid:"Copy",msgstr:["Salin"]},{msgid:"Copy to {target}",msgstr:["Salin ke {target}"]},{msgid:"Could not create the new folder",msgstr:["Tidak dapat membuat folder baru"]},{msgid:"Could not load files settings",msgstr:["Tidak dapat memuat pengaturan file"]},{msgid:"Could not load files views",msgstr:["Tidak dapat memuat tampilan file"]},{msgid:"Create directory",msgstr:["Buat direktori"]},{msgid:"Current view selector",msgstr:["Pemilih tampilan saat ini"]},{msgid:"Enter your name",msgstr:["Masukkan nama Anda"]},{msgid:"Existing version",msgstr:["Versi yang ada"]},{msgid:"Failed to set nickname.",msgstr:["Gagal menetapkan nama panggilan."]},{msgid:"Favorites",msgstr:["Favorit"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Berkas dan folder yang Anda tandai sebagai favorit akan muncul di sini."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Berkas dan folder yang Anda ubah baru-baru ini akan muncul di sini."]},{msgid:"Filter file list",msgstr:["Saring daftar berkas"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nama folder tidak boleh diakhiri dengan "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikasi tamu"]},{msgid:"Home",msgstr:["Beranda"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, file yang masuk akan ditambahkan angka pada namanya."]},{msgid:"Invalid folder name.",msgstr:["Nama folder tidak valid."]},{msgid:"Invalid name.",msgstr:["Nama tidak valid."]},{msgid:"Last modified date unknown",msgstr:["Tanggal modifikasi terakhir tidak diketahui"]},{msgid:"Modified",msgstr:["Diubah"]},{msgid:"Move",msgstr:["Pindahkan"]},{msgid:"Move to {target}",msgstr:["Pindahkan ke {target}"]},{msgid:"Name",msgstr:["Nama"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Panjang nama maksimal 64 karakter."]},{msgid:"Names must not be empty.",msgstr:["Nama tidak boleh kosong."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nama tidak boleh diakhiri dengan "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nama tidak boleh diawali dengan titik."]},{msgid:"New",msgstr:["Baru"]},{msgid:"New folder",msgstr:["Folder baru"]},{msgid:"New folder name",msgstr:["Nama folder baru"]},{msgid:"New version",msgstr:["Versi baru"]},{msgid:"No files in here",msgstr:["Tidak ada berkas di sini"]},{msgid:"No files matching your filter were found.",msgstr:["Tidak ada berkas yang cocok dengan penyaringan Anda."]},{msgid:"No matching files",msgstr:["Tidak ada berkas yang cocok"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Silakan masukkan nama dengan minimal 2 karakter."]},{msgid:"Recent",msgstr:["Terkini"]},{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},{msgid:"Select all entries",msgstr:["Pilih semua entri"]},{msgid:"Select all existing files",msgstr:["Pilih semua file yang ada"]},{msgid:"Select all new files",msgstr:["Pilih semua file baru"]},{msgid:"Select entry",msgstr:["Pilih entri"]},{msgid:"Select the row for {nodename}",msgstr:["Pilih baris untuk {nodename}"]},{msgid:"Size",msgstr:["Ukuran"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Lewati %n file"]},{msgid:"Skip this file",msgstr:["Lewati file ini"]},{msgid:"Submit name",msgstr:["Kirim nama"]},{msgid:"Undo",msgstr:["Tidak jadi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Unggah beberapa konten atau sinkronkan dengan perangkat Anda!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Saat folder yang masuk dipilih, semua file yang konflik di dalamnya juga akan ditimpa."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Saat folder yang masuk dipilih, konten ditulis ke dalam folder yang ada dan penyelesaian konflik rekursif dilakukan."]},{msgid:"Which files do you want to keep?",msgstr:["File mana yang ingin Anda pertahankan?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Saat ini Anda teridentifikasi sebagai {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Saat ini Anda tidak teridentifikasi."]},{msgid:"You cannot leave the name empty.",msgstr:["Anda tidak dapat membiarkan nama kosong."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Anda perlu memilih setidaknya satu solusi konflik"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda perlu memilih setidaknya satu versi dari setiap file untuk melanjutkan."]}]},{language:"is",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" er ógilt möppuheiti.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" er ekki leyfilegt möppuheiti']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" er er ekki leyfilegt innan í skráarheiti.']},{msgid:"All files",msgstr:["Allar skrár"]},{msgid:"Choose",msgstr:["Veldu"]},{msgid:"Choose {file}",msgstr:["Veldu {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Veldu %n skrá","Veldu %n skrár"]},{msgid:"Copy",msgstr:["Afrita"]},{msgid:"Copy to {target}",msgstr:["Afrita í {target}"]},{msgid:"Could not create the new folder",msgstr:["Get ekki búið til nýju möppuna"]},{msgid:"Could not load files settings",msgstr:["Tókst ekki að hlaða inn stillingum skráa"]},{msgid:"Could not load files views",msgstr:["Tókst ekki að hlaða inn sýnum skráa"]},{msgid:"Create directory",msgstr:["Búa til möppu"]},{msgid:"Current view selector",msgstr:["Núverandi val sýnar"]},{msgid:"Favorites",msgstr:["Eftirlæti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Skrár og möppur sem þú merkir sem eftirlæti birtast hér."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Skrár og möppur sem þú breyttir nýlega birtast hér."]},{msgid:"Filter file list",msgstr:["Sía skráalista"]},{msgid:"Folder name cannot be empty.",msgstr:["Möppuheiti má ekki vera tómt."]},{msgid:"Home",msgstr:["Heim"]},{msgid:"Modified",msgstr:["Breytt"]},{msgid:"Move",msgstr:["Færa"]},{msgid:"Move to {target}",msgstr:["Færa í {target}"]},{msgid:"Name",msgstr:["Heiti"]},{msgid:"New",msgstr:["Nýtt"]},{msgid:"New folder",msgstr:["Ný mappa"]},{msgid:"New folder name",msgstr:["Heiti nýrrar möppu"]},{msgid:"No files in here",msgstr:["Engar skrár hér"]},{msgid:"No files matching your filter were found.",msgstr:["Engar skrár fundust sem passa við síuna."]},{msgid:"No matching files",msgstr:["Engar samsvarandi skrár"]},{msgid:"Recent",msgstr:["Nýlegt"]},{msgid:"Select all entries",msgstr:["Velja allar færslur"]},{msgid:"Select entry",msgstr:["Velja færslu"]},{msgid:"Select the row for {nodename}",msgstr:["Veldu röðina fyrir {nodename}"]},{msgid:"Size",msgstr:["Stærð"]},{msgid:"Undo",msgstr:["Afturkalla"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Sendu inn eitthvað efni eða samstilltu við tækin þín!"]}]},{language:"it",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:[`"{char}" non è consentito all'interno di un nome di cartella.`]},{msgid:'"{char}" is not allowed inside a name.',msgstr:[`"{char}" non è consentito all'interno di un nome.`]},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" non è un nome consentito']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" è un nome riservato e non consentito per i nomi delle cartelle.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" è un nome riservato e non consentito.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n file in conflitto","%n file in conflitto","%n file in conflitto"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n file in conflitto in {dirname}","%n file in conflitto in {dirname}","%n file in conflitto in {dirname}"]},{msgid:"All files",msgstr:["Tutti i file"]},{msgid:"Cancel",msgstr:["Annulla"]},{msgid:"Cancel the entire operation",msgstr:["Annulla l'intera operazione"]},{msgid:"Choose",msgstr:["Scegli"]},{msgid:"Choose {file}",msgstr:["Scegli {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Scegli %n file","Scegli %n file","Scegli %n file"]},{msgid:"Confirm",msgstr:["Conferma"]},{msgid:"Continue",msgstr:["Continua"]},{msgid:"Copy",msgstr:["Copia"]},{msgid:"Copy to {target}",msgstr:["Copia in {target}"]},{msgid:"Could not create the new folder",msgstr:["Impossibile creare la nuova cartella"]},{msgid:"Could not load files settings",msgstr:["Impossibile caricare le impostazioni dei file"]},{msgid:"Could not load files views",msgstr:["Impossibile caricare le visualizzazioni dei file"]},{msgid:"Create directory",msgstr:["Crea cartella"]},{msgid:"Current view selector",msgstr:["Selettore della vista attuale"]},{msgid:"Enter your name",msgstr:["Inserisci il tuo nome"]},{msgid:"Existing version",msgstr:["Versione esistente"]},{msgid:"Failed to set nickname.",msgstr:["Impossibile impostare lo pseudonimo."]},{msgid:"Favorites",msgstr:["Preferiti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["I file e le cartelle contrassegnate come preferite saranno mostrate qui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["I file e le cartelle che hai modificato di recente saranno mostrate qui."]},{msgid:"Filter file list",msgstr:["Filtra l'elenco dei file"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['I nomi delle cartelle devono finire con "{extension}".']},{msgid:"Guest identification",msgstr:["Identificazione ospiti"]},{msgid:"Home",msgstr:["Home"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, al nome del file in arrivo verrà aggiunto un numero."]},{msgid:"Invalid folder name.",msgstr:["Nome cartella non valido."]},{msgid:"Invalid name.",msgstr:["Nome non valido."]},{msgid:"Last modified date unknown",msgstr:["Data di ultima modifica sconosciuta"]},{msgid:"Modified",msgstr:["Modificato"]},{msgid:"Move",msgstr:["Sposta"]},{msgid:"Move to {target}",msgstr:["Sposta in {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["I nomi dovrebbero avere una lunghezza massima di 64 caratteri."]},{msgid:"Names must not be empty.",msgstr:["I nomi non devono essere vuoti."]},{msgid:'Names must not end with "{extension}".',msgstr:['I nomi devono finire con "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["I nomi non possono iniziare con un punto."]},{msgid:"New",msgstr:["Nuovo"]},{msgid:"New folder",msgstr:["Nuova cartella"]},{msgid:"New folder name",msgstr:["Nome della nuova cartella"]},{msgid:"New version",msgstr:["Nuova versione"]},{msgid:"No files in here",msgstr:["Nessun file qui"]},{msgid:"No files matching your filter were found.",msgstr:["Nessun file che corrisponde al tuo filtro è stato trovato."]},{msgid:"No matching files",msgstr:["Nessun file corrispondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Digita un nome con almeno 2 caratteri."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},{msgid:"Select all entries",msgstr:["Scegli tutte le voci"]},{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},{msgid:"Select entry",msgstr:["Seleziona la voce"]},{msgid:"Select the row for {nodename}",msgstr:["Seleziona la riga per {nodename}"]},{msgid:"Size",msgstr:["Dimensioni"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Salta %n file","Salta %n file","Salta %n file"]},{msgid:"Skip this file",msgstr:["Salta questo file"]},{msgid:"Submit name",msgstr:["Invia nome"]},{msgid:"Undo",msgstr:["Annulla"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Carica qualche contenuto o sincronizza con i tuoi dispositivi!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno saranno sovrascritti."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche i documenti all'interno verranno sovrascritti."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti."]},{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi conservare?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Sei attualmente identificato come {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Attualmente non sei identificato."]},{msgid:"You cannot leave the name empty.",msgstr:["Non puoi lasciare il nome vuoto."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Devi scegliere almeno una soluzione al conflitto"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Per continuare, è necessario selezionare almeno una versione di ciascun file."]}]},{language:"ja_JP",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['フォルダー名に "{char}" を使用することはできません。']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['名前に "{char}" を使用することはできません。']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" は許可された名前ではありません。']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" は予約名のため、使用できません。']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" は予約名のため、使用できません。']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%nファイルが競合しています"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%nディレクトリ{dirname}内のファイル競合"]},{msgid:"All files",msgstr:["すべてのファイル"]},{msgid:"Cancel",msgstr:["キャンセル"]},{msgid:"Cancel the entire operation",msgstr:["すべての操作をキャンセル"]},{msgid:"Choose",msgstr:["選択"]},{msgid:"Choose {file}",msgstr:["{file} を選択"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n 個のファイルを選択"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Continue",msgstr:["続行"]},{msgid:"Copy",msgstr:["コピー"]},{msgid:"Copy to {target}",msgstr:["{target} にコピー"]},{msgid:"Could not create the new folder",msgstr:["新しいフォルダーを作成できませんでした"]},{msgid:"Could not load files settings",msgstr:["ファイル設定を読み込めませんでした"]},{msgid:"Could not load files views",msgstr:["ファイルビューを読み込めませんでした"]},{msgid:"Create directory",msgstr:["ディレクトリを作成"]},{msgid:"Current view selector",msgstr:["現在のビュー選択"]},{msgid:"Enter your name",msgstr:["名前を入力してください"]},{msgid:"Existing version",msgstr:["現行バージョン"]},{msgid:"Failed to set nickname.",msgstr:["ニックネームの設定に失敗しました。"]},{msgid:"Favorites",msgstr:["お気に入り"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["お気に入りとしてマークしたファイルとフォルダーがここに表示されます。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["最近変更したファイルとフォルダーがここに表示されます。"]},{msgid:"Filter file list",msgstr:["ファイルのリストをフィルター"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['フォルダー名の末尾に "{extension}" を使用できません。']},{msgid:"Guest identification",msgstr:["ゲスト識別"]},{msgid:"Home",msgstr:["ホーム"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["両方のバージョンを選択した場合、受信ファイル名には番号が追加されます。"]},{msgid:"Invalid folder name.",msgstr:["フォルダー名が無効です。"]},{msgid:"Invalid name.",msgstr:["無効な名前です。"]},{msgid:"Last modified date unknown",msgstr:["最終更新日不明"]},{msgid:"Modified",msgstr:["変更済み"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["{target} に移動"]},{msgid:"Name",msgstr:["名前"]},{msgid:"Names may be at most 64 characters long.",msgstr:["名前は最大64文字です。"]},{msgid:"Names must not be empty.",msgstr:["名前は空にできません。"]},{msgid:'Names must not end with "{extension}".',msgstr:['名前の末尾に "{extension}" を使用できません。']},{msgid:"Names must not start with a dot.",msgstr:["ドットで始まる名前は使用できません。"]},{msgid:"New",msgstr:["新規作成"]},{msgid:"New folder",msgstr:["新しいフォルダー"]},{msgid:"New folder name",msgstr:["新しいフォルダーの名前"]},{msgid:"New version",msgstr:["新バージョン"]},{msgid:"No files in here",msgstr:["ファイルがありません"]},{msgid:"No files matching your filter were found.",msgstr:["フィルターに一致するファイルは見つかりませんでした。"]},{msgid:"No matching files",msgstr:["一致するファイルはありません"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["名前は2文字以上を入力してください。"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all checkboxes",msgstr:["すべてのチェックボックスを選択"]},{msgid:"Select all entries",msgstr:["すべてのエントリを選択"]},{msgid:"Select all existing files",msgstr:["既存のファイルをすべて選択"]},{msgid:"Select all new files",msgstr:["すべての新規ファイルを選択"]},{msgid:"Select entry",msgstr:["エントリを選択"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} の行を選択"]},{msgid:"Size",msgstr:["サイズ"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n 個のファイルをスキップ"]},{msgid:"Skip this file",msgstr:["このファイルをスキップ"]},{msgid:"Submit name",msgstr:["名前を送信する"]},{msgid:"Undo",msgstr:["元に戻す"]},{msgid:"Upload some content or sync with your devices!",msgstr:["コンテンツをアップロードするか、デバイスと同期してください!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["受信フォルダーを選択すると、そのフォルダー内の競合ファイルも上書きされます。"]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["受信フォルダを選択すると、その中のファイルも上書きされます。"]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["受信フォルダーを選択すると、内容は既存のフォルダーに書き込まれ、再帰的な競合解決が実行されます。"]},{msgid:"Which files do you want to keep?",msgstr:["どのファイルを残しますか?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["現在、{nickname}として識別されています。"]},{msgid:"You are currently not identified.",msgstr:["現在あなたは識別されていません。"]},{msgid:"You cannot leave the name empty.",msgstr:["名前を空にすることはできません。"]},{msgid:"You need to choose at least one conflict solution",msgstr:["少なくとも1つの競合ソリューションを選択する必要があります"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["続行するには、各ファイルのバージョンを少なくとも1つ選択する必要があります。"]}]},{language:"ko",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["문자 '{char}'은(는) 폴더 이름에 사용할 수 없습니다."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["문자 '{char}'은(는) 이름에 사용할 수 없습니다."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["'{extension}'은(는) 사용 불가능한 이름입니다."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["'{segment}'은(는) 예약된 이름이므로 폴더 이름으로 사용할 수 없습니다."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["'{segment}'은(는) 예약된 이름이므로 사용할 수 없습니다."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n개의 파일이 충돌함"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname}에서 %n개의 파일이 충돌함"]},{msgid:"All files",msgstr:["모든 파일"]},{msgid:"Cancel",msgstr:["취소"]},{msgid:"Cancel the entire operation",msgstr:["전체 작업 취소"]},{msgid:"Choose",msgstr:["선택"]},{msgid:"Choose {file}",msgstr:["{file} 선택"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["파일 %n개 선택"]},{msgid:"Confirm",msgstr:["확인"]},{msgid:"Continue",msgstr:["계속"]},{msgid:"Copy",msgstr:["복사"]},{msgid:"Copy to {target}",msgstr:["{target}(으)로 복사"]},{msgid:"Could not create the new folder",msgstr:["새 폴더를 만들 수 없음"]},{msgid:"Could not load files settings",msgstr:["파일 설정을 불러오지 못함"]},{msgid:"Could not load files views",msgstr:["파일 보기를 불러오지 못함"]},{msgid:"Create directory",msgstr:["디렉토리 만들기"]},{msgid:"Current view selector",msgstr:["현재 보기 방식"]},{msgid:"Enter your name",msgstr:["이름을 입력하세요"]},{msgid:"Existing version",msgstr:["기존 버전"]},{msgid:"Failed to set nickname.",msgstr:[`닉네임을 설정하지 못했습니다. + `]},{msgid:"Favorites",msgstr:["즐겨찾기"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["즐겨찾기 한 파일 및 폴더가 이곳에 표시됩니다."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["최근 수정된 파일 및 폴더가 이곳에 표시됩니다."]},{msgid:"Filter file list",msgstr:["파일 목록 필터링"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["폴더 이름은 '{extension}'(으)로 끝날 수 없습니다."]},{msgid:"Guest identification",msgstr:["게스트 확인"]},{msgid:"Home",msgstr:["홈"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["두 버전을 모두 선택할 경우 새로 추가되는 파일의 이름에 숫자가 붙게 됩니다."]},{msgid:"Invalid folder name.",msgstr:["잘못된 폴더 이름입니다."]},{msgid:"Invalid name.",msgstr:["잘못된 이름입니다. "]},{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},{msgid:"Modified",msgstr:["수정됨"]},{msgid:"Move",msgstr:["이동"]},{msgid:"Move to {target}",msgstr:["{target}(으)로 이동"]},{msgid:"Name",msgstr:["이름"]},{msgid:"Names may be at most 64 characters long.",msgstr:["이름은 최대 64글자까지 지정할 수 있습니다."]},{msgid:"Names must not be empty.",msgstr:["이름은 비어 있을 수 없습니다."]},{msgid:'Names must not end with "{extension}".',msgstr:["이름은 '{extension}'(으)로 끝날 수 없습니다."]},{msgid:"Names must not start with a dot.",msgstr:["이름은 마침표로 시작될 수 없습니다."]},{msgid:"New",msgstr:["새로 만들기"]},{msgid:"New folder",msgstr:["새 폴더"]},{msgid:"New folder name",msgstr:["새 폴더명"]},{msgid:"New version",msgstr:["새로운 버전"]},{msgid:"No files in here",msgstr:["파일이 없습니다"]},{msgid:"No files matching your filter were found.",msgstr:["선택된 필터에 해당하는 파일이 없습니다."]},{msgid:"No matching files",msgstr:["해당하는 파일 없음"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["최소 두 글자 이상의 이름을 입력해주세요."]},{msgid:"Recent",msgstr:["최근"]},{msgid:"Select all checkboxes",msgstr:["체크박스 모두 선택"]},{msgid:"Select all entries",msgstr:["모두 선택"]},{msgid:"Select all existing files",msgstr:["기존 파일 모두 선택"]},{msgid:"Select all new files",msgstr:["새 파일 모두 선택"]},{msgid:"Select entry",msgstr:["항목 선택"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename}의 행 선택"]},{msgid:"Size",msgstr:["크기"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n개 파일 건너뛰기"]},{msgid:"Skip this file",msgstr:["이 파일 건너뛰기"]},{msgid:"Submit name",msgstr:["이름 제출"]},{msgid:"Undo",msgstr:["되돌리기"]},{msgid:"Upload some content or sync with your devices!",msgstr:["기기에서 파일을 업로드 또는 동기화하세요!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["새 폴더를 선택할 경우, 해당 폴더 내의 충돌 파일들도 덮어쓰기 됩니다."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["새 폴더를 선택할 경우 내용물이 기존 폴더에 기록되며 재귀적 충돌 해결이 수행됩니다."]},{msgid:"Which files do you want to keep?",msgstr:["어떤 파일들을 유지하시겠습니까?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["{nickname}(으)로 인증된 상태 입니다."]},{msgid:"You are currently not identified.",msgstr:["현재 인증 정보가 없습니다."]},{msgid:"You cannot leave the name empty.",msgstr:["이름은 비워 둘 수 없습니다. "]},{msgid:"You need to choose at least one conflict solution",msgstr:["최소한 하나의 충돌 해결 방안을 선택해야 합니다."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}]},{language:"lb",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} ass en ongëlteg Dossier"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} ass net en erlaabten Dossiernumm"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ass net an engem Dossier Numm erlaabt']},{msgid:"All files",msgstr:["All Dateien"]},{msgid:"Choose",msgstr:["Wielt"]},{msgid:"Choose {file}",msgstr:["Wielt {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Wielt %n Fichieren","Wielt %n Fichier"]},{msgid:"Copy",msgstr:["Kopie"]},{msgid:"Copy to {target}",msgstr:["Kopie op {target}"]},{msgid:"Could not create the new folder",msgstr:["Konnt den neien Dossier net erstellen"]},{msgid:"Could not load files settings",msgstr:["Konnt d'Dateienastellungen net lueden"]},{msgid:"Could not load files views",msgstr:["Konnt d'Dateien net lueden"]},{msgid:"Create directory",msgstr:["Erstellt Verzeechnes"]},{msgid:"Current view selector",msgstr:["Aktuell Vue selector"]},{msgid:"Favorites",msgstr:["Favoritten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Dateien an Ordner, déi Dir als Favorit markéiert, ginn hei gewisen"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Dateien an Ordner déi Dir viru kuerzem geännert hutt ginn hei op"]},{msgid:"Filter file list",msgstr:["Filter Datei Lëscht"]},{msgid:"Folder name cannot be empty.",msgstr:["Dossier Numm kann net eidel sinn"]},{msgid:"Home",msgstr:["Wëllkomm"]},{msgid:"Modified",msgstr:["Geännert"]},{msgid:"Move",msgstr:["Plënne"]},{msgid:"Move to {target}",msgstr:["Plënneren {target}"]},{msgid:"Name",msgstr:["Numm"]},{msgid:"New",msgstr:["Nei"]},{msgid:"New folder",msgstr:["Neien dossier"]},{msgid:"New folder name",msgstr:["Neien dossier numm"]},{msgid:"No files in here",msgstr:["Kee fichier hei"]},{msgid:"No files matching your filter were found.",msgstr:["Kee fichier deen äre filter passt gouf fonnt"]},{msgid:"No matching files",msgstr:["Keng passende dateien"]},{msgid:"Recent",msgstr:["Rezent"]},{msgid:"Select all entries",msgstr:["Wielt all entréen"]},{msgid:"Select entry",msgstr:["Wielt entrée"]},{msgid:"Select the row for {nodename}",msgstr:["Wielt d'zeil fir {nodename}"]},{msgid:"Size",msgstr:["Gréisst"]},{msgid:"Undo",msgstr:["Undoen"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Luet en inhalt erop oder synchroniséiert mat ären apparater"]}]},{language:"lo",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" ບໍ່ອະນຸຍາດໃຫ້ມີຢູ່ໃນຊື່ໂຟນເດີ.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['ບໍ່ອະນຸຍາດໃຫ້ມີ "{char}" ພາຍໃນຊື່.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ບໍ່ແມ່ນຊື່ທີ່ໄດ້ຮັບອະນຸຍາດ.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ເປັນຊື່ໂຟນເດີ.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" ແມ່ນຊື່ທີ່ສະຫງວນໄວ້ ແລະ ບໍ່ໄດ້ຮັບອະນຸຍາດ.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["ໄຟລ໌ຂັດກັນ %n ລາຍການ"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["ໄຟລ໌ຂັດກັນ %n ລາຍການໃນ {dirname}"]},{msgid:"All files",msgstr:["ໄຟລ໌ທັງໝົດ"]},{msgid:"Cancel",msgstr:["ຍົກເລີກ"]},{msgid:"Cancel the entire operation",msgstr:["ຍົກເລີກການດຳເນີນການທັງໝົດ"]},{msgid:"Choose",msgstr:["ເລືອກ"]},{msgid:"Choose {file}",msgstr:["ເລືອກ {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["ເລືອກ %n ໄຟລ໌"]},{msgid:"Confirm",msgstr:["ຢືນຢັນ"]},{msgid:"Continue",msgstr:["ດຳເນີນການຕໍ່"]},{msgid:"Copy",msgstr:["ຄັດລອກ"]},{msgid:"Copy to {target}",msgstr:["ຄັດລອກໄປທີ່ {target}"]},{msgid:"Could not create the new folder",msgstr:["ບໍ່ສາມາດສ້າງໂຟນເດີໃໝ່ໄດ້"]},{msgid:"Could not load files settings",msgstr:["ບໍ່ສາມາດໂຫຼດການຕັ້ງຄ່າໄຟລ໌ໄດ້"]},{msgid:"Could not load files views",msgstr:["ບໍ່ສາມາດໂຫຼດມຸມມອງໄຟລ໌ໄດ້"]},{msgid:"Create directory",msgstr:["ສ້າງໄດເຣັກທໍຣີ"]},{msgid:"Current view selector",msgstr:["ຕົວເລືອກມຸມມອງປັດຈຸບັນ"]},{msgid:"Enter your name",msgstr:["ປ້ອນຊື່ຂອງທ່ານ"]},{msgid:"Existing version",msgstr:["ເວີຊັນທີ່ມີຢູ່"]},{msgid:"Failed to set nickname.",msgstr:["ຕັ້ງຊື່ຫຼິ້ນບໍ່ສຳເລັດ."]},{msgid:"Favorites",msgstr:["ລາຍການທີ່ມັກ"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານໝາຍວ່າເປັນລາຍການທີ່ມັກຈະສະແດງຢູ່ບ່ອນນີ້."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["ໄຟລ໌ ແລະ ໂຟນເດີທີ່ທ່ານແກ້ໄຂລ່າສຸດຈະສະແດງຢູ່ບ່ອນນີ້."]},{msgid:"Filter file list",msgstr:["ກັ່ນຕອງລາຍການໄຟລ໌"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['ຊື່ໂຟນເດີຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ "{extension}".']},{msgid:"Guest identification",msgstr:["ການລະບຸຕົວຕົນຂອງແຂກ"]},{msgid:"Home",msgstr:["ໜ້າຫຼັກ"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["ຖ້າທ່ານເລືອກທັງສອງເວີຊັນ, ໄຟລ໌ທີ່ເຂົ້າມາຈະມີຕົວເລກເພີ່ມໃສ່ຊື່ຂອງມັນ."]},{msgid:"Invalid folder name.",msgstr:["ຊື່ໂຟນເດີບໍ່ຖືກຕ້ອງ."]},{msgid:"Invalid name.",msgstr:["ຊື່ບໍ່ຖືກຕ້ອງ."]},{msgid:"Last modified date unknown",msgstr:["ບໍ່ຮູ້ວັນທີແກ້ໄຂລ່າສຸດ"]},{msgid:"Modified",msgstr:["ແກ້ໄຂເມື່ອ"]},{msgid:"Move",msgstr:["ຍ້າຍ"]},{msgid:"Move to {target}",msgstr:["ຍ້າຍໄປທີ່ {target}"]},{msgid:"Name",msgstr:["ຊື່"]},{msgid:"Names may be at most 64 characters long.",msgstr:["ຊື່ອາດມີຄວາມຍາວສູງສຸດ 64 ຕົວອັກສອນ."]},{msgid:"Names must not be empty.",msgstr:["ຊື່ຕ້ອງບໍ່ຫວ່າງເປົ່າ."]},{msgid:'Names must not end with "{extension}".',msgstr:['ຊື່ຕ້ອງບໍ່ລົງທ້າຍດ້ວຍ "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["ຊື່ຕ້ອງບໍ່ຂຶ້ນຕົ້ນດ້ວຍຈຸດ."]},{msgid:"New",msgstr:["ໃໝ່"]},{msgid:"New folder",msgstr:["ໂຟນເດີໃໝ່"]},{msgid:"New folder name",msgstr:["ຊື່ໂຟນເດີໃໝ່"]},{msgid:"New version",msgstr:["ເວີຊັນໃໝ່"]},{msgid:"No files in here",msgstr:["ບໍ່ມີໄຟລ໌ຢູ່ບ່ອນນີ້"]},{msgid:"No files matching your filter were found.",msgstr:["ບໍ່ພົບໄຟລ໌ທີ່ກົງກັບການກັ່ນຕອງຂອງທ່ານ."]},{msgid:"No matching files",msgstr:["ບໍ່ມີໄຟລ໌ທີ່ກົງກັນ"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["ກະລຸນາປ້ອນຊື່ທີ່ມີຢ່າງໜ້ອຍ 2 ຕົວອັກສອນ."]},{msgid:"Recent",msgstr:["ລ່າສຸດ"]},{msgid:"Select all checkboxes",msgstr:["ເລືອກກ່ອງໝາຍທັງໝົດ"]},{msgid:"Select all entries",msgstr:["ເລືອກທຸກລາຍການ"]},{msgid:"Select all existing files",msgstr:["ເລືອກໄຟລ໌ທີ່ມີຢູ່ທັງໝົດ"]},{msgid:"Select all new files",msgstr:["ເລືອກໄຟລ໌ໃໝ່ທັງໝົດ"]},{msgid:"Select entry",msgstr:["ເລືອກລາຍການ"]},{msgid:"Select the row for {nodename}",msgstr:["ເລືອກແຖວສຳລັບ {nodename}"]},{msgid:"Size",msgstr:["ຂະໜາດ"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["ຂ້າມ %n ໄຟລ໌"]},{msgid:"Skip this file",msgstr:["ຂ້າມໄຟລ໌ນີ້"]},{msgid:"Submit name",msgstr:["ສົ່ງຊື່"]},{msgid:"Undo",msgstr:["ເອົາຄືນ"]},{msgid:"Upload some content or sync with your devices!",msgstr:["ອັບໂຫຼດເນື້ອຫາ ຫຼື ຊິງຄ໌ກັບອຸປະກອນຂອງທ່ານ!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ໄຟລ໌ໃດໆທີ່ຂັດກັນພາຍໃນໂຟນເດີນັ້ນກໍຈະຖືກຂຽນທັບເຊັ່ນກັນ."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["ເມື່ອເລືອກໂຟນເດີທີ່ເຂົ້າມາ, ເນື້ອຫາຈະຖືກຂຽນລົງໃນໂຟນເດີທີ່ມີຢູ່ ແລະ ຈະມີການແກ້ໄຂຂໍ້ຂັດແຍ່ງແບບຕໍ່ເນື່ອງ."]},{msgid:"Which files do you want to keep?",msgstr:["ທ່ານຕ້ອງການເກັບໄຟລ໌ໃດໄວ້?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["ຕອນນີ້ທ່ານຖືກລະບຸວ່າເປັນ {nickname}."]},{msgid:"You are currently not identified.",msgstr:["ຕອນນີ້ທ່ານຍັງບໍ່ໄດ້ຖືກລະບຸຕົວຕົນ."]},{msgid:"You cannot leave the name empty.",msgstr:["ທ່ານບໍ່ສາມາດປະຊື່ໃຫ້ຫວ່າງເປົ່າໄດ້."]},{msgid:"You need to choose at least one conflict solution",msgstr:["ທ່ານຈຳເປັນຕ້ອງເລືອກວິທີແກ້ໄຂຂໍ້ຂັດແຍ່ງຢ່າງໜ້ອຍໜຶ່ງຢ່າງ"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["ທ່ານຈຳເປັນຕ້ອງເລືອກຢ່າງໜ້ອຍໜຶ່ງເວີຊັນຂອງແຕ່ລະໄຟລ໌ເພື່ອດຳເນີນການຕໍ່."]}]},{language:"lt_LT",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["„{char}“ negalima naudoti aplanko pavadinime."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}“ negalima naudoti vardo sudėtyje."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}“ nėra leidžiamas vardas."]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ yra rezervuotas vardas, kurio negalima naudoti aplankų pavadinimuose."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}“ yra rezervuotas vardas, todėl jo naudoti negalima."]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n failo konfliktas","%n failų konfliktas","%n failų konfliktas","%n failų konfliktas"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n failo konfliktas {dirname}","%n failų konfliktas {dirname}","%n failų konfliktas {dirname}","%n failų konfliktas {dirname}"]},{msgid:"All files",msgstr:["Visi failai"]},{msgid:"Cancel",msgstr:["Atsisakyti"]},{msgid:"Cancel the entire operation",msgstr:["Atsisakyti visos operacijos"]},{msgid:"Choose",msgstr:["Pasirinkti"]},{msgid:"Choose {file}",msgstr:["Pasirinkti {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pasirinkti %n failą","Pasirinkti %n failus","Pasirinkti %n failų","Pasirinkti %n failą"]},{msgid:"Confirm",msgstr:["Patvirtinti"]},{msgid:"Continue",msgstr:["Tęsti"]},{msgid:"Copy",msgstr:["Kopijuoti"]},{msgid:"Copy to {target}",msgstr:["Kopijuoti į {target}"]},{msgid:"Could not create the new folder",msgstr:["Nepavyko sukurti naujo aplanko"]},{msgid:"Could not load files settings",msgstr:["Nepavyko įkelti failų nustatymų"]},{msgid:"Could not load files views",msgstr:["Nepavyko įkelti failų peržiūrų"]},{msgid:"Create directory",msgstr:["Sukurti katalogą"]},{msgid:"Current view selector",msgstr:["Dabartinis peržiūros pasirinkimas"]},{msgid:"Enter your name",msgstr:["Įrašykite savo vardą"]},{msgid:"Existing version",msgstr:["Esama versija"]},{msgid:"Failed to set nickname.",msgstr:["Nepavyko nustatyti slapyvardžio"]},{msgid:"Favorites",msgstr:["Populiariausi"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Failai ir aplankai, kuriuos pažymėsite kaip mėgstamiausius, bus rodomi čia."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Čia bus rodomi failai ir aplankai, kuriuos neseniai pakeitėte."]},{msgid:"Filter file list",msgstr:["Filtruoti failų sąrašą"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["Aplankų pavadinimai neturi baigtis simboliu „{extension}“."]},{msgid:"Guest identification",msgstr:["Svečio identifikacija"]},{msgid:"Home",msgstr:["Pradžia"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jei pasirinksite abi versijas, prie gaunamo failo pavadinimo bus pridėtas numeris."]},{msgid:"Invalid folder name.",msgstr:["Netinkamas aplanko pavadinimas."]},{msgid:"Invalid name.",msgstr:["Netinkamas pavadinimas."]},{msgid:"Last modified date unknown",msgstr:["Paskutinio atnaujinimo data nežinoma"]},{msgid:"Modified",msgstr:["Pakeista"]},{msgid:"Move",msgstr:["Perkelti"]},{msgid:"Move to {target}",msgstr:["Perkelti į {target}"]},{msgid:"Name",msgstr:["Vardas"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Vardų ilgis negali viršyti 64 simbolių."]},{msgid:"Names must not be empty.",msgstr:["Pavadinimai negali būti tušti."]},{msgid:'Names must not end with "{extension}".',msgstr:["Vardai neturi baigtis simboliu „{extension}“."]},{msgid:"Names must not start with a dot.",msgstr:["Vardai negali prasidėti tašku."]},{msgid:"New",msgstr:["Naujas"]},{msgid:"New folder",msgstr:["Naujas aplankas"]},{msgid:"New folder name",msgstr:["Naujas aplanko pavadinimas"]},{msgid:"New version",msgstr:["Nauja versija"]},{msgid:"No files in here",msgstr:["Čia failų nėra"]},{msgid:"No files matching your filter were found.",msgstr:["Nepavyko rasti failų pagal filtro nustatymus"]},{msgid:"No matching files",msgstr:["Nėra atitinkančių failų"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Įrašykite vardą iš mažiausiai dviejų ženklų."]},{msgid:"Recent",msgstr:["Nauji"]},{msgid:"Select all checkboxes",msgstr:["Pažymėti visus langelius"]},{msgid:"Select all entries",msgstr:["Žymėti visus įrašus"]},{msgid:"Select all existing files",msgstr:["Pažymėti visus esamus failus"]},{msgid:"Select all new files",msgstr:["Pažymėti visus naujus failus"]},{msgid:"Select entry",msgstr:["Žymėti įrašą"]},{msgid:"Select the row for {nodename}",msgstr:["Pasirinkite eilutę {nodename}"]},{msgid:"Size",msgstr:["Dydis"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Praleisti %n failą","Praleisti %n failus","Praleisti %n failų","Praleisti %n failą"]},{msgid:"Skip this file",msgstr:["Praleisti šį failą"]},{msgid:"Submit name",msgstr:["Pateikti pavadinimą"]},{msgid:"Undo",msgstr:["Atšaukti"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Įkelkite turinio arba sinchronizuokite su savo įrenginiais!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Pasirinkus įeinančių failų aplanką, jame esantys failai, su kuriais kyla konfliktas, taip pat bus perrašyti."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Pasirinkus gaunamų laiškų aplanką, visi jame esantys failai taip pat bus perrašyti."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Pasirinkus įeinančių failų aplanką, jo turinys įrašomas į esamą aplanką ir atliekamas rekursyvus konfliktų sprendimas."]},{msgid:"Which files do you want to keep?",msgstr:["Kokius failus norite išsaugoti?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Šiuo metu esate identifikuotas kaip {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Šiuo metu nesate identifikuotas."]},{msgid:"You cannot leave the name empty.",msgstr:["Negalite palikti tuščio vardo lauko."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Turite pasirinkti bent vieną konflikto sprendimo būdą"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Norėdami tęsti, turite pasirinkti bent vieną kiekvieno failo versiją."]}]},{language:"lv",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" nav derīgs mapes nosaukums.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nav atļauts mapes nosaukums']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" nav atļauts mapes nosaukuma izmantošanā.']},{msgid:"All files",msgstr:["Visas datnes"]},{msgid:"Choose",msgstr:["Izvēlieties"]},{msgid:"Choose {file}",msgstr:["Izvēlieties {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izvēlēties %n datņu","Izvēlēties %n datni","Izvēlēties %n datnes"]},{msgid:"Copy",msgstr:["Kopēt"]},{msgid:"Copy to {target}",msgstr:["Kopēt uz {target}"]},{msgid:"Could not create the new folder",msgstr:["Nevarēja izveidot jaunu mapi"]},{msgid:"Could not load files settings",msgstr:["Nevarēja ielādēt datņu iestatījumus"]},{msgid:"Could not load files views",msgstr:["Nevarēja ielādēt datņu apskatījumus"]},{msgid:"Create directory",msgstr:["Izveidot direktoriju"]},{msgid:"Current view selector",msgstr:["Pašreizēja skata atlasītājs"]},{msgid:"Favorites",msgstr:["Favorīti"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Šeit parādīsies datnes un mapes, kas tiks atzīmētas kā iecienītas."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Šeit parādīsies datnes un mapes, kuras nesen tika izmainītas."]},{msgid:"Filter file list",msgstr:["Atlasīt datņu sarakstu"]},{msgid:"Folder name cannot be empty.",msgstr:["Mapes nosaukums nevar būt tukšs."]},{msgid:"Home",msgstr:["Sākums"]},{msgid:"Modified",msgstr:["Izmaninīta"]},{msgid:"Move",msgstr:["Pārvietot"]},{msgid:"Move to {target}",msgstr:["Pārvietot uz {target}"]},{msgid:"Name",msgstr:["Nosaukums"]},{msgid:"New",msgstr:["Jauns"]},{msgid:"New folder",msgstr:["Jauna mape"]},{msgid:"New folder name",msgstr:["Jaunas mapes nosaukums"]},{msgid:"No files in here",msgstr:["Šeit nav datņu"]},{msgid:"No files matching your filter were found.",msgstr:["Netika atrasta neviena datne, kas atbilst atlasei."]},{msgid:"No matching files",msgstr:["Nav atbilstošu datņu"]},{msgid:"Recent",msgstr:["Nesenās"]},{msgid:"Select all entries",msgstr:["Atlasīt visus ierakstus"]},{msgid:"Select entry",msgstr:["Atlasīt ierakstu"]},{msgid:"Select the row for {nodename}",msgstr:["Atlasīt rindu {nodename}"]},{msgid:"Size",msgstr:["Izmērs"]},{msgid:"Undo",msgstr:["Atsaukt"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Augšupielādē kādu saturu vai sinhronizē savās iekārtās!"]}]},{language:"mk",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" не е дозволен во име на папка.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не е дозволено во име.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" не е дозволено име.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" е резервирано име и не е дозволено за име на папка.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" е резервирано име и не е дозволено.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфликт со датотекa","%n конфликти со датотеки"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфликт со датотека во {dirname}","%n конфликти со датотеки vo {dirname}"]},{msgid:"All files",msgstr:["Сите датотеки"]},{msgid:"Cancel",msgstr:["Откажи"]},{msgid:"Cancel the entire operation",msgstr:["Прекини ја целата операција"]},{msgid:"Choose",msgstr:["Избери"]},{msgid:"Choose {file}",msgstr:["Избери {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Избери %n датотека","Избери %n датотеки"]},{msgid:"Confirm",msgstr:["Потврди"]},{msgid:"Continue",msgstr:["Продолжи"]},{msgid:"Copy",msgstr:["Копирај"]},{msgid:"Copy to {target}",msgstr:["Копирај во {target}"]},{msgid:"Could not create the new folder",msgstr:["Неможе да се креира нова папка"]},{msgid:"Could not load files settings",msgstr:["Неможе да се вчиаат параметрите за датотеките"]},{msgid:"Could not load files views",msgstr:["Неможе да се вчитаат погледите за датотеките"]},{msgid:"Create directory",msgstr:["Креирај папка"]},{msgid:"Current view selector",msgstr:["Избирач на тековен приказ"]},{msgid:"Enter your name",msgstr:["Внесете го вашето име"]},{msgid:"Existing version",msgstr:["Моментална верзија"]},{msgid:"Failed to set nickname.",msgstr:["Неуспешно поставување прекар."]},{msgid:"Favorites",msgstr:["Фаворити"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Датотеките и папките кој ќе ги означите за омилени ќе се појават овде."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Датотеките и папките кој неодамна сте ги измениле ќе се појават овде."]},{msgid:"Filter file list",msgstr:["Филтрирај листа на датотеки"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Имињата на папките неможе да завршуваат со "{extension}".']},{msgid:"Guest identification",msgstr:["Гостинска идентификација"]},{msgid:"Home",msgstr:["Почетна"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ако ги избереш двете верзии, влезната датотека ќе добие број додаден на нејзиното име."]},{msgid:"Invalid folder name.",msgstr:["Невалидно име на папка."]},{msgid:"Invalid name.",msgstr:["Невалидно име."]},{msgid:"Last modified date unknown",msgstr:["Датумот на последна измена е непознат"]},{msgid:"Modified",msgstr:["Променето"]},{msgid:"Move",msgstr:["Премести"]},{msgid:"Move to {target}",msgstr:["Премести во {target}"]},{msgid:"Name",msgstr:["Име"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Имињата можат да бидат најмногу со 64 карактери."]},{msgid:"Names must not be empty.",msgstr:["Имињата неможе да бидат празни."]},{msgid:'Names must not end with "{extension}".',msgstr:['Имињата неможе да завршуваат со "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Имињата неможе да започнуваат со точка."]},{msgid:"New",msgstr:["Нова"]},{msgid:"New folder",msgstr:["Нова папка"]},{msgid:"New folder name",msgstr:["Ново име на папка"]},{msgid:"New version",msgstr:["Нова верзија"]},{msgid:"No files in here",msgstr:["Овде нема датотеки"]},{msgid:"No files matching your filter were found.",msgstr:["Не се пронајдени датотеки што одговараат на вашиот филтер."]},{msgid:"No matching files",msgstr:["Нема датотеки што се совпаѓаат"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Внесете име со најмалку 2 карактери."]},{msgid:"Recent",msgstr:["Неодамнешни"]},{msgid:"Select all checkboxes",msgstr:["Избери ги сите полиња за избор"]},{msgid:"Select all entries",msgstr:["Изберете ги сите записи"]},{msgid:"Select all existing files",msgstr:["Изберете ги сите постоечки датотеки"]},{msgid:"Select all new files",msgstr:["Изберете ги сите нови датотеки"]},{msgid:"Select entry",msgstr:["Избери запис"]},{msgid:"Select the row for {nodename}",msgstr:["Избери ред за {nodename}"]},{msgid:"Size",msgstr:["Големина"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Прескокни %n датотека","Прескокни %n датотеки"]},{msgid:"Skip this file",msgstr:["Прескокни ја оваа датотека"]},{msgid:"Submit name",msgstr:["Испрати име"]},{msgid:"Undo",msgstr:["Врати"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Прикачи содржина или синхронизирај со ваши уреди!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Кога е избрана влезна папка, сите конфликтни датотеки во неа исто така ќе бидат препишани."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Кога е избрана влезна папка, содржината се запишува во постоечката папка и се извршува рекурсивно решавање на конфликти."]},{msgid:"Which files do you want to keep?",msgstr:["Кој датотеки сакаш да ги зачуваш?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Моментално сте идентификувани како {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Моментално не сте идентификувани."]},{msgid:"You cannot leave the name empty.",msgstr:["Не можете да го оставите името празно."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Треба да избереш најмалку едно решение за конфликт"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Треба да избереш најмалку една верзија за секоја датотека за да продолжи."]}]},{language:"ms_MY",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" adalah nama folder yang tidak sesuai ']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nama folder yang tidak dibenarkan']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" tidak dibenarkan dalam nama folder']},{msgid:"All files",msgstr:["Semua fail"]},{msgid:"Choose",msgstr:["Pilih"]},{msgid:"Choose {file}",msgstr:["Pilih {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Pilih fail %n"]},{msgid:"Copy",msgstr:["menyalin"]},{msgid:"Copy to {target}",msgstr:["menyalin ke {target}"]},{msgid:"Could not create the new folder",msgstr:["Tidak dapat mewujudkan folder baharu"]},{msgid:"Could not load files settings",msgstr:["Tidak dapat memuatkan tetapan fail"]},{msgid:"Could not load files views",msgstr:["Tidak dapat memuatkan paparan fail"]},{msgid:"Create directory",msgstr:["mewujudkan direktori"]},{msgid:"Current view selector",msgstr:["pemilih pandangan semasa"]},{msgid:"Favorites",msgstr:["Pilihan"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Fail dan folder yang anda tanda sebagai pilihan akan dipaparkan di sini."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Fail dan folder yang anda telah ubah suai baru-baru ini dipaparkan di sini."]},{msgid:"Filter file list",msgstr:["Menapis senarai fail"]},{msgid:"Folder name cannot be empty.",msgstr:["Nama folder tidak boleh kosong."]},{msgid:"Home",msgstr:["Utama"]},{msgid:"Modified",msgstr:["Ubah suai"]},{msgid:"Move",msgstr:["pindah"]},{msgid:"Move to {target}",msgstr:["pindah ke {target}"]},{msgid:"Name",msgstr:["Nama"]},{msgid:"New",msgstr:["Baru"]},{msgid:"New folder",msgstr:["Folder Baharu"]},{msgid:"New folder name",msgstr:["Nama folder baharu"]},{msgid:"No files in here",msgstr:["Tiada fail di sini"]},{msgid:"No files matching your filter were found.",msgstr:["Tiada fail yang sepadan dengan tapisan anda."]},{msgid:"No matching files",msgstr:["Tiada fail yang sepadan"]},{msgid:"Recent",msgstr:["baru-baru ini"]},{msgid:"Select all entries",msgstr:["Pilih semua entri"]},{msgid:"Select entry",msgstr:["Pilih entri"]},{msgid:"Select the row for {nodename}",msgstr:["memilih baris {nodename}"]},{msgid:"Size",msgstr:["Saiz"]},{msgid:"Undo",msgstr:["buat asal"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Muat naik beberapa kandungan atau selaras dengan peranti anda!"]}]},{language:"nb_NO",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" er ikke tillatt i et mappenavn.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" er ikke tillatt i et navn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" er ikke et tillatt navn.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" er et reservert navn og er ikke tillatt for mappenavn.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" er et reservert navn og er ikke tillatt.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n filkonflikt","%n files conflict"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n fil konflikter i {dirname}","%n fil konflikter i {dirname}"]},{msgid:"All files",msgstr:["Alle filer"]},{msgid:"Cancel",msgstr:["Avbryt"]},{msgid:"Cancel the entire operation",msgstr:["Avbryt hele operasjonen"]},{msgid:"Choose",msgstr:["Velg"]},{msgid:"Choose {file}",msgstr:["Velg {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Velg %n fil","Velg %n filer"]},{msgid:"Confirm",msgstr:["Bekreft"]},{msgid:"Continue",msgstr:["Fortsett"]},{msgid:"Copy",msgstr:["Kopier"]},{msgid:"Copy to {target}",msgstr:["Kopier til {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunne ikke opprette den nye mappen"]},{msgid:"Could not load files settings",msgstr:["Kunne ikke laste filinnstillinger"]},{msgid:"Could not load files views",msgstr:["Kunne ikke laste filvisninger"]},{msgid:"Create directory",msgstr:["Opprett mappe"]},{msgid:"Current view selector",msgstr:["Nåværende visningsvelger"]},{msgid:"Enter your name",msgstr:["Skriv inn navnet ditt"]},{msgid:"Existing version",msgstr:["Eksisterende versjon"]},{msgid:"Failed to set nickname.",msgstr:["Kunne ikke lagre kallenavnet."]},{msgid:"Favorites",msgstr:["Favoritter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer og mapper du markerer som favoritter vil vises her."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer og mapper du nylig har endret, vil vises her."]},{msgid:"Filter file list",msgstr:["Filtrer filliste"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mappenavn må ikke slutte med "{extension}".']},{msgid:"Guest identification",msgstr:["Gjesteidentifikasjon"]},{msgid:"Home",msgstr:["Hjem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du velger begge versjonene, vil den innkommende filen få et nummer lagt til navnet sitt."]},{msgid:"Invalid folder name.",msgstr:["Ugyldig mappenavn."]},{msgid:"Invalid name.",msgstr:["Ugyldig navn."]},{msgid:"Last modified date unknown",msgstr:["Sist endret dato ukjent"]},{msgid:"Modified",msgstr:["Modifisert"]},{msgid:"Move",msgstr:["Flytt"]},{msgid:"Move to {target}",msgstr:["Flytt til {target}"]},{msgid:"Name",msgstr:["Navn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Navn kan maksimalt være 64 tegn lange."]},{msgid:"Names must not be empty.",msgstr:["Navn kan ikke være tomme."]},{msgid:'Names must not end with "{extension}".',msgstr:['Navn kan ikke ende med "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Navn kan ikke starte med et punktum."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mappe"]},{msgid:"New folder name",msgstr:["Nytt mappenavn"]},{msgid:"New version",msgstr:["Ny versjon"]},{msgid:"No files in here",msgstr:["Ingen filer her"]},{msgid:"No files matching your filter were found.",msgstr:["Ingen filer funnet med ditt filter."]},{msgid:"No matching files",msgstr:["Ingen filer samsvarer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Vennligst angi et navn som har minst 2 tegn."]},{msgid:"Recent",msgstr:["Nylige"]},{msgid:"Select all checkboxes",msgstr:["Merk av i alle avmerkingsboksene"]},{msgid:"Select all entries",msgstr:["Velg alle oppføringer"]},{msgid:"Select all existing files",msgstr:["Velg alle eksisterende filer"]},{msgid:"Select all new files",msgstr:["Velg alle nye filer"]},{msgid:"Select entry",msgstr:["Velg oppføring"]},{msgid:"Select the row for {nodename}",msgstr:["Velg raden for {nodename}"]},{msgid:"Size",msgstr:["Størrelse"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Hopp over %n fil","Hopp over %nfiler"]},{msgid:"Skip this file",msgstr:["Hopp over denne filen"]},{msgid:"Submit name",msgstr:["Bekreft navn"]},{msgid:"Undo",msgstr:["Angre"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Last opp innhold eller synkroniser med enhetene dine!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, vil eventuelle motstridende filer i den også bli overskrevet."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, vil eventuelle filer i den også bli overskrevet."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres."]},{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du beholde?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du er akkurat nå identifisert som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du er akkurat nå ikke identifisert."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan ikke la navnet være blankt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du må velge minst én konfliktløsning"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du må velge minst én versjon av hver fil for å fortsette."]}]},{language:"nl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" is niet toegestaan in een mapnaam.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" kan niet gebruikt worden in de benaming.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" is geen toegestane naam.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" is een gereserveerde naam en niet toegestaan in mapnamen.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" is een gereserveerde naam en niet toegestaan.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n bestanden conflicteren","%nbestand bestanden conflicteren"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n bestand conflicteerd in {dirname}","%nbestanden conflicteert in {dirname}"]},{msgid:"All files",msgstr:["Alle bestanden"]},{msgid:"Cancel",msgstr:["Annuleren"]},{msgid:"Cancel the entire operation",msgstr:["Annuleer de hele bewerking"]},{msgid:"Choose",msgstr:["Kiezen"]},{msgid:"Choose {file}",msgstr:["Kies {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Kies %n bestand","Kies %n bestanden"]},{msgid:"Confirm",msgstr:["Bevestigen"]},{msgid:"Continue",msgstr:["Doorgaan"]},{msgid:"Copy",msgstr:["Kopiëren"]},{msgid:"Copy to {target}",msgstr:["Kopiëren naar {target}"]},{msgid:"Could not create the new folder",msgstr:["Kon de nieuwe map niet maken"]},{msgid:"Could not load files settings",msgstr:["Kon de bestandsinstellingen niet laden"]},{msgid:"Could not load files views",msgstr:["Kon de bestandsweergaves niet laden"]},{msgid:"Create directory",msgstr:["Map aanmaken"]},{msgid:"Current view selector",msgstr:["Huidige weergave keuze"]},{msgid:"Enter your name",msgstr:["Voer je naam in"]},{msgid:"Existing version",msgstr:["Bestaande versie"]},{msgid:"Failed to set nickname.",msgstr:["Kon geen bijnaam instellen."]},{msgid:"Favorites",msgstr:["Favorieten"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Bestanden en mappen die je als favoriet markeert, verschijnen hier."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Bestanden en mappen die je recentelijk hebt gewijzigd, verschijnen hier."]},{msgid:"Filter file list",msgstr:["Bestandslijst filteren"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mapnamen mogen niet eindigen op "{extension}".']},{msgid:"Guest identification",msgstr:["Gastenidentificatie"]},{msgid:"Home",msgstr:["Thuis"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Als u beide versies selecteert wordt een nummer toegevoegd aan de naam van het binnenkomende bestand."]},{msgid:"Invalid folder name.",msgstr:["Ongeldige mapnaam."]},{msgid:"Invalid name.",msgstr:["Ongeldige naam."]},{msgid:"Last modified date unknown",msgstr:["Laatste wijzigingsdatum onbekend"]},{msgid:"Modified",msgstr:["Gewijzigd"]},{msgid:"Move",msgstr:["Verplaatsen"]},{msgid:"Move to {target}",msgstr:["Verplaatsen naar {target}"]},{msgid:"Name",msgstr:["Naam"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namen mogen maximaal 64 tekens lang zijn."]},{msgid:"Names must not be empty.",msgstr:["Namen mogen niet leeg zijn."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namen mogen niet eindigen met "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Namen mogen niet begonnen met een punt."]},{msgid:"New",msgstr:["Nieuw"]},{msgid:"New folder",msgstr:["Nieuwe map"]},{msgid:"New folder name",msgstr:["Nieuwe mapnaam"]},{msgid:"New version",msgstr:["Nieuwe versie"]},{msgid:"No files in here",msgstr:["Geen bestanden hier"]},{msgid:"No files matching your filter were found.",msgstr:["Geen bestanden gevonden die voldoen aan je filter."]},{msgid:"No matching files",msgstr:["Geen overeenkomende bestanden"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Voer een naam in met minimaal 2 tekens."]},{msgid:"Recent",msgstr:["Recent"]},{msgid:"Select all checkboxes",msgstr:["Selecteer alle aanvinkopties"]},{msgid:"Select all entries",msgstr:["Alle invoer selecteren"]},{msgid:"Select all existing files",msgstr:["Selecteer alle bestaande bestanden"]},{msgid:"Select all new files",msgstr:["Selecteer alle nieuwe bestanden"]},{msgid:"Select entry",msgstr:["Invoer selecteren"]},{msgid:"Select the row for {nodename}",msgstr:["Selecteer de rij voor {nodename}"]},{msgid:"Size",msgstr:["Grootte"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Sla %n bestand over","Sla %n bestanden over"]},{msgid:"Skip this file",msgstr:["Sla dit bestand over"]},{msgid:"Submit name",msgstr:["Naam indienen"]},{msgid:"Undo",msgstr:["Ongedaan maken"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Upload inhoud of synchroniseer met je apparaten!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Als een inkomende map wordt geselecteerd, worden alle conflicterende bestanden daarin overschreven."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Wanneer een inkomende folder is geselecteerd, worden bestanden in deze folder ook overschreven."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Als een inkomende map wordt geselecteerd, wordt de inhoud naar de bestaande map geschreven en wordt een recursieve conflict-oplossing uitgevoerd."]},{msgid:"Which files do you want to keep?",msgstr:["Welke bestanden wilt u bewaren?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Je wordt momenteel geïdentificeerd als {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Je bent momenteel niet geïdentificeerd."]},{msgid:"You cannot leave the name empty.",msgstr:["Je kunt de naam niet leeg laten."]},{msgid:"You need to choose at least one conflict solution",msgstr:["U moet in elk geval een conflictoplossing kiezen"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["U moet minstens een versie van elk bestand kiezen om door te gaan. "]}]},{language:"pl",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['Znak "{char}" nie jest dozwolony w nazwie folderu.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" nie jest dozwolone w nazwie.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nie jest dozwoloną nazwą.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" jest nazwą zastrzeżoną i nie jest dozwolona jako nazwa folderu.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" jest zastrzeżoną nazwą i nie jest dozwolone.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["Konflikt pliku","Konflikt %n plików","Konflikt %n plików","Konflikt %n plików"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konfliktów pliku w {dirname}","%n konfliktów plików w {dirname}","%n konfliktów plików w {dirname}","%n konfliktów plików w {dirname}"]},{msgid:"All files",msgstr:["Wszystkie pliki"]},{msgid:"Cancel",msgstr:["Anuluj"]},{msgid:"Cancel the entire operation",msgstr:["Anuluj całą operację"]},{msgid:"Choose",msgstr:["Wybierz"]},{msgid:"Choose {file}",msgstr:["Wybierz {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Wybierz %n plik","Wybierz %n pliki","Wybierz %n plików","Wybierz %n plików"]},{msgid:"Confirm",msgstr:["Potwierdź"]},{msgid:"Continue",msgstr:["Kontynuuj"]},{msgid:"Copy",msgstr:["Kopiuj"]},{msgid:"Copy to {target}",msgstr:["Skopiuj do {target}"]},{msgid:"Could not create the new folder",msgstr:["Nie można utworzyć nowego folderu"]},{msgid:"Could not load files settings",msgstr:["Nie można wczytać ustawień plików"]},{msgid:"Could not load files views",msgstr:["Nie można wczytać widoków plików"]},{msgid:"Create directory",msgstr:["Utwórz katalog"]},{msgid:"Current view selector",msgstr:["Bieżący selektor widoku"]},{msgid:"Enter your name",msgstr:["Wprowadź nazwę"]},{msgid:"Existing version",msgstr:["Istniejąca wersja"]},{msgid:"Failed to set nickname.",msgstr:["Nie udało się utworzyć pseudonimu."]},{msgid:"Favorites",msgstr:["Ulubione"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Pliki i foldery które oznaczysz jako ulubione będą wyświetlały się tutaj"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Pliki i foldery które ostatnio modyfikowałeś będą wyświetlały się tutaj"]},{msgid:"Filter file list",msgstr:["Filtruj listę plików"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nazwy folderów nie mogą kończyć się na "{extension}".']},{msgid:"Guest identification",msgstr:["Identyfikacja gościa"]},{msgid:"Home",msgstr:["Strona główna"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jeśli wybierzesz obie wersje, do nazwy przychodzącego pliku zostanie dodany numer."]},{msgid:"Invalid folder name.",msgstr:["Nieprawidłowa nazwa folderu."]},{msgid:"Invalid name.",msgstr:["Nieprawidłowa nazwa."]},{msgid:"Last modified date unknown",msgstr:["Data ostatniej modyfikacji nieznana"]},{msgid:"Modified",msgstr:["Zmodyfikowano"]},{msgid:"Move",msgstr:["Przenieś"]},{msgid:"Move to {target}",msgstr:["Przejdź do {target}"]},{msgid:"Name",msgstr:["Nazwa"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Nazwy mogą mieć maksymalnie 64 znaki."]},{msgid:"Names must not be empty.",msgstr:["Nazwy nie mogą być puste."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nazwy nie mogą kończyć się na "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nazwy nie mogą zaczynać się od kropki."]},{msgid:"New",msgstr:["Nowy"]},{msgid:"New folder",msgstr:["Nowy folder"]},{msgid:"New folder name",msgstr:["Nowa nazwa folderu"]},{msgid:"New version",msgstr:["Nowa wersja"]},{msgid:"No files in here",msgstr:["Brak plików"]},{msgid:"No files matching your filter were found.",msgstr:["Nie znaleziono plików spełniających warunki filtru"]},{msgid:"No matching files",msgstr:["Brak pasujących plików"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Wprowadź nazwę zawierającą minimum 2 znaki."]},{msgid:"Recent",msgstr:["Ostatni"]},{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie pola wyboru"]},{msgid:"Select all entries",msgstr:["Wybierz wszystkie wpisy"]},{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},{msgid:"Select entry",msgstr:["Wybierz wpis"]},{msgid:"Select the row for {nodename}",msgstr:["Wybierz wiersz dla {nodename}"]},{msgid:"Size",msgstr:["Rozmiar"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Pomiń %n plik","Pomiń %n plików","Pomiń %n plików","Pomiń %n plików"]},{msgid:"Skip this file",msgstr:["Pomiń ten plik"]},{msgid:"Submit name",msgstr:["Zatwierdź nazwę"]},{msgid:"Undo",msgstr:["Cofnij"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Wyślij zawartość lub zsynchronizuj ze swoimi urządzeniami!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po wybraniu przychodzącego folderu wszystkie konfliktujące pliki w jego obrębie również zostaną nadpisane."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po wybraniu przychodzącego folderu jego zawartość zostanie zapisana w istniejącym folderze i zostanie przeprowadzone rekursywne rozwiązywanie konfliktów."]},{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Obecnie jesteś zidentyfikowany jako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Użytkownik nie został uwierzytelniony."]},{msgid:"You cannot leave the name empty.",msgstr:["Nazwa nie może być pusta."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Musisz wybrać co najmniej jedno rozwiązanie konfliktu"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}]},{language:"pt_BR",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" não é permitido dentro de um nome de pasta.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" não é permitido dentro de um nome.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" não é um nome permitido.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" é um nome reservado e não permitido para nomes de pasta.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" é um nome reservado e não permitido.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n arquivo conflita","%n de arquivos conflitam","%n arquivos conflitam"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n conflito de arquivo em {dirname}","%n de conflitos de arquivos em {dirname}","%n conflitos de arquivos em {dirname}"]},{msgid:"All files",msgstr:["Todos os arquivos"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operação"]},{msgid:"Choose",msgstr:["Escolher"]},{msgid:"Choose {file}",msgstr:["Escolher {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escolher %n arquivo","Escolher %n arquivos","Escolher %n arquivos"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar para {target}"]},{msgid:"Could not create the new folder",msgstr:["Não foi possível criar a nova pasta"]},{msgid:"Could not load files settings",msgstr:["Não foi possível carregar configurações de arquivos"]},{msgid:"Could not load files views",msgstr:["Não foi possível carregar visualições de arquivos"]},{msgid:"Create directory",msgstr:["Criar diretório"]},{msgid:"Current view selector",msgstr:["Seletor de visualização atual"]},{msgid:"Enter your name",msgstr:["Digite seu nome"]},{msgid:"Existing version",msgstr:["Versão existente"]},{msgid:"Failed to set nickname.",msgstr:["Falha ao definir apelido."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os arquivos e pastas que você marca como favoritos aparecerão aqui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Arquivos e pastas que você modificou recentemente aparecerão aqui."]},{msgid:"Filter file list",msgstr:["Filtrar lista de arquivos"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nomes de pasta não podem terminar com "{extension}".']},{msgid:"Guest identification",msgstr:["Identificação de convidados"]},{msgid:"Home",msgstr:["Início"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, um número será adicionado ao nome do arquivo recebido."]},{msgid:"Invalid folder name.",msgstr:["Nome de pasta inválido."]},{msgid:"Invalid name.",msgstr:["Nome inválido."]},{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover para {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes podem ter no máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["Nomes não podem estar vazios."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nomes não podem terminar com "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Nomes não podem começar com um ponto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova pasta"]},{msgid:"New folder name",msgstr:["Novo nome de pasta"]},{msgid:"New version",msgstr:["Nova versão"]},{msgid:"No files in here",msgstr:["Nenhum arquivo aqui"]},{msgid:"No files matching your filter were found.",msgstr:["Nenhum arquivo correspondente ao seu filtro foi encontrado."]},{msgid:"No matching files",msgstr:["Nenhum arquivo correspondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Digite um nome com pelo menos 2 caracteres."]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all checkboxes",msgstr:["Selecione todas as caixas de seleção"]},{msgid:"Select all entries",msgstr:["Selecionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Selecione todos os arquivos existentes"]},{msgid:"Select all new files",msgstr:["Selecione todos os novos arquivos"]},{msgid:"Select entry",msgstr:["Selecionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Selecionar a linha para {nodename}"]},{msgid:"Size",msgstr:["Tamanho"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorar %n arquivo","Ignorar %n de arquivos","Ignorar %n arquivos"]},{msgid:"Skip this file",msgstr:["Ignorar este arquivo"]},{msgid:"Submit name",msgstr:["Enviar nome"]},{msgid:"Undo",msgstr:["Desfazer"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Faça upload de algum conteúdo ou sincronize com seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ao selecionar uma pasta de entrada, quaisquer arquivos conflitantes dentro dela também serão sobrescritos."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Quando uma pasta de entrada for selecionada, todos os arquivos nela contidos também serão substituídos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e uma resolução recursiva de conflitos é realizada."]},{msgid:"Which files do you want to keep?",msgstr:["Quais arquivos você deseja manter?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Você está atualmente identificado como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["No momento, você não está identificado."]},{msgid:"You cannot leave the name empty.",msgstr:["Você não pode deixar o nome vazio."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Você precisa escolher pelo menos uma solução para o conflito"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}]},{language:"pt_PT",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" não é permitido dentro de um nome de pasta.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" não é permitido dentro de um nome.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" não é um nome permitido.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" é um nome reservado e não é permitido para nomes de pasta.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" é um nome reservado e não é permitido.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n ficheiro em conflito","%n ficheiros em conflito","%n ficheiros em conflito"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n ficheiro em conflito em {dirname}","%n ficheiros em conflito em {dirname}","%n ficheiros em conflito em {dirname}"]},{msgid:"All files",msgstr:["Todos os ficheiros"]},{msgid:"Cancel",msgstr:["Cancelar"]},{msgid:"Cancel the entire operation",msgstr:["Cancelar toda a operação"]},{msgid:"Choose",msgstr:["Escolher"]},{msgid:"Choose {file}",msgstr:["Escolher {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Escolha %n ficheiro","Escolha %n ficheiros","Escolha %n ficheiros"]},{msgid:"Confirm",msgstr:["Confirmar"]},{msgid:"Continue",msgstr:["Continuar"]},{msgid:"Copy",msgstr:["Copiar"]},{msgid:"Copy to {target}",msgstr:["Copiar para {target}"]},{msgid:"Could not create the new folder",msgstr:["Não foi possível criar a nova pasta "]},{msgid:"Could not load files settings",msgstr:["Não foi possível carregar as definições dos ficheiros"]},{msgid:"Could not load files views",msgstr:["Não foi possível carregar as visualizações dos ficheiros"]},{msgid:"Create directory",msgstr:["Criar pasta"]},{msgid:"Current view selector",msgstr:["Seletor de visualização atual"]},{msgid:"Enter your name",msgstr:["Introduza o seu nome"]},{msgid:"Existing version",msgstr:["Versão existente"]},{msgid:"Failed to set nickname.",msgstr:["Falha ao definir o nome alternativo."]},{msgid:"Favorites",msgstr:["Favoritos"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Os ficheiros e as pastas que marcar como favoritos aparecerão aqui."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Os ficheiros e as pastas que modificou recentemente aparecerão aqui."]},{msgid:"Filter file list",msgstr:["Filtrar lista de ficheiros"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Nomes de pasta não podem terminar em "{extension}".']},{msgid:"Guest identification",msgstr:["Identificação de convidado"]},{msgid:"Home",msgstr:["Início"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, um número será adicionado ao nome do ficheiro recebido."]},{msgid:"Invalid folder name.",msgstr:["Nome de pasta inválido."]},{msgid:"Invalid name.",msgstr:["Nome inválido."]},{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},{msgid:"Modified",msgstr:["Modificado"]},{msgid:"Move",msgstr:["Mover"]},{msgid:"Move to {target}",msgstr:["Mover para {target}"]},{msgid:"Name",msgstr:["Nome"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Os nomes podem ter no máximo 64 caracteres."]},{msgid:"Names must not be empty.",msgstr:["O nome não pode ficar em branco."]},{msgid:'Names must not end with "{extension}".',msgstr:['Nomes não podem terminar em "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Os nomes não podem começar por um ponto."]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Nova pasta"]},{msgid:"New folder name",msgstr:["Novo nome da pasta"]},{msgid:"New version",msgstr:["Nova versão"]},{msgid:"No files in here",msgstr:["Sem ficheiros aqui"]},{msgid:"No files matching your filter were found.",msgstr:["Não foi encontrado nenhum ficheiro correspondente ao seu filtro."]},{msgid:"No matching files",msgstr:["Nenhum ficheiro correspondente"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Introduza um nome com, pelo menos, 2 caracteres."]},{msgid:"Recent",msgstr:["Recentes"]},{msgid:"Select all checkboxes",msgstr:["Selecione todas as caixas de seleção"]},{msgid:"Select all entries",msgstr:["Selecionar todas as entradas"]},{msgid:"Select all existing files",msgstr:["Selecione todos os ficheiros existentes"]},{msgid:"Select all new files",msgstr:["Selecione todos os novos ficheiros"]},{msgid:"Select entry",msgstr:["Selecionar entrada"]},{msgid:"Select the row for {nodename}",msgstr:["Selecione a linha para {nodename}"]},{msgid:"Size",msgstr:["Tamanho"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Ignorar %n ficheiro","Ignorar %n ficheiros","Ignorar %n ficheiros"]},{msgid:"Skip this file",msgstr:["Ignorar este ficheiro"]},{msgid:"Submit name",msgstr:["Submeter nome"]},{msgid:"Undo",msgstr:["Anular"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Envie algum conteúdo ou sincronize com os seus dispositivos!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ao selecionar uma pasta de entrada, quaisquer ficheiros conflituantes dentro da mesma serão também sobrescritos."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Ao selecionar uma pasta de entrada, todos os ficheiros nela contidos serão também sobrescritos."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e é realizada uma resolução recursiva de conflitos."]},{msgid:"Which files do you want to keep?",msgstr:["Quais os ficheiros que deseja manter?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Atualmente está identificado como {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Atualmente, não está identificado."]},{msgid:"You cannot leave the name empty.",msgstr:["Não pode deixar o nome em branco."]},{msgid:"You need to choose at least one conflict solution",msgstr:["É preciso escolher pelo menos uma solução para o conflito."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["É necessário selecionar pelo menos uma versão de cada ficheiro para continuar."]}]},{language:"ro",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" este un nume de director invalid.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"{name}" nu este un nume de director permis']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" nu este permis în numele unui director.']},{msgid:"All files",msgstr:["Toate fișierele"]},{msgid:"Choose",msgstr:["Alege"]},{msgid:"Choose {file}",msgstr:["Alege {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Alege %n fișier","Alege %n fișiere","Alege %n fișiere"]},{msgid:"Copy",msgstr:["Copiază"]},{msgid:"Copy to {target}",msgstr:["Copiază în {target}"]},{msgid:"Could not create the new folder",msgstr:["Nu s-a putut crea noul director"]},{msgid:"Could not load files settings",msgstr:["Nu s-au putut încărca setările fișierelor"]},{msgid:"Could not load files views",msgstr:["Nu s-au putut încărca vizualizările fișierelor"]},{msgid:"Create directory",msgstr:["Creează director"]},{msgid:"Current view selector",msgstr:["Selectorul curent al vizualizării"]},{msgid:"Favorites",msgstr:["Favorite"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Fișiere și directoare pe care le marcați ca favorite vor apărea aici."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Fișiere și directoare pe care le-ați modificat recent vor apărea aici."]},{msgid:"Filter file list",msgstr:["Filtrează lista de fișiere"]},{msgid:"Folder name cannot be empty.",msgstr:["Numele de director nu poate fi necompletat."]},{msgid:"Home",msgstr:["Acasă"]},{msgid:"Modified",msgstr:["Modificat"]},{msgid:"Move",msgstr:["Mută"]},{msgid:"Move to {target}",msgstr:["Mută către {target}"]},{msgid:"Name",msgstr:["Nume"]},{msgid:"New",msgstr:["Nou"]},{msgid:"New folder",msgstr:["Director nou"]},{msgid:"New folder name",msgstr:["Numele noului director"]},{msgid:"No files in here",msgstr:["Nu există fișiere"]},{msgid:"No files matching your filter were found.",msgstr:["Nu există fișiere potrivite pentru filtrul selectat"]},{msgid:"No matching files",msgstr:["Nu există fișiere potrivite"]},{msgid:"Recent",msgstr:["Recente"]},{msgid:"Select all entries",msgstr:["Selectează toate înregistrările"]},{msgid:"Select entry",msgstr:["Selectează înregistrarea"]},{msgid:"Select the row for {nodename}",msgstr:["Selectează rândul pentru {nodename}"]},{msgid:"Size",msgstr:["Mărime"]},{msgid:"Undo",msgstr:["Anulează"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Încărcați conținut sau sincronizați cu dispozitivele dumneavoastră!"]}]},{language:"ru",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" не допускается в названии папки.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не допускается внутри имени.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" — недопустимое имя.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" — зарезервированное имя, недопустимое для имени папки.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" — зарезервированное и недопустимое имя.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфликт файла","%n конфликта файлов","%n конфликтов файлов","%n конфликтов файлов"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфликт файлов в {dirname}","%n конфликта файлов в {dirname}","%n конфликтов файлов в {dirname}","%n конфликтов файлов в {dirname}"]},{msgid:"All files",msgstr:["Все файлы"]},{msgid:"Cancel",msgstr:["Отмена"]},{msgid:"Cancel the entire operation",msgstr:["Отменить всю операцию"]},{msgid:"Choose",msgstr:["Выбрать"]},{msgid:"Choose {file}",msgstr:["Выбрать «{file}»"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Выбрать %n файл","Выбрать %n файла","Выбрать %n файлов","Выбрать %n файлов"]},{msgid:"Confirm",msgstr:["Подтвердить"]},{msgid:"Continue",msgstr:["Продолжить"]},{msgid:"Copy",msgstr:["Копировать"]},{msgid:"Copy to {target}",msgstr:["Копировать в «{target}»"]},{msgid:"Could not create the new folder",msgstr:["Не удалось создать новую папку"]},{msgid:"Could not load files settings",msgstr:["Не удалось загрузить настройки файлов"]},{msgid:"Could not load files views",msgstr:["Не удалось загрузить конфигурацию просмотра файлов"]},{msgid:"Create directory",msgstr:["Создать папку"]},{msgid:"Current view selector",msgstr:["Переключатель текущего вида"]},{msgid:"Enter your name",msgstr:["Введите ваше имя"]},{msgid:"Existing version",msgstr:["Текущая версия"]},{msgid:"Failed to set nickname.",msgstr:["Не удалось задать никнейм."]},{msgid:"Favorites",msgstr:["Избранное"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Здесь будут отображаться файлы и папки, которые вы пометили как избранные."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Здесь будут отображаться файлы и папки, которые вы недавно изменили."]},{msgid:"Filter file list",msgstr:["Фильтровать список файлов"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Имена папок не могут оканчиваться на "{extension}".']},{msgid:"Guest identification",msgstr:["Гостевая идентификация"]},{msgid:"Home",msgstr:["Домой"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени входящего файла будет добавлен номер."]},{msgid:"Invalid folder name.",msgstr:["Недопустимое имя папки."]},{msgid:"Invalid name.",msgstr:["Недопустимое имя."]},{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},{msgid:"Modified",msgstr:["Изменен"]},{msgid:"Move",msgstr:["Переместить"]},{msgid:"Move to {target}",msgstr:["Переместить в «{target}»"]},{msgid:"Name",msgstr:["Имя"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Имена не могут быть длиннее 64 символов."]},{msgid:"Names must not be empty.",msgstr:["Имена не могут быть пустыми."]},{msgid:'Names must not end with "{extension}".',msgstr:['Имена не могут оканчиваться на "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Имена не должны начинаться с точки."]},{msgid:"New",msgstr:["Новый"]},{msgid:"New folder",msgstr:["Новая папка"]},{msgid:"New folder name",msgstr:["Имя новой папки"]},{msgid:"New version",msgstr:["Новая версия"]},{msgid:"No files in here",msgstr:["Здесь нет файлов"]},{msgid:"No files matching your filter were found.",msgstr:["Файлы, соответствующие вашему фильтру, не найдены."]},{msgid:"No matching files",msgstr:["Нет подходящих файлов"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Введите имя длиной не менее 2 символов."]},{msgid:"Recent",msgstr:["Недавний"]},{msgid:"Select all checkboxes",msgstr:["Выбрать все флажки"]},{msgid:"Select all entries",msgstr:["Выбрать все записи"]},{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},{msgid:"Select entry",msgstr:["Выбрать запись"]},{msgid:"Select the row for {nodename}",msgstr:["Выбрать строку для «{nodename}»"]},{msgid:"Size",msgstr:["Размер"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Пропустить %n файл","Пропустить %n файла","Пропустить %n файлов","Пропустить %n файлов"]},{msgid:"Skip this file",msgstr:["Пропустить файл"]},{msgid:"Submit name",msgstr:["Отправить имя"]},{msgid:"Undo",msgstr:["Отменить"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Загрузите контент или синхронизируйте его со своими устройствами!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все файлы в ней также будут перезаписаны."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов."]},{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Вы идентифицированы как {nickname}."]},{msgid:"You are currently not identified.",msgstr:["В данный момент вы не идентифицированы."]},{msgid:"You cannot leave the name empty.",msgstr:["Вы не можете оставить имя пустым."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Вам нужно выбрать хотя бы одно решение конфликта"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать хотя бы одну версию каждого файла."]}]},{language:"sk_SK",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" nie je povolené v názve priečinka.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" nie je povolené v rámci mena.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" nie je povolený názov.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["„{segment}“ je rezervované meno a nie je povolené na názvy priečinkov."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" je rezervované meno a nie je povolené.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n konflikt súborov","%n konflikty súborov","%n konfliktov súborov","%n konflikty súborov"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n konflikt súborov v {dirname}","%n konflikty súborov v {dirname}","%n konfliktov súborov v {dirname}","%n konfliktov súborov v {dirname}"]},{msgid:"All files",msgstr:["Všetky súbory"]},{msgid:"Cancel",msgstr:["Zrušiť"]},{msgid:"Cancel the entire operation",msgstr:["Zrušiť celú operáciu"]},{msgid:"Choose",msgstr:["Vybrať"]},{msgid:"Choose {file}",msgstr:["Vybrať {súbor}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Vybraný %n súbor","Vybrané %n súbory","Vybraných %n súborov","Vybraných %n súborov"]},{msgid:"Confirm",msgstr:["Potvrdiť"]},{msgid:"Continue",msgstr:["Pokračovať"]},{msgid:"Copy",msgstr:["Kopírovať"]},{msgid:"Copy to {target}",msgstr:["Kopírovať do {umiestnenia}"]},{msgid:"Could not create the new folder",msgstr:["Nepodarilo sa vytvoriť nový priečinok"]},{msgid:"Could not load files settings",msgstr:["Nepodarilo sa načítať nastavenia súborov"]},{msgid:"Could not load files views",msgstr:["Nepodarilo sa načítať pohľady súborov"]},{msgid:"Create directory",msgstr:["Vytvoriť adresár"]},{msgid:"Current view selector",msgstr:["Výber aktuálneho zobrazenia"]},{msgid:"Enter your name",msgstr:["Zadajte svoje meno"]},{msgid:"Existing version",msgstr:["Existujúca verzia"]},{msgid:"Failed to set nickname.",msgstr:["Nepodarilo sa nastaviť prezývku."]},{msgid:"Favorites",msgstr:["Obľúbené"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tu sa zobrazia súbory a priečinky, ktoré označíte ako obľúbené."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Tu sa zobrazia súbory a priečinky, ktoré ste nedávno upravili."]},{msgid:"Filter file list",msgstr:["Filtrovať zoznam súborov"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Názvy priečinkov nesmú končiť na "{extension}".']},{msgid:"Guest identification",msgstr:["Identifikácia hosťa"]},{msgid:"Home",msgstr:["Domov"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ak vyberiete obe verzie, prichádzajúci súbor bude mať k svojmu názvu pridané číslo."]},{msgid:"Invalid folder name.",msgstr:["Neplatný názov priečinka."]},{msgid:"Invalid name.",msgstr:["Neplatné meno."]},{msgid:"Last modified date unknown",msgstr:["Posledná zmena dátumu neznáma"]},{msgid:"Modified",msgstr:["Upravené"]},{msgid:"Move",msgstr:["Prejsť"]},{msgid:"Move to {target}",msgstr:["Prejsť na {umiestnenie}"]},{msgid:"Name",msgstr:["Názov"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Mená môžu mať maximálne 64 znakov."]},{msgid:"Names must not be empty.",msgstr:["Mená nesmú byť prázdne."]},{msgid:'Names must not end with "{extension}".',msgstr:['Mená nesmú končiť "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Mená nesmú začínať bodkou."]},{msgid:"New",msgstr:["Pridať"]},{msgid:"New folder",msgstr:["Pridať priečinok"]},{msgid:"New folder name",msgstr:["Pridať názov priečinka"]},{msgid:"New version",msgstr:["Nová verzia"]},{msgid:"No files in here",msgstr:["Nie sú tu žiadne súbory"]},{msgid:"No files matching your filter were found.",msgstr:["Nenašli sa žiadne súbory zodpovedajúce vášmu filtru."]},{msgid:"No matching files",msgstr:["Žiadne zodpovedajúce súbory"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Zadajte meno s aspoň 2 znakmi."]},{msgid:"Recent",msgstr:["Nedávne"]},{msgid:"Select all checkboxes",msgstr:["Vyberte všetky zaškrtávacie políčka"]},{msgid:"Select all entries",msgstr:["Vybrať všetky položky"]},{msgid:"Select all existing files",msgstr:["Vybrať všetky existujúce súbory"]},{msgid:"Select all new files",msgstr:["Vybrať všetky nové súbory"]},{msgid:"Select entry",msgstr:["Vybrať položku"]},{msgid:"Select the row for {nodename}",msgstr:["Vyberte riadok pre {názov uzla}"]},{msgid:"Size",msgstr:["Veľkosť"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Preskočiť %n súbor","Preskočiť %n súbory","Preskočiť %n súborov","Preskočiť %n súbory"]},{msgid:"Skip this file",msgstr:["Preskočiť tento súbor"]},{msgid:"Submit name",msgstr:["Zadať meno"]},{msgid:"Undo",msgstr:["Späť"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Nahrajte nejaký obsah alebo synchronizujte so svojimi zariadeniami!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Keď je vybraná prichádzajúca složka, všetky konfliktné súbory v nej budú taktiež prepísané."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Keď je vybraná prichádzajúca zložka, obsah sa zapíše do existujúcej zložky a vykoná sa rekurzívne riešenie konfliktov."]},{msgid:"Which files do you want to keep?",msgstr:["Ktoré súbory chcete zachovať?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Momentálne ste identifikovaný ako {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Momentálne nie ste identifikovaný."]},{msgid:"You cannot leave the name empty.",msgstr:["Nemôžete nechať meno prázdne."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Musíte si vybrať aspoň jedno riešenie konfliktu."]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Musíte vybrať aspoň jednu verziu každého súboru, aby ste mohli pokračovať."]}]},{language:"sl",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["{name} je neveljavno ime mape."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["{name} ni dovoljeno ime mape"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/" ni dovoljen v imenu mape.']},{msgid:"All files",msgstr:["Vse datoteke"]},{msgid:"Choose",msgstr:["Izberi"]},{msgid:"Choose {file}",msgstr:["Izberi {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izberi %n datoteko","Izberi %n datoteki","Izberi %n datotek","Izberi %n datotek"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj v {target}"]},{msgid:"Could not create the new folder",msgstr:["Nisem mogel ustvariti nove mape"]},{msgid:"Could not load files settings",msgstr:["NIsem mogel naložiti nastavitev datotek"]},{msgid:"Could not load files views",msgstr:["Nisem mogel naložiti pogledov datotek"]},{msgid:"Create directory",msgstr:["Ustvari mapo"]},{msgid:"Current view selector",msgstr:["Izbirnik trenutnega pogleda"]},{msgid:"Favorites",msgstr:["Priljubljene"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Datoteke in mape ki jih označite kot priljubljene se bodo prikazale tukaj."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Daoteke in mape ki ste jih pred kratkim spremenili se bodo prikazale tukaj."]},{msgid:"Filter file list",msgstr:["Filtriraj seznam datotek"]},{msgid:"Folder name cannot be empty.",msgstr:["Ime mape ne more biti prazno"]},{msgid:"Home",msgstr:["Domov"]},{msgid:"Modified",msgstr:["Spremenjeno"]},{msgid:"Move",msgstr:["Premakni"]},{msgid:"Move to {target}",msgstr:["Premakni v {target}"]},{msgid:"Name",msgstr:["Ime"]},{msgid:"New",msgstr:["Nov"]},{msgid:"New folder",msgstr:["Nova mapa"]},{msgid:"New folder name",msgstr:["Novo ime mape"]},{msgid:"No files in here",msgstr:["Tukaj ni datotek"]},{msgid:"No files matching your filter were found.",msgstr:["Ni bilo najdenih ujemajočih datotek glede na vaš filter."]},{msgid:"No matching files",msgstr:["Ni ujemajočih datotek"]},{msgid:"Recent",msgstr:["Nedavne"]},{msgid:"Select all entries",msgstr:["Izberi vse vnose"]},{msgid:"Select entry",msgstr:["Izberi vnos"]},{msgid:"Select the row for {nodename}",msgstr:["Izberi vrstico za {nodename}"]},{msgid:"Size",msgstr:["Velikost"]},{msgid:"Undo",msgstr:["Razveljavi"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Naloži nekaj vsebine ali sinhroniziraj s svojimi napravami!"]}]},{language:"sr",translations:[{msgid:'"{char}" is not allowed inside a name.',msgstr:["„{char}” није дозвољено унутар имена."]},{msgid:'"{extension}" is not an allowed name.',msgstr:["„{extension}” није дозвољено име."]},{msgid:'"{name}" is an invalid folder name.',msgstr:["„{name}” није исправно име фолдера."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["„{name}” није дозвољено име за фолдер."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["„{segment}” је резервисано име и није дозвољено."]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["„/” није дозвољено унутар имена фолдера."]},{msgid:"All files",msgstr:["Сви фајлови"]},{msgid:"Cancel",msgstr:["Откажи"]},{msgid:"Choose",msgstr:["Изаберите"]},{msgid:"Choose {file}",msgstr:["Изаберите {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Изаберите %n фајл","Изаберите %n фајла","Изаберите %n фајлова"]},{msgid:"Copy",msgstr:["Копирај"]},{msgid:"Copy to {target}",msgstr:["Копирај у {target}"]},{msgid:"Could not create the new folder",msgstr:["Није могао да се креира нови фолдер"]},{msgid:"Could not load files settings",msgstr:["Не могу да се учитају подешавања фајлова"]},{msgid:"Could not load files views",msgstr:["Не могу да се учитају прикази фајлова"]},{msgid:"Create directory",msgstr:["Креирај директоријум"]},{msgid:"Current view selector",msgstr:["Бирач тренутног приказа"]},{msgid:"Enter your name",msgstr:["Унесите своје име"]},{msgid:"Failed to set nickname.",msgstr:["Није успело постављање надимка."]},{msgid:"Favorites",msgstr:["Омиљено"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Овде ће се појавити фајлови и фолдери које сте означили као омиљене."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Овде ће се појавити фајлови и фолдери који се се недавно изменили."]},{msgid:"Filter file list",msgstr:["Фитрирање листе фајлова"]},{msgid:"Folder name cannot be empty.",msgstr:["Име фолдера не може бити празно."]},{msgid:"Guest identification",msgstr:["Идентификација госта"]},{msgid:"Home",msgstr:["Почетак"]},{msgid:"Invalid name.",msgstr:["Неисправно име."]},{msgid:"Modified",msgstr:["Измењено"]},{msgid:"Move",msgstr:["Премести"]},{msgid:"Move to {target}",msgstr:["Премести у {target}"]},{msgid:"Name",msgstr:["Име"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Највећа дужина имена може бити 64 карактера."]},{msgid:"Names must not be empty.",msgstr:["Имена не смеју да буду празна."]},{msgid:'Names must not end with "{extension}".',msgstr:["Имена не смеју да се завршавају на „{extension}”."]},{msgid:"Names must not start with a dot.",msgstr:["Имена не смеју да почињу тачком."]},{msgid:"New",msgstr:["Ново"]},{msgid:"New folder",msgstr:["Нови фолдер"]},{msgid:"New folder name",msgstr:["Име новог фолдера"]},{msgid:"No files in here",msgstr:["Овде нема фајлова"]},{msgid:"No files matching your filter were found.",msgstr:["Није пронађен ниједан фајл који задовољава ваш филтер."]},{msgid:"No matching files",msgstr:["Нема таквих фајлова"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Молимо вас да унесете име од барем два карактера."]},{msgid:"Recent",msgstr:["Скорашње"]},{msgid:"Select all entries",msgstr:["Изаберите све ставке"]},{msgid:"Select entry",msgstr:["Изаберите ставку"]},{msgid:"Select the row for {nodename}",msgstr:["Изаберите ред за {nodename}"]},{msgid:"Size",msgstr:["Величина"]},{msgid:"Submit name",msgstr:["Предај име"]},{msgid:"Undo",msgstr:["Поништи"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Отпремите нешто или синхронизујте са својим уређајима!"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Тренутно се идентификујете као {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Тренутно немате идентификацију."]},{msgid:"You cannot leave the name empty.",msgstr:["Име не можете да оставите празно."]}]},{language:"sr@latin",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["„{name}” je neispravan naziv foldera."]},{msgid:'"{name}" is not an allowed folder name',msgstr:["„{name}” je nedozvoljen naziv foldera."]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["„/” se ne može koristiti unutar naziva foldera."]},{msgid:"All files",msgstr:["Svi fajlovi"]},{msgid:"Choose",msgstr:["Izaberite"]},{msgid:"Choose {file}",msgstr:["Izaberite {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Izaberite %n fajl","Izaberite %n fajla","Izaberite %n fajlova"]},{msgid:"Copy",msgstr:["Kopiraj"]},{msgid:"Copy to {target}",msgstr:["Kopiraj u {target}"]},{msgid:"Could not create the new folder",msgstr:["Neuspešno kreiranje novog foldera"]},{msgid:"Could not load files settings",msgstr:["Neuspešno učitavanje podešavanja fajlova"]},{msgid:"Could not load files views",msgstr:["Neuspešno učitavanje prikaza fajlova"]},{msgid:"Create directory",msgstr:["Kreiraj direktorijum"]},{msgid:"Current view selector",msgstr:["Birač trenutnog prikaza"]},{msgid:"Favorites",msgstr:["Omiljeno"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Lista omiljenih fajlova i foldera."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Lista fajlova i foldera sa skorašnjim izmenama."]},{msgid:"Filter file list",msgstr:["Fitriranje liste fajlova"]},{msgid:"Folder name cannot be empty.",msgstr:["Naziv foldera ne može biti prazan."]},{msgid:"Home",msgstr:["Početak"]},{msgid:"Modified",msgstr:["Izmenjeno"]},{msgid:"Move",msgstr:["Premesti"]},{msgid:"Move to {target}",msgstr:["Premesti u {target}"]},{msgid:"Name",msgstr:["Naziv"]},{msgid:"New",msgstr:["Novo"]},{msgid:"New folder",msgstr:["Novi folder"]},{msgid:"New folder name",msgstr:["Naziv novog foldera"]},{msgid:"No files in here",msgstr:["Bez fajlova"]},{msgid:"No files matching your filter were found.",msgstr:["Nema fajlova koji zadovoljavaju uslove filtera."]},{msgid:"No matching files",msgstr:["Nema takvih fajlova"]},{msgid:"Recent",msgstr:["Skorašnje"]},{msgid:"Select all entries",msgstr:["Izaberite sve stavke"]},{msgid:"Select entry",msgstr:["Izaberite stavku"]},{msgid:"Select the row for {nodename}",msgstr:["Izaberite red za {nodename}"]},{msgid:"Size",msgstr:["Veličina"]},{msgid:"Undo",msgstr:["Vrati"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Otpremite sadržaj ili sinhronizujte sa svojim uređajima!"]}]},{language:"sv",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" är inte tillåtet i ett mappnamn.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" är inte tillåtet i ett namn.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" är inte ett tillåtet namn.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" är ett reserverat namn och inte tillåtet mappnamn.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" är ett reserverat namn och inte tillåtet.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n fil är i konflikt","%n filer är i konflikt"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n fil är i konflikt i {dirname}","%n filer är i konflikt i {dirname}"]},{msgid:"All files",msgstr:["Alla filer"]},{msgid:"Cancel",msgstr:["Avbryt"]},{msgid:"Cancel the entire operation",msgstr:["Avbryt hela operationen"]},{msgid:"Choose",msgstr:["Välj"]},{msgid:"Choose {file}",msgstr:["Välj {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Välj %n fil","Välj %n filer"]},{msgid:"Confirm",msgstr:["Bekräfta"]},{msgid:"Continue",msgstr:["Fortsätt"]},{msgid:"Copy",msgstr:["Kopiera"]},{msgid:"Copy to {target}",msgstr:["Kopiera till {target}"]},{msgid:"Could not create the new folder",msgstr:["Kunde inte skapa den nya mappen"]},{msgid:"Could not load files settings",msgstr:["Kunde inte ladda filinställningar"]},{msgid:"Could not load files views",msgstr:["Kunde inte ladda filvyer"]},{msgid:"Create directory",msgstr:["Skapa katalog"]},{msgid:"Current view selector",msgstr:["Aktuell vyväljare"]},{msgid:"Enter your name",msgstr:["Ange ditt namn"]},{msgid:"Existing version",msgstr:["Nuvarande version"]},{msgid:"Failed to set nickname.",msgstr:["Kunde inte ställa in smeknamn."]},{msgid:"Favorites",msgstr:["Favoriter"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Filer och mappar som du markerar som favorit kommer att visas här."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Filer och mappar som du nyligen ändrat kommer att visas här."]},{msgid:"Filter file list",msgstr:["Filtrera fillistan"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Mappnamn får inte sluta med "{extension}".']},{msgid:"Guest identification",msgstr:["Gästidentifiering"]},{msgid:"Home",msgstr:["Hem"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Om du väljer båda versionerna kommer den inkommande filen att få ett nummer tillagt i sitt namn."]},{msgid:"Invalid folder name.",msgstr:["Ogiltigt mappnamn."]},{msgid:"Invalid name.",msgstr:["Ogiltigt namn."]},{msgid:"Last modified date unknown",msgstr:["Senaste ändringsdatum okänt"]},{msgid:"Modified",msgstr:["Ändrad"]},{msgid:"Move",msgstr:["Flytta"]},{msgid:"Move to {target}",msgstr:["Flytta till {target}"]},{msgid:"Name",msgstr:["Namn"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Namnen kan vara högst 64 tecken långa."]},{msgid:"Names must not be empty.",msgstr:["Namn får inte vara tomt."]},{msgid:'Names must not end with "{extension}".',msgstr:['Namn får inte sluta med "{extension}".']},{msgid:"Names must not start with a dot.",msgstr:["Namn får inte börja med en punkt."]},{msgid:"New",msgstr:["Ny"]},{msgid:"New folder",msgstr:["Ny mapp"]},{msgid:"New folder name",msgstr:["Nytt mappnamn"]},{msgid:"New version",msgstr:["Ny version"]},{msgid:"No files in here",msgstr:["Inga filer här"]},{msgid:"No files matching your filter were found.",msgstr:["Inga filer som matchar ditt filter hittades."]},{msgid:"No matching files",msgstr:["Inga matchande filer"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Ange ett namn med minst 2 tecken."]},{msgid:"Recent",msgstr:["Nyligen"]},{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},{msgid:"Select all entries",msgstr:["Välj alla poster"]},{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},{msgid:"Select entry",msgstr:["Välj post"]},{msgid:"Select the row for {nodename}",msgstr:["Välj raden för {nodename}"]},{msgid:"Size",msgstr:["Storlek"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Hoppa över %n fil","Hoppa över %n filer"]},{msgid:"Skip this file",msgstr:["Hoppa över den här filen"]},{msgid:"Submit name",msgstr:["Skicka namn"]},{msgid:"Undo",msgstr:["Ångra"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Ladda upp lite innehåll eller synkronisera med dina enheter!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs kommer eventuella konflikterande filer i den också att skrivas över."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs kommer även filer i den att skrivas över."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs."]},{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Du är för närvarande identifierad som {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Du är för närvarande inte identifierad."]},{msgid:"You cannot leave the name empty.",msgstr:["Du kan inte lämna namnet tomt."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Du måste välja minst en konfliktlösning"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att fortsätta."]}]},{language:"tr",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['"{char}" karakteri bir klasör adında kullanılamaz.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['Bir ad içinde "{char}" karakteri kullanılamaz.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" adına izin verilmiyor.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:['"{segment}" adı sistem için ayrılmış olduğundan klasör adlarında kullanılamaz.']},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" adı sistem için ayrılmış olduğundan kullanılamaz.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n dosya çakışıyor","%n dosya çakışıyor"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} içindeki %n dosya çakışıyor","{dirname} içindeki %n dosya çakışıyor"]},{msgid:"All files",msgstr:["Tüm dosyalar"]},{msgid:"Cancel",msgstr:["İptal"]},{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},{msgid:"Choose",msgstr:["Seçin"]},{msgid:"Choose {file}",msgstr:["{file} seçin"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["%n dosya seçin","%n dosya seçin"]},{msgid:"Confirm",msgstr:["Onayla"]},{msgid:"Continue",msgstr:["İlerle"]},{msgid:"Copy",msgstr:["Kopyala"]},{msgid:"Copy to {target}",msgstr:["{target} üzerine kopyala"]},{msgid:"Could not create the new folder",msgstr:["Yeni klasör oluşturulamadı"]},{msgid:"Could not load files settings",msgstr:["Dosyalar uygulamasının ayarları yüklenemedi"]},{msgid:"Could not load files views",msgstr:["Dosyalar uygulamasının görünümleri yüklenemedi"]},{msgid:"Create directory",msgstr:["Klasör oluştur"]},{msgid:"Current view selector",msgstr:["Geçerli görünüm seçici"]},{msgid:"Enter your name",msgstr:["Adınızı yazın"]},{msgid:"Existing version",msgstr:["Var olan sürüm"]},{msgid:"Failed to set nickname.",msgstr:["Takma ad ayarlanamadı."]},{msgid:"Favorites",msgstr:["Sık kullanılanlar"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Sık kullanılan olarak seçtiğiniz dosyalar burada görüntülenir."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Son zamanlarda değiştirdiğiniz dosya ve klasörler burada görüntülenir."]},{msgid:"Filter file list",msgstr:["Dosya listesini süz"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Klasör adları "{extension}" ile bitemez.']},{msgid:"Guest identification",msgstr:["Konuk kimliği"]},{msgid:"Home",msgstr:["Giriş"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir."]},{msgid:"Invalid folder name.",msgstr:["Klasör adı geçersiz."]},{msgid:"Invalid name.",msgstr:["Ad geçersiz."]},{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor."]},{msgid:"Modified",msgstr:["Değiştirilme"]},{msgid:"Move",msgstr:["Taşı"]},{msgid:"Move to {target}",msgstr:["{target} üzerine taşı"]},{msgid:"Name",msgstr:["Ad"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Adlar en fazla 64 karakter uzunluğunda olabilir."]},{msgid:"Names must not be empty.",msgstr:["Ad boş olamaz."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ad "{extension}" ile bitemez.']},{msgid:"Names must not start with a dot.",msgstr:["Ad nokta karakteri ile başlayamaz."]},{msgid:"New",msgstr:["Yeni"]},{msgid:"New folder",msgstr:["Yeni klasör"]},{msgid:"New folder name",msgstr:["Yeni klasör adı"]},{msgid:"New version",msgstr:["Yeni sürüm"]},{msgid:"No files in here",msgstr:["Burada herhangi bir dosya yok"]},{msgid:"No files matching your filter were found.",msgstr:["Süzgece uyan bir dosya bulunamadı."]},{msgid:"No matching files",msgstr:["Eşleşen bir dosya yok"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Ad en az 2 karakter uzunluğunda olmalıdır."]},{msgid:"Recent",msgstr:["Son kullanılanlar"]},{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},{msgid:"Select all entries",msgstr:["Tüm kayıtları seç"]},{msgid:"Select all existing files",msgstr:["Tüm var olan dosyaları seç"]},{msgid:"Select all new files",msgstr:["Tüm yeni dosyaları seç"]},{msgid:"Select entry",msgstr:["Kaydı seç"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} satırını seçin"]},{msgid:"Size",msgstr:["Boyut"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n dosyayı atla","%n dosyayı atla"]},{msgid:"Skip this file",msgstr:["Bu dosyayı atla"]},{msgid:"Submit name",msgstr:["Adı gönder"]},{msgid:"Undo",msgstr:["Geri al"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Bazı içerikler yükleyin ya da aygıtlarınızla eşitleyin!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Bir gelen klasör seçildiğinde, içindeki dosyaların da üzerine yazılır."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bir gelen klasör seçildiğinde, içerik var olan klasöre yazılır ve alt klasörlerle bir çakışma çözümü uygulanır."]},{msgid:"Which files do you want to keep?",msgstr:["Hangi dosyaları tutmak istiyorsunuz?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["{nickname} olarak tanınıyorsunuz."]},{msgid:"You are currently not identified.",msgstr:["Henüz kendinizi tanıtmadınız."]},{msgid:"You cannot leave the name empty.",msgstr:["Ad boş bırakılamaz."]},{msgid:"You need to choose at least one conflict solution",msgstr:["En az bir çakışma çözümü seçmelisiniz"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosaynın en az bir sürümünü seçmelisiniz."]}]},{language:"uk",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["{char} не дозволено всередині назви каталогу."]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['"{char}" не дозволено всередині імени.']},{msgid:'"{extension}" is not an allowed name.',msgstr:[`"{extension}" недозволене ім'я.`]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["{segment} є зарезервованим ім'ям і не дозволено для назви каталогу."]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:[`"{segment}" зарезервоване ім'я і не дозволено для використання.`]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n конфлікт файлів","%n конфлікти файлів","%n конфліктів файлів","%n конфліктів файлів"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["%n конфлікт файлів у каталозі {dirname}","%n конфлікти файлів у каталозі {dirname}","%n конфліктів файлів у каталозі {dirname}","%n конфліктів файлів у каталозі {dirname}"]},{msgid:"All files",msgstr:["Всі файли"]},{msgid:"Cancel",msgstr:["Скасувати"]},{msgid:"Cancel the entire operation",msgstr:["Скасувати всю операцію"]},{msgid:"Choose",msgstr:["Вибрати"]},{msgid:"Choose {file}",msgstr:["Вибрати {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Вибрати %n файл","Вибрати %n файли","Вибрати %n файлів","Вибрати %n файлів"]},{msgid:"Confirm",msgstr:["Підтвердити"]},{msgid:"Continue",msgstr:["Продовжити"]},{msgid:"Copy",msgstr:["Копіювати"]},{msgid:"Copy to {target}",msgstr:["Копіювати до {target}"]},{msgid:"Could not create the new folder",msgstr:["Не вдалося створити новий каталог"]},{msgid:"Could not load files settings",msgstr:["Не вдалося завантажити налаштування файлів"]},{msgid:"Could not load files views",msgstr:["Не вдалося завантажити подання файлів"]},{msgid:"Create directory",msgstr:["Створити каталог"]},{msgid:"Current view selector",msgstr:["Вибір подання"]},{msgid:"Enter your name",msgstr:["Зазначте ваше ім'я"]},{msgid:"Existing version",msgstr:["Наявна версія"]},{msgid:"Failed to set nickname.",msgstr:["Не вдалося встановити псевдо."]},{msgid:"Favorites",msgstr:["Із зірочкою"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Тут показуватимуться файли та каталоги, які ви позначите зірочкою."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Тут показуватимуться файли та каталоги, які було нещодавно змінено."]},{msgid:"Filter file list",msgstr:["Фільтрувати список файлів"]},{msgid:'Folder names must not end with "{extension}".',msgstr:[`Ім'я каталогу не може закінчуватися на "{extension}".`]},{msgid:"Guest identification",msgstr:["Ім'я для гостя"]},{msgid:"Home",msgstr:["Домівка"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Якщо вибрати обидві версії, до назви вхідного файлу буде додано цифру. "]},{msgid:"Invalid folder name.",msgstr:["Недійсне ім'я каталогу."]},{msgid:"Invalid name.",msgstr:["Недійсне ім'я."]},{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},{msgid:"Modified",msgstr:["Змінено"]},{msgid:"Move",msgstr:["Перемістити"]},{msgid:"Move to {target}",msgstr:["Перемістити до {target}"]},{msgid:"Name",msgstr:["Ім'я"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Імена мають мати довжину не більше 64 символів."]},{msgid:"Names must not be empty.",msgstr:["Ім'я не може бути порожнє."]},{msgid:'Names must not end with "{extension}".',msgstr:[`Ім'я не може закінчуватися на "{extension}".`]},{msgid:"Names must not start with a dot.",msgstr:["Ім'я не може починатися з крапки."]},{msgid:"New",msgstr:["Новий"]},{msgid:"New folder",msgstr:["Новий каталог"]},{msgid:"New folder name",msgstr:["Ім'я нового каталогу"]},{msgid:"New version",msgstr:["Нова версія"]},{msgid:"No files in here",msgstr:["Тут відсутні файли"]},{msgid:"No files matching your filter were found.",msgstr:["Відсутні збіги за фільтром."]},{msgid:"No matching files",msgstr:["Відсутні збіги файлів."]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Зазначте ім'я довжиною не менше 2 символів"]},{msgid:"Recent",msgstr:["Останні"]},{msgid:"Select all checkboxes",msgstr:["Вибрати всі прапорці"]},{msgid:"Select all entries",msgstr:["Вибрати всі записи"]},{msgid:"Select all existing files",msgstr:["Вибрати всі наявні файли"]},{msgid:"Select all new files",msgstr:["Вибрати всі нові файли"]},{msgid:"Select entry",msgstr:["Вибрати запис"]},{msgid:"Select the row for {nodename}",msgstr:["Вибрати рядок для {nodename}"]},{msgid:"Size",msgstr:["Розмір"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["Пропустити %n файл","Пропустити %n файли","Пропустити %n файлів","Пропустити %n файлів"]},{msgid:"Skip this file",msgstr:["Пропустити цей файл"]},{msgid:"Submit name",msgstr:["Встановити ім'я"]},{msgid:"Undo",msgstr:["Повернути"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Завантажте вміст або синхронізуйте з вашим пристроєм!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Коли вибрано вхідний каталог, будь-які файли з конфліктами буде також перезаписано."]},{msgid:"When an incoming folder is selected, any files within it will also be overwritten.",msgstr:["Якщо буде вибрано вхідний каталог, будь-який файл в ньому буде також перезаписано."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Коли вибрано вхідний каталог, вміст буде записано до існуючого каталогу, а також виконано вирішення конфліктів всередині каталогу."]},{msgid:"Which files do you want to keep?",msgstr:["Які файли залишити?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Вас визначено як {nickname}."]},{msgid:"You are currently not identified.",msgstr:["Вас не ідентифіковано."]},{msgid:"You cannot leave the name empty.",msgstr:["Потрібно зазначити ім'я."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Треб вибрати щонайменше одне розв'язання конфлікту"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Треба вибрати щонайменше одну версію кожного файлу, щоби продовжити."]}]},{language:"uz",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:['Papka nomi ichida "{char}" ga ruxsat berilmaydi.']},{msgid:'"{char}" is not allowed inside a name.',msgstr:['Nom ichida "{char}" ga ruxsat berilmagan.']},{msgid:'"{extension}" is not an allowed name.',msgstr:['"{extension}" ruxsat etilgan nom emas.']},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:[`"{segment}" ajratilgan nom bo'lib, papka nomlari uchun ruxsat berilmagan.`]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:['"{segment}" - zaxiralangan nom va ruxsat berilmaydi.']},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n fayl ziddiyatli"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} da %n fayl ziddiyati"]},{msgid:"All files",msgstr:["Barcha fayllar"]},{msgid:"Cancel",msgstr:["Bekor qilish"]},{msgid:"Cancel the entire operation",msgstr:["Butun operatsiyani bekor qiling"]},{msgid:"Choose",msgstr:["Tanlang"]},{msgid:"Choose {file}",msgstr:["Tanlang {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Tanlang %n faylni"]},{msgid:"Confirm",msgstr:["Tasdiqlang"]},{msgid:"Continue",msgstr:["Davom eting"]},{msgid:"Copy",msgstr:["Nusxa"]},{msgid:"Copy to {target}",msgstr:[" {target} ga nusxa"]},{msgid:"Could not create the new folder",msgstr:["Yangi jild yaratib bo‘lmadi"]},{msgid:"Could not load files settings",msgstr:["Fayl sozlamalari yuklanmadi"]},{msgid:"Could not load files views",msgstr:["Fayllarni koʻrishni yuklab boʻlmadi"]},{msgid:"Create directory",msgstr:["Katalog yaratish"]},{msgid:"Current view selector",msgstr:["Joriy ko'rinish selektori"]},{msgid:"Enter your name",msgstr:["Ismingizni kiriting"]},{msgid:"Existing version",msgstr:["Mavjud versiya"]},{msgid:"Failed to set nickname.",msgstr:["Taxallusni o‘rnatib bo‘lmadi."]},{msgid:"Favorites",msgstr:["Tanlanganlar"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Tanlangan deb belgilagan fayl va papkalar shu yerda koʻrinadi."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Siz yaqinda oʻzgartirgan fayl va papkalar shu yerda koʻrinadi."]},{msgid:"Filter file list",msgstr:["Fayl ro'yxatini filtrlash"]},{msgid:'Folder names must not end with "{extension}".',msgstr:['Papka nomlari "{extension}" bilan tugamasligi kerak.']},{msgid:"Guest identification",msgstr:["Foydalanuvchini identifikatsiyalash"]},{msgid:"Home",msgstr:["Uy"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi."]},{msgid:"Invalid folder name.",msgstr:["Jild nomi noto'g'ri."]},{msgid:"Invalid name.",msgstr:["Nomi noto‘g‘ri."]},{msgid:"Last modified date unknown",msgstr:["Oxirgi tahrirlangan sana noma'lum"]},{msgid:"Modified",msgstr:["Modifikatsiyalangan"]},{msgid:"Move",msgstr:["Ko'chirish"]},{msgid:"Move to {target}",msgstr:[" {target} ga ko'chirish"]},{msgid:"Name",msgstr:["Nomi"]},{msgid:"Names may be at most 64 characters long.",msgstr:["Ismlar ko'pi bilan 64 ta belgidan iborat bo'lishi mumkin."]},{msgid:"Names must not be empty.",msgstr:["Ismlar bo'sh bo'lmasligi kerak."]},{msgid:'Names must not end with "{extension}".',msgstr:['Ismlar "{extension}" bilan tugamasligi kerak.']},{msgid:"Names must not start with a dot.",msgstr:["Ismlar nuqta bilan boshlanmasligi kerak."]},{msgid:"New",msgstr:["Yangi"]},{msgid:"New folder",msgstr:["Yangi jild"]},{msgid:"New folder name",msgstr:["Yangi jild nomi"]},{msgid:"New version",msgstr:["Yangi versiya"]},{msgid:"No files in here",msgstr:["Fayl mavjud emas"]},{msgid:"No files matching your filter were found.",msgstr:["Filtringizga mos keladigan fayl topilmadi."]},{msgid:"No matching files",msgstr:["Mos fayllar yo'q"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["Kamida 2 ta belgidan iborat nom kiriting."]},{msgid:"Recent",msgstr:["Yaqinda"]},{msgid:"Select all checkboxes",msgstr:["Barcha katakchalarni belgilang"]},{msgid:"Select all entries",msgstr:["Barcha yozuvlarni tanlang"]},{msgid:"Select all existing files",msgstr:["Barcha mavjud fayllarni tanlang"]},{msgid:"Select all new files",msgstr:["Barcha yangi fayllarni tanlang"]},{msgid:"Select entry",msgstr:["Yozuvni tanlang"]},{msgid:"Select the row for {nodename}",msgstr:["{nodename} uchun qatorni tanlang"]},{msgid:"Size",msgstr:["O`lcham"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["%n faylni oʻtkazib yuborish"]},{msgid:"Skip this file",msgstr:["Ushbu faylni o'tkazib yuboring"]},{msgid:"Submit name",msgstr:["Ismni tasdiqlang"]},{msgid:"Undo",msgstr:["Bekor qilish"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Qurilmangizga ba'zi kontentni yuklang yoki sinxronlang!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Kiruvchi papka tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi."]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Kiruvchi papka tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi."]},{msgid:"Which files do you want to keep?",msgstr:["Qaysi fayllarni saqlamoqchisiz?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["Siz hozirda {nickname} sifatida aniqlangansiz."]},{msgid:"You are currently not identified.",msgstr:["Siz hozirda identifikatsiyadan o'tmagansiz"]},{msgid:"You cannot leave the name empty.",msgstr:["Ism katagini bo'sh qoldirib bo'lmaydi."]},{msgid:"You need to choose at least one conflict solution",msgstr:["Siz kamida bitta mojaro yechimini tanlashingiz kerak"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak."]}]},{language:"vi",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:['"{name}" là tên thư mục không hợp lệ.']},{msgid:'"{name}" is not an allowed folder name',msgstr:['"1{name}"không phải là tên thư mục được cho phép']},{msgid:'"/" is not allowed inside a folder name.',msgstr:['"/"không được phép đặt trong tên thư mục.']},{msgid:"All files",msgstr:["Tất cả tệp"]},{msgid:"Choose",msgstr:["Chọn"]},{msgid:"Choose {file}",msgstr:["Chọn {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["Chọn %n tệp"]},{msgid:"Copy",msgstr:["Sao chép"]},{msgid:"Copy to {target}",msgstr:["Sao chép đến {target}"]},{msgid:"Could not create the new folder",msgstr:["Không thể tạo thư mục mới"]},{msgid:"Could not load files settings",msgstr:["Không thể tải tập tin cài đặt"]},{msgid:"Could not load files views",msgstr:["Không thể tải xuống tệp xem"]},{msgid:"Create directory",msgstr:["Tạo thư mục"]},{msgid:"Current view selector",msgstr:["Hiện tại chế độ xem của bộ chọn"]},{msgid:"Favorites",msgstr:["Yêu cầu thích"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["Các tập tin và thư mục bạn đánh dấu yêu thích sẽ hiển thị ở đây."]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["Các tập tin và thư mục bạn sửa đổi gần đây sẽ hiển thị ở đây."]},{msgid:"Filter file list",msgstr:["Filter list file"]},{msgid:"Folder name cannot be empty.",msgstr:["Thư mục tên không được để trống."]},{msgid:"Home",msgstr:["Trang chủ"]},{msgid:"Modified",msgstr:["Đã sửa đổi"]},{msgid:"Move",msgstr:["Di chuyển"]},{msgid:"Move to {target}",msgstr:["Di chuyển đến{target}"]},{msgid:"Name",msgstr:["Tên"]},{msgid:"New",msgstr:["Mới"]},{msgid:"New folder",msgstr:["New thư mục"]},{msgid:"New folder name",msgstr:["New thư mục tên"]},{msgid:"No files in here",msgstr:["No file at here"]},{msgid:"No files matching your filter were found.",msgstr:["Không tìm thấy tệp nào phù hợp với bộ lọc của bạn."]},{msgid:"No matching files",msgstr:["No file phù hợp"]},{msgid:"Recent",msgstr:["Gần đây"]},{msgid:"Select all entries",msgstr:["Choose all items"]},{msgid:"Select entry",msgstr:["Chọn mục nhập"]},{msgid:"Select the row for {nodename}",msgstr:["Choose hang cho{nodename}"]},{msgid:"Size",msgstr:["Kích cỡ"]},{msgid:"Undo",msgstr:["Hoàn tác"]},{msgid:"Upload some content or sync with your devices!",msgstr:["Tải lên một số nội dung hoặc đồng bộ hóa với thiết bị của bạn!"]}]},{language:"zh_CN",translations:[{msgid:'"{name}" is an invalid folder name.',msgstr:["“{name}” 是无效的文件夹名称。"]},{msgid:'"{name}" is not an allowed folder name',msgstr:["“{name}” 不是允许的文件夹名称"]},{msgid:'"/" is not allowed inside a folder name.',msgstr:["文件夹名称中不允许包含 “/”。"]},{msgid:"All files",msgstr:["所有文件"]},{msgid:"Choose",msgstr:["选择"]},{msgid:"Choose {file}",msgstr:["选择 {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["选择 %n 个文件"]},{msgid:"Copy",msgstr:["复制"]},{msgid:"Copy to {target}",msgstr:["复制到 {target}"]},{msgid:"Could not create the new folder",msgstr:["无法创建新文件夹"]},{msgid:"Could not load files settings",msgstr:["无法加载文件设置"]},{msgid:"Could not load files views",msgstr:["无法加载文件视图"]},{msgid:"Create directory",msgstr:["创建目录"]},{msgid:"Current view selector",msgstr:["当前视图选择器"]},{msgid:"Favorites",msgstr:["最爱"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您标记为最爱的文件与文件夹会显示在这里"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的文件与文件夹会显示在这里"]},{msgid:"Filter file list",msgstr:["过滤文件列表"]},{msgid:"Folder name cannot be empty.",msgstr:["文件夹名称不能为空。"]},{msgid:"Home",msgstr:["主目录"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移动"]},{msgid:"Move to {target}",msgstr:["移动至 {target}"]},{msgid:"Name",msgstr:["名称"]},{msgid:"New",msgstr:["新建"]},{msgid:"New folder",msgstr:["新文件夹"]},{msgid:"New folder name",msgstr:["新文件夹名称"]},{msgid:"No files in here",msgstr:["此处无文件"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您过滤条件的文件"]},{msgid:"No matching files",msgstr:["无符合的文件"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all entries",msgstr:["选择所有条目"]},{msgid:"Select entry",msgstr:["选择条目"]},{msgid:"Select the row for {nodename}",msgstr:["选择 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Undo",msgstr:[" 撤消"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上传一些项目或与您的设备同步!"]}]},{language:"zh_HK",translations:[{msgid:'"{char}" is not allowed inside a folder name.',msgstr:["資料夾名稱中不允許使用「{char}」。"]},{msgid:'"{char}" is not allowed inside a name.',msgstr:['名稱中不能使用 "{char}"。']},{msgid:'"{extension}" is not an allowed name.',msgstr:["「{extension}」並非允許的名稱。"]},{msgid:'"{segment}" is a reserved name and not allowed for folder names.',msgstr:["「{segment}」為保留名稱,不能用作資料夾名稱。"]},{msgid:'"{segment}" is a reserved name and not allowed.',msgstr:["「{segment}」是一個保留名稱,不能使用。"]},{msgid:"%n file conflict",msgid_plural:"%n files conflict",msgstr:["%n 檔案衝突"]},{msgid:"%n file conflict in {dirname}",msgid_plural:"%n file conflicts in {dirname}",msgstr:["{dirname} 中有 %n 個檔案衝突"]},{msgid:"All files",msgstr:["所有檔案"]},{msgid:"Cancel",msgstr:["取消"]},{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},{msgid:"Choose",msgstr:["選擇"]},{msgid:"Choose {file}",msgstr:["選擇 {file}"]},{msgid:"Choose %n file",msgid_plural:"Choose %n files",msgstr:["選擇 %n 個檔案"]},{msgid:"Confirm",msgstr:["確認"]},{msgid:"Continue",msgstr:["繼續"]},{msgid:"Copy",msgstr:["複製"]},{msgid:"Copy to {target}",msgstr:["複製到 {target}"]},{msgid:"Could not create the new folder",msgstr:["無法建立新資料夾"]},{msgid:"Could not load files settings",msgstr:["無法載入檔案設定"]},{msgid:"Could not load files views",msgstr:["無法載入檔案視圖"]},{msgid:"Create directory",msgstr:["建立目錄"]},{msgid:"Current view selector",msgstr:["目前視圖選擇器"]},{msgid:"Enter your name",msgstr:["輸入您的名字"]},{msgid:"Existing version",msgstr:["現有的版本"]},{msgid:"Failed to set nickname.",msgstr:["無法設置暱稱。"]},{msgid:"Favorites",msgstr:["最愛"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您標記為最愛的檔案與資料夾將會顯示在此處。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的檔案與資料夾將會顯示在此處。"]},{msgid:"Filter file list",msgstr:["過濾檔案清單"]},{msgid:'Folder names must not end with "{extension}".',msgstr:["資料夾名稱不得以「{extension}」結尾。"]},{msgid:"Guest identification",msgstr:["訪客身份識別"]},{msgid:"Home",msgstr:["首頁"]},{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["如果您選擇兩個版本,傳入的檔案名稱將會附加一個數字。"]},{msgid:"Invalid folder name.",msgstr:["無效的資料夾名稱。"]},{msgid:"Invalid name.",msgstr:["無效的名字。"]},{msgid:"Last modified date unknown",msgstr:["最後的修改日期不詳"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["移動至 {target}"]},{msgid:"Name",msgstr:["名稱"]},{msgid:"Names may be at most 64 characters long.",msgstr:["名稱長度最多為 64 個字元。"]},{msgid:"Names must not be empty.",msgstr:["名稱不能為空。"]},{msgid:'Names must not end with "{extension}".',msgstr:["名稱不得以「{extension}」結尾。"]},{msgid:"Names must not start with a dot.",msgstr:["名稱不得以點開頭。"]},{msgid:"New",msgstr:["新"]},{msgid:"New folder",msgstr:["新資料夾"]},{msgid:"New folder name",msgstr:["新資料夾名稱"]},{msgid:"New version",msgstr:["新版本"]},{msgid:"No files in here",msgstr:["此處無檔案"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您過濾條件的檔案。"]},{msgid:"No matching files",msgstr:["沒有匹配的檔案"]},{msgid:"Please enter a name with at least 2 characters.",msgstr:["請輸入至少 2 個字符的名稱。"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all checkboxes",msgstr:["選擇所有復選框"]},{msgid:"Select all entries",msgstr:["選擇所有項目"]},{msgid:"Select all existing files",msgstr:["選擇所有現有的檔案"]},{msgid:"Select all new files",msgstr:["選擇所有新檔案"]},{msgid:"Select entry",msgstr:["選擇項目"]},{msgid:"Select the row for {nodename}",msgstr:["選擇 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Skip %n file",msgid_plural:"Skip %n files",msgstr:["跳過 %n 個檔案"]},{msgid:"Skip this file",msgstr:["跳過此檔案"]},{msgid:"Submit name",msgstr:["遞交名字"]},{msgid:"Undo",msgstr:["還原"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上傳一些內容或與您的裝置同步!"]},{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾時,其中任何衝突的檔案也將被覆蓋。"]},{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["當選取傳入資料夾時,內容將寫入現有資料夾,並執行遞歸衝突解決。"]},{msgid:"Which files do you want to keep?",msgstr:["你想保留哪些檔案?"]},{msgid:"You are currently identified as {nickname}.",msgstr:["您目前被識別為 {nickname}。"]},{msgid:"You are currently not identified.",msgstr:["您目前尚未被識別。"]},{msgid:"You cannot leave the name empty.",msgstr:["名稱不能留空。"]},{msgid:"You need to choose at least one conflict solution",msgstr:["你需要選擇至少一種衝突解決方案。"]},{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須選擇每個文件的至少一個版本才能繼續。"]}]},{language:"zh_TW",translations:[{msgid:'"{name}" is an invalid file name.',msgstr:["「{name}」是無效的檔案名稱。"]},{msgid:'"{name}" is not an allowed filetype',msgstr:["「{name}」並非允許的檔案類型"]},{msgid:'"/" is not allowed inside a file name.',msgstr:["檔案名稱中不允許使用「/」。"]},{msgid:"All files",msgstr:["所有檔案"]},{msgid:"Choose",msgstr:["選擇"]},{msgid:"Choose {file}",msgstr:["選擇 {file}"]},{msgid:"Copy",msgstr:["複製"]},{msgid:"Copy to {target}",msgstr:["複製到 {target}"]},{msgid:"Could not create the new folder",msgstr:["無法建立新資料夾"]},{msgid:"Create directory",msgstr:["建立目錄"]},{msgid:"Current view selector",msgstr:["目前檢視選取器"]},{msgid:"Favorites",msgstr:["最愛"]},{msgid:"File name cannot be empty.",msgstr:["檔案名稱不能為空。"]},{msgid:"Filepicker sections",msgstr:["檔案挑選器選取"]},{msgid:"Files and folders you mark as favorite will show up here.",msgstr:["您標記為最愛的檔案與資料夾將會顯示在此處。"]},{msgid:"Files and folders you recently modified will show up here.",msgstr:["您最近修改的檔案與資料夾將會顯示在此處。"]},{msgid:"Filter file list",msgstr:["過濾檔案清單"]},{msgid:"Home",msgstr:["家"]},{msgid:"Mime type {mime}",msgstr:["Mime type {mime}"]},{msgid:"Modified",msgstr:["已修改"]},{msgid:"Move",msgstr:["移動"]},{msgid:"Move to {target}",msgstr:["移動至 {target}"]},{msgid:"Name",msgstr:["名稱"]},{msgid:"New",msgstr:["新"]},{msgid:"New folder",msgstr:["新資料夾"]},{msgid:"New folder name",msgstr:["新資料夾名稱"]},{msgid:"No files in here",msgstr:["此處無檔案"]},{msgid:"No files matching your filter were found.",msgstr:["找不到符合您過濾條件的檔案。"]},{msgid:"No matching files",msgstr:["無符合的檔案"]},{msgid:"Recent",msgstr:["最近"]},{msgid:"Select all entries",msgstr:["選取所有條目"]},{msgid:"Select entry",msgstr:["選取條目"]},{msgid:"Select the row for {nodename}",msgstr:["選取 {nodename} 的列"]},{msgid:"Size",msgstr:["大小"]},{msgid:"Undo",msgstr:["復原"]},{msgid:"unknown",msgstr:["未知"]},{msgid:"Upload some content or sync with your devices!",msgstr:["上傳一些內容或與您的裝置同步"]}]}]){const{language:u,translations:t}=e,s={headers:{},translations:{"":Object.fromEntries(t.map(n=>[n.msgid,n]))}};N3.addTranslation(u,s)}const _i=N3.build();_i.ngettext.bind(_i),_i.gettext.bind(_i);Jm().setApp("@nextcloud/dialogs").detectLogLevel().build();const oC="off",rC="polite",aC="assertive";var br=(e=>(e[e.OFF=oC]="OFF",e[e.POLITE=rC]="POLITE",e[e.ASSERTIVE=aC]="ASSERTIVE",e))(br||{});const lC=7e3;function S3(e,u){if(u={timeout:lC,isHTML:!1,type:void 0,selector:void 0,onRemove:()=>{},onClick:void 0,close:!0,...u},typeof e=="string"&&!u.isHTML){const o=document.createElement("div");o.innerHTML=e,e=o.innerText}let t=u.type??"";typeof u.onClick=="function"&&(t+=" toast-with-click ");const s=e instanceof Node;let n=br.POLITE;u.ariaLive?n=u.ariaLive:(u.type==="toast-error"||u.type==="toast-undo")&&(n=br.ASSERTIVE);const i=j1({[s?"node":"text"]:e,duration:u.timeout,callback:u.onRemove,onClick:u.onClick,close:u.close,gravity:"top",selector:u.selector,position:"right",backgroundColor:"",className:"dialogs "+t,escapeMarkup:!u.isHTML,ariaLive:n});return i.showToast(),i}function hy(e,u){return S3(e,{...u,type:"toast-error"})}function vy(e,u){return S3(e,{...u,type:"toast-success"})}function q0(){return typeof window<"u"}function cn(e){return _3(e)?(e.nodeName||"").toLowerCase():"#document"}function Ou(e){var u;return(e==null||(u=e.ownerDocument)==null?void 0:u.defaultView)||window}function Mt(e){var u;return(u=(_3(e)?e.ownerDocument:e.document)||window.document)==null?void 0:u.documentElement}function _3(e){return q0()?e instanceof Node||e instanceof Ou(e).Node:!1}function Ct(e){return q0()?e instanceof Element||e instanceof Ou(e).Element:!1}function ns(e){return q0()?e instanceof HTMLElement||e instanceof Ou(e).HTMLElement:!1}function D4(e){return!q0()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Ou(e).ShadowRoot}function Y0(e){const{overflow:u,overflowX:t,overflowY:s,display:n}=Bt(e);return/auto|scroll|overlay|hidden|clip/.test(u+s+t)&&n!=="inline"&&n!=="contents"}function dC(e){return/^(table|td|th)$/.test(cn(e))}function Z0(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const mC=/transform|translate|scale|rotate|perspective|filter/,cC=/paint|layout|strict|content/,cs=e=>!!e&&e!=="none";let Vo;function ia(e){const u=Ct(e)?Bt(e):e;return cs(u.transform)||cs(u.translate)||cs(u.scale)||cs(u.rotate)||cs(u.perspective)||!oa()&&(cs(u.backdropFilter)||cs(u.filter))||mC.test(u.willChange||"")||cC.test(u.contain||"")}function gC(e){let u=_s(e);for(;ns(u)&&!ti(u);){if(ia(u))return u;if(Z0(u))return null;u=_s(u)}return null}function oa(){return Vo==null&&(Vo=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Vo}function ti(e){return/^(html|body|#document)$/.test(cn(e))}function Bt(e){return Ou(e).getComputedStyle(e)}function X0(e){return Ct(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function _s(e){if(cn(e)==="html")return e;const u=e.assignedSlot||e.parentNode||D4(e)&&e.host||Mt(e);return D4(u)?u.host:u}function O3(e){const u=_s(e);return ti(u)?(e.ownerDocument||e).body:ns(u)&&Y0(u)?u:O3(u)}function si(e,u,t){var s;u===void 0&&(u=[]),t===void 0&&(t=!0);const n=O3(e),i=n===((s=e.ownerDocument)==null?void 0:s.body),o=Ou(n);if(i){const r=Dr(o);return u.concat(o,o.visualViewport||[],Y0(n)?n:[],r&&t?si(r):[])}else return u.concat(n,si(n,[],t))}function Dr(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function T3(e){const u=Bt(e);let t=parseFloat(u.width)||0,s=parseFloat(u.height)||0;const n=ns(e),i=n?e.offsetWidth:t,o=n?e.offsetHeight:s,r=E0(t)!==i||E0(s)!==o;return r&&(t=i,s=o),{width:t,height:s,$:r}}function ra(e){return Ct(e)?e:e.contextElement}function on(e){const u=ra(e);if(!ns(u))return Tt(1);const t=u.getBoundingClientRect(),{width:s,height:n,$:i}=T3(u);let o=(i?E0(t.width):t.width)/s,r=(i?E0(t.height):t.height)/n;return(!o||!Number.isFinite(o))&&(o=1),(!r||!Number.isFinite(r))&&(r=1),{x:o,y:r}}const fC=Tt(0);function z3(e){const u=Ou(e);return!oa()||!u.visualViewport?fC:{x:u.visualViewport.offsetLeft,y:u.visualViewport.offsetTop}}function pC(e,u,t){return u===void 0&&(u=!1),!!t&&u&&t===Ou(e)}function Os(e,u,t,s){u===void 0&&(u=!1),t===void 0&&(t=!1);const n=e.getBoundingClientRect(),i=ra(e);let o=Tt(1);u&&(s?Ct(s)&&(o=on(s)):o=on(e));const r=pC(i,t,s)?z3(i):Tt(0);let a=(n.left+r.x)/o.x,m=(n.top+r.y)/o.y,l=n.width/o.x,g=n.height/o.y;if(i&&s){const p=Ou(i),h=Ct(s)?Ou(s):s;let y=p,E=Dr(y);for(;E&&h!==y;){const F=on(E),B=E.getBoundingClientRect(),A=Bt(E),O=B.left+(E.clientLeft+parseFloat(A.paddingLeft))*F.x,N=B.top+(E.clientTop+parseFloat(A.paddingTop))*F.y;a*=F.x,m*=F.y,l*=F.x,g*=F.y,a+=O,m+=N,y=Ou(E),E=Dr(y)}}return Fs({width:l,height:g,x:a,y:m})}function J0(e,u){const t=X0(e).scrollLeft;return u?u.left+t:Os(Mt(e)).left+t}function P3(e,u){const t=e.getBoundingClientRect(),s=t.left+u.scrollLeft-J0(e,t),n=t.top+u.scrollTop;return{x:s,y:n}}function hC(e){let{elements:u,rect:t,offsetParent:s,strategy:n}=e;const i=n==="fixed",o=Mt(s),r=u?Z0(u.floating):!1;if(s===o||r&&i)return t;let a={scrollLeft:0,scrollTop:0},m=Tt(1);const l=Tt(0),g=ns(s);if((g||!i)&&((cn(s)!=="body"||Y0(o))&&(a=X0(s)),g)){const h=Os(s);m=on(s),l.x=h.x+s.clientLeft,l.y=h.y+s.clientTop}const p=o&&!g&&!i?P3(o,a):Tt(0);return{width:t.width*m.x,height:t.height*m.y,x:t.x*m.x-a.scrollLeft*m.x+l.x+p.x,y:t.y*m.y-a.scrollTop*m.y+l.y+p.y}}function vC(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function EC(e){const u=X0(e),t=e.ownerDocument.body,s=Ot(e.scrollWidth,e.clientWidth,t.scrollWidth,t.clientWidth),n=Ot(e.scrollHeight,e.clientHeight,t.scrollHeight,t.clientHeight);let i=-u.scrollLeft+J0(e);const o=-u.scrollTop;return Bt(t).direction==="rtl"&&(i+=Ot(e.clientWidth,t.clientWidth)-s),{width:s,height:n,x:i,y:o}}const CC=25;function BC(e,u,t){t===void 0&&(t="viewport");const s=t==="layoutViewport",n=Ou(e),i=Mt(e),o=n.visualViewport;let r=i.clientWidth,a=i.clientHeight,m=0,l=0;if(o){const g=!oa()||u==="fixed";s?g||(m=-o.offsetLeft,l=-o.offsetTop):(r=o.width,a=o.height,g&&(m=o.offsetLeft,l=o.offsetTop))}if(J0(i)<=0){const g=i.ownerDocument,p=g.body,h=getComputedStyle(p),y=g.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,E=Math.abs(i.clientWidth-p.clientWidth-y),F=getComputedStyle(i).scrollbarGutter==="stable both-edges"?E/2:E;F<=CC&&(r-=F)}return{width:r,height:a,x:m,y:l}}function yC(e,u){const t=Os(e,!0,u==="fixed"),s=t.top+e.clientTop,n=t.left+e.clientLeft,i=on(e),o=e.clientWidth*i.x,r=e.clientHeight*i.y,a=n*i.x,m=s*i.y;return{width:o,height:r,x:a,y:m}}function F4(e,u,t){let s;if(u==="viewport"||u==="layoutViewport")s=BC(e,t,u);else if(u==="document")s=EC(Mt(e));else if(Ct(u))s=yC(u,t);else{const n=z3(e);s={x:u.x-n.x,y:u.y-n.y,width:u.width,height:u.height}}return Fs(s)}function xC(e,u){const t=u.get(e);if(t)return t;let s=si(e,[],!1).filter(r=>Ct(r)&&cn(r)!=="body"),n=null;const i=Bt(e).position==="fixed";let o=i?_s(e):e;for(;Ct(o)&&!ti(o);){const r=Bt(o),a=ia(o),m=n?n.position:i?"fixed":"";!a&&(m==="fixed"||m==="absolute"&&r.position==="static")?s=s.filter(l=>l!==o):n=r,o=_s(o)}return u.set(e,s),s}function AC(e){let{element:u,boundary:t,rootBoundary:s,strategy:n}=e;const i=[...t==="clippingAncestors"?Z0(u)?[]:xC(u,this._c):[].concat(t),s],o=F4(u,i[0],n);let r=o.top,a=o.right,m=o.bottom,l=o.left;for(let g=1;g{r(!1,1e-7)},1e3)}I=!1}try{s=new IntersectionObserver(Y,{...K,root:i.ownerDocument})}catch{s=new IntersectionObserver(Y,K)}s.observe(e)}const a=Ou(e),m=()=>r(t);return a.addEventListener("resize",m),r(!0),()=>{a.removeEventListener("resize",m),o()}}function SC(e,u,t,s){s===void 0&&(s={});const{ancestorScroll:n=!0,ancestorResize:i=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:r=typeof IntersectionObserver=="function",animationFrame:a=!1}=s,m=ra(e),l=n||i?[...m?si(m):[],...u?si(u):[]]:[];l.forEach(B=>{n&&B.addEventListener("scroll",t),i&&B.addEventListener("resize",t)});const g=m&&r?NC(m,t,i):null;let p=-1,h=null;o&&(h=new ResizeObserver(B=>{let[A]=B;A&&A.target===m&&h&&u&&(h.unobserve(u),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var O;(O=h)==null||O.observe(u)})),t()}),m&&!a&&h.observe(m),u&&h.observe(u));let y,E=a?Os(e):null;a&&F();function F(){const B=Os(e);E&&!L3(E,B)&&t(),E=B,y=requestAnimationFrame(F)}return t(),()=>{var B;l.forEach(A=>{n&&A.removeEventListener("scroll",t),i&&A.removeEventListener("resize",t)}),g?.(),(B=h)==null||B.disconnect(),h=null,a&&cancelAnimationFrame(y)}}const _C=g3,OC=f3,TC=m3,zC=hE,PC=(e,u,t)=>{const s=new Map,n=t??{},i={...kC,...n.platform,_c:s};return d3(e,u,{...n,platform:i})},RC={mounted(e,{instance:u}){if(u.appendToBody){document.body.appendChild(e);const{height:t,top:s,left:n,width:i}=u.$refs.toggle.getBoundingClientRect(),o=window.scrollX||window.pageXOffset,r=window.scrollY||window.pageYOffset;e.unbindPosition=u.calculatePosition(e,u,{width:i+"px",left:o+n+"px",top:r+s+t+"px"})}},unmounted(e,{instance:u}){u.appendToBody&&(e.unbindPosition&&typeof e.unbindPosition=="function"&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}},LC={props:{loading:{type:Boolean,default:!1}},data(){return{mutableLoading:!1}},watch:{search(){this.$emit("search",this.search,this.toggleLoading)},loading(e){this.mutableLoading=e}},methods:{toggleLoading(e=null){return e==null?this.mutableLoading=!this.mutableLoading:this.mutableLoading=e}}},jC={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(e){this.autoscroll&&e&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){const e=this.$refs.dropdownMenu?.children[this.typeAheadPointer]||!1;if(e){const u=this.getDropdownViewport(),{top:t,bottom:s,height:n}=e.getBoundingClientRect();if(tu.bottom)return this.$refs.dropdownMenu.scrollTop=e.offsetTop-(u.height-n)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},IC={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){if(this.resetFocusOnOptionsChange){for(let e=0;e=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown(){for(let e=this.typeAheadPointer+1;e{u[t]=e[t]}),JSON.stringify(u)}let $C=0;function UC(){return++$C}const aa=(e,u)=>{const t=e.__vccOpts||e;for(const[s,n]of u)t[s]=n;return t},VC={},WC={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"};function HC(e,u){return me(),Be("svg",WC,[...u[0]||(u[0]=[Ce("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1)])])}const GC=aa(VC,[["render",HC]]),KC={},qC={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"};function YC(e,u){return me(),Be("svg",qC,[...u[0]||(u[0]=[Ce("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1)])])}const ZC=aa(KC,[["render",YC]]),N4={Deselect:GC,OpenIndicator:ZC},XC={components:{...N4},directives:{appendToBody:RC},mixins:[jC,IC,LC],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},ariaLabelCombobox:{type:String,default:"Search for options"},ariaLabelListbox:{type:String,default:"Options"},ariaLabelClearSelected:{type:String,default:"Clear selected"},ariaLabelDeselectOption:{type:Function,default:e=>`Deselect ${e}`},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:e=>e},selectable:{type:Function,default:()=>!0},getOptionLabel:{type:Function,default(e){return typeof e=="object"?Object.hasOwn(e,this.label)?e[this.label]:fl(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(e)}. +https://vue-select.org/api/props.html#getoptionlabel`):e}},getOptionKey:{type:Function,default(e){if(typeof e!="object")return e;try{return Object.hasOwn(e,"id")?e.id:MC(e)}catch{return fl()}}},onTab:{type:Function,default(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(e,u,t){return(u||"").toLocaleLowerCase().indexOf(t.toLocaleLowerCase())>-1}},filter:{type:Function,default(e,u){return e.filter(t=>{let s=this.getOptionLabel(t);return typeof s=="number"&&(s=s.toString()),this.filterBy(t,s,u)})}},createOption:{type:Function,default(e){return typeof this.optionList[0]=="object"?{[this.label]:e}:e}},resetFocusOnOptionsChange:{type:Boolean,default:!0},resetOnOptionsChange:{default:!1,validator:e=>["function","boolean"].includes(typeof e)},clearSearchOnBlur:{type:Function,default({clearSearchOnSelect:e,multiple:u}){return e&&!u}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:e=>e},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(e,u,{width:t,top:s,left:n}){e.style.top=s,e.style.left=n,e.style.width=t}},dropdownShouldOpen:{type:Function,default({noDrop:e,open:u,mutableLoading:t}){return e?!1:u&&!t}},keyboardFocusBorder:{type:Boolean,default:!1},uid:{type:[String,Number],default:()=>UC()}},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],data(){return{search:"",open:!1,isComposing:!1,isKeyboardNavigation:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let e=this.modelValue;return this.isTrackingValues&&(e=this.$data._value),e!=null&&e!==""?[].concat(e):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const e={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:{id:this.inputId,disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,role:"combobox","aria-autocomplete":"list","aria-label":this.ariaLabelCombobox,"aria-controls":`vs-${this.uid}__listbox`,"aria-owns":`vs-${this.uid}__listbox`,"aria-expanded":this.dropdownOpen.toString(),ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search,...this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs-${this.uid}__option-${this.typeAheadPointer}`}:{}},events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:u=>this.search=u.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:e,listFooter:e,header:{...e,deselect:this.deselect},footer:{...e,deselect:this.deselect}}},childComponents(){return{...N4,...this.components}},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const e=s=>this.limit!==null?s.slice(0,this.limit):s,u=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e(u);const t=this.search.length?this.filter(u,this.search,this):u;if(this.taggable&&this.search.length)try{const s=this.createOption(this.search);this.optionExists(s)||t.unshift(s)}catch{}return e(t)},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(e,u){const t=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(e,u,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&t()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple(){this.clearSelection()},open(e){this.$emit(e?"open":"close")},search(e){e.length&&(this.open=!0)}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(e){Array.isArray(e)?this.$data._value=e.map(u=>this.findOptionFromReducedValue(u)):this.$data._value=this.findOptionFromReducedValue(e)},select(e){this.$emit("option:selecting",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&(this.$emit("option:created",e),this.pushTag(e)),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit("option:selected",e)),this.onAfterSelect(e)},deselect(e){this.$emit("option:deselecting",e),this.updateValue(this.selectedValue.filter(u=>!this.optionComparator(u,e))),this.$emit("option:deselected",e)},keyboardDeselect(e,u){this.deselect(e);const t=this.deselectButtons?.[u+1],s=this.deselectButtons?.[u-1],n=t??s;n?n.focus():this.searchEl.focus()},clearSelection(){this.updateValue(this.multiple?[]:null),this.searchEl.focus()},onAfterSelect(){this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=""),this.noDrop&&this.multiple&&this.$nextTick(()=>this.$refs.search.focus())},updateValue(e){typeof this.modelValue>"u"&&(this.$data._value=e),e!==null&&(Array.isArray(e)?e=e.map(u=>this.reduce(u)):e=this.reduce(e)),this.$emit("update:modelValue",e)},toggleDropdown(e){const u=e.target!==this.searchEl;u&&e.preventDefault();const t=[...this.deselectButtons||[],...this.$refs.clearButton?[this.$refs.clearButton]:[]];if(this.searchEl===void 0||t.filter(Boolean).some(s=>s.contains(e.target)||s===e.target)){e.preventDefault();return}this.open&&u?(this.open=!1,this.searchEl.blur()):this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(e){return this.selectedValue.some(u=>this.optionComparator(u,e))},isOptionDeselectable(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},hasKeyboardFocusBorder(e){return this.keyboardFocusBorder&&this.isKeyboardNavigation?e===this.typeAheadPointer:!1},optionComparator(e,u){return this.getOptionKey(e)===this.getOptionKey(u)},findOptionFromReducedValue(e){const u=s=>JSON.stringify(this.reduce(s))===JSON.stringify(e),t=[...this.options,...this.pushedTags].filter(u);return t.length===1?t[0]:t.find(s=>this.optionComparator(s,this.$data._value))||e},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let e=null;this.multiple&&(e=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(e)}},optionExists(e){return this.optionList.some(u=>this.optionComparator(u,e))},optionAriaSelected(e){return this.selectable(e)?String(this.isOptionSelected(e)):null},normalizeOptionForSlot(e){return typeof e=="object"?e:{[this.label]:e}},pushTag(e){this.pushedTags.push(e)},onEscape(){this.search.length?this.search="":this.open=!1},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:e,multiple:u}=this;this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:u})&&(this.search=""),this.closeSearchOptions();return}this.search.length===0&&this.options.length===0&&this.closeSearchOptions()},onSearchFocus(){this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onMouseMove(e,u){this.isKeyboardNavigation=!1,this.selectable(e)&&(this.typeAheadPointer=u)},onSearchKeyDown(e){const u=n=>{if(n.preventDefault(),!this.open){this.open=!0;return}return!this.isComposing&&this.typeAheadSelect()},t={8:()=>this.maybeDeleteValue(),9:()=>this.onTab(),27:()=>this.onEscape(),38:n=>{if(n.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadUp()},40:n=>{if(n.preventDefault(),this.isKeyboardNavigation=!0,!this.open){this.open=!0;return}return this.typeAheadDown()}};this.selectOnKeyCodes.forEach(n=>t[n]=u);const s=this.mapKeydown(t,this);if(typeof s[e.keyCode]=="function")return s[e.keyCode](e)},onSearchKeyPress(e){!this.open&&e.keyCode===32&&(e.preventDefault(),this.open=!0)}}},JC=["id","dir"],QC={ref:"toggle",class:"vs__dropdown-toggle"},e6=["disabled","title","aria-label","onMousedown","onKeydown"],u6={ref:"actions",class:"vs__actions"},t6=["disabled","title","aria-label"],s6={class:"vs__spinner"},n6=["id","aria-label","aria-multiselectable"],i6=["id","aria-selected","onMousemove","onClick"],o6={key:0,class:"vs__no-options"},r6=["id","aria-label"];function a6(e,u,t,s,n,i){const o=Of("append-to-body");return me(),Be("div",{id:`v-select-${t.uid}`,dir:t.dir,class:Iu(["v-select",i.stateClasses])},[Ve(e.$slots,"header",Fu(Eu(i.scope.header))),Ce("div",QC,[Ce("div",{ref:"selectedOptions",class:"vs__selected-options",onMousedown:u[0]||(u[0]=(...r)=>i.toggleDropdown&&i.toggleDropdown(...r))},[(me(!0),Be(tu,null,nr(i.selectedValue,(r,a)=>Ve(e.$slots,"selected-option-container",{option:i.normalizeOptionForSlot(r),deselect:i.deselect,multiple:t.multiple,disabled:t.disabled},()=>[(me(),Be("span",{key:t.getOptionKey(r),class:"vs__selected"},[Ve(e.$slots,"selected-option",_u({ref_for:!0},i.normalizeOptionForSlot(r)),()=>[tn(Mu(t.getOptionLabel(r)),1)]),t.multiple?(me(),Be("button",{key:0,ref_for:!0,ref:m=>n.deselectButtons[a]=m,disabled:t.disabled,type:"button",class:"vs__deselect",title:t.ariaLabelDeselectOption(t.getOptionLabel(r)),"aria-label":t.ariaLabelDeselectOption(t.getOptionLabel(r)),onMousedown:ji(m=>i.deselect(r),["stop"]),onKeydown:Tm(m=>i.keyboardDeselect(r,a),["enter"])},[(me(),pu(Ri(i.childComponents.Deselect)))],40,e6)):au("",!0)]))])),256)),Ve(e.$slots,"search",Fu(Eu(i.scope.search)),()=>[Ce("input",_u({class:"vs__search"},i.scope.search.attributes,Qd(i.scope.search.events,!0)),null,16)])],544),Ce("div",u6,[Es(Ce("button",{ref:"clearButton",disabled:t.disabled,type:"button",class:"vs__clear",title:t.ariaLabelClearSelected,"aria-label":t.ariaLabelClearSelected,onClick:u[1]||(u[1]=(...r)=>i.clearSelection&&i.clearSelection(...r))},[(me(),pu(Ri(i.childComponents.Deselect)))],8,t6),[[Zs,i.showClearButton]]),t.noDrop?au("",!0):(me(),Be("button",{key:0,ref:"openIndicatorButton",class:"vs__open-indicator-button",type:"button",tabindex:"-1","aria-hidden":"true",onMousedown:u[2]||(u[2]=(...r)=>i.toggleDropdown&&i.toggleDropdown(...r))},[Ve(e.$slots,"open-indicator",Fu(Eu(i.scope.openIndicator)),()=>[(me(),pu(Ri(i.childComponents.OpenIndicator),Fu(Eu(i.scope.openIndicator.attributes)),null,16))])],544)),Ve(e.$slots,"spinner",Fu(Eu(i.scope.spinner)),()=>[Es(Ce("div",s6," Loading... ",512),[[Zs,e.mutableLoading]])])],512)],512),Ee(Ks,{name:t.transition},{default:Me(()=>[i.dropdownOpen?Es((me(),Be("ul",{id:`vs-${t.uid}__listbox`,ref:"dropdownMenu",key:`vs-${t.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox","aria-label":t.ariaLabelListbox,"aria-multiselectable":t.multiple?"true":null,tabindex:"-1",onMousedown:u[3]||(u[3]=ji((...r)=>i.onMousedown&&i.onMousedown(...r),["prevent"])),onMouseup:u[4]||(u[4]=(...r)=>i.onMouseUp&&i.onMouseUp(...r))},[Ve(e.$slots,"list-header",Fu(Eu(i.scope.listHeader))),(me(!0),Be(tu,null,nr(i.filteredOptions,(r,a)=>(me(),Be("li",{id:`vs-${t.uid}__option-${a}`,key:t.getOptionKey(r),role:"option",class:Iu(["vs__dropdown-option",{"vs__dropdown-option--deselect":i.isOptionDeselectable(r)&&a===e.typeAheadPointer,"vs__dropdown-option--selected":i.isOptionSelected(r),"vs__dropdown-option--highlight":a===e.typeAheadPointer,"vs__dropdown-option--kb-focus":i.hasKeyboardFocusBorder(a),"vs__dropdown-option--disabled":!t.selectable(r)}]),"aria-selected":i.optionAriaSelected(r),onMousemove:m=>i.onMouseMove(r,a),onClick:ji(m=>t.selectable(r)?i.select(r):null,["prevent","stop"])},[Ve(e.$slots,"option",_u({ref_for:!0},i.normalizeOptionForSlot(r)),()=>[tn(Mu(t.getOptionLabel(r)),1)])],42,i6))),128)),i.filteredOptions.length===0?(me(),Be("li",o6,[Ve(e.$slots,"no-options",Fu(Eu(i.scope.noOptions)),()=>[u[5]||(u[5]=tn(" Sorry, no matching options. ",-1))])])):au("",!0),Ve(e.$slots,"list-footer",Fu(Eu(i.scope.listFooter)))],40,n6)),[[o]]):(me(),Be("ul",{key:1,id:`vs-${t.uid}__listbox`,role:"listbox","aria-label":t.ariaLabelListbox,style:{display:"none",visibility:"hidden"}},null,8,r6))]),_:3},8,["name"]),Ve(e.$slots,"footer",Fu(Eu(i.scope.footer)))],10,JC)}const gs=aa(XC,[["render",a6]]);function j3(e,u){const t=[];let s=0,n=e.toLowerCase().indexOf(u.toLowerCase(),s),i=0;for(;n>-1&&i++[]}},computed:{ranges(){let e=[];return!this.search&&this.highlight.length===0||(this.highlight.length>0?e=this.highlight:e=j3(this.text,this.search),e.forEach((u,t)=>{u.end(t.start0&&u.push({start:t.start<0?0:t.start,end:t.end>this.text.length?this.text.length:t.end}),u),[]),e.sort((u,t)=>u.start-t.start),e=e.reduce((u,t)=>{if(!u.length)u.push(t);else{const s=u.length-1;u[s].end>=t.start?u[s]={start:u[s].start,end:Math.max(u[s].end,t.end)}:u.push(t)}return u},[])),e},chunks(){if(this.ranges.length===0)return[{start:0,end:this.text.length,highlight:!1,text:this.text}];const e=[];let u=0,t=0;for(;u=this.ranges.length&&ue.highlight?lu("strong",{},e.text):e.text)):lu("span",{},this.text)}}),d6={name:"NcEllipsisedOption",components:{NcHighlight:l6},props:{name:{type:String,default:""},search:{type:String,default:""}},computed:{needsTruncate(){return this.name&&this.name.length>=10},split(){return this.name.length-Math.min(Math.floor(this.name.length/2),10)},part1(){return this.needsTruncate?this.name.slice(0,this.split):this.name},part2(){return this.needsTruncate?this.name.slice(this.split):""},highlight1(){return this.search?j3(this.name,this.search):[]},highlight2(){return this.highlight1.map(e=>({start:e.start-this.split,end:e.end-this.split}))}}},m6=["title"];function c6(e,u,t,s,n,i){const o=ft("NcHighlight");return me(),Be("span",{dir:"auto",class:"name-parts",title:t.name},[Ee(o,{class:"name-parts__first",text:i.part1,search:t.search,highlight:i.highlight1},null,8,["text","search","highlight"]),i.part2?(me(),pu(o,{key:0,class:"name-parts__last",text:i.part2,search:t.search,highlight:i.highlight2},null,8,["text","search","highlight"])):au("",!0)],8,m6)}const g6=qu(d6,[["render",c6],["__scopeId","data-v-a612f185"]]);Xn(Uh);const f6={name:"NcSelect",components:{ChevronDown:E1,NcEllipsisedOption:g6,NcLoadingIcon:O1,VueSelect:gs},props:{...gs.props,...gs.mixins.reduce((e,u)=>({...e,...u.props}),{}),ariaLabelClearSelected:{type:String,default:Cu("Clear selected")},ariaLabelCombobox:{type:String,default:null},ariaLabelListbox:{type:String,default:Cu("Options")},ariaLabelDeselectOption:{type:Function,default:e=>Cu("Deselect {option}",{option:e})},appendToBody:{type:Boolean,default:!0},calculatePosition:{type:Function,default:null},keepOpen:{type:Boolean,default:!1},components:{type:Object,default:()=>({Deselect:{render:()=>lu(b1,{size:20,fillColor:"var(--vs-controls-color)",style:[{cursor:"pointer"}]})}})},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},dropdownShouldOpen:{type:Function,default:({noDrop:e,open:u})=>e?!1:u},filterBy:{type:Function,default:null},inputClass:{type:[String,Object],default:null},inputId:{type:String,default:()=>v0()},inputLabel:{type:String,default:null},labelOutside:{type:Boolean,default:!1},keyboardFocusBorder:{type:Boolean,default:!0},label:{type:String,default:null},loading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},mapKeydown:{type:Function,default(e,u){return{...e,27:t=>{u.open&&t.stopPropagation(),e[27](t)}}}},uid:{type:String,default:()=>v0()},placement:{type:String,default:"bottom"},resetFocusOnOptionsChange:{type:Boolean,default:!0},modelValue:{type:[String,Number,Object,Array],default:null},required:{type:Boolean,default:!1}," ":{}},emits:[" ","update:modelValue"],setup(){const e=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),u=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline"));return{avatarSize:e-2*u,isLegacy:Jr}},data(){return{search:""}},computed:{inputRequired(){return this.required?this.modelValue===null||Array.isArray(this.modelValue)&&this.modelValue.length===0:null},localCalculatePosition(){return this.calculatePosition!==null?this.calculatePosition:(e,u,{width:t})=>{e.style.width=t;const s={name:"addClass",fn(){return e.classList.add("vs__dropdown-menu--floating"),{}}},n={name:"togglePlacementClass",fn({placement:o}){return u.$el.classList.toggle("select--drop-up",o==="top"),e.classList.toggle("vs__dropdown-menu--floating-placement-top",o==="top"),{}}},i=()=>{PC(u.$refs.toggle,e,{placement:this.placement,middleware:[_C(-1),s,n,TC(),OC({limiter:zC()})]}).then(({x:o,y:r})=>{Object.assign(e.style,{left:`${o}px`,top:`${r}px`,width:`${u.$refs.toggle.getBoundingClientRect().width}px`})})};return SC(u.$refs.toggle,e,i)}},localFilterBy(){return this.filterBy??gs.props.filterBy.default},localLabel(){return this.label??gs.props.label.default},propsToForward(){const e=[...Object.keys(gs.props),...gs.mixins.flatMap(u=>Object.keys(u.props??{}))];return{...Object.fromEntries(Object.entries(this.$props).filter(([u,t])=>e.includes(u))),calculatePosition:this.localCalculatePosition,closeOnSelect:!this.keepOpen,filterBy:this.localFilterBy,label:this.localLabel}}},mounted(){!this.labelOutside&&!this.inputLabel&&this.ariaLabelCombobox,this.inputLabel&&this.ariaLabelCombobox},methods:{t:Cu}},p6=["for"],h6=["required"];function v6(e,u,t,s,n,i){const o=ft("ChevronDown"),r=ft("NcEllipsisedOption"),a=ft("NcLoadingIcon"),m=ft("VueSelect");return me(),pu(m,_u({class:["select",{"select--legacy":s.isLegacy,"select--no-wrap":t.noWrap}]},i.propsToForward,{onSearch:u[0]||(u[0]=l=>n.search=l),"onUpdate:modelValue":u[1]||(u[1]=l=>e.$emit("update:modelValue",l))}),Tf({search:Me(({attributes:l,events:g})=>[Ce("input",_u({class:["vs__search",[t.inputClass]]},l,{required:i.inputRequired,dir:"auto"},Qd(g,!0)),null,16,h6)]),"open-indicator":Me(({attributes:l})=>[Ee(o,_u(l,{fillColor:"var(--vs-controls-color)",style:{cursor:t.disabled?null:"pointer"},size:26}),null,16,["style"])]),option:Me(l=>[Ve(e.$slots,"option",Fu(Eu(l)),()=>[Ee(r,{name:String(l[i.localLabel]),search:n.search},null,8,["name","search"])])]),"selected-option":Me(l=>[Ve(e.$slots,"selected-option",Fu(Eu(l)),()=>[Ee(r,{name:String(l[i.localLabel]),search:n.search},null,8,["name","search"])])]),spinner:Me(l=>[l.loading?(me(),pu(a,{key:0})):au("",!0)]),"no-options":Me(()=>[tn(Mu(i.t("No results")),1)]),_:2},[!t.labelOutside&&t.inputLabel?{name:"header",fn:Me(()=>[Ce("label",{for:t.inputId,class:"select__label"},Mu(t.inputLabel),9,p6)]),key:"0"}:void 0,nr(e.$slots,(l,g)=>({name:g,fn:Me(p=>[Ve(e.$slots,g,Fu(Eu(p)))])}))]),1040,["class"])}const Ey=qu(f6,[["render",v6]]);function I3(e,u){return function(){return e.apply(u,arguments)}}const{toString:E6}=Object.prototype,{getPrototypeOf:dn}=Object,{iterator:mi,toStringTag:M3}=Symbol,A0=(({hasOwnProperty:e})=>(u,t)=>e.call(u,t))(Object.prototype),ni=(e,u)=>{let t=e;const s=[];for(;t!=null&&t!==Object.prototype;){if(s.indexOf(t)!==-1)return!1;if(s.push(t),A0(t,u))return!0;t=dn(t)}return!1},C6=(e,u)=>e!=null&&ni(e,u)?e[u]:void 0,la=(e=>u=>{const t=E6.call(u);return e[t]||(e[t]=t.slice(8,-1).toLowerCase())})(Object.create(null)),ut=e=>(e=e.toLowerCase(),u=>la(u)===e),Q0=e=>u=>typeof u===e,{isArray:Ts}=Array,mn=Q0("undefined");function gn(e){return e!==null&&!mn(e)&&e.constructor!==null&&!mn(e.constructor)&&Tu(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const $3=ut("ArrayBuffer");function B6(e){let u;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?u=ArrayBuffer.isView(e):u=e&&e.buffer&&$3(e.buffer),u}const y6=Q0("string"),Tu=Q0("function"),U3=Q0("number"),fn=e=>e!==null&&typeof e=="object",x6=e=>e===!0||e===!1,Wi=e=>{if(!fn(e))return!1;const u=dn(e);return(u===null||u===Object.prototype||dn(u)===null)&&!ni(e,M3)&&!ni(e,mi)},A6=e=>{if(!fn(e)||gn(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},w6=ut("Date"),b6=ut("File"),D6=e=>!!(e&&typeof e.uri<"u"),F6=e=>e&&typeof e.getParts<"u",k6=ut("Blob"),N6=ut("FileList"),S6=e=>fn(e)&&Tu(e.pipe);function _6(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Mn<"u"?Mn:{}}const S4=_6(),_4=typeof S4.FormData<"u"?S4.FormData:void 0,O6=e=>{if(!e)return!1;if(_4&&e instanceof _4)return!0;const u=dn(e);if(!u||u===Object.prototype||!Tu(e.append))return!1;const t=la(e);return t==="formdata"||t==="object"&&Tu(e.toString)&&e.toString()==="[object FormData]"},T6=ut("URLSearchParams"),[z6,P6,R6,L6]=["ReadableStream","Request","Response","Headers"].map(ut),j6=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ci(e,u,{allOwnKeys:t=!1}={}){if(e===null||typeof e>"u")return;let s,n;if(typeof e!="object"&&(e=[e]),Ts(e))for(s=0,n=e.length;s0;)if(n=t[s],u===n.toLowerCase())return n;return null}const ys=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Mn,W3=e=>!mn(e)&&e!==ys;function Fr(...e){const{caseless:u,skipUndefined:t}=W3(this)&&this||{},s={},n=(i,o)=>{if(o==="__proto__"||o==="constructor"||o==="prototype")return;const r=u&&typeof o=="string"&&V3(s,o)||o,a=A0(s,r)?s[r]:void 0;Wi(a)&&Wi(i)?s[r]=Fr(a,i):Wi(i)?s[r]=Fr({},i):Ts(i)?s[r]=i.slice():(!t||!mn(i))&&(s[r]=i)};for(let i=0,o=e.length;i(ci(u,(n,i)=>{t&&Tu(n)?Object.defineProperty(e,i,{__proto__:null,value:I3(n,t),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,i,{__proto__:null,value:n,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:s}),e),M6=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),$6=(e,u,t,s)=>{e.prototype=Object.create(u.prototype,s),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:u.prototype}),t&&Object.assign(e.prototype,t)},U6=(e,u,t,s)=>{let n,i,o;const r={};if(u=u||{},e==null)return u;do{for(n=Object.getOwnPropertyNames(e),i=n.length;i-- >0;)o=n[i],(!s||s(o,e,u))&&!r[o]&&(u[o]=e[o],r[o]=!0);e=t!==!1&&dn(e)}while(e&&(!t||t(e,u))&&e!==Object.prototype);return u},V6=(e,u,t)=>{e=String(e),(t===void 0||t>e.length)&&(t=e.length),t-=u.length;const s=e.indexOf(u,t);return s!==-1&&s===t},W6=e=>{if(!e)return null;if(Ts(e))return e;let u=e.length;if(!U3(u))return null;const t=new Array(u);for(;u-- >0;)t[u]=e[u];return t},H6=(e=>u=>e&&u instanceof e)(typeof Uint8Array<"u"&&dn(Uint8Array)),G6=(e,u)=>{const t=(e&&e[mi]).call(e);let s;for(;(s=t.next())&&!s.done;){const n=s.value;u.call(e,n[0],n[1])}},K6=(e,u)=>{let t;const s=[];for(;(t=e.exec(u))!==null;)s.push(t);return s},q6=ut("HTMLFormElement"),Y6=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(u,t,s){return t.toUpperCase()+s}),{propertyIsEnumerable:Z6}=Object.prototype,X6=ut("RegExp"),H3=(e,u)=>{const t=Object.getOwnPropertyDescriptors(e),s={};ci(t,(n,i)=>{let o;(o=u(n,i,e))!==!1&&(s[i]=o||n)}),Object.defineProperties(e,s)},J6=e=>{H3(e,(u,t)=>{if(Tu(e)&&["arguments","caller","callee"].includes(t))return!1;const s=e[t];if(Tu(s)){if(u.enumerable=!1,"writable"in u){u.writable=!1;return}u.set||(u.set=()=>{throw Error("Can not rewrite read-only method '"+t+"'")})}})},Q6=(e,u)=>{const t={},s=n=>{n.forEach(i=>{t[i]=!0})};return Ts(e)?s(e):s(String(e).split(u)),t},e5=()=>{},u5=(e,u)=>e!=null&&Number.isFinite(e=+e)?e:u;function t5(e){return!!(e&&Tu(e.append)&&e[M3]==="FormData"&&e[mi])}const s5=e=>{const u=new WeakSet,t=s=>{if(fn(s)){if(u.has(s))return;if(gn(s))return s;if(!("toJSON"in s)){u.add(s);const n=Ts(s)?[]:{};return ci(s,(i,o)=>{const r=t(i);!mn(r)&&(n[o]=r)}),u.delete(s),n}}return s};return t(e)},n5=ut("AsyncFunction"),i5=e=>e&&(fn(e)||Tu(e))&&Tu(e.then)&&Tu(e.catch),G3=((e,u)=>e?setImmediate:u?((t,s)=>(ys.addEventListener("message",({source:n,data:i})=>{n===ys&&i===t&&s.length&&s.shift()()},!1),n=>{s.push(n),ys.postMessage(t,"*")}))(`axios@${Math.random()}`,[]):t=>setTimeout(t))(typeof setImmediate=="function",Tu(ys.postMessage)),o5=typeof queueMicrotask<"u"?queueMicrotask.bind(ys):typeof pr<"u"&&pr.nextTick||G3,K3=e=>e!=null&&Tu(e[mi]),r5=e=>e!=null&&ni(e,mi)&&K3(e),D={isArray:Ts,isArrayBuffer:$3,isBuffer:gn,isFormData:O6,isArrayBufferView:B6,isString:y6,isNumber:U3,isBoolean:x6,isObject:fn,isPlainObject:Wi,isEmptyObject:A6,isReadableStream:z6,isRequest:P6,isResponse:R6,isHeaders:L6,isUndefined:mn,isDate:w6,isFile:b6,isReactNativeBlob:D6,isReactNative:F6,isBlob:k6,isRegExp:X6,isFunction:Tu,isStream:S6,isURLSearchParams:T6,isTypedArray:H6,isFileList:N6,forEach:ci,merge:Fr,extend:I6,trim:j6,stripBOM:M6,inherits:$6,toFlatObject:U6,kindOf:la,kindOfTest:ut,endsWith:V6,toArray:W6,forEachEntry:G6,matchAll:K6,isHTMLForm:q6,hasOwnProperty:A0,hasOwnProp:A0,hasOwnInPrototypeChain:ni,getSafeProp:C6,reduceDescriptors:H3,freezeMethods:J6,toObjectSet:Q6,toCamelCase:Y6,noop:e5,toFiniteNumber:u5,findKey:V3,global:ys,isContextDefined:W3,isSpecCompliantForm:t5,toJSONObject:s5,isAsyncFn:n5,isThenable:i5,setImmediate:G3,asap:o5,isIterable:K3,isSafeIterable:r5},a5=D.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),l5=e=>{const u={};let t,s,n;return e&&e.split(` +`).forEach(function(i){n=i.indexOf(":"),t=i.substring(0,n).trim().toLowerCase(),s=i.substring(n+1).trim(),!(!t||u[t]&&a5[t])&&(t==="set-cookie"?u[t]?u[t].push(s):u[t]=[s]:u[t]=u[t]?u[t]+", "+s:s)}),u};function d5(e){let u=0,t=e.length;for(;uu;){const s=e.charCodeAt(t-1);if(s!==9&&s!==32)break;t-=1}return u===0&&t===e.length?e:e.slice(u,t)}const m5=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),c5=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function da(e,u){return D.isArray(e)?e.map(t=>da(t,u)):d5(String(e).replace(u,""))}const g5=e=>da(e,m5),f5=e=>da(e,c5);function q3(e){const u=Object.create(null);return D.forEach(e.toJSON(),(t,s)=>{u[s]=f5(t)}),u}const O4=Symbol("internals");function bn(e){return e&&String(e).trim().toLowerCase()}function Hi(e){return e===!1||e==null?e:D.isArray(e)?e.map(Hi):g5(String(e))}function p5(e){const u=Object.create(null),t=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=t.exec(e);)u[s[1]]=s[2];return u}const h5=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Ho(e,u,t,s,n){if(D.isFunction(s))return s.call(this,u,t);if(n&&(u=t),!!D.isString(u)){if(D.isString(s))return u.indexOf(s)!==-1;if(D.isRegExp(s))return s.test(u)}}function v5(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(u,t,s)=>t.toUpperCase()+s)}function E5(e,u){const t=D.toCamelCase(" "+u);["get","set","has"].forEach(s=>{Object.defineProperty(e,s+t,{__proto__:null,value:function(n,i,o){return this[s].call(this,u,n,i,o)},configurable:!0})})}let Au=class{constructor(e){e&&this.set(e)}set(e,u,t){const s=this;function n(o,r,a){const m=bn(r);if(!m)return;const l=D.findKey(s,m);(!l||s[l]===void 0||a===!0||a===void 0&&s[l]!==!1)&&(s[l||r]=Hi(o))}const i=(o,r)=>D.forEach(o,(a,m)=>n(a,m,r));if(D.isPlainObject(e)||e instanceof this.constructor)i(e,u);else if(D.isString(e)&&(e=e.trim())&&!h5(e))i(l5(e),u);else if(D.isObject(e)&&D.isSafeIterable(e)){let o=Object.create(null),r,a;for(const m of e){if(!D.isArray(m))throw new TypeError("Object iterator must return a key-value pair");a=m[0],D.hasOwnProp(o,a)?(r=o[a],o[a]=D.isArray(r)?[...r,m[1]]:[r,m[1]]):o[a]=m[1]}i(o,u)}else e!=null&&n(u,e,t);return this}get(e,u){if(e=bn(e),e){const t=D.findKey(this,e);if(t){const s=this[t];if(!u)return s;if(u===!0)return p5(s);if(D.isFunction(u))return u.call(this,s,t);if(D.isRegExp(u))return u.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,u){if(e=bn(e),e){const t=D.findKey(this,e);return!!(t&&this[t]!==void 0&&(!u||Ho(this,this[t],t,u)))}return!1}delete(e,u){const t=this;let s=!1;function n(i){if(i=bn(i),i){const o=D.findKey(t,i);o&&(!u||Ho(t,t[o],o,u))&&(delete t[o],s=!0)}}return D.isArray(e)?e.forEach(n):n(e),s}clear(e){const u=Object.keys(this);let t=u.length,s=!1;for(;t--;){const n=u[t];(!e||Ho(this,this[n],n,e,!0))&&(delete this[n],s=!0)}return s}normalize(e){const u=this,t={};return D.forEach(this,(s,n)=>{const i=D.findKey(t,n);if(i){u[i]=Hi(s),delete u[n];return}const o=e?v5(n):String(n).trim();o!==n&&delete u[n],u[o]=Hi(s),t[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const u=Object.create(null);return D.forEach(this,(t,s)=>{t!=null&&t!==!1&&(u[s]=e&&D.isArray(t)?t.join(", "):t)}),u}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,u])=>e+": "+u).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...u){const t=new this(e);return u.forEach(s=>t.set(s)),t}static accessor(e){const u=(this[O4]=this[O4]={accessors:{}}).accessors,t=this.prototype;function s(n){const i=bn(n);u[i]||(E5(t,n),u[i]=!0)}return D.isArray(e)?e.forEach(s):s(e),this}};Au.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),D.reduceDescriptors(Au.prototype,({value:e},u)=>{let t=u[0].toUpperCase()+u.slice(1);return{get:()=>e,set(s){this[t]=s}}}),D.freezeMethods(Au);const C5="[REDACTED ****]";function B5(e){if(D.hasOwnProp(e,"toJSON"))return!0;let u=Object.getPrototypeOf(e);for(;u&&u!==Object.prototype;){if(D.hasOwnProp(u,"toJSON"))return!0;u=Object.getPrototypeOf(u)}return!1}function y5(e,u){const t=new Set(u.map(i=>String(i).toLowerCase())),s=[],n=i=>{if(i===null||typeof i!="object"||D.isBuffer(i))return i;if(s.indexOf(i)!==-1)return;i instanceof Au&&(i=i.toJSON()),s.push(i);let o;if(D.isArray(i))o=[],i.forEach((r,a)=>{const m=n(r);D.isUndefined(m)||(o[a]=m)});else{if(!D.isPlainObject(i)&&B5(i))return s.pop(),i;o=Object.create(null);for(const[r,a]of Object.entries(i)){const m=t.has(r.toLowerCase())?C5:n(a);D.isUndefined(m)||(o[r]=m)}}return s.pop(),o};return n(e)}let ee=class Y3 extends Error{static from(u,t,s,n,i,o){const r=new Y3(u.message,t||u.code,s,n,i);return Object.defineProperty(r,"cause",{__proto__:null,value:u,writable:!0,enumerable:!1,configurable:!0}),r.name=u.name,u.status!=null&&r.status==null&&(r.status=u.status),o&&Object.assign(r,o),r}constructor(u,t,s,n,i){super(u),Object.defineProperty(this,"message",{__proto__:null,value:u,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),s&&(this.config=s),n&&(this.request=n),i&&(this.response=i,this.status=i.status)}toJSON(){const u=this.config,t=u&&D.hasOwnProp(u,"redact")?u.redact:void 0,s=D.isArray(t)&&t.length>0?y5(u,t):D.toJSONObject(u);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:s,code:this.code,status:this.status}}};ee.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",ee.ERR_BAD_OPTION="ERR_BAD_OPTION",ee.ECONNABORTED="ECONNABORTED",ee.ETIMEDOUT="ETIMEDOUT",ee.ECONNREFUSED="ECONNREFUSED",ee.ERR_NETWORK="ERR_NETWORK",ee.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",ee.ERR_DEPRECATED="ERR_DEPRECATED",ee.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",ee.ERR_BAD_REQUEST="ERR_BAD_REQUEST",ee.ERR_CANCELED="ERR_CANCELED",ee.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",ee.ERR_INVALID_URL="ERR_INVALID_URL",ee.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const x5=null,Z3=100;function kr(e){return D.isPlainObject(e)||D.isArray(e)}function X3(e){return D.endsWith(e,"[]")?e.slice(0,-2):e}function Go(e,u,t){return e?e.concat(u).map(function(s,n){return s=X3(s),!t&&n?"["+s+"]":s}).join(t?".":""):u}function A5(e){return D.isArray(e)&&!e.some(kr)}const w5=D.toFlatObject(D,{},null,function(e){return/^is[A-Z]/.test(e)});function eo(e,u,t){if(!D.isObject(e))throw new TypeError("target must be an object");u=u||new FormData,t=D.toFlatObject(t,{metaTokens:!0,dots:!1,indexes:!1},!1,function(B,A){return!D.isUndefined(A[B])});const s=t.metaTokens,n=t.visitor||y,i=t.dots,o=t.indexes,r=t.Blob||typeof Blob<"u"&&Blob,a=t.maxDepth===void 0?Z3:t.maxDepth,m=r&&D.isSpecCompliantForm(u),l=[];if(!D.isFunction(n))throw new TypeError("visitor must be a function");function g(B){if(B===null)return"";if(D.isDate(B))return B.toISOString();if(D.isBoolean(B))return B.toString();if(!m&&D.isBlob(B))throw new ee("Blob is not supported. Use a Buffer instead.");if(D.isArrayBuffer(B)||D.isTypedArray(B)){if(m&&typeof r=="function")return new r([B]);if(typeof Kl<"u")return Kl.from(B);throw new ee("Blob is not supported. Use a Buffer instead.",ee.ERR_NOT_SUPPORT)}return B}function p(B){if(B>a)throw new ee("Object is too deeply nested ("+B+" levels). Max depth: "+a,ee.ERR_FORM_DATA_DEPTH_EXCEEDED)}function h(B,A){if(a===1/0)return JSON.stringify(B);const O=[];return JSON.stringify(B,function(N,K){if(!D.isObject(K))return K;for(;O.length&&O[O.length-1]!==this;)O.pop();return O.push(K),p(A+O.length-1),K})}function y(B,A,O){let N=B;if(D.isReactNative(u)&&D.isReactNativeBlob(B))return u.append(Go(O,A,i),g(B)),!1;if(B&&!O&&typeof B=="object"){if(D.endsWith(A,"{}"))A=s?A:A.slice(0,-2),B=h(B,1);else if(D.isArray(B)&&A5(B)||(D.isFileList(B)||D.endsWith(A,"[]"))&&(N=D.toArray(B)))return A=X3(A),N.forEach(function(K,I){!(D.isUndefined(K)||K===null)&&u.append(o===!0?Go([A],I,i):o===null?A:A+"[]",g(K))}),!1}return kr(B)?!0:(u.append(Go(O,A,i),g(B)),!1)}const E=Object.assign(w5,{defaultVisitor:y,convertValue:g,isVisitable:kr});function F(B,A,O=0){if(!D.isUndefined(B)){if(p(O),l.indexOf(B)!==-1)throw new Error("Circular reference detected in "+A.join("."));l.push(B),D.forEach(B,function(N,K){(!(D.isUndefined(N)||N===null)&&n.call(u,N,D.isString(K)?K.trim():K,A,E))===!0&&F(N,A?A.concat(K):[K],O+1)}),l.pop()}}if(!D.isObject(e))throw new TypeError("data must be an object");return F(e),u}function T4(e){const u={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(t){return u[t]})}function ma(e,u){this._pairs=[],e&&eo(e,this,u)}const z4=ma.prototype;z4.append=function(e,u){this._pairs.push([e,u])},z4.toString=function(e){const u=e?t=>e.call(this,t,T4):T4;return this._pairs.map(function(t){return u(t[0])+"="+u(t[1])},"").join("&")};function b5(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function J3(e,u,t){if(!u)return e;e=e||"";const s=D.isFunction(t)?{serialize:t}:t,n=D.getSafeProp(s,"encode")||b5,i=D.getSafeProp(s,"serialize");let o;if(i?o=i(u,s):o=D.isURLSearchParams(u)?u.toString():new ma(u,s).toString(n),o){const r=e.indexOf("#");r!==-1&&(e=e.slice(0,r)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class P4{constructor(){this.handlers=[]}use(u,t,s){return this.handlers.push({fulfilled:u,rejected:t,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(u){this.handlers[u]&&(this.handlers[u]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(u){D.forEach(this.handlers,function(t){t!==null&&u(t)})}}const ca={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},D5=typeof URLSearchParams<"u"?URLSearchParams:ma,F5=typeof FormData<"u"?FormData:null,k5=typeof Blob<"u"?Blob:null,N5={isBrowser:!0,classes:{URLSearchParams:D5,FormData:F5,Blob:k5},protocols:["http","https","file","blob","url","data"]},ga=typeof window<"u"&&typeof document<"u",Nr=typeof navigator=="object"&&navigator||void 0,S5=ga&&(!Nr||["ReactNative","NativeScript","NS"].indexOf(Nr.product)<0),_5=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",O5=ga&&window.location.href||"http://localhost",T5=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:ga,hasStandardBrowserEnv:S5,hasStandardBrowserWebWorkerEnv:_5,navigator:Nr,origin:O5},Symbol.toStringTag,{value:"Module"})),cu={...T5,...N5};function z5(e,u){return eo(e,new cu.classes.URLSearchParams,{visitor:function(t,s,n,i){return cu.isNode&&D.isBuffer(t)?(this.append(s,t.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...u})}const R4=Z3;function Q3(e){if(e>R4)throw new ee("FormData field is too deeply nested ("+e+" levels). Max depth: "+R4,ee.ERR_FORM_DATA_DEPTH_EXCEEDED)}function P5(e){const u=[],t=/\w+|\[(\w*)]/g;let s;for(;(s=t.exec(e))!==null;)Q3(u.length),u.push(s[0]==="[]"?"":s[1]||s[0]);return u}function R5(e){const u={},t=Object.keys(e);let s;const n=t.length;let i;for(s=0;s=t.length;return o=!o&&D.isArray(n)?n.length:o,a?(D.hasOwnProp(n,o)?n[o]=D.isArray(n[o])?n[o].concat(s):[n[o],s]:n[o]=s,!r):((!D.hasOwnProp(n,o)||!D.isObject(n[o]))&&(n[o]=[]),u(t,s,n[o],i)&&D.isArray(n[o])&&(n[o]=R5(n[o])),!r)}if(D.isFormData(e)&&D.isFunction(e.entries)){const t={};return D.forEachEntry(e,(s,n)=>{u(P5(s),n,t,0)}),t}return null}const Ws=(e,u)=>e!=null&&D.hasOwnProp(e,u)?e[u]:void 0;function L5(e,u,t){if(D.isString(e))try{return(u||JSON.parse)(e),D.trim(e)}catch(s){if(s.name!=="SyntaxError")throw s}return(t||JSON.stringify)(e)}const gi={transitional:ca,adapter:["xhr","http","fetch"],transformRequest:[function(e,u){const t=u.getContentType()||"",s=t.indexOf("application/json")>-1,n=D.isObject(e);if(n&&D.isHTMLForm(e)&&(e=new FormData(e)),D.isFormData(e))return s?JSON.stringify(ec(e)):e;if(D.isArrayBuffer(e)||D.isBuffer(e)||D.isStream(e)||D.isFile(e)||D.isBlob(e)||D.isReadableStream(e))return e;if(D.isArrayBufferView(e))return e.buffer;if(D.isURLSearchParams(e))return u.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(n){const o=Ws(this,"formSerializer");if(t.indexOf("application/x-www-form-urlencoded")>-1)return z5(e,o).toString();if((i=D.isFileList(e))||t.indexOf("multipart/form-data")>-1){const r=Ws(this,"env"),a=r&&r.FormData;return eo(i?{"files[]":e}:e,a&&new a,o)}}return n||s?(u.setContentType("application/json",!1),L5(e)):e}],transformResponse:[function(e){const u=Ws(this,"transitional")||gi.transitional,t=u&&u.forcedJSONParsing,s=Ws(this,"responseType"),n=s==="json";if(D.isResponse(e)||D.isReadableStream(e))return e;if(e&&D.isString(e)&&(t&&!s||n)){const i=!(u&&u.silentJSONParsing)&&n;try{return JSON.parse(e,Ws(this,"parseReviver"))}catch(o){if(i)throw o.name==="SyntaxError"?ee.from(o,ee.ERR_BAD_RESPONSE,this,null,Ws(this,"response")):o}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:cu.classes.FormData,Blob:cu.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};D.forEach(["delete","get","head","post","put","patch","query"],e=>{gi.headers[e]={}});function Ko(e,u){const t=this||gi,s=u||t,n=Au.from(s.headers);let i=s.data;return D.forEach(e,function(o){i=o.call(t,i,n.normalize(),u?u.status:void 0)}),n.normalize(),i}function uc(e){return!!(e&&e.__CANCEL__)}let fi=class extends ee{constructor(e,u,t){super(e??"canceled",ee.ERR_CANCELED,u,t),this.name="CanceledError",this.__CANCEL__=!0}};function tc(e,u,t){const s=t.config.validateStatus;!t.status||!s||s(t.status)?e(t):u(new ee("Request failed with status code "+t.status,t.status>=400&&t.status<500?ee.ERR_BAD_REQUEST:ee.ERR_BAD_RESPONSE,t.config,t.request,t))}function j5(e){const u=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return u&&u[1]||""}function I5(e,u){e=e||10;const t=new Array(e),s=new Array(e);let n=0,i=0,o;return u=u!==void 0?u:1e3,function(r){const a=Date.now(),m=s[i];o||(o=a),t[n]=r,s[n]=a;let l=i,g=0;for(;l!==n;)g+=t[l++],l=l%e;if(n=(n+1)%e,n===i&&(i=(i+1)%e),a-o{t=a,n=null,i&&(clearTimeout(i),i=null),e(...r)};return[(...r)=>{const a=Date.now(),m=a-t;m>=s?o(r,a):(n=r,i||(i=setTimeout(()=>{i=null,o(n)},s-m)))},()=>n&&o(n)]}const w0=(e,u,t=3)=>{let s=0;const n=I5(50,250);return M5(i=>{if(!i||typeof i.loaded!="number")return;const o=i.loaded,r=i.lengthComputable?i.total:void 0,a=r!=null?Math.min(o,r):o,m=Math.max(0,a-s),l=n(m);s=Math.max(s,a);const g={loaded:a,total:r,progress:r?a/r:void 0,bytes:m,rate:l||void 0,estimated:l&&r?(r-a)/l:void 0,event:i,lengthComputable:r!=null,[u?"download":"upload"]:!0};e(g)},t)},L4=(e,u)=>{const t=e!=null;return[s=>u[0]({lengthComputable:t,total:e,loaded:s}),u[1]]},j4=e=>(...u)=>D.asap(()=>e(...u)),$5=cu.hasStandardBrowserEnv?((e,u)=>t=>(t=new URL(t,cu.origin),e.protocol===t.protocol&&e.host===t.host&&(u||e.port===t.port)))(new URL(cu.origin),cu.navigator&&/(msie|trident)/i.test(cu.navigator.userAgent)):()=>!0,U5=cu.hasStandardBrowserEnv?{write(e,u,t,s,n,i,o){if(typeof document>"u")return;const r=[`${e}=${encodeURIComponent(u)}`];D.isNumber(t)&&r.push(`expires=${new Date(t).toUTCString()}`),D.isString(s)&&r.push(`path=${s}`),D.isString(n)&&r.push(`domain=${n}`),i===!0&&r.push("secure"),D.isString(o)&&r.push(`SameSite=${o}`),document.cookie=r.join("; ")},read(e){if(typeof document>"u")return null;const u=document.cookie.split(";");for(let t=0;te instanceof Au?{...e}:e;function zs(e,u){e=e||{},u=u||{};const t=Object.create(null);Object.defineProperty(t,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function s(l,g,p,h){return D.isPlainObject(l)&&D.isPlainObject(g)?D.merge.call({caseless:h},l,g):D.isPlainObject(g)?D.merge({},g):D.isArray(g)?g.slice():g}function n(l,g,p,h){if(D.isUndefined(g)){if(!D.isUndefined(l))return s(void 0,l,p,h)}else return s(l,g,p,h)}function i(l,g){if(!D.isUndefined(g))return s(void 0,g)}function o(l,g){if(D.isUndefined(g)){if(!D.isUndefined(l))return s(void 0,l)}else return s(void 0,g)}function r(l){const g=D.hasOwnProp(u,"transitional")?u.transitional:void 0;if(!D.isUndefined(g))if(D.isPlainObject(g)){if(D.hasOwnProp(g,l))return g[l]}else return;const p=D.hasOwnProp(e,"transitional")?e.transitional:void 0;if(D.isPlainObject(p)&&D.hasOwnProp(p,l))return p[l]}function a(l,g,p){if(D.hasOwnProp(u,p))return s(l,g);if(D.hasOwnProp(e,p))return s(void 0,l)}const m={url:i,method:i,data:i,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:a,headers:(l,g,p)=>n(M4(l),M4(g),p,!0)};return D.forEach(Object.keys({...e,...u}),function(l){if(l==="__proto__"||l==="constructor"||l==="prototype")return;const g=D.hasOwnProp(m,l)?m[l]:n,p=D.hasOwnProp(e,l)?e[l]:void 0,h=D.hasOwnProp(u,l)?u[l]:void 0,y=g(p,h,l);D.isUndefined(y)&&g!==a||(t[l]=y)}),D.hasOwnProp(u,"validateStatus")&&D.isUndefined(u.validateStatus)&&r("validateStatusUndefinedResolves")===!1&&(D.hasOwnProp(e,"validateStatus")?t.validateStatus=s(void 0,e.validateStatus):delete t.validateStatus),t}const Y5=["content-type","content-length"];function Z5(e,u,t){if(t!=="content-only"){e.set(u);return}Object.entries(u||{}).forEach(([s,n])=>{Y5.includes(s.toLowerCase())&&e.set(s,n)})}const X5=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(u,t)=>String.fromCharCode(parseInt(t,16)));function nc(e){const u=zs({},e),t=p=>D.hasOwnProp(u,p)?u[p]:void 0,s=t("data");let n=t("withXSRFToken");const i=t("xsrfHeaderName"),o=t("xsrfCookieName");let r=t("headers");const a=t("auth"),m=t("baseURL"),l=t("allowAbsoluteUrls"),g=t("url");if(u.headers=r=Au.from(r),u.url=J3(sc(m,g,l,u),t("params"),t("paramsSerializer")),a){const p=D.getSafeProp(a,"username")||"",h=D.getSafeProp(a,"password")||"";try{r.set("Authorization","Basic "+btoa(p+":"+(h?X5(h):"")))}catch(y){throw ee.from(y,ee.ERR_BAD_OPTION_VALUE,e)}}if(D.isFormData(s)&&(cu.hasStandardBrowserEnv||cu.hasStandardBrowserWebWorkerEnv||D.isReactNative(s)?r.setContentType(void 0):D.isFunction(s.getHeaders)&&Z5(r,s.getHeaders(),t("formDataHeaderPolicy"))),cu.hasStandardBrowserEnv&&(D.isFunction(n)&&(n=n(u)),n===!0||n==null&&$5(u.url))){const p=i&&o&&U5.read(o);p&&r.set(i,p)}return u}const J5=typeof XMLHttpRequest<"u",Q5=J5&&function(e){return new Promise(function(u,t){const s=nc(e);let n=s.data;const i=Au.from(s.headers).normalize();let{responseType:o,onUploadProgress:r,onDownloadProgress:a}=s,m,l,g,p,h;function y(){p&&p(),h&&h(),s.cancelToken&&s.cancelToken.unsubscribe(m),s.signal&&s.signal.removeEventListener("abort",m)}let E=new XMLHttpRequest;E.open(s.method.toUpperCase(),s.url,!0),E.timeout=s.timeout;function F(){if(!E)return;const A=Au.from("getAllResponseHeaders"in E&&E.getAllResponseHeaders()),O={data:!o||o==="text"||o==="json"?E.responseText:E.response,status:E.status,statusText:E.statusText,headers:A,config:e,request:E};tc(function(N){u(N),y()},function(N){t(N),y()},O),E=null}"onloadend"in E?E.onloadend=F:E.onreadystatechange=function(){!E||E.readyState!==4||E.status===0&&!(E.responseURL&&E.responseURL.startsWith("file:"))||setTimeout(F)},E.onabort=function(){E&&(t(new ee("Request aborted",ee.ECONNABORTED,e,E)),y(),E=null)},E.onerror=function(A){const O=A&&A.message?A.message:"Network Error",N=new ee(O,ee.ERR_NETWORK,e,E);N.event=A||null,t(N),y(),E=null},E.ontimeout=function(){let A=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const O=s.transitional||ca;s.timeoutErrorMessage&&(A=s.timeoutErrorMessage),t(new ee(A,O.clarifyTimeoutError?ee.ETIMEDOUT:ee.ECONNABORTED,e,E)),y(),E=null},n===void 0&&i.setContentType(null),"setRequestHeader"in E&&D.forEach(q3(i),function(A,O){E.setRequestHeader(O,A)}),D.isUndefined(s.withCredentials)||(E.withCredentials=!!s.withCredentials),o&&o!=="json"&&(E.responseType=s.responseType),a&&([g,h]=w0(a,!0),E.addEventListener("progress",g)),r&&E.upload&&([l,p]=w0(r),E.upload.addEventListener("progress",l),E.upload.addEventListener("loadend",p)),(s.cancelToken||s.signal)&&(m=A=>{E&&(t(!A||A.type?new fi(null,e,E):A),E.abort(),y(),E=null)},s.cancelToken&&s.cancelToken.subscribe(m),s.signal&&(s.signal.aborted?m():s.signal.addEventListener("abort",m)));const B=j5(s.url);if(B&&!cu.protocols.includes(B)){t(new ee("Unsupported protocol "+B+":",ee.ERR_BAD_REQUEST,e)),y();return}E.send(n||null)})},eB=(e,u)=>{if(e=e?e.filter(Boolean):[],!u&&!e.length)return;const t=new AbortController;let s=!1;const n=function(a){if(!s){s=!0,o();const m=a instanceof Error?a:this.reason;t.abort(m instanceof ee?m:new fi(m instanceof Error?m.message:m))}};let i=u&&setTimeout(()=>{i=null,n(new ee(`timeout of ${u}ms exceeded`,ee.ETIMEDOUT))},u);const o=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(a=>{a.unsubscribe?a.unsubscribe(n):a.removeEventListener("abort",n)}),e=null)};e.forEach(a=>a.addEventListener("abort",n,{once:!0}));const{signal:r}=t;return r.unsubscribe=()=>D.asap(o),r},uB=function*(e,u){let t=e.byteLength;if(t{const n=tB(e,u);let i=0,o,r=a=>{o||(o=!0,s&&s(a))};return new ReadableStream({async pull(a){try{const{done:m,value:l}=await n.next();if(m){r(),a.close();return}let g=l.byteLength;if(t){let p=i+=g;t(p)}a.enqueue(new Uint8Array(l))}catch(m){throw r(m),m}},cancel(a){return r(a),n.return()}},{highWaterMark:2})},b0=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,nB=(e,u,t)=>u+2g>=2&&s.charCodeAt(g-2)===37&&s.charCodeAt(g-1)===51&&(s.charCodeAt(g)===68||s.charCodeAt(g)===100);a>=0&&(s.charCodeAt(a)===61?(r++,a--):m(a)&&(r++,a-=3)),r===1&&a>=0&&(s.charCodeAt(a)===61||m(a))&&r++;const l=Math.floor(i/4)*3-(r||0);return l>0?l:0}let n=0;for(let i=0,o=s.length;i=55296&&r<=56319&&i+1=56320&&a<=57343?(n+=4,i++):n+=3}else n+=3}return n}const fa="1.18.1",U4=64*1024,{isFunction:Oi}=D,oB=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(u,t)=>String.fromCharCode(parseInt(t,16))),V4=e=>{if(!D.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},W4=(e,...u)=>{try{return!!e(...u)}catch{return!1}},rB=e=>{const u=e.indexOf("://");let t=e;return u!==-1&&(t=t.slice(u+3)),t.includes("@")||t.includes(":")},aB=e=>{const u=D.global!==void 0&&D.global!==null?D.global:globalThis,{ReadableStream:t,TextEncoder:s}=u;e=D.merge.call({skipUndefined:!0},{Request:u.Request,Response:u.Response},e);const{fetch:n,Request:i,Response:o}=e,r=n?Oi(n):typeof fetch=="function",a=Oi(i),m=Oi(o);if(!r)return!1;const l=r&&Oi(t),g=r&&(typeof s=="function"?(B=>A=>B.encode(A))(new s):async B=>new Uint8Array(await new i(B).arrayBuffer())),p=a&&l&&W4(()=>{let B=!1;const A=new i(cu.origin,{body:new t,method:"POST",get duplex(){return B=!0,"half"}}),O=A.headers.has("Content-Type");return A.body!=null&&A.body.cancel(),B&&!O}),h=m&&l&&W4(()=>D.isReadableStream(new o("").body)),y={stream:h&&(B=>B.body)};r&&["text","arrayBuffer","blob","formData","stream"].forEach(B=>{!y[B]&&(y[B]=(A,O)=>{let N=A&&A[B];if(N)return N.call(A);throw new ee(`Response type '${B}' is not supported`,ee.ERR_NOT_SUPPORT,O)})});const E=async B=>{if(B==null)return 0;if(D.isBlob(B))return B.size;if(D.isSpecCompliantForm(B))return(await new i(cu.origin,{method:"POST",body:B}).arrayBuffer()).byteLength;if(D.isArrayBufferView(B)||D.isArrayBuffer(B))return B.byteLength;if(D.isURLSearchParams(B)&&(B=B+""),D.isString(B))return(await g(B)).byteLength},F=async(B,A)=>D.toFiniteNumber(B.getContentLength())??E(A);return async B=>{let{url:A,method:O,data:N,signal:K,cancelToken:I,timeout:Y,onDownloadProgress:se,onUploadProgress:G,responseType:M,headers:ne,withCredentials:b="same-origin",fetchOptions:T,maxContentLength:V,maxBodyLength:ue}=nc(B);const Z=D.isNumber(V)&&V>-1,Q=D.isNumber(ue)&&ue>-1,te=pe=>D.hasOwnProp(B,pe)?B[pe]:void 0;let de=n||fetch;M=M?(M+"").toLowerCase():"text";let le=eB([K,I&&I.toAbortSignal()],Y),ie=null;const xe=le&&le.unsubscribe&&(()=>{le.unsubscribe()});let He,Se=null;const Pe=()=>new ee("Request body larger than maxBodyLength limit",ee.ERR_BAD_REQUEST,B,ie);try{let pe;const $e=te("auth");if($e){const S=D.getSafeProp($e,"username")||"",W=D.getSafeProp($e,"password")||"";pe={username:S,password:W}}if(rB(A)){const S=new URL(A,cu.origin);if(!pe&&(S.username||S.password)){const W=V4(S.username),U=V4(S.password);pe={username:W,password:U}}(S.username||S.password)&&(S.username="",S.password="",A=S.href)}if(pe&&(ne.delete("authorization"),ne.set("Authorization","Basic "+btoa(oB((pe.username||"")+":"+(pe.password||""))))),Z&&typeof A=="string"&&A.startsWith("data:")&&iB(A)>V)throw new ee("maxContentLength size of "+V+" exceeded",ee.ERR_BAD_RESPONSE,B,ie);if(Q&&O!=="get"&&O!=="head"){const S=await E(N);if(typeof S=="number"&&isFinite(S)&&(He=S,S>ue))throw Pe()}const Nu=Q&&(D.isReadableStream(N)||D.isStream(N)),tt=(S,W,U)=>$4(S,U4,H=>{if(Q&&H>ue)throw Se=Pe();W&&W(H)},U);if(p&&O!=="get"&&O!=="head"&&(G||Nu)){if(He=He??await F(ne,N),He!==0||Nu){let S=new i(A,{method:"POST",body:N,duplex:"half"}),W;if(D.isFormData(N)&&(W=S.headers.get("content-type"))&&ne.setContentType(W),S.body){const[U,H]=G&&L4(He,w0(j4(G)))||[];N=tt(S.body,U,H)}}}else if(Nu&&!a&&l&&O!=="get"&&O!=="head")N=tt(N);else if(Nu&&a&&!p&&O!=="get"&&O!=="head")throw new ee("Stream request bodies are not supported by the current fetch implementation",ee.ERR_NOT_SUPPORT,B,ie);D.isString(b)||(b=b?"include":"omit");const $u=a&&"credentials"in i.prototype;if(D.isFormData(N)){const S=ne.getContentType();S&&/^multipart\/form-data/i.test(S)&&!/boundary=/i.test(S)&&ne.delete("content-type")}ne.set("User-Agent","axios/"+fa,!1);const C={...T,signal:le,method:O.toUpperCase(),headers:q3(ne.normalize()),body:N,duplex:"half",credentials:$u?b:void 0};ie=a&&new i(A,C);let w=await(a?de(ie,T):de(A,C));const _=Au.from(w.headers);if(Z){const S=D.toFiniteNumber(_.getContentLength());if(S!=null&&S>V)throw new ee("maxContentLength size of "+V+" exceeded",ee.ERR_BAD_RESPONSE,B,ie)}const $=h&&(M==="stream"||M==="response");if(h&&w.body&&(se||Z||$&&xe)){const S={};["status","statusText","headers"].forEach(X=>{S[X]=w[X]});const W=D.toFiniteNumber(_.getContentLength()),[U,H]=se&&L4(W,w0(j4(se),!0))||[];let j=0;const re=X=>{if(Z&&(j=X,j>V))throw new ee("maxContentLength size of "+V+" exceeded",ee.ERR_BAD_RESPONSE,B,ie);U&&U(X)};w=new o($4(w.body,U4,re,()=>{H&&H(),xe&&xe()}),S)}M=M||"text";let z=await y[D.findKey(y,M)||"text"](w,B);if(Z&&!h&&!$){let S;if(z!=null&&(typeof z.byteLength=="number"?S=z.byteLength:typeof z.size=="number"?S=z.size:typeof z=="string"&&(S=typeof s=="function"?new s().encode(z).byteLength:z.length)),typeof S=="number"&&S>V)throw new ee("maxContentLength size of "+V+" exceeded",ee.ERR_BAD_RESPONSE,B,ie)}return!$&&xe&&xe(),await new Promise((S,W)=>{tc(S,W,{data:z,headers:Au.from(w.headers),status:w.status,statusText:w.statusText,config:B,request:ie})})}catch(pe){if(xe&&xe(),le&&le.aborted&&le.reason instanceof ee){const $e=le.reason;throw $e.config=B,ie&&($e.request=ie),pe!==$e&&Object.defineProperty($e,"cause",{__proto__:null,value:pe,writable:!0,enumerable:!1,configurable:!0}),$e}if(Se)throw ie&&!Se.request&&(Se.request=ie),Se;if(pe instanceof ee)throw ie&&!pe.request&&(pe.request=ie),pe;if(pe&&pe.name==="TypeError"&&/Load failed|fetch/i.test(pe.message)){const $e=new ee("Network Error",ee.ERR_NETWORK,B,ie,pe&&pe.response);throw Object.defineProperty($e,"cause",{__proto__:null,value:pe.cause||pe,writable:!0,enumerable:!1,configurable:!0}),$e}throw ee.from(pe,pe&&pe.code,B,ie,pe&&pe.response)}}},lB=new Map,ic=e=>{let u=e&&e.env||{};const{fetch:t,Request:s,Response:n}=u,i=[s,n,t];let o=i.length,r=o,a,m,l=lB;for(;r--;)a=i[r],m=l.get(a),m===void 0&&l.set(a,m=r?new Map:aB(u)),l=m;return m};ic();const pa={http:x5,xhr:Q5,fetch:{get:ic}};D.forEach(pa,(e,u)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:u})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:u})}});const H4=e=>`- ${e}`,dB=e=>D.isFunction(e)||e===null||e===!1;function mB(e,u){e=D.isArray(e)?e:[e];const{length:t}=e;let s,n;const i={};for(let o=0;o`adapter ${a} `+(m===!1?"is not supported by the environment":"is not available in the build"));let r=t?o.length>1?`since : +`+o.map(H4).join(` +`):" "+H4(o[0]):"as no adapter specified";throw new ee("There is no suitable adapter to dispatch the request "+r,ee.ERR_NOT_SUPPORT)}return n}const oc={getAdapter:mB,adapters:pa};function qo(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new fi(null,e)}function G4(e){return qo(e),e.headers=Au.from(e.headers),e.data=Ko.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),oc.getAdapter(e.adapter||gi.adapter,e)(e).then(function(u){qo(e),e.response=u;try{u.data=Ko.call(e,e.transformResponse,u)}finally{delete e.response}return u.headers=Au.from(u.headers),u},function(u){if(!uc(u)&&(qo(e),u&&u.response)){e.response=u.response;try{u.response.data=Ko.call(e,e.transformResponse,u.response)}finally{delete e.response}u.response.headers=Au.from(u.response.headers)}return Promise.reject(u)})}const D0={};["object","boolean","number","function","string","symbol"].forEach((e,u)=>{D0[e]=function(t){return typeof t===e||"a"+(u<1?"n ":" ")+e}});const K4={};D0.transitional=function(e,u,t){function s(n,i){return"[Axios v"+fa+"] Transitional option '"+n+"'"+i+(t?". "+t:"")}return(n,i,o)=>{if(e===!1)throw new ee(s(i," has been removed"+(u?" in "+u:"")),ee.ERR_DEPRECATED);return u&&!K4[i]&&(K4[i]=!0,console.warn(s(i," has been deprecated since v"+u+" and will be removed in the near future"))),e?e(n,i,o):!0}},D0.spelling=function(e){return(u,t)=>(console.warn(`${t} is likely a misspelling of ${e}`),!0)};function cB(e,u,t){if(typeof e!="object"||e===null)throw new ee("options must be an object",ee.ERR_BAD_OPTION_VALUE);const s=Object.keys(e);let n=s.length;for(;n-- >0;){const i=s[n],o=Object.prototype.hasOwnProperty.call(u,i)?u[i]:void 0;if(o){const r=e[i],a=r===void 0||o(r,i,e);if(a!==!0)throw new ee("option "+i+" must be "+a,ee.ERR_BAD_OPTION_VALUE);continue}if(t!==!0)throw new ee("Unknown option "+i,ee.ERR_BAD_OPTION)}}const Gi={assertOptions:cB,validators:D0},vu=Gi.validators;let ks=class{constructor(e){this.defaults=e||{},this.interceptors={request:new P4,response:new P4}}async request(e,u){try{return await this._request(e,u)}catch(t){if(t instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const n=(()=>{if(!s.stack)return"";const i=s.stack.indexOf(` +`);return i===-1?"":s.stack.slice(i+1)})();try{if(!t.stack)t.stack=n;else if(n){const i=n.indexOf(` +`),o=i===-1?-1:n.indexOf(` +`,i+1),r=o===-1?"":n.slice(o+1);String(t.stack).endsWith(r)||(t.stack+=` +`+n)}}catch{}}throw t}}_request(e,u){typeof e=="string"?(u=u||{},u.url=e):u=e||{},u=zs(this.defaults,u);const{transitional:t,paramsSerializer:s,headers:n}=u;t!==void 0&&Gi.assertOptions(t,{silentJSONParsing:vu.transitional(vu.boolean),forcedJSONParsing:vu.transitional(vu.boolean),clarifyTimeoutError:vu.transitional(vu.boolean),legacyInterceptorReqResOrdering:vu.transitional(vu.boolean),advertiseZstdAcceptEncoding:vu.transitional(vu.boolean),validateStatusUndefinedResolves:vu.transitional(vu.boolean)},!1),s!=null&&(D.isFunction(s)?u.paramsSerializer={serialize:s}:Gi.assertOptions(s,{encode:vu.function,serialize:vu.function},!0)),u.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?u.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:u.allowAbsoluteUrls=!0),Gi.assertOptions(u,{baseUrl:vu.spelling("baseURL"),withXsrfToken:vu.spelling("withXSRFToken")},!0),u.method=(u.method||this.defaults.method||"get").toLowerCase();let i=n&&D.merge(n.common,n[u.method]);n&&D.forEach(["delete","get","head","post","put","patch","query","common"],h=>{delete n[h]}),u.headers=Au.concat(i,n);const o=[];let r=!0;this.interceptors.request.forEach(function(h){if(typeof h.runWhen=="function"&&h.runWhen(u)===!1)return;r=r&&h.synchronous;const y=u.transitional||ca;y&&y.legacyInterceptorReqResOrdering?o.unshift(h.fulfilled,h.rejected):o.push(h.fulfilled,h.rejected)});const a=[];this.interceptors.response.forEach(function(h){a.push(h.fulfilled,h.rejected)});let m,l=0,g;if(!r){const h=[G4.bind(this),void 0];for(h.unshift(...o),h.push(...a),g=h.length,m=Promise.resolve(u);l{if(!s._listeners)return;let i=s._listeners.length;for(;i-- >0;)s._listeners[i](n);s._listeners=null}),this.promise.then=n=>{let i;const o=new Promise(r=>{s.subscribe(r),i=r}).then(n);return o.cancel=function(){s.unsubscribe(i)},o},u(function(n,i,o){s.reason||(s.reason=new fi(n,i,o),t(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(u){if(this.reason){u(this.reason);return}this._listeners?this._listeners.push(u):this._listeners=[u]}unsubscribe(u){if(!this._listeners)return;const t=this._listeners.indexOf(u);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){const u=new AbortController,t=s=>{u.abort(s)};return this.subscribe(t),u.signal.unsubscribe=()=>this.unsubscribe(t),u.signal}static source(){let u;return{token:new rc(function(t){u=t}),cancel:u}}};function fB(e){return function(u){return e.apply(null,u)}}function pB(e){return D.isObject(e)&&e.isAxiosError===!0}const Sr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Sr).forEach(([e,u])=>{Sr[u]=e});function ac(e){const u=new ks(e),t=I3(ks.prototype.request,u);return D.extend(t,ks.prototype,u,{allOwnKeys:!0}),D.extend(t,u,null,{allOwnKeys:!0}),t.create=function(s){return ac(zs(e,s))},t}const Je=ac(gi);Je.Axios=ks,Je.CanceledError=fi,Je.CancelToken=gB,Je.isCancel=uc,Je.VERSION=fa,Je.toFormData=eo,Je.AxiosError=ee,Je.Cancel=Je.CanceledError,Je.all=function(e){return Promise.all(e)},Je.spread=fB,Je.isAxiosError=pB,Je.mergeConfig=zs,Je.AxiosHeaders=Au,Je.formToJSON=e=>ec(D.isHTMLForm(e)?new FormData(e):e),Je.getAdapter=oc.getAdapter,Je.HttpStatusCode=Sr,Je.default=Je;const{Axios:Cy,AxiosError:By,CanceledError:yy,isCancel:xy,CancelToken:Ay,VERSION:wy,all:by,Cancel:Dy,isAxiosError:ha,spread:Fy,toFormData:ky,AxiosHeaders:Ny,HttpStatusCode:Sy,formToJSON:_y,getAdapter:Oy,mergeConfig:Ty,create:zy}=Je;function hB(){const e=Je.create({headers:{requesttoken:vv()??"","X-Requested-With":"XMLHttpRequest"}});return Cv(u=>{e.defaults.headers.requesttoken=u}),Object.assign(e,{CancelToken:Je.CancelToken,isCancel:Je.isCancel})}const q4="_nextcloudCsrfTokenReloaded";function vB(e){return async u=>{if(!ha(u))throw u;const{config:t,response:s,request:n}=u,i=n?.responseURL;if(t&&!(q4 in t)&&s?.status===412&&s?.data?.message==="CSRF check failed"){console.warn(`Request to ${i} failed because of a CSRF mismatch. Fetching a new token.`);const o=await Ev();return e.defaults.headers.requesttoken=o,e({...t,[q4]:!0,headers:{...t.headers,requesttoken:o}})}throw u}}const Y4="_nextcloudMaintenanceModeRetryDelay";function EB(e){return async u=>{if(!ha(u))throw u;const{config:t,response:s,request:n}=u,i=n?.responseURL,o=s?.status,r=s?.headers;let a=t?.[Y4]??1;if(o===503&&r?.["x-nextcloud-maintenance-mode"]==="1"&&t?.retryIfMaintenanceMode){if(a*=2,a>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:i}),u;return console.warn(`Request to ${i} failed because of maintenance mode. Retrying in ${a}s`),await new Promise(m=>{setTimeout(m,a*1e3)}),e({...t,[Y4]:a})}throw u}}async function CB(e){if(ha(e)){const{config:u,response:t,request:s}=e,n=s?.responseURL;t?.status===401&&t?.data?.message==="Current user is not logged in"&&u?.reloadExpiredSession&&globalThis.location?.reload&&(console.error(`Request to ${n} failed because the user session expired. Reloading the page …`),globalThis.OC?.reload?globalThis.OC.reload():globalThis.location.reload())}throw e}const Te=hB();Te.interceptors.response.use(e=>e,vB(Te)),Te.interceptors.response.use(e=>e,EB(Te)),Te.interceptors.response.use(e=>e,CB);const Ie=e=>Z4("/apps/absence"+e),Py={getSession:()=>Te.get(Ie("/api/session")).then(e=>e.data),getPersonalConfig:()=>Te.get(Ie("/api/personal/config")).then(e=>e.data),updatePersonalConfig:e=>Te.put(Ie("/api/personal/config"),{values:e}).then(u=>u.data),listRequests:e=>Te.get(Ie("/api/requests"),{params:e}).then(u=>u.data),getRequest:e=>Te.get(Ie(`/api/requests/${e}`)).then(u=>u.data),createRequest:e=>Te.post(Ie("/api/requests"),e).then(u=>u.data),updateRequest:(e,u)=>Te.put(Ie(`/api/requests/${e}`),u).then(t=>t.data),cancelRequest:e=>Te.post(Ie(`/api/requests/${e}/cancel`)).then(u=>u.data),approveRequest:(e,u)=>Te.post(Ie(`/api/requests/${e}/approve`),{comment:u}).then(t=>t.data),rejectRequest:(e,u)=>Te.post(Ie(`/api/requests/${e}/reject`),{comment:u}).then(t=>t.data),addComment:(e,u)=>Te.post(Ie(`/api/requests/${e}/comments`),{body:u}).then(t=>t.data),getMyBalance:e=>Te.get(Ie("/api/balance"),{params:{year:e}}).then(u=>u.data),getEmployeeBalance:(e,u)=>Te.get(Ie(`/api/employees/${encodeURIComponent(e)}/balance`),{params:{year:u}}).then(t=>t.data),listEntitlements:(e,u)=>Te.get(Ie("/api/entitlements"),{params:{employeeUid:e,year:u}}).then(t=>t.data),createEntitlement:e=>Te.post(Ie("/api/entitlements"),e).then(u=>u.data),updateEntitlement:(e,u)=>Te.put(Ie(`/api/entitlements/${e}`),u).then(t=>t.data),bulkEntitlements:e=>Te.post(Ie("/api/entitlements/bulk"),e).then(u=>u.data),getCoverage:(e,u,t)=>Te.get(Ie("/api/coverage"),{params:{from:e,to:u,scope:t}}).then(s=>s.data),getCalendar:(e,u,t)=>Te.get(Ie("/api/calendar"),{params:{from:e,to:u,scope:t}}).then(s=>s.data),listLeaveTypes:e=>Te.get(Ie("/api/leave-types"),{params:{onlyEnabled:e}}).then(u=>u.data),createLeaveType:e=>Te.post(Ie("/api/leave-types"),e).then(u=>u.data),updateLeaveType:(e,u)=>Te.put(Ie(`/api/leave-types/${e}`),u).then(t=>t.data),deleteLeaveType:e=>Te.delete(Ie(`/api/leave-types/${e}`)).then(u=>u.data),searchUsers:e=>Te.get(bc("core/autocomplete/get"),{params:{search:e,itemType:" ",itemId:" ",shareTypes:[0],limit:20}}).then(u=>(u.data.ocs?.data||[]).map(t=>({uid:t.id,displayName:t.label}))),reportBalances:(e,u)=>Te.get(Ie("/api/reports/balances"),{params:{year:e,group:u}}).then(t=>t.data),reportTrends:(e,u)=>Te.get(Ie("/api/reports/trends"),{params:{from:e,to:u}}).then(t=>t.data),exportRequestsUrl:(e,u)=>Ie(`/api/export/requests?from=${e}&to=${u}`),exportBalancesUrl:e=>Ie(`/api/export/balances?year=${e}`)};function BB(e){const u=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${u}-${t}-${s}`}function Ry(e){const u=new Set;for(const t of String(e||"").split(",")){const s=parseInt(t,10);s>=1&&s<=7&&u.add(s)}return u}function Ly(e,u,t,s){if(!e||!u||!t||t.size===0)return 0;const n=new Date(u+"T00:00:00");let i=0;for(const o=new Date(e+"T00:00:00");o<=n;o.setDate(o.getDate()+1)){const r=o.getDay()===0?7:o.getDay();t.has(r)&&!(s&&s(BB(o)))&&i++}return i}function Yo(e){return e?new Date(e+"T00:00:00").toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):""}function jy(e,u){return e===u?Yo(e):`${Yo(e)} – ${Yo(u)}`}function Iy(e,u,t,s,n){const i=new Date(u+"T00:00:00"),o=new Date(t+"T00:00:00"),r=Math.round((o-i)/864e5)+1;if(!(r<=0||!s))for(let a=0;a<12;a++){const m=new Date(n,a,1),l=new Date(n,a+1,0),g=i>m?i:m,p=o0&&(e[a]+=s*(h/r))}}async function My(e,u){if(!e)return null;const{default:t}=await na(async()=>{const{default:n}=await import("./index-RBNm1VLy.chunk.mjs");return{default:n}},[],import.meta.url),s=u?new t(e,u):new t(e);return n=>{const i=s.isHoliday(new Date(n+"T12:00:00"));return Array.isArray(i)&&i.some(o=>o.type==="public")}}async function $y(){const{default:e}=await na(async()=>{const{default:t}=await import("./index-RBNm1VLy.chunk.mjs");return{default:t}},[],import.meta.url),u=new e().getCountries();return Object.keys(u).map(t=>({id:t,label:u[t]}))}async function Uy(e){if(!e)return[];const{default:u}=await na(async()=>{const{default:s}=await import("./index-RBNm1VLy.chunk.mjs");return{default:s}},[],import.meta.url),t=new u().getStates(e)||{};return Object.keys(t).map(s=>({id:s,label:t[s]}))}export{Nh as $,Yh as A,my as B,Wg as C,cy as D,Kh as E,bs as F,iy as G,yt as H,Vn as I,ay as J,dy as K,ly as L,bv as M,Xn as N,eh as O,Mu as P,au as Q,tu as R,Iu as S,ji as T,Es as U,Zs as V,Ce as W,Ee as X,Me as Y,vh as Z,qu as _,Pf as a,py as a$,m0 as a0,IB as a1,ft as a2,Ys as a3,zB as a4,Cu as a5,Bs as a6,JB as a7,qB as a8,Ld as a9,ZB as aA,O1 as aB,v0 as aC,E1 as aD,QB as aE,Df as aF,Cf as aG,xB as aH,gy as aI,NB as aJ,W1 as aK,_B as aL,Wn as aM,Su as aN,OB as aO,ey as aP,nl as aQ,Jr as aR,TB as aS,KB as aT,Tf as aU,jB as aV,Gl as aW,Py as aX,vy as aY,Ti as aZ,hy as a_,$m as aa,o3 as ab,Jn as ac,an as ad,hh as ae,Tm as af,iv as ag,fl as ah,xf as ai,Vf as aj,LB as ak,RB as al,m1 as am,tn as an,Fu as ao,Eu as ap,_u as aq,HB as ar,b1 as as,DB as at,u1 as au,e1 as av,zh as aw,PB as ax,YB as ay,uy as az,Zd as b,Ey as b0,fy as b1,BB as b2,Ry as b3,Ly as b4,My as b5,Z4 as b6,SB as b7,Ga as b8,GB as b9,$y as bA,yB as bB,F0 as bC,F3 as ba,Ks as bb,MB as bc,nr as bd,Of as be,Dc as bf,X4 as bg,UB as bh,ty as bi,WB as bj,Te as bk,bc as bl,VB as bm,a1 as bn,yv as bo,jy as bp,lg as bq,wB as br,bB as bs,Iy as bt,FB as bu,Nm as bv,$B as bw,Qd as bx,XB as by,Uy as bz,pu as c,Be as d,Ve as e,Fe as f,rn as g,Ge as h,Zt as i,et as j,Ir as k,kB as l,me as m,xs as n,ri as o,lu as p,mf as q,Ri as r,qh as s,Gh as t,AB as u,sy as v,St as w,ry as x,ny as y,oy as z}; +//# sourceMappingURL=holidays-BoDDj6rx.chunk.mjs.map diff --git a/js/holidays-CFk3bEGH.chunk.mjs.license b/js/holidays-BoDDj6rx.chunk.mjs.license similarity index 91% rename from js/holidays-CFk3bEGH.chunk.mjs.license rename to js/holidays-BoDDj6rx.chunk.mjs.license index ad8a630..35b2874 100644 --- a/js/holidays-CFk3bEGH.chunk.mjs.license +++ b/js/holidays-BoDDj6rx.chunk.mjs.license @@ -5,7 +5,6 @@ SPDX-License-Identifier: ISC SPDX-License-Identifier: MIT SPDX-FileCopyrightText: @nextcloud/dialogs developers SPDX-FileCopyrightText: Anthony Fu -SPDX-FileCopyrightText: Christoph Wurst SPDX-FileCopyrightText: David Clark SPDX-FileCopyrightText: David Myers SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 (https://cure53.de/) @@ -23,16 +22,16 @@ SPDX-FileCopyrightText: escape-html developers This file is generated from multiple sources. Included packages: - @floating-ui/core - - version: 1.7.5 + - version: 1.8.0 - license: MIT - @floating-ui/dom - version: 1.1.1 - license: MIT - @floating-ui/dom - - version: 1.7.6 + - version: 1.8.0 - license: MIT - @floating-ui/utils - - version: 0.2.11 + - version: 0.2.12 - license: MIT - @nextcloud/auth - version: 2.6.0 @@ -44,13 +43,13 @@ This file is generated from multiple sources. Included packages: - version: 0.5.0 - license: GPL-3.0-or-later - @nextcloud/dialogs - - version: 6.4.2 + - version: 7.4.1 - license: AGPL-3.0-or-later - @nextcloud/event-bus - version: 3.3.3 - license: GPL-3.0-or-later - @nextcloud/initial-state - - version: 2.2.0 + - version: 3.0.0 - license: GPL-3.0-or-later - @nextcloud/l10n - version: 3.4.1 @@ -62,7 +61,7 @@ This file is generated from multiple sources. Included packages: - version: 3.1.0 - license: GPL-3.0-or-later - @nextcloud/vue - - version: 9.8.2 + - version: 9.9.0 - license: AGPL-3.0-or-later - @nextcloud/vue-select - version: 4.1.0 @@ -71,16 +70,16 @@ This file is generated from multiple sources. Included packages: - version: 6.0.7 - license: MIT - @vue/reactivity - - version: 3.5.39 + - version: 3.5.40 - license: MIT - @vue/runtime-core - - version: 3.5.39 + - version: 3.5.40 - license: MIT - @vue/runtime-dom - - version: 3.5.39 + - version: 3.5.40 - license: MIT - @vue/shared - - version: 3.5.39 + - version: 3.5.40 - license: MIT - @vueuse/core - version: 14.3.0 @@ -95,7 +94,7 @@ This file is generated from multiple sources. Included packages: - version: 1.18.1 - license: MIT - dompurify - - version: 3.4.11 + - version: 3.4.12 - license: (MPL-2.0 OR Apache-2.0) - escape-html - version: 1.0.3 @@ -122,5 +121,5 @@ This file is generated from multiple sources. Included packages: - version: 0.28.0 - license: MIT - vue-router - - version: 5.1.0 + - version: 5.2.0 - license: MIT diff --git a/js/holidays-BoDDj6rx.chunk.mjs.map b/js/holidays-BoDDj6rx.chunk.mjs.map new file mode 100644 index 0000000..60c9370 --- /dev/null +++ b/js/holidays-BoDDj6rx.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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","names":["url","params","options","version","getBaseUrl","_build","text","vars","r","a","allOptions","baseOrRootURL","getRootUrl","webroot","pos","index","_arrayLikeToArray","e","n","_arrayWithHoles","_iterableToArrayLimit","t","f","i","l","o","u","_nonIterableRest","serializedHTML","SAFE_FOR_TEMPLATES","_stripTemplateExpressions","RETURN_TRUSTED_TYPE","_createTrustedHTML","DOMPurify","message","msg","context","level","LogLevel","buildConsoleLogger","LoggerBuilder","factory","appId","user","self","onLoaded","getLoggerBuilder","isRtl","candidateSelector","candidateSelectors","NoElement","matches","_element$getRootNode","element","_isInert","node","lookUp","_node$getAttribute","inertAtt","inert","result","attValue","_node$getAttribute2","getCandidates","filter","candidates","includeContainer","_getCandidatesIteratively","elements","assigned","nestedCandidates","content","shadowRoot","validShadowRoot","_nestedCandidates","elementsToCheck","isContentEditable","getSortOrderTabIndex","isScope","getTabIndex","tabIndex","hasTabIndex","sortOrderedTabbables","b","isHiddenInput","isDetailsWithSummary","child","getCheckedRadio","nodes","radioScope","getRootNode","queryRadios","name","radioSet","err","checked","isInput","isRadio","isTabbableRadio","nodeRoot","_nodeRoot","_nodeRootHost","_nodeRootHost$ownerDo","attached","nodeRootHost","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","_node$getBoundingClie","width","isHidden","_ref","displayCheck","visible","_getComputedStyle","visibility","isDirectSummary","getShadowRoot","parentElement","rootNode","isZeroArea","isNodeAttached","isDisabledFromFieldset","parentNode","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isNonTabbableRadio","shadowHostNode","_sortByOrder","orderedTabbables","item","candidateTabindex","regularTabbables","acc","sortable","tabbable","isShadowRootTabbable","focusable","container","focusableCandidateSelector","_arrayWithoutHoles","F","_iterableToArray","option","sortAndStringify","warn","label","search","value","clearSearchOnSelect","component","top","left","dropdownList","open","uniqueId","listSlot","limitOptions","options2","optionList","createdOption","newOptions","shouldReset","val","isOpen","nextDeselect","index2","deselectToFocus","event","targetIsNotSearch","ref","predicate","match","_option","line","key","ignoreDuplicateOf","parsed","start","end","str","code","INVALID_UNICODE_HEADER_VALUE_CHARS","invalidChars","utils","sanitizeValue","trimSPorHTAB","thing","first","targets","target","$internals","defineAccessor","_header","accessors","buildAccessors","prototype","lHeader","AxiosHeaders","REDACTED","hasOwnOrPrototypeToJSON","source","config","lowerKeys","visit","seen","v","reducedValue","AxiosError","customProps","axiosError","error","response","request","redactKeys","serializedConfig","redactConfig","DEFAULT_FORM_DATA_MAX_DEPTH","isVisitable","removeBrackets","renderKey","path","token","dots","arr","predicates","prop","toFormData","obj","formData","metaTokens","indexes","_Blob","maxDepth","useBlob","visitor","convertValue","Buffer","depth","currentValue","ancestors","defaultVisitor","stringifyWithDepthLimit","exposedHelpers","build","throwIfMaxDepthExceeded","stack","el","encode","charMap","AxiosURLSearchParams","encoder","pair","_encode","buildURL","_options","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","fn","h","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserWebWorkerEnv","platform","toURLEncodedForm","helpers","MAX_DEPTH","pattern","throwIfDepthExceeded","keys","len","formDataToJSON","isLast","isNumericKey","buildPath","rawValue","parser","defaults","contentType","headers","hasJSONContentType","isObjectPayload","data","isFileList","env","own","_FormData","stringifySafely","transitional","responseType","strictJSONParsing","JSONRequested","status","method","transformData","fns","isCancel","settle","resolve","reject","validateStatus","parseProtocol","samplesCount","firstSampleTS","min","tail","bytesCount","head","now","startedAt","passed","freq","timestamp","invoke","args","lastArgs","timer","threshold","progressEventReducer","listener","bytesNotified","_speedometer","speedometer","throttle","rawLoaded","total","loaded","progressBytes","rate","lengthComputable","asyncDecorator","origin","isMSIE","cookies","domain","secure","sameSite","cookie","expires","eq","baseURL","relativeURL","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","httpProtocolControlCharacters","assertValidHttpProtocolURL","malformedHttpProtocol","buildFullPath","allowAbsoluteUrls","isRelativeUrl","isAbsoluteURL","requestedURL","mergeConfig","config1","config2","getMergedValue","caseless","valueFromConfig2","defaultToConfig2","transitional2","transitional1","mergeDirectKeys","mergeMap","headersToObject","merge","configValue","getMergedTransitionalOption","FORM_DATA_CONTENT_HEADERS","formHeaders","policy","encodeUTF8","_","hex","xsrfCookieName","newConfig","username","password","setFormDataHeaders","withXSRFToken","xhrAdapter","isXHRAdapterSupported","_config","requestData","requestHeaders","onUploadProgress","onDownloadProgress","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","done","timeoutErrorMessage","toByteStringHeaderObject","uploadThrottled","onCanceled","cancel","protocol","timeout","signals","aborted","reason","unsubscribe","controller","CanceledError","signal","onabort","streamChunk","chunk","chunkSize","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","iterator","bytes","_onFinish","isHexDigit","charCode","isPercentEncodedByte","estimateDataURLDecodedBytes","comma","meta","effectiveLen","body","pad","idx","tailIsPct3D","j","c","next","VERSION","decodeURIComponentSafe","maybeWithAuthCredentials","protocolIndex","urlToCheck","globalObject","TextEncoder","envFetch","Request","Response","isFunction","isRequestSupported","isFetchSupported","isReadableStreamSupported","ReadableStream","supportsRequestStream","test","duplexAccessed","hasContentType","supportsResponseStream","isResponseSupported","resolvers","res","type","encodeText","resolveBodyLength","getBodyLength","cancelToken","maxContentLength","maxBodyLength","resolveConfig","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","composeSignals","requestContentLength","maxBodyLengthError","configAuth","auth","parsedURL","urlUsername","urlPassword","outboundLength","trackRequestStream","flush","loadedBytes","mustEnforceStreamBody","_request","contentTypeHeader","progressEventDecorator","withCredentials","isCredentialsSupported","resolvedOptions","fetchOptions","declaredLength","isStreamResponse","bytesRead","DEFAULT_CHUNK_SIZE","onChunkProgress","materializedSize","responseData","canceledError","pendingBodyError","networkError","fetch","map","seedCache","seed","knownAdapters","httpAdapter","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","adapters","length","nameOrAdapter","rejectedReasons","reasons","state","s","getAdapter","throwIfCancellationRequested","dispatchRequest","validators","deprecatedWarnings","opt","validator","opts","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","paramsSerializer","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","promise","onRejected","onFulfilled","fullPath","Axios","generateHTTPMethod","isForm"],"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],"sources":["../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/dompurify/dist/purify.es.mjs","../node_modules/@nextcloud/logger/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/logger-D3RVzcfQ.mjs","../node_modules/@nextcloud/vue/dist/chunks/rtl-v0UOPAM7.mjs","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/dialogs/dist/chunks/index.mjs","../node_modules/@nextcloud/vue-select/dist/index.mjs","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/sanitizeHeaderValue.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js"],"sourcesContent":["function linkTo(app, file) {\n return generateFilePath(app, \"\", file);\n}\nconst linkToRemoteBase = (service) => \"/remote.php/\" + service;\nconst generateRemoteUrl = (service, options) => {\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + linkToRemoteBase(service);\n};\nconst generateOcsUrl = (url, params, options) => {\n const allOptions = Object.assign({\n ocsVersion: 2\n }, options || {});\n const version = allOptions.ocsVersion === 1 ? 1 : 2;\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + \"/ocs/v\" + version + \".php\" + _generateUrlPath(url, params, options);\n};\nconst _generateUrlPath = (url, params, options) => {\n const allOptions = Object.assign({\n escape: true\n }, options || {});\n const _build = function(text, vars) {\n vars = vars || {};\n return text.replace(\n /{([^{}]*)}/g,\n function(a, b) {\n const r = vars[b];\n if (allOptions.escape) {\n return typeof r === \"string\" || typeof r === \"number\" ? encodeURIComponent(r.toString()) : encodeURIComponent(a);\n } else {\n return typeof r === \"string\" || typeof r === \"number\" ? r.toString() : a;\n }\n }\n );\n };\n if (url.charAt(0) !== \"/\") {\n url = \"/\" + url;\n }\n return _build(url, params || {});\n};\nconst generateUrl = (url, params, options) => {\n const allOptions = Object.assign({\n noRewrite: false\n }, options || {});\n const baseOrRootURL = options?.baseURL ?? getRootUrl();\n if (window?.OC?.config?.modRewriteWorking === true && !allOptions.noRewrite) {\n return baseOrRootURL + _generateUrlPath(url, params, options);\n }\n return baseOrRootURL + \"/index.php\" + _generateUrlPath(url, params, options);\n};\nconst imagePath = (app, file) => {\n if (!file.includes(\".\")) {\n return generateFilePath(app, \"img\", `${file}.svg`);\n }\n return generateFilePath(app, \"img\", file);\n};\nconst generateFilePath = (app, type, file) => {\n const isCore = window?.OC?.coreApps?.includes(app) ?? false;\n const isPHP = file.slice(-3) === \"php\";\n let link = getRootUrl();\n if (isPHP && !isCore) {\n link += `/index.php/apps/${app}`;\n if (type) {\n link += `/${encodeURI(type)}`;\n }\n if (file !== \"index.php\") {\n link += `/${file}`;\n }\n } else if (!isPHP && !isCore) {\n link = getAppRootUrl(app);\n if (type) {\n link += `/${type}/`;\n }\n if (link.at(-1) !== \"/\") {\n link += \"/\";\n }\n link += file;\n } else {\n if ((app === \"settings\" || app === \"core\" || app === \"search\") && type === \"ajax\") {\n link += \"/index.php\";\n }\n if (app) {\n link += `/${app}`;\n }\n if (type) {\n link += `/${type}`;\n }\n link += `/${file}`;\n }\n return link;\n};\nconst getBaseUrl = () => window.location.protocol + \"//\" + window.location.host + getRootUrl();\nfunction getRootUrl() {\n let webroot = window._oc_webroot;\n if (typeof webroot === \"undefined\") {\n webroot = location.pathname;\n const pos = webroot.indexOf(\"/index.php/\");\n if (pos !== -1) {\n webroot = webroot.slice(0, pos);\n } else {\n const index = webroot.indexOf(\"/\", 1);\n webroot = webroot.slice(0, index > 0 ? index : void 0);\n }\n }\n return webroot;\n}\nfunction getAppRootUrl(app) {\n const webroots = window._oc_appswebroots ?? {};\n return webroots[app] ?? \"\";\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction generateAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuestUser ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}`, {\n user,\n size\n });\n}\nexport {\n generateAvatarUrl,\n generateFilePath,\n generateOcsUrl,\n generateRemoteUrl,\n generateUrl,\n getAppRootUrl,\n getBaseUrl,\n getRootUrl,\n imagePath,\n linkTo\n};\n//# sourceMappingURL=index.mjs.map\n","/*! @license DOMPurify 3.4.12 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.12/LICENSE */\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nconst entries = Object.entries,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nlet freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\nlet _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n}\nif (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst arrayIsArray = Array.isArray;\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst numberToString = unapply(Number.prototype.toString);\nconst booleanToString = unapply(Boolean.prototype.toString);\nconst bigintToString = typeof BigInt === 'undefined' ? null : unapply(BigInt.prototype.toString);\nconst symbolToString = typeof Symbol === 'undefined' ? null : unapply(Symbol.prototype.toString);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst objectToString = unapply(Object.prototype.toString);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n if (!arrayIsArray(array)) {\n return set;\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const _ref2 of entries(object)) {\n var _ref3 = _slicedToArray(_ref2, 2);\n const property = _ref3[0];\n const value = _ref3[1];\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (arrayIsArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * Convert non-node values into strings without depending on direct property access.\n *\n * @param value - The value to stringify.\n * @returns A string representation of the provided value.\n */\nfunction stringifyValue(value) {\n switch (typeof value) {\n case 'string':\n {\n return value;\n }\n case 'number':\n {\n return numberToString(value);\n }\n case 'boolean':\n {\n return booleanToString(value);\n }\n case 'bigint':\n {\n return bigintToString ? bigintToString(value) : '0';\n }\n case 'symbol':\n {\n return symbolToString ? symbolToString(value) : 'Symbol()';\n }\n case 'undefined':\n {\n return objectToString(value);\n }\n case 'function':\n case 'object':\n {\n if (value === null) {\n return objectToString(value);\n }\n const valueAsRecord = value;\n const valueToString = lookupGetter(valueAsRecord, 'toString');\n if (typeof valueToString === 'function') {\n const stringified = valueToString(valueAsRecord);\n return typeof stringified === 'string' ? stringified : objectToString(stringified);\n }\n return objectToString(value);\n }\n default:\n {\n return objectToString(value);\n }\n }\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\nfunction isRegex(value) {\n try {\n regExpTest(value, '');\n return true;\n } catch (_unused) {\n return false;\n }\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'command', 'commandfor', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dominant-baseline', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-orientation', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lquote', 'lspace', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nconst MUSTACHE_EXPR = seal(/{{[\\w\\W]*|^[\\w\\W]*}}/g);\nconst ERB_EXPR = seal(/<%[\\w\\W]*|^[\\w\\W]*%>/g);\nconst TMPLIT_EXPR = seal(/\\${[\\w\\W]*/g);\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n// Markup-significant character probes used by _sanitizeElements.\n// Shared module-level instances are safe despite the sticky /g flags:\n// unapply() resets lastIndex for RegExp receivers before every call.\nconst ELEMENT_MARKUP_PROBE = seal(/<[/\\w!]/g);\nconst COMMENT_MARKUP_PROBE = seal(/<[/\\w]/g);\nconst FALLBACK_TAG_CLOSE = seal(/<\\/no(script|embed|frames)/i);\nconst SELF_CLOSING_TAG = seal(/\\/>/i);\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n processingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\n/**\n * Resolve a set-valued configuration option: a fresh set built from\n * cfg[key] when it is an own array property (seeded with a clone of\n * options.base when given, case-normalized via options.transform),\n * the fallback set otherwise.\n *\n * @param cfg the cloned, prototype-free configuration object\n * @param key the configuration property to read\n * @param fallback the set to use when the option is absent or not an array\n * @param options transform and optional base set to merge into\n * @returns the resolved set\n */\nconst _resolveSetOption = function _resolveSetOption(cfg, key, fallback, options) {\n return objectHasOwnProperty(cfg, key) && arrayIsArray(cfg[key]) ? addToSet(options.base ? clone(options.base) : {}, cfg[key], options.transform) : fallback;\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.4.12';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let document = window.document;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n window.DocumentFragment;\n const HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap;\n _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap;\n window.HTMLFormElement;\n const DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n const getShadowRoot = lookupGetter(ElementPrototype, 'shadowRoot');\n const getAttributes = lookupGetter(ElementPrototype, 'attributes');\n const getNodeType = Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeType') : null;\n const getNodeName = Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeName') : null;\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n // The instance's own internal Trusted Types policy. Unlike a caller-supplied\n // `TRUSTED_TYPES_POLICY`, this is created at most once — Trusted Types throws\n // on duplicate policy names — and is the only policy allowed to persist\n // across configurations and survive `clearConfig()`.\n let defaultTrustedTypesPolicy;\n let defaultTrustedTypesPolicyResolved = false;\n // Tracks whether we are already inside a call to the configured Trusted Types\n // policy (`createHTML` or `createScriptURL`). If a supplied policy callback\n // itself calls `DOMPurify.sanitize` (the cause of #1422), `sanitize` would\n // re-enter the policy and recurse until the stack overflows. We detect that\n // re-entry and throw a clear, actionable error instead. The guard is shared\n // across both callbacks, because either one re-entering `sanitize` triggers\n // the same unbounded recursion.\n let IN_TRUSTED_TYPES_POLICY = 0;\n const _assertNotInTrustedTypesPolicy = function _assertNotInTrustedTypesPolicy() {\n if (IN_TRUSTED_TYPES_POLICY > 0) {\n throw typeErrorCreate('A configured TRUSTED_TYPES_POLICY callback (createHTML or ' + 'createScriptURL) must not call DOMPurify.sanitize, as that causes ' + 'infinite recursion. Do not pass a policy whose callbacks wrap ' + 'DOMPurify as TRUSTED_TYPES_POLICY; see the \"DOMPurify and Trusted ' + 'Types\" section of the README.');\n }\n };\n const _createTrustedHTML = function _createTrustedHTML(html) {\n _assertNotInTrustedTypesPolicy();\n IN_TRUSTED_TYPES_POLICY++;\n try {\n return trustedTypesPolicy.createHTML(html);\n } finally {\n IN_TRUSTED_TYPES_POLICY--;\n }\n };\n const _createTrustedScriptURL = function _createTrustedScriptURL(scriptUrl) {\n _assertNotInTrustedTypesPolicy();\n IN_TRUSTED_TYPES_POLICY++;\n try {\n return trustedTypesPolicy.createScriptURL(scriptUrl);\n } finally {\n IN_TRUSTED_TYPES_POLICY--;\n }\n };\n // Lazily resolve (and cache) the instance's internal default policy.\n // Resolution is attempted at most once: a successful `createPolicy` cannot be\n // repeated (Trusted Types throws on duplicate names), and a failed or\n // unsupported attempt must not be retried on every parse.\n const _getDefaultTrustedTypesPolicy = function _getDefaultTrustedTypesPolicy() {\n if (!defaultTrustedTypesPolicyResolved) {\n defaultTrustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n defaultTrustedTypesPolicyResolved = true;\n }\n return defaultTrustedTypesPolicy;\n };\n const _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n const importNode = originalDocument.importNode;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE,\n CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;\n let IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Pristine allowlist bindings captured at setConfig() time. On the\n * persistent-config path sanitize() restores the sets from these before\n * the per-walk hook clone-guard, so a hook's in-call widening cannot\n * carry across calls. Null until setConfig() is called; reset by\n * clearConfig(). */\n let SET_CONFIG_ALLOWED_TAGS = null;\n let SET_CONFIG_ALLOWED_ATTR = null;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script',\n // mirrors the selected